{"version":3,"file":"./frontend.js","mappings":"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AcqwL,GAAoB38J,IAAIr0B,GAA0BA,EAAnBkxL,GAAYlxL,GAAYP,KAAK2xL,MAAMpxL,GAErG,EACOmxL,CACX,CA7EqC,CA6EnC/D,IAqEEiF,GAAc,IAAI/7I,IA1DJ,CACd,UACA,SACA,WACA,OACA,OACA,UACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,SACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,WACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,SACA,SACA,OACA,WACA,QACA,MACA,SAUJ,SAASg8I,GAAehhL,GACpB,MAA4B,iBAAdA,GAA0B+gL,GAAYh+J,IAAI/iB,EAC5D,CAKA,IAAIihL,IAAkB,IAAArkL,eAAc,MAEhCskL,IAAgB,IAAAtkL,eAAc,CAC9BukL,eAAgB,CAAC,IAErB,SAASC,KACL,OAAO,IAAAvtK,YAAWqtK,IAAeC,cACrC,CAUA,IAuCIE,GAAmB,IAAIr8I,IAAI,CAC3B,UACA,UACA,OACA,QACA,WACA,aACA,oBACA,kBACA,SACA,UACA,SACA,WACA,4BACA,sBACA,mBACA,sBACA,WACA,cACA,SACA,YACA,2BACA,kBACA,sBACA,OACA,eACA,eACA,kBACA,oBACA,SACA,SACA,cACA,eACA,kBACA,iBACA,QACA,aACA,WACA,oBACA,QACA,aACA,cACA,aACA,WACA,aACA,iBAUJ,SAASs8I,GAAkB5yL,GACvB,OAAO2yL,GAAiBt+J,IAAIr0B,EAChC,CAEA,IAAI6yL,GAAc,SAAU7yL,GAAO,OAAQ4yL,GAAkB5yL,EAAM,EAcnE,IACI,IAAI8yL,GAAuB,UAC3BD,GAAc,SAAU7yL,GAEpB,OAAIA,EAAIigE,WAAW,OACP2yH,GAAkB5yL,GAGnB8yL,GAAqB9yL,EAEpC,CACJ,CACA,MAAOk6E,IAEP,CAsDA,IAAI64G,GAAgB,SAAUnnL,GAC1B,OAAOA,aAAiB8sK,EAC5B,EAEA,SAAS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CA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCtKK,SAASC,GAAMpxE,GACpB,OAAOwvE,GAAMxvE,EAAKqxE,GACpB,CACA,MACMA,GAAqB,CACzB1/E,KAAM,CACJ8+E,MAAQxpM,GAASA,EAAK9C,OAExB4tH,SAAU,CACR0+E,MAAQxpM,GAAS,IAAMA,EAAKvG,MAG9BkxH,SAAU,CACR6+E,MAAQxpM,GAASjK,GAAKiK,EAAKqyH,YAAa,SAE1CzH,oBAAqB,CACnB4+E,MAAMxpM,GACJ,MAAMqqM,EAAU,GAAK,IAAKt0M,GAAKiK,EAAK0zH,oBAAqB,MAAO,KAC1D/7H,EAAS5B,GACb,CACEiK,EAAKwzH,UACLz9H,GAAK,CAACiK,EAAKvG,KAAM4wM,IACjBt0M,GAAKiK,EAAK2zH,WAAY,MAExB,KAIF,OAAmB,UAAXh8H,EAAqB,GAAKA,EAAS,KAAOqI,EAAK4zH,YACzD,GAEF/I,mBAAoB,CAClB2+E,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","sources":["webpack://umbraco8website/webpack/runtime/create fake namespace object","webpack://umbraco8website/../../node_modules/@emotion/sheet/dist/sheet.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/cache/dist/cache.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/utils/dist/utils.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/core/dist/emotion-element-04d85134.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/css/dist/css.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/core/dist/core.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://umbraco8website/../../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://umbraco8website/../../node_modules/decode-uri-component/index.js","webpack://umbraco8website/../../node_modules/filter-obj/index.js","webpack://umbraco8website/../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://umbraco8website/../../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://umbraco8website/../../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://umbraco8website/../../node_modules/isarray/index.js","webpack://umbraco8website/../../node_modules/object-assign/index.js","webpack://umbraco8website/../../node_modules/path-to-regexp/index.js","webpack://umbraco8website/../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://umbraco8website/../../node_modules/prop-types/index.js","webpack://umbraco8website/../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://umbraco8website/../../node_modules/query-string/index.js","webpack://umbraco8website/../../node_modules/querystring-es3/decode.js","webpack://umbraco8website/../../node_modules/querystring-es3/encode.js","webpack://umbraco8website/../../node_modules/querystring-es3/index.js","webpack://umbraco8website/../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://umbraco8website/../../node_modules/react-dom/cjs/react-dom.production.min.js","webpack://umbraco8website/../../node_modules/react-dom/index.js","webpack://umbraco8website/../../node_modules/react-dom/server.browser.js","webpack://umbraco8website/../../node_modules/react-fast-compare/index.js","webpack://umbraco8website/../../node_modules/react-is/cjs/react-is.production.min.js","webpack://umbraco8website/../../node_modules/react-is/index.js","webpack://umbraco8website/../../node_modules/react-loading-skeleton/lib/index.js","webpack://umbraco8website/../../node_modules/react-loading-skeleton/lib/skeleton-theme.js","webpack://umbraco8website/../../node_modules/react-loading-skeleton/lib/skeleton.js","webpack://umbraco8website/../../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","webpack://umbraco8website/../../node_modules/react-router/node_modules/react-is/index.js","webpack://umbraco8website/../../node_modules/react/cjs/react.production.min.js","webpack://umbraco8website/../../node_modules/react/index.js","webpack://umbraco8website/../../node_modules/scheduler/cjs/scheduler.production.min.js","webpack://umbraco8website/../../node_modules/scheduler/index.js","webpack://umbraco8website/../../node_modules/seedrandom/index.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/alea.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/tychei.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/xor128.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/xor4096.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/xorshift7.js","webpack://umbraco8website/../../node_modules/seedrandom/lib/xorwow.js","webpack://umbraco8website/../../node_modules/seedrandom/seedrandom.js","webpack://umbraco8website/../../node_modules/slugify/slugify.js","webpack://umbraco8website/../../node_modules/split-on-first/index.js","webpack://umbraco8website/../../node_modules/strict-uri-encode/index.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://umbraco8website/webpack/bootstrap","webpack://umbraco8website/webpack/runtime/amd define","webpack://umbraco8website/webpack/runtime/amd options","webpack://umbraco8website/webpack/runtime/compat get default export","webpack://umbraco8website/webpack/runtime/define property getters","webpack://umbraco8website/webpack/runtime/global","webpack://umbraco8website/webpack/runtime/hasOwnProperty shorthand","webpack://umbraco8website/webpack/runtime/make namespace object","webpack://umbraco8website/webpack/runtime/node module decorator","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/types.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/isDate/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/toDate/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/en-US/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/subMilliseconds/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/addMilliseconds/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/format/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/isValid/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getDay/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getMonth/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getISODay/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/addDays/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/templates.ts","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/_lib/formatDistance/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/_lib/formatLong/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/_lib/formatRelative/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/_lib/localize/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/_lib/match/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/da/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/de/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/_lib/formatDistance/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/_lib/formatLong/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/_lib/formatRelative/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/_lib/localize/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/_lib/match/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/locale/sv/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/graphql-types.generated.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/helpers.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Footer.tsx","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useOnClickOutside.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/IconButton.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/icons.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/dimensions.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useIsomorphicLayoutEffect.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/images.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/MenuBar.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Spot.tsx","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useLazyLoad.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SmartBackgroundImage.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/CardImageSlider.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/GallerySpot.tsx","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://umbraco8website/../../node_modules/compute-scroll-into-view/dist/index.mjs","webpack://umbraco8website/../../node_modules/tslib/tslib.es6.mjs","webpack://umbraco8website/../../node_modules/downshift/dist/downshift.esm.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Callout.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/usePositioned.tsx","webpack://umbraco8website/../../node_modules/ts-debounce/dist/src/index.esm.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SelectWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/CheckBoxWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/DurationSelectWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useDurationOptions.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/NumberSelectWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useArrayPluralizeOptions.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/startOfDay/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/compareAsc/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/isAfter/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/startOfISOWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/startOfWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/assign/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/parse/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/isEqual/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/isBefore/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/addMonths/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/constants/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/parseISO/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/DatePickerCalendar.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/getISOWeek/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/getISOWeekYear/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/DatePicker.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/eachDayOfInterval/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/startOfToday/index.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/enums.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/createPopper.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/debounce.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/math.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/within.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/popper.js","webpack://umbraco8website/../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://umbraco8website/../../node_modules/react-popper/lib/esm/utils.js","webpack://umbraco8website/../../node_modules/react-popper/lib/esm/usePopper.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/DatePickerWithLabel.tsx","webpack://umbraco8website/../../node_modules/react-slider/es/components/ReactSlider/ReactSlider.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/RangeSlider.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/RangeSliderWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchBoxRangeFilter.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/usePassiveGlobalSearchContext.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Button.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/AnimatedCounter.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/CloseIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useQueryString.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/NumberPicker.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/PeopleSelectWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Grid.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Article.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://umbraco8website/../../node_modules/date-fns/esm/subDays/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/searchcontext/index.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/lodgingListUtils.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useLocalSearchContext.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/AutoCompleteFieldWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/lodgingurl.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/HeroSearchSearchBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/autocompletehelpers/LodgingAutoCompleteHelper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/HeroSearch.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingTitle.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SmartImage.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ImageViewer.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/EmbedKit.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Video.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingImagesViewer.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Breadcrumb.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/HeartIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/FavoriteButton.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingImages.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingFacilityRow.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingDescription.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/IconHeadline.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingFacilityGroup.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingReviews.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/googleMapUtils.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingMap.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/Coordinates.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LocationDescription.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LocationReviews.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/NavButton.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/BreakoutImage.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingListFilter.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ClockIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/HouseIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/KeyIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingGeneralInfo.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useGlobalSearchContext.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/formatISO/index.js","webpack://umbraco8website/../../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://umbraco8website/../../node_modules/graphql/jsutils/invariant.mjs","webpack://umbraco8website/../../node_modules/graphql/language/location.mjs","webpack://umbraco8website/../../node_modules/graphql/language/printLocation.mjs","webpack://umbraco8website/../../node_modules/graphql/error/GraphQLError.mjs","webpack://umbraco8website/../../node_modules/graphql/jsutils/isObjectLike.mjs","webpack://umbraco8website/../../node_modules/graphql/error/syntaxError.mjs","webpack://umbraco8website/../../node_modules/graphql/language/ast.mjs","webpack://umbraco8website/../../node_modules/graphql/language/directiveLocation.mjs","webpack://umbraco8website/../../node_modules/graphql/language/kinds.mjs","webpack://umbraco8website/../../node_modules/graphql/language/tokenKind.mjs","webpack://umbraco8website/../../node_modules/graphql/language/characterClasses.mjs","webpack://umbraco8website/../../node_modules/graphql/language/blockString.mjs","webpack://umbraco8website/../../node_modules/graphql/language/lexer.mjs","webpack://umbraco8website/../../node_modules/graphql/jsutils/devAssert.mjs","webpack://umbraco8website/../../node_modules/graphql/jsutils/inspect.mjs","webpack://umbraco8website/../../node_modules/graphql/language/source.mjs","webpack://umbraco8website/../../node_modules/graphql/language/parser.mjs","webpack://umbraco8website/../../node_modules/graphql-tag/lib/index.js","webpack://umbraco8website/../../node_modules/ts-invariant/lib/invariant.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/globals/maybe.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/globals/global.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/globals/DEV.js","webpack://umbraco8website/../../node_modules/ts-invariant/process/index.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/globals/index.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/canUse.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","webpack://umbraco8website/../../node_modules/@wry/equality/lib/index.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/compact.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/mergeOptions.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/context/ApolloContext.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/arrays.js","webpack://umbraco8website/../../node_modules/@apollo/client/errors/index.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/networkStatus.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/parser/index.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/hooks/useApolloClient.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/objects.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/hooks/useQuery.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/hooks/useLazyQuery.js","webpack://umbraco8website/../../node_modules/@apollo/client/react/hooks/useMutation.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/operations.generated.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchResultListSkeleton.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SelectFilterBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ListIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/MapIcon.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchResultListHeader.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingCard2.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/FavoriteHelper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useFavorites.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchResultMap.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/isSameDay/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/tracking.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/SearchResultList.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/SearchResultListWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingList.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/LodgingListWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/DiscountLodgingList.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/DiscountLodgingListWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Overlay.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Modal.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useModal.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/BookingSummary.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ItemsSummary.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingFacilitySummary.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ItemsSelector.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/FieldWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ContactDetailsForm.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/InfoBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/AlertBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/GuestsForm.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/TextAreaWithLabel.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/NotesForm.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/CommunicationForm.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/PaymentOptions.tsx","webpack://umbraco8website/../../node_modules/date-fns/esm/isToday/index.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/paymentoptions.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/PayRates.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/TermsForm.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Spinner.tsx","webpack://umbraco8website/../../node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://umbraco8website/../../node_modules/value-equal/esm/value-equal.js","webpack://umbraco8website/../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://umbraco8website/../../node_modules/history/esm/history.js","webpack://umbraco8website/../../node_modules/mini-create-react-context/dist/esm/index.js","webpack://umbraco8website/../../node_modules/react-router/esm/react-router.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Checkout.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/googleAnalyticsUtils.ts","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/GraphQLErrorPanel.tsx","webpack://umbraco8website/../../node_modules/react-router-dom/esm/react-router-dom.js","webpack://umbraco8website/./Webpack/frontend/wrappers/data/CheckoutWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/CompactDiscountLodgingList.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/CompactDiscountLodgingListWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/NewsletterSpot.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/NewsletterSpotWrapper.tsx","webpack://umbraco8website/../../node_modules/framer-motion/node_modules/tslib/tslib.es6.js","webpack://umbraco8website/../../node_modules/hey-listen/dist/hey-listen.es.js","webpack://umbraco8website/../../node_modules/framesync/dist/framesync.es.js","webpack://umbraco8website/../../node_modules/popmotion/node_modules/tslib/tslib.es6.js","webpack://umbraco8website/../../node_modules/style-value-types/node_modules/tslib/tslib.es6.js","webpack://umbraco8website/../../node_modules/style-value-types/dist/style-value-types.es.js","webpack://umbraco8website/../../node_modules/popmotion/dist/popmotion.es.js","webpack://umbraco8website/../../node_modules/framer-motion/dist/framer-motion.es.js","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/ReviewSpot.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/ReviewSpotWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/BureauReviews.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/BureauReviewsWrapper.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/LodgingPresentationWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/Image.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/LodgingBookingBox.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/bookingoptions.ts","webpack://umbraco8website/./Webpack/frontend/wrappers/data/LodgingBookingBoxWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/shared/useCalendarDayManipulator.ts","webpack://umbraco8website/./Webpack/frontend/wrappers/data/lazyLoadLodgingsWrapper.tsx","webpack://umbraco8website/../../node_modules/@apollo/client/react/context/ApolloProvider.js","webpack://umbraco8website/./Webpack/frontend/wrappers/onlyClientWrapper.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/withSearchBoxWrapper.tsx","webpack://umbraco8website/../BookingStudioWebPlatform.UI/src/PurchaseTracker.tsx","webpack://umbraco8website/./Webpack/frontend/wrappers/data/PurchaseTrackerWrapper.tsx","webpack://umbraco8website/../../node_modules/zen-observable-ts/module.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/graphql/fragments.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/core/ApolloLink.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/utils/createOperation.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/utils/transformOperation.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/utils/validateOperation.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/core/execute.js","webpack://umbraco8website/../../node_modules/graphql/language/visitor.mjs","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/utils/throwServerError.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack://umbraco8website/../../node_modules/graphql/language/printString.mjs","webpack://umbraco8website/../../node_modules/graphql/language/printer.mjs","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/utils/fromError.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/createHttpLink.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/HttpLink.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/checkFetcher.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/selectURI.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/createSignalIfSupported.js","webpack://umbraco8website/../../node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack://umbraco8website/../../node_modules/@wry/trie/lib/trie.esm.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/graphql/directives.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/helpers.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/errorHandling.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/filterInPlace.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/graphql/transform.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/makeUniqueId.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/observables/iteration.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/observables/subclassing.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/observables/Concast.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/ObservableQuery.js","webpack://umbraco8website/../../node_modules/optimism/node_modules/@wry/context/lib/slot.js","webpack://umbraco8website/../../node_modules/optimism/node_modules/@wry/context/lib/index.js","webpack://umbraco8website/../../node_modules/optimism/lib/bundle.esm.js","webpack://umbraco8website/../../node_modules/@wry/context/lib/context.esm.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/LocalState.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/QueryInfo.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/QueryManager.js","webpack://umbraco8website/../../node_modules/@apollo/client/core/ApolloClient.js","webpack://umbraco8website/../../node_modules/@apollo/client/version.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/core/cache.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/core/types/common.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/policies.js","webpack://umbraco8website/../../node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack://umbraco8website/../../node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack://umbraco8website/./Webpack/frontend/packages/website/apolloClient.tsx","webpack://umbraco8website/./Webpack/frontend/packages/website/manifest.tsx","webpack://umbraco8website/./Webpack/frontend/packages/website/index.tsx"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","/*\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 return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\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.before = null;\n }\n\n var _proto = StyleSheet.prototype;\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 var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"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.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\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 = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\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 break;\n }\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 }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\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 insertStyles = function insertStyles(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.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\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 = 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 = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', '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 console.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 shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\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('Component selectors can only be used in conjunction with babel-plugin-emotion.');\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, couldBeSelectorInterpolation);\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\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? 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], false);\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('Component selectors can only be used in conjunction with babel-plugin-emotion.');\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, false);\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+\\*\\//;\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, false);\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], styles.charCodeAt(styles.length - 1) === 46);\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 '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.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' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\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/css' 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; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // 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 type = 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);\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 var rules = insertStyles(cache, serialized, typeof type === 'string');\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 var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import { serializeStyles } from '@emotion/serialize';\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\nexport default css;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component, 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-04d85134.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-04d85134.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\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;\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\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// 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\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\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 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 Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\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, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.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(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|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|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|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|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 index = 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 index;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/*\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","/**\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\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 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', 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\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 '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\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'].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\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}, 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 = `#${encode(object.fragmentIdentifier, options)}`;\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}, 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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/** @license React v16.14.0\n * react-dom-server.browser.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 k=require(\"object-assign\"),l=require(\"react\");function q(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cH;H++)F[H]=H+1;F[15]=0;\nvar qa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ra=Object.prototype.hasOwnProperty,sa={},ta={};\nfunction ua(a){if(ra.call(ta,a))return!0;if(ra.call(sa,a))return!1;if(qa.test(a))return ta[a]=!0;sa[a]=!0;return!1}function va(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction wa(a,b,c,d){if(null===b||\"undefined\"===typeof b||va(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function J(a,b,c,d,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=g}var K={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){K[a]=new J(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];K[b]=new J(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){K[a]=new J(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){K[a]=new J(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){K[a]=new J(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){K[a]=new J(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){K[a]=new J(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){K[a]=new J(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){K[a]=new J(a,5,!1,a.toLowerCase(),null,!1)});var L=/[\\-:]([a-z])/g;function M(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(L,\nM);K[b]=new J(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(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!1)});\nK.xlinkHref=new J(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!0)});var xa=/[\"'&<>]/;\nfunction N(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;dV))throw Error(q(301));if(a===O)if(S=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ha(){}\nvar X=0,Ia={readContext:function(a){var b=X;E(a,b);return a[b]},useContext:function(a){W();var b=X;E(a,b);return a[b]},useMemo:function(a,b){O=W();Q=Ca();b=void 0===b?null:b;if(null!==Q){var c=Q.memoizedState;if(null!==c&&null!==b){a:{var d=c[1];if(null===d)d=!1;else{for(var f=0;f=d))throw Error(q(304));var h=new Uint16Array(d);h.set(g);F=h;F[0]=c+1;for(g=c;g=\ne.children.length){var I=e.footer;\"\"!==I&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===v)this.popProvider(e.type);else if(e.type===B){this.suspenseDepth--;var G=g.pop();if(x){x=!1;var n=e.fallbackFrame;if(!n)throw Error(q(303));this.stack.push(n);g[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else g[this.suspenseDepth]+=G}g[this.suspenseDepth]+=I}else{var m=e.children[e.childIndex++],\nw=\"\";try{w+=this.render(m,e.context,e.domNamespace)}catch(r){if(null!=r&&\"function\"===typeof r.then)throw Error(q(294));throw r;}finally{}g.length<=this.suspenseDepth&&g.push(\"\");g[this.suspenseDepth]+=w}}return g[0]}finally{Qa.current=c,X=b}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return N(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+N(f);this.previousWasTextNode=!0;return N(f)}b=Za(a,b,this.threadID);a=b.child;\nb=b.context;if(null===a||!1===a)return\"\";if(!l.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===aa)throw Error(q(257));throw Error(q(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ba:case ea:case ca:case ha:case u:return a=Z(a.props.children),this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:throw Error(q(294));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case fa:O={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case ia:return a=[l.createElement(c.type,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case v:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,\ncontext:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case da:c=a.type;d=a.props;var h=this.threadID;E(c,h);c=Z(d.children(c[h]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case la:throw Error(q(338));case ja:switch(c=a.type,na(c),c._status){case 1:return a=[l.createElement(c._result,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case 2:throw c._result;default:throw Error(q(295));\n}case ma:throw Error(q(343));}throw Error(q(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===Ja.html&&Ka(c);if(!Ta.hasOwnProperty(c)){if(!Sa.test(c))throw Error(q(65,c));Ta[c]=!0}var d=a.props;if(\"input\"===c)d=k({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var h=d.value;if(null==h){h=d.defaultValue;var e=d.children;if(null!=e){if(null!=\nh)throw Error(q(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(q(93));e=e[0]}h=\"\"+e}null==h&&(h=\"\")}d=k({},d,{value:void 0,children:\"\"+h})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=k({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var I=Va(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":I;h=!1;if(Array.isArray(e))for(var n=0;n\":(z+=\">\",h=\"\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=N(e);break a}e=null}null!=e?(d=[],Ra.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(z+=\"\\n\"),z+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===\nf?Ka(a):\"http://www.w3.org/2000/svg\"===f&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:h});this.previousWasTextNode=!1;return z};return a}(),ab={renderToString:function(a){a=new $a(a,!1);try{return a.read(Infinity)}finally{a.destroy()}},renderToStaticMarkup:function(a){a=new $a(a,!0);try{return a.read(Infinity)}finally{a.destroy()}},renderToNodeStream:function(){throw Error(q(207));},renderToStaticNodeStream:function(){throw Error(q(208));\n},version:\"16.14.0\"};module.exports=ab.default||ab;\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f){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 // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\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","/** @license React v17.0.2\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=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _skeleton.default;\n }\n});\nObject.defineProperty(exports, \"SkeletonTheme\", {\n enumerable: true,\n get: function get() {\n return _skeletonTheme.default;\n }\n});\n\nvar _skeleton = _interopRequireDefault(require(\"./skeleton\"));\n\nvar _skeletonTheme = _interopRequireDefault(require(\"./skeleton-theme\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _core = require(\"@emotion/core\");\n\nvar _skeleton = require(\"./skeleton\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 SkeletonTheme =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(SkeletonTheme, _Component);\n\n function SkeletonTheme() {\n _classCallCheck(this, SkeletonTheme);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(SkeletonTheme).apply(this, arguments));\n }\n\n _createClass(SkeletonTheme, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n color = _this$props.color,\n highlightColor = _this$props.highlightColor,\n children = _this$props.children;\n var themeStyles =\n /*#__PURE__*/\n (0, _core.css)(\".react-loading-skeleton{background-color:\", color, \";background-image:linear-gradient( 90deg,\", color, \",\", highlightColor, \",\", color, \" );};label:SkeletonTheme;\" + (process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9za2VsZXRvbi10aGVtZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZMkIiLCJmaWxlIjoiLi4vc3JjL3NrZWxldG9uLXRoZW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL2NvcmVcIjtcbmltcG9ydCB7IGRlZmF1bHRCYXNlQ29sb3IsIGRlZmF1bHRIaWdobGlnaHRDb2xvciB9IGZyb20gXCIuL3NrZWxldG9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNrZWxldG9uVGhlbWUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNvbG9yOiBkZWZhdWx0QmFzZUNvbG9yLFxuICAgIGhpZ2hsaWdodENvbG9yOiBkZWZhdWx0SGlnaGxpZ2h0Q29sb3JcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjb2xvciwgaGlnaGxpZ2h0Q29sb3IsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHRoZW1lU3R5bGVzID0gY3NzYFxuICAgICAgLnJlYWN0LWxvYWRpbmctc2tlbGV0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yfTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgIDkwZGVnLFxuICAgICAgICAgICR7Y29sb3J9LFxuICAgICAgICAgICR7aGlnaGxpZ2h0Q29sb3J9LFxuICAgICAgICAgICR7Y29sb3J9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgYDtcbiAgICByZXR1cm4gPGRpdiBjc3M9e3RoZW1lU3R5bGVzfT57Y2hpbGRyZW59PC9kaXY+O1xuICB9XG59XG4iXX0= */\"));\n return (0, _core.jsx)(\"div\", {\n css: themeStyles\n }, children);\n }\n }]);\n\n return SkeletonTheme;\n}(_react.Component);\n\nexports.default = SkeletonTheme;\n\n_defineProperty(SkeletonTheme, \"defaultProps\", {\n color: _skeleton.defaultBaseColor,\n highlightColor: _skeleton.defaultHighlightColor\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Skeleton;\nexports.skeletonStyles = exports.skeletonKeyframes = exports.defaultHighlightColor = exports.defaultBaseColor = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _core = require(\"@emotion/core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n 0% {\\n background-position: -200px 0;\\n }\\n \", \"\\n 100% {\\n background-position: calc(200px + 100%) 0;\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar defaultBaseColor = \"#eee\";\nexports.defaultBaseColor = defaultBaseColor;\nvar defaultHighlightColor = \"#f5f5f5\";\nexports.defaultHighlightColor = defaultHighlightColor;\n\nvar skeletonKeyframes = function skeletonKeyframes(duration, delay) {\n return (0, _core.keyframes)(_templateObject(), delay > 0 ? \"\".concat(Math.floor(1 / (duration + delay) * duration * 100), \"% {\\n background-position: calc(200px + 100%) 0;\\n }\") : undefined);\n};\n\nexports.skeletonKeyframes = skeletonKeyframes;\nvar skeletonStyles =\n/*#__PURE__*/\n(0, _core.css)(\"background-color:\", defaultBaseColor, \";background-image:linear-gradient( 90deg,\", defaultBaseColor, \",\", defaultHighlightColor, \",\", defaultBaseColor, \" );background-size:200px 100%;background-repeat:no-repeat;border-radius:4px;display:inline-block;line-height:1;width:100%;;label:skeletonStyles;\" + (process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9za2VsZXRvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QmlDIiwiZmlsZSI6Ii4uL3NyYy9za2VsZXRvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRCYXNlQ29sb3IgPSBcIiNlZWVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRIaWdobGlnaHRDb2xvciA9IFwiI2Y1ZjVmNVwiO1xuXG5leHBvcnQgY29uc3Qgc2tlbGV0b25LZXlmcmFtZXMgPSAoZHVyYXRpb24sIGRlbGF5KSA9PiBrZXlmcmFtZXNgXG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMDtcbiAgfVxuICAke1xuICAgIGRlbGF5ID4gMFxuICAgICAgPyBgJHtNYXRoLmZsb29yKCgxIC8gKGR1cmF0aW9uICsgZGVsYXkpKSAqIGR1cmF0aW9uICogMTAwKX0lIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDIwMHB4ICsgMTAwJSkgMDtcbiAgfWBcbiAgICAgIDogdW5kZWZpbmVkXG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygyMDBweCArIDEwMCUpIDA7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBza2VsZXRvblN0eWxlcyA9IGNzc2BcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtkZWZhdWx0QmFzZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgICR7ZGVmYXVsdEJhc2VDb2xvcn0sXG4gICAgJHtkZWZhdWx0SGlnaGxpZ2h0Q29sb3J9LFxuICAgICR7ZGVmYXVsdEJhc2VDb2xvcn1cbiAgKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDBweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2tlbGV0b24oe1xuICBjb3VudCxcbiAgZHVyYXRpb24sXG4gIHdpZHRoLFxuICB3cmFwcGVyOiBXcmFwcGVyLFxuICBoZWlnaHQsXG4gIGNpcmNsZSxcbiAgZGVsYXksXG4gIHN0eWxlOiBjdXN0b21TdHlsZSxcbiAgY2xhc3NOYW1lOiBjdXN0b21DbGFzc05hbWVcbn0pIHtcbiAgY29uc3QgZWxlbWVudHMgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBsZXQgc3R5bGUgPSB7fTtcblxuICAgIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICB9XG5cbiAgICBpZiAoaGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKHdpZHRoICE9PSBudWxsICYmIGhlaWdodCAhPT0gbnVsbCAmJiBjaXJjbGUpIHtcbiAgICAgIHN0eWxlLmJvcmRlclJhZGl1cyA9IFwiNTAlXCI7XG4gICAgfVxuXG4gICAgbGV0IGNsYXNzTmFtZSA9IFwicmVhY3QtbG9hZGluZy1za2VsZXRvblwiO1xuICAgIGlmIChjdXN0b21DbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIGN1c3RvbUNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgPHNwYW5cbiAgICAgICAga2V5PXtpfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtza2VsZXRvblN0eWxlc31cbiAgICAgICAgICBhbmltYXRpb246ICR7c2tlbGV0b25LZXlmcmFtZXMoZHVyYXRpb24sIGRlbGF5KX0gJHtkdXJhdGlvbiArXG4gICAgICAgICAgZGVsYXl9cyBlYXNlLWluLW91dCBpbmZpbml0ZVxuICAgICAgICBgfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmN1c3RvbVN0eWxlLFxuICAgICAgICAgIC4uLnN0eWxlXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgICZ6d25qO1xuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzcGFuPlxuICAgICAge1dyYXBwZXJcbiAgICAgICAgPyBlbGVtZW50cy5tYXAoKGVsZW1lbnQsIGkpID0+IChcbiAgICAgICAgICAgIDxXcmFwcGVyIGtleT17aX0+XG4gICAgICAgICAgICAgIHtlbGVtZW50fVxuICAgICAgICAgICAgICAmenduajtcbiAgICAgICAgICAgIDwvV3JhcHBlcj5cbiAgICAgICAgICApKVxuICAgICAgICA6IGVsZW1lbnRzfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn1cblxuU2tlbGV0b24uZGVmYXVsdFByb3BzID0ge1xuICBjb3VudDogMSxcbiAgZHVyYXRpb246IDEuMixcbiAgd2lkdGg6IG51bGwsXG4gIHdyYXBwZXI6IG51bGwsXG4gIGhlaWdodDogbnVsbCxcbiAgY2lyY2xlOiBmYWxzZSxcbiAgZGVsYXk6IDBcbn07XG4iXX0= */\"));\nexports.skeletonStyles = skeletonStyles;\n\nfunction Skeleton(_ref) {\n var count = _ref.count,\n duration = _ref.duration,\n width = _ref.width,\n Wrapper = _ref.wrapper,\n height = _ref.height,\n circle = _ref.circle,\n delay = _ref.delay,\n customStyle = _ref.style,\n customClassName = _ref.className;\n var elements = [];\n\n for (var i = 0; i < count; i++) {\n var style = {};\n\n if (width !== null) {\n style.width = width;\n }\n\n if (height !== null) {\n style.height = height;\n }\n\n if (width !== null && height !== null && circle) {\n style.borderRadius = \"50%\";\n }\n\n var className = \"react-loading-skeleton\";\n\n if (customClassName) {\n className += \" \" + customClassName;\n }\n\n elements.push((0, _core.jsx)(\"span\", {\n key: i,\n className: className,\n css:\n /*#__PURE__*/\n (0, _core.css)(skeletonStyles, \" animation:\", skeletonKeyframes(duration, delay), \" \", duration + delay, \"s ease-in-out infinite;label:Skeleton;\" + (process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9za2VsZXRvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RWdCIiwiZmlsZSI6Ii4uL3NyYy9za2VsZXRvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSBcIkBlbW90aW9uL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRCYXNlQ29sb3IgPSBcIiNlZWVcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRIaWdobGlnaHRDb2xvciA9IFwiI2Y1ZjVmNVwiO1xuXG5leHBvcnQgY29uc3Qgc2tlbGV0b25LZXlmcmFtZXMgPSAoZHVyYXRpb24sIGRlbGF5KSA9PiBrZXlmcmFtZXNgXG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMDtcbiAgfVxuICAke1xuICAgIGRlbGF5ID4gMFxuICAgICAgPyBgJHtNYXRoLmZsb29yKCgxIC8gKGR1cmF0aW9uICsgZGVsYXkpKSAqIGR1cmF0aW9uICogMTAwKX0lIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDIwMHB4ICsgMTAwJSkgMDtcbiAgfWBcbiAgICAgIDogdW5kZWZpbmVkXG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygyMDBweCArIDEwMCUpIDA7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBza2VsZXRvblN0eWxlcyA9IGNzc2BcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtkZWZhdWx0QmFzZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgICR7ZGVmYXVsdEJhc2VDb2xvcn0sXG4gICAgJHtkZWZhdWx0SGlnaGxpZ2h0Q29sb3J9LFxuICAgICR7ZGVmYXVsdEJhc2VDb2xvcn1cbiAgKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDBweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2tlbGV0b24oe1xuICBjb3VudCxcbiAgZHVyYXRpb24sXG4gIHdpZHRoLFxuICB3cmFwcGVyOiBXcmFwcGVyLFxuICBoZWlnaHQsXG4gIGNpcmNsZSxcbiAgZGVsYXksXG4gIHN0eWxlOiBjdXN0b21TdHlsZSxcbiAgY2xhc3NOYW1lOiBjdXN0b21DbGFzc05hbWVcbn0pIHtcbiAgY29uc3QgZWxlbWVudHMgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBsZXQgc3R5bGUgPSB7fTtcblxuICAgIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICB9XG5cbiAgICBpZiAoaGVpZ2h0ICE9PSBudWxsKSB7XG4gICAgICBzdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgaWYgKHdpZHRoICE9PSBudWxsICYmIGhlaWdodCAhPT0gbnVsbCAmJiBjaXJjbGUpIHtcbiAgICAgIHN0eWxlLmJvcmRlclJhZGl1cyA9IFwiNTAlXCI7XG4gICAgfVxuXG4gICAgbGV0IGNsYXNzTmFtZSA9IFwicmVhY3QtbG9hZGluZy1za2VsZXRvblwiO1xuICAgIGlmIChjdXN0b21DbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZSArPSBcIiBcIiArIGN1c3RvbUNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgPHNwYW5cbiAgICAgICAga2V5PXtpfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtza2VsZXRvblN0eWxlc31cbiAgICAgICAgICBhbmltYXRpb246ICR7c2tlbGV0b25LZXlmcmFtZXMoZHVyYXRpb24sIGRlbGF5KX0gJHtkdXJhdGlvbiArXG4gICAgICAgICAgZGVsYXl9cyBlYXNlLWluLW91dCBpbmZpbml0ZVxuICAgICAgICBgfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmN1c3RvbVN0eWxlLFxuICAgICAgICAgIC4uLnN0eWxlXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgICZ6d25qO1xuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxzcGFuPlxuICAgICAge1dyYXBwZXJcbiAgICAgICAgPyBlbGVtZW50cy5tYXAoKGVsZW1lbnQsIGkpID0+IChcbiAgICAgICAgICAgIDxXcmFwcGVyIGtleT17aX0+XG4gICAgICAgICAgICAgIHtlbGVtZW50fVxuICAgICAgICAgICAgICAmenduajtcbiAgICAgICAgICAgIDwvV3JhcHBlcj5cbiAgICAgICAgICApKVxuICAgICAgICA6IGVsZW1lbnRzfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn1cblxuU2tlbGV0b24uZGVmYXVsdFByb3BzID0ge1xuICBjb3VudDogMSxcbiAgZHVyYXRpb246IDEuMixcbiAgd2lkdGg6IG51bGwsXG4gIHdyYXBwZXI6IG51bGwsXG4gIGhlaWdodDogbnVsbCxcbiAgY2lyY2xlOiBmYWxzZSxcbiAgZGVsYXk6IDBcbn07XG4iXX0= */\")),\n style: _objectSpread({}, customStyle, {}, style)\n }, \"\\u200C\"));\n }\n\n return (0, _core.jsx)(\"span\", null, Wrapper ? elements.map(function (element, i) {\n return (0, _core.jsx)(Wrapper, {\n key: i\n }, element, \"\\u200C\");\n }) : elements);\n}\n\nSkeleton.defaultProps = {\n count: 1,\n duration: 1.2,\n width: null,\n wrapper: null,\n height: null,\n circle: false,\n delay: 0\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","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.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, 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch] || charMap[ch] || ch;\n if (appendChar === replacement) {\n appendChar = ' ';\n }\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","'use strict';\n\nmodule.exports = (string, separator) => {\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","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}","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}","// 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","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","import { SearchContext } from \"./searchcontext\";\r\nimport {SearchBoxTranslations} from \"../translations/SearchBoxTranslations\";\r\nimport {DatePickerTranslations} from \"../translations/DatePickerTranslations\";\r\n\r\nexport type ButtonType = \"default\" | \"primary\" | \"secondary\" | \"filter\";\r\n\r\nexport type SearchResultListStyle = \"Grid\" | \"Map\";\r\n\r\nexport type FormFieldType = \"optional\" | \"required\" | \"hidden\";\r\n\r\nexport interface SelectItem {\r\n value: string;\r\n text: string;\r\n}\r\n\r\nexport interface Image {\r\n url: string;\r\n width?: string;\r\n height?: string;\r\n alt?: string;\r\n title?: string;\r\n}\r\n\r\nexport interface NavNode {\r\n name: string;\r\n url?: string;\r\n icon?: \"facebook\" | \"instagram\";\r\n nodes?: NavNode[];\r\n}\r\n\r\nexport interface NavGroup {\r\n headline: string;\r\n icon?: \"info-circle\" | \"comment\";\r\n nodes: NavNode[];\r\n}\r\n\r\nexport interface VirtualElement {\r\n getBoundingClientRect: () => DOMRect;\r\n}\r\n\r\nexport function isNavGroup(panel: FooterPanelType | Brand): panel is NavGroup {\r\n return (panel as NavGroup).headline !== undefined;\r\n}\r\n\r\nexport interface FooterColumnList {\r\n panels: FooterPanel[];\r\n}\r\n\r\nexport interface FooterImages {\r\n images: Image[];\r\n}\r\n\r\ntype FooterPanelType = NavGroup | FooterBrand | FooterColumnList | FooterImages; \r\n\r\nexport interface FooterPanel {\r\n data: FooterPanelType;\r\n}\r\n\r\nexport interface Language {\r\n isoCode: string;\r\n name: string;\r\n url: string;\r\n isCurrent: boolean;\r\n}\r\n\r\nexport interface Brand {\r\n name: string;\r\n logoLightBgUrl?: string;\r\n logoDarkBgUrl?: string;\r\n logoUrl: string;\r\n logoWidth?: string;\r\n logoHeight?: string;\r\n legalName?: string;\r\n url?: string;\r\n address?: string;\r\n telephone?: string;\r\n email?: string;\r\n}\r\n\r\nexport function isBrand(panel: NavGroup | Brand | FooterBrand): panel is Brand {\r\n return (\r\n (panel as Brand).name !== undefined &&\r\n (panel as FooterBrand).footerBrandLogoUrl === undefined\r\n );\r\n}\r\n\r\nexport type FooterBrand = Brand & {\r\n footerBrandLogoUrl?: string;\r\n footerBrandLogoWidth?: string;\r\n footerBrandLogoHeight?: string;\r\n};\r\n\r\nexport function isFooterBrand(panel: FooterPanelType | Brand): panel is FooterBrand {\r\n return (panel as FooterBrand).footerBrandLogoUrl !== undefined;\r\n}\r\n\r\nexport function isColumnList(panel: FooterPanelType): panel is FooterColumnList {\r\n return (panel as FooterColumnList).panels !== undefined;\r\n}\r\n\r\nexport function isImages(panel: FooterPanelType): panel is FooterImages {\r\n return (panel as FooterImages).images !== undefined;\r\n}\r\n\r\nexport type FacilityValueComparison = \"equal\" | \"min\" | \"max\";\r\n\r\nexport enum MasterFacilities {\r\n MaxPeople = 1,\r\n Bedrooms = 2,\r\n LodgingArea = 3,\r\n LandArea = 4,\r\n BuiltYear = 5,\r\n ReconstructedYear = 6,\r\n PetsAllowed = 7,\r\n PetsNotAllowed = 8,\r\n NumberOfPets = 9,\r\n Internet = 10,\r\n Swimmingpool = 11,\r\n Spa = 12,\r\n Sauna = 13,\r\n WashingMachine = 14,\r\n Dishwasher = 15,\r\n WoodStove = 16,\r\n SmokingAllowed = 17,\r\n SmokingNotAllowed = 18\r\n}\r\n\r\nexport interface Money {\r\n amount: number;\r\n currency: string;\r\n}\r\n\r\nexport interface PluralizedTranslation {\r\n zero?: string;\r\n one?: string;\r\n // According to the spec (https://lingohub.com/blog/2019/02/pluralization) - then theese can be included as well - but we don't support them yet\r\n // two?: string;\r\n // few?: string;\r\n // many?: string;\r\n other: string;\r\n}\r\n\r\nexport type UrlWriter = (searchContext: SearchContext) => string;\r\nexport type UrlReader = (location: Location) => SearchContext;\r\n\r\nexport interface CalendarValue {\r\n year: number;\r\n month: number;\r\n day: number;\r\n}\r\n\r\nexport type Dictionary = { [key: string]: string };\r\n\r\nexport interface GenericDictionary {\r\n [key: string]: T;\r\n}\r\n\r\nexport interface CultureInfo {\r\n isoName: string;\r\n languageCode: string;\r\n bsLanguageId: number;\r\n}\r\n\r\nexport type SearchBoxProps = {\r\n translations: SearchBoxTranslations;\r\n datePickerTranslations: DatePickerTranslations;\r\n locations: SelectItem[];\r\n durations: number[];\r\n maxPeople: number;\r\n maxPets: number;\r\n onSubmit?: (value: SearchContext) => void;\r\n urlWriter?: UrlWriter;\r\n urlReader?: UrlReader;\r\n highlightDays?: number[];\r\n booleanFacilities?: BooleanFacility[];\r\n rangeFacilities?: RangeFacility[];\r\n};\r\n\r\nexport type BooleanFacility = {\r\n facilityId: number;\r\n displayName: string;\r\n}\r\n\r\nexport type RangeFacility = {\r\n facilityId: number;\r\n displayName: string;\r\n min: number;\r\n max: number;\r\n minName?: string;\r\n maxName?: string;\r\n}\r\n\r\nexport interface SearchBoxSettings {\r\n id: number;\r\n maxPeople: number;\r\n maxPets: number;\r\n name: string;\r\n version: number;\r\n availableDurations: number[];\r\n booleanFacilities: {\r\n facilityId: number;\r\n displayName: string;\r\n }[];\r\n rangeFacilities: {\r\n facilityId: number;\r\n displayName: string;\r\n min: number;\r\n max: number;\r\n minName?: string;\r\n maxName?: string;\r\n }[];\r\n}\r\n\r\nexport interface Coordinate {\r\n lat: number;\r\n lng: number;\r\n}\r\n\r\nexport interface LodgingListSetting {\r\n id: number;\r\n name: string;\r\n locations: number[];\r\n facilities: { facilityId: number; value: string; minValue: string; maxValue: string }[];\r\n}\r\n\r\nexport interface Favourite {\r\n id: number;\r\n isFavourite: boolean;\r\n}\r\n\r\nexport interface CommonStyles {\r\n marginTop?: string;\r\n marginBottom?: string;\r\n marginLeft?: string;\r\n marginRight?: string;\r\n paddingTop?: string;\r\n paddingBottom?: string;\r\n paddingLeft?: string;\r\n paddingRight?: string;\r\n}\r\n\r\nexport interface Position {\r\n width: number;\r\n height: number;\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport enum PaymentOption {\r\n BankTransfer,\r\n CreditCardOneRate,\r\n CreditCardTwoRates\r\n}\r\n\r\nexport interface LodgingCalendarDay {\r\n date: Date;\r\n isAvailable: boolean;\r\n isChangeDay: boolean;\r\n}\r\n\r\nexport enum Weekday {\r\n sunday = 0,\r\n monday = 1,\r\n tuesday = 2,\r\n wednesday = 3,\r\n thursday = 4,\r\n friday = 5,\r\n saturday = 6\r\n}\r\n\r\nexport interface OverrideChangeDays {\r\n lodgingId: number;\r\n changeDays: Weekday[];\r\n}\r\n\r\nexport type DiscountBannerType = \"image\" | \"pricebox\" | \"custom\" | \"hidden\";\r\nexport type CleaningBannerType = \"image\" | \"custom\" | \"hidden\";","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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\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 (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = 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.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.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 (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 (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}","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 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 (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 (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;","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;","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 addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 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; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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 requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // 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}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // 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, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\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 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; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\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 (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 (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 (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (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 (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (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 * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (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 (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 (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 (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 (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (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 (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 (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 (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 (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 (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 toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","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\nfunction 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\nfunction 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}","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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\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://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/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\"; // 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://git.io/fxCyr\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://git.io/fxCyr\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://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\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://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\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://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var 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 * var 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 * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // 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 localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // 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, formatterOptions);\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.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, 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 return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\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 * @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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\n\nexport default function getISODay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 { GenericDictionary, PluralizedTranslation } from \"./types\";\r\nimport { getPluralizedValue, pluralize } from \"./helpers\";\r\n\r\nexport type SimpleValue = string | number | boolean | Date;\r\nexport type SimpleValueDictionary = GenericDictionary;\r\nexport type SimpleValueArray = SimpleValue[];\r\n\r\nexport function isSimpleValueArray(\r\n values: SimpleValueArray | SimpleValueDictionary\r\n): values is SimpleValueArray {\r\n return (values).length !== undefined;\r\n}\r\n\r\nexport function processTemplate(\r\n template: string,\r\n values: SimpleValueArray | SimpleValueDictionary\r\n): string {\r\n if (isSimpleValueArray(values)) {\r\n return processTemplateWithSimpleValues(template, values as SimpleValueArray);\r\n }\r\n return processTemplateWithValueDictionary(template, values as SimpleValueDictionary);\r\n}\r\n\r\nexport function processTemplateWithSimpleValues(\r\n template: string,\r\n values: SimpleValueArray\r\n): string {\r\n if (template === undefined || template === null) {\r\n return \"\";\r\n }\r\n\r\n let result: string = template;\r\n if (typeof values !== \"undefined\") {\r\n for (let index: number = 0; index < values.length; index++) {\r\n const value = values[index] !== undefined ? values[index].toString() : \"\";\r\n result = result.replace(new RegExp(`\\\\{${index}\\\\}`, \"gi\"), value);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function processTemplateWithValueDictionary(\r\n template: string,\r\n values: SimpleValueDictionary\r\n): string {\r\n if (template === undefined || template === null) {\r\n return \"\";\r\n }\r\n\r\n let result: string = template;\r\n if (typeof values !== \"undefined\") {\r\n Object.keys(values).forEach((property) => {\r\n const value = values[property] !== undefined ? values[property].toString() : \"\";\r\n result = result.replace(new RegExp(`\\\\{${property}\\\\}`, \"gi\"), value);\r\n });\r\n }\r\n return result;\r\n}\r\n\r\ntype TokenType = string | number | React.ReactElement;\r\n\r\n/**\r\n * A React Version of replaceStringTokens that supports React Components.\r\n * Replaces a set of tokens in the string str with the replacements specified in the tokens object.\r\n * Each token format is of type {hello} in the string\r\n * @param str The string to search for tokens in\r\n * @param tokens An object containing the token as key, and the replacement as value. The replacement can be a string, number or a React component. If the replacement is a React component, then remmember to specify the key prop.\r\n * @returns An array of the parts. This array can be sent directly to React to render\r\n */\r\nexport function processTemplateReact(str: string, tokens: { [s: string]: TokenType }) {\r\n let parts: any[] = str.split(/(\\{.+?\\})/gi);\r\n for (let i = 1; i < parts.length; i += 2) {\r\n let key = parts[i].substring(1, parts[i].length - 1);\r\n let token = tokens[key];\r\n\r\n parts[i] = token;\r\n }\r\n\r\n return parts;\r\n}\r\n\r\nexport function processPluralizedTemplateReact(\r\n num: number,\r\n replacement: TokenType,\r\n translation: PluralizedTranslation\r\n) {\r\n let str = getPluralizedValue(num, translation);\r\n let parts: any[] = str.split(/(\\{.+?\\})/gi);\r\n for (let i = 1; i < parts.length; i += 2) {\r\n let key = parts[i].substring(1, parts[i].length - 1);\r\n\r\n parts[i] = replacement;\r\n }\r\n\r\n return parts;\r\n}\r\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'mindre end ét sekund',\n other: 'mindre end {{count}} sekunder'\n },\n xSeconds: {\n one: '1 sekund',\n other: '{{count}} sekunder'\n },\n halfAMinute: 'ét halvt minut',\n lessThanXMinutes: {\n one: 'mindre end ét minut',\n other: 'mindre end {{count}} minutter'\n },\n xMinutes: {\n one: '1 minut',\n other: '{{count}} minutter'\n },\n aboutXHours: {\n one: 'cirka 1 time',\n other: 'cirka {{count}} timer'\n },\n xHours: {\n one: '1 time',\n other: '{{count}} timer'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dage'\n },\n aboutXWeeks: {\n one: 'cirka 1 uge',\n other: 'cirka {{count}} uger'\n },\n xWeeks: {\n one: '1 uge',\n other: '{{count}} uger'\n },\n aboutXMonths: {\n one: 'cirka 1 måned',\n other: 'cirka {{count}} måneder'\n },\n xMonths: {\n one: '1 måned',\n other: '{{count}} måneder'\n },\n aboutXYears: {\n one: 'cirka 1 år',\n other: 'cirka {{count}} år'\n },\n xYears: {\n one: '1 år',\n other: '{{count}} år'\n },\n overXYears: {\n one: 'over 1 år',\n other: 'over {{count}} år'\n },\n almostXYears: {\n one: 'næsten 1 år',\n other: 'næsten {{count}} år'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' siden';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"EEEE 'den' d. MMMM y\",\n long: 'd. MMMM y',\n medium: 'd. MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl'. {{time}}\",\n long: \"{{date}} 'kl'. {{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: \"'sidste' eeee 'kl.' p\",\n yesterday: \"'i går kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"'på' eeee 'kl.' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['fvt', 'vt'],\n abbreviated: ['f.v.t.', 'v.t.'],\n wide: ['før vesterlandsk tidsregning', 'vesterlandsk tidsregning']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. kvt.', '2. kvt.', '3. kvt.', '4. kvt.'],\n wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december']\n}; // Note that 'Days - abbreviated - Formatting' has periods at the end.\n// https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n// This makes grammatical sense in danish, as most abbreviations have periods.\n\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n abbreviated: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'],\n wide: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'morgen',\n afternoon: 'eftermiddag',\n evening: 'aften',\n night: 'nat'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnat',\n noon: 'middag',\n morning: 'om morgenen',\n afternoon: 'om eftermiddagen',\n evening: 'om aftenen',\n night: 'om natten'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\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 (quarter) {\n return Number(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;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(fKr|fvt|eKr|vt)/i,\n abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n wide: /^(f.Kr.|før vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^(v|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]. kvt\\./i,\n wide: /^[1234]\\.? kvartal/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.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|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, /^maj/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(søn.|man.|tir.|ons.|tor.|fre.|lør.)/i,\n abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /midnat/i,\n noon: /middag/i,\n morning: /morgen/i,\n afternoon: /eftermiddag/i,\n evening: /aften/i,\n night: /nat/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (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 (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;","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 * @type {Locale}\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias Wøbbe [@MathiasKandelborg]{@link https://github.com/MathiasKandelborg}\n * @author Anders B. Hansen [@Andersbiha]{@link https://github.com/Andersbiha}\n * @author [@kgram]{@link https://github.com/kgram}\n * @author [@stefanbugge]{@link https://github.com/stefanbugge}\n */\n\nvar locale = {\n code: 'da',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{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: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n}; // Note: in German, 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', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n}; // https://st.unicode.org/cldr-apps/v#/de/Gregorian/\n\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n}; // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\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 (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\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;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/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: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value);\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 (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: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","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 German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n singular: 'mindre än en sekund',\n plural: 'mindre än {{count}} sekunder'\n },\n xSeconds: {\n singular: 'en sekund',\n plural: '{{count}} sekunder'\n },\n halfAMinute: 'en halv minut',\n lessThanXMinutes: {\n singular: 'mindre än en minut',\n plural: 'mindre än {{count}} minuter'\n },\n xMinutes: {\n singular: 'en minut',\n plural: '{{count}} minuter'\n },\n aboutXHours: {\n singular: 'ungefär en timme',\n plural: 'ungefär {{count}} timmar'\n },\n xHours: {\n singular: 'en timme',\n plural: '{{count}} timmar'\n },\n xDays: {\n singular: 'en dag',\n plural: '{{count}} dagar'\n },\n aboutXWeeks: {\n singular: 'ungefär en vecka',\n plural: 'ungefär {{count}} vecka'\n },\n xWeeks: {\n singular: 'en vecka',\n plural: '{{count}} vecka'\n },\n aboutXMonths: {\n singular: 'ungefär en månad',\n plural: 'ungefär {{count}} månader'\n },\n xMonths: {\n singular: 'en månad',\n plural: '{{count}} månader'\n },\n aboutXYears: {\n singular: 'ungefär ett år',\n plural: 'ungefär {{count}} år'\n },\n xYears: {\n singular: 'ett år',\n plural: '{{count}} år'\n },\n overXYears: {\n singular: 'över ett år',\n plural: 'över {{count}} år'\n },\n almostXYears: {\n singular: 'nästan ett år',\n plural: 'nästan {{count}} år'\n }\n};\nvar wordMapping = ['noll', 'en', 'två', 'tre', 'fyra', 'fem', 'sex', 'sju', 'åtta', 'nio', 'tio', 'elva', 'tolv'];\nexport default function formatDistance(token, count, options) {\n options = options || {\n onlyNumeric: false\n };\n var translation = formatDistanceLocale[token];\n var result;\n\n if (typeof translation === 'string') {\n result = translation;\n } else if (count === 0 || count > 1) {\n if (options.onlyNumeric) {\n result = translation.plural.replace('{{count}}', count);\n } else {\n result = translation.plural.replace('{{count}}', count < 13 ? wordMapping[count] : count);\n }\n } else {\n result = translation.singular;\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'om ' + result;\n } else {\n return result + ' sedan';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'y-MM-dd'\n};\nvar timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{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: \"'i' EEEE's kl.' p\",\n yesterday: \"'igår kl.' p\",\n today: \"'idag kl.' p\",\n tomorrow: \"'imorgon kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['f.Kr.', 'e.Kr.'],\n abbreviated: ['f.Kr.', 'e.Kr.'],\n wide: ['före Kristus', 'efter Kristus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', '4:e kvartalet']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mars', 'apr.', 'maj', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],\n short: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],\n abbreviated: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],\n wide: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag']\n}; // https://www.unicode.org/cldr/charts/32/summary/sv.html#1888\n\nvar dayPeriodValues = {\n narrow: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morg.',\n afternoon: 'efterm.',\n evening: 'kväll',\n night: 'natt'\n },\n abbreviated: {\n am: 'f.m.',\n pm: 'e.m.',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morgon',\n afternoon: 'efterm.',\n evening: 'kväll',\n night: 'natt'\n },\n wide: {\n am: 'förmiddag',\n pm: 'eftermiddag',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'morgon',\n afternoon: 'eftermiddag',\n evening: 'kväll',\n night: 'natt'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på efterm.',\n evening: 'på kvällen',\n night: 'på natten'\n },\n abbreviated: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morg.',\n afternoon: 'på efterm.',\n evening: 'på kvällen',\n night: 'på natten'\n },\n wide: {\n am: 'fm',\n pm: 'em',\n midnight: 'midnatt',\n noon: 'middag',\n morning: 'på morgonen',\n afternoon: 'på eftermiddagen',\n evening: 'på kvällen',\n night: 'på natten'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n case 2:\n return number + ':a';\n }\n }\n\n return number + ':e';\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 (quarter) {\n return Number(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;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(:a|:e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n wide: /^(före Kristus|före vår tid|efter Kristus|vår tid)/i\n};\nvar parseEraPatterns = {\n any: [/^f/i, /^[ev]/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](:a|:e)? kvartalet/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|maj|jun|jul|aug|sep|okt|nov|dec)\\.?/i,\n wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|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, /^maj/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(sö|må|ti|on|to|fr|lö)/i,\n abbreviated: /^(sön|mån|tis|ons|tors|fre|lör)/i,\n wide: /^(söndag|måndag|tisdag|onsdag|torsdag|fredag|lördag)/i\n};\nvar parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^([fe]\\.?\\s?m\\.?|midn(att)?|midd(ag)?|(på) (morgonen|eftermiddagen|kvällen|natten))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgon/i,\n afternoon: /eftermiddag/i,\n evening: /kväll/i,\n night: /natt/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (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 (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;","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 * @type {Locale}\n * @category Locales\n * @summary Swedish locale.\n * @language Swedish\n * @iso-639-2 swe\n * @author Johannes Ulén [@ejulen]{@link https://github.com/ejulen}\n * @author Alexander Nanberg [@alexandernanberg]{@link https://github.com/alexandernanberg}\n * @author Henrik Andersson [@limelights]{@link https://github.com/limelights}\n */\n\nvar locale = {\n code: 'sv',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","export type Maybe = T | null;\r\nexport type InputMaybe = Maybe;\r\nexport type Exact = { [K in keyof T]: T[K] };\r\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\r\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\r\n/** All built-in and custom scalars, mapped to their actual values */\r\nexport type Scalars = {\r\n ID: string;\r\n String: string;\r\n Boolean: boolean;\r\n Int: number;\r\n Float: number;\r\n Date: any;\r\n DateTime: any;\r\n Decimal: any;\r\n Guid: any;\r\n};\r\n\r\nexport type AvailabilityCalendar = {\r\n __typename?: \"AvailabilityCalendar\";\r\n days: Array;\r\n lodging: Lodging;\r\n};\r\n\r\nexport type AvailabilityCalendarDay = {\r\n __typename?: \"AvailabilityCalendarDay\";\r\n date?: Maybe;\r\n freeNightsAhead: Scalars[\"Int\"];\r\n hasCalendarData: Scalars[\"Boolean\"];\r\n isAvailable: Scalars[\"Boolean\"];\r\n seasonCode?: Maybe;\r\n};\r\n\r\nexport type Booking = {\r\n __typename?: \"Booking\";\r\n balance?: Maybe;\r\n balanceDisplayValue?: Maybe;\r\n bookingLines: Array;\r\n bookingsTotalDiscount?: Maybe;\r\n bookingsTotalDiscountDisplayValue?: Maybe;\r\n bookingsTotalPrice?: Maybe;\r\n bookingsTotalPriceDisplayValue?: Maybe;\r\n currency: Scalars[\"String\"];\r\n customer?: Maybe;\r\n externalNote?: Maybe;\r\n itemLines?: Maybe>>;\r\n payRates: PayRates;\r\n payment?: Maybe;\r\n reservationId?: Maybe;\r\n totalPrice?: Maybe;\r\n totalPriceDisplayValue?: Maybe;\r\n};\r\n\r\nexport type BookingLine = {\r\n __typename?: \"BookingLine\";\r\n adults?: Maybe;\r\n arrivalDate?: Maybe;\r\n calculatedLineTotal?: Maybe;\r\n children?: Maybe;\r\n description: Scalars[\"String\"];\r\n duration?: Maybe;\r\n infants?: Maybe;\r\n lodging?: Maybe;\r\n lodgingId?: Maybe;\r\n lodgingUnitTypeId?: Maybe;\r\n pets: Scalars[\"Int\"];\r\n};\r\n\r\nexport type BookingOption = {\r\n __typename?: \"BookingOption\";\r\n adults: Scalars[\"Int\"];\r\n arrival?: Maybe;\r\n arrivalDisplayValue: Scalars[\"String\"];\r\n children: Scalars[\"Int\"];\r\n cleaningIncludedInPriceWithMandatoryItems: Scalars[\"Boolean\"];\r\n currency: Scalars[\"String\"];\r\n daysWithDiscount: Scalars[\"Int\"];\r\n departure?: Maybe;\r\n departureDisplayValue: Scalars[\"String\"];\r\n discountName?: Maybe;\r\n discountReduction: Scalars[\"Decimal\"];\r\n discountReductionDisplayValue: Scalars[\"String\"];\r\n discountTags?: Maybe>>;\r\n duration: Scalars[\"Int\"];\r\n hasDiscount: Scalars[\"Boolean\"];\r\n infants: Scalars[\"Int\"];\r\n isAvailable: Scalars[\"Boolean\"];\r\n isRegularWeek: Scalars[\"Boolean\"];\r\n itemPrices?: Maybe>>;\r\n languageId: Scalars[\"Int\"];\r\n lodgingId: Scalars[\"Int\"];\r\n normalPrice: Scalars[\"Decimal\"];\r\n normalPriceDisplayValue: Scalars[\"String\"];\r\n normalPriceWithMandatoryItems: Scalars[\"Decimal\"];\r\n normalPriceWithMandatoryItemsDisplayValue: Scalars[\"String\"];\r\n normalPriceWithMandatoryItemsWithoutDeposits: Scalars[\"Decimal\"];\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: Scalars[\"String\"];\r\n pets: Scalars[\"Int\"];\r\n price: Scalars[\"Decimal\"];\r\n priceDepositItems?: Maybe;\r\n priceDepositItemsDisplayValue?: Maybe;\r\n priceDisplayValue: Scalars[\"String\"];\r\n priceWithMandatoryItems: Scalars[\"Decimal\"];\r\n priceWithMandatoryItemsDisplayValue: Scalars[\"String\"];\r\n priceWithMandatoryItemsWithoutDeposits: Scalars[\"Decimal\"];\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: Scalars[\"String\"];\r\n priority: Scalars[\"String\"];\r\n status: Scalars[\"String\"];\r\n winterRuleWarning: Scalars[\"Boolean\"];\r\n};\r\n\r\nexport type BookingOptionArrivalDisplayValueArgs = {\r\n format: Scalars[\"String\"];\r\n};\r\n\r\nexport type BookingOptionDepartureDisplayValueArgs = {\r\n format: Scalars[\"String\"];\r\n};\r\n\r\nexport type BookingOptionInput = {\r\n adults: Scalars[\"Int\"];\r\n arrival?: InputMaybe;\r\n children: Scalars[\"Int\"];\r\n duration: Scalars[\"Int\"];\r\n infants: Scalars[\"Int\"];\r\n languageId: Scalars[\"Int\"];\r\n lodgingId: Scalars[\"Int\"];\r\n pets: Scalars[\"Int\"];\r\n};\r\n\r\nexport type BookingRequestInput = {\r\n affiliateId?: InputMaybe;\r\n bookingOption: BookingOptionInput;\r\n customer?: InputMaybe;\r\n customerAdvisorId?: InputMaybe;\r\n customerId?: InputMaybe;\r\n guests?: InputMaybe>>;\r\n internalNote?: InputMaybe;\r\n items: Array>;\r\n note?: InputMaybe;\r\n payment?: InputMaybe;\r\n};\r\n\r\nexport type BookingRequestItemInput = {\r\n itemId: Scalars[\"Int\"];\r\n quantity: Scalars[\"Int\"];\r\n};\r\n\r\nexport type Calendar = {\r\n __typename?: \"Calendar\";\r\n days: Array;\r\n lodgingId: Scalars[\"Int\"];\r\n};\r\n\r\nexport type CalendarDay = {\r\n __typename?: \"CalendarDay\";\r\n bookingOptions: Array;\r\n date?: Maybe;\r\n isAvailable: Scalars[\"Boolean\"];\r\n isChangeDay: Scalars[\"Boolean\"];\r\n seasonCode: Scalars[\"String\"];\r\n selectedBookingOption?: Maybe;\r\n};\r\n\r\nexport type CheckoutPresentationView = {\r\n __typename?: \"CheckoutPresentationView\";\r\n available: Scalars[\"Boolean\"];\r\n bookingPrice: Scalars[\"Decimal\"];\r\n bookingPriceDisplayValue?: Maybe;\r\n currency: Scalars[\"String\"];\r\n discountName?: Maybe;\r\n discountReduction?: Maybe;\r\n discountReductionDisplayValue?: Maybe;\r\n hasDiscount: Scalars[\"Boolean\"];\r\n itemLines?: Maybe>;\r\n itemLinesTotal?: Maybe;\r\n itemLinesTotalDisplayValue?: Maybe;\r\n normalBookingPrice: Scalars[\"Decimal\"];\r\n normalBookingPriceDisplayValue?: Maybe;\r\n totalPrice?: Maybe;\r\n totalPriceDisplayValue?: Maybe;\r\n};\r\n\r\nexport type CheckoutPresentationViewItemLinesTotalArgs = {\r\n includeMandatory?: InputMaybe;\r\n};\r\n\r\nexport type CheckoutPresentationViewItemLinesTotalDisplayValueArgs = {\r\n includeMandatory?: InputMaybe;\r\n};\r\n\r\nexport type CheckoutPresentationViewItemLine = {\r\n __typename?: \"CheckoutPresentationViewItemLine\";\r\n canDecrease?: Maybe;\r\n canIncrease?: Maybe;\r\n item: Item;\r\n itemPrice: ItemPrice;\r\n quantity: Scalars[\"Int\"];\r\n showInSummary?: Maybe;\r\n totalPrice?: Maybe;\r\n totalPriceDisplayValue: Scalars[\"String\"];\r\n};\r\n\r\nexport type Country = {\r\n __typename?: \"Country\";\r\n id: Scalars[\"String\"];\r\n name: Scalars[\"String\"];\r\n};\r\n\r\nexport type CreateBookingResult = {\r\n __typename?: \"CreateBookingResult\";\r\n basketId?: Maybe;\r\n bookingOptionNoLongerAvailable: Scalars[\"Boolean\"];\r\n formForGateway?: Maybe;\r\n orderItem?: Maybe;\r\n resultType?: Maybe;\r\n};\r\n\r\nexport enum CreateBookingResultType {\r\n FormForGateway = \"FORM_FOR_GATEWAY\",\r\n OrderItem = \"ORDER_ITEM\",\r\n}\r\n\r\nexport type CustomFieldValueInput = {\r\n name: Scalars[\"String\"];\r\n value?: InputMaybe;\r\n};\r\n\r\nexport type Customer = {\r\n __typename?: \"Customer\";\r\n address?: Maybe;\r\n address2?: Maybe;\r\n city?: Maybe;\r\n country?: Maybe;\r\n customerId?: Maybe;\r\n email?: Maybe;\r\n firstName?: Maybe;\r\n languageId: Scalars[\"Int\"];\r\n lastName?: Maybe;\r\n postalCode?: Maybe;\r\n privateMobilephone?: Maybe;\r\n privateTelephone?: Maybe;\r\n subscribeToCatalogue: Scalars[\"Boolean\"];\r\n subscribeToNewsletters?: Maybe;\r\n workTelephone?: Maybe;\r\n};\r\n\r\nexport type CustomerInput = {\r\n address?: InputMaybe;\r\n address2?: InputMaybe;\r\n city?: InputMaybe;\r\n country?: InputMaybe;\r\n customFieldValues: Array;\r\n customerId?: InputMaybe;\r\n email?: InputMaybe;\r\n firstName?: InputMaybe;\r\n languageId: Scalars[\"Int\"];\r\n lastName?: InputMaybe;\r\n postalCode?: InputMaybe;\r\n privateMobilephone?: InputMaybe;\r\n privateTelephone?: InputMaybe;\r\n subscribeToCatalogue: Scalars[\"Boolean\"];\r\n subscribeToNewsletters?: InputMaybe;\r\n workTelephone?: InputMaybe;\r\n};\r\n\r\nexport type CustomerReview = {\r\n __typename?: \"CustomerReview\";\r\n areaId: Scalars[\"Int\"];\r\n from?: Maybe;\r\n fromDisplayValue: Scalars[\"String\"];\r\n lodgingId: Scalars[\"Int\"];\r\n reviewOfAreaText: Scalars[\"String\"];\r\n reviewOfBureauText: Scalars[\"String\"];\r\n reviewOfLodgingText: Scalars[\"String\"];\r\n reviewerName: Scalars[\"String\"];\r\n to?: Maybe;\r\n toDisplayValue: Scalars[\"String\"];\r\n};\r\n\r\nexport type CustomerReviewFromDisplayValueArgs = {\r\n format: Scalars[\"String\"];\r\n};\r\n\r\nexport type CustomerReviewToDisplayValueArgs = {\r\n format: Scalars[\"String\"];\r\n};\r\n\r\nexport type ExtendedLodging = {\r\n __typename?: \"ExtendedLodging\";\r\n bookingOptions: Array;\r\n group?: Maybe>;\r\n groupInfo?: Maybe;\r\n lodging: Lodging;\r\n nameInGroup: Scalars[\"String\"];\r\n positionInGroup: Scalars[\"Int\"];\r\n seasonCalendar: SeasonCalendar;\r\n seasonPrices: Array;\r\n selectedBookingOption?: Maybe;\r\n};\r\n\r\nexport type Facility = {\r\n __typename?: \"Facility\";\r\n description?: Maybe;\r\n facilityGroupIds?: Maybe>>;\r\n id: Scalars[\"Int\"];\r\n image?: Maybe;\r\n masterFacilityId?: Maybe;\r\n name: Scalars[\"String\"];\r\n typeId: Scalars[\"Int\"];\r\n};\r\n\r\nexport type FacilityValue = {\r\n __typename?: \"FacilityValue\";\r\n displayValue: Scalars[\"String\"];\r\n displayValueAndName: Scalars[\"String\"];\r\n facility: Facility;\r\n facilityId: Scalars[\"Int\"];\r\n fromDate?: Maybe;\r\n masterFacilityId?: Maybe;\r\n toDate?: Maybe;\r\n value: Scalars[\"String\"];\r\n};\r\n\r\nexport type GroupInfo = {\r\n __typename?: \"GroupInfo\";\r\n currency: Scalars[\"String\"];\r\n highestMaxPeople: Scalars[\"Int\"];\r\n lowestMaxPeople: Scalars[\"Int\"];\r\n lowestPrice: Scalars[\"Decimal\"];\r\n};\r\n\r\nexport type GuestInput = {\r\n birthYear?: InputMaybe;\r\n firstName?: InputMaybe;\r\n lastName?: InputMaybe;\r\n};\r\n\r\nexport type Image = {\r\n __typename?: \"Image\";\r\n originalHeight: Scalars[\"Int\"];\r\n originalWidth: Scalars[\"Int\"];\r\n tagIds: Array;\r\n url: Scalars[\"String\"];\r\n};\r\n\r\nexport type Item = {\r\n __typename?: \"Item\";\r\n description?: Maybe;\r\n fromDate?: Maybe;\r\n id: Scalars[\"Int\"];\r\n itemType?: Maybe;\r\n itemTypeId: Scalars[\"Int\"];\r\n name: Scalars[\"String\"];\r\n shortDescription: Scalars[\"String\"];\r\n sortIndex: Scalars[\"Int\"];\r\n toDate?: Maybe;\r\n};\r\n\r\nexport type ItemLine = {\r\n __typename?: \"ItemLine\";\r\n calculatedLineTotal?: Maybe;\r\n calculatedUnitPrice?: Maybe;\r\n description: Scalars[\"String\"];\r\n itemId?: Maybe;\r\n quantity?: Maybe;\r\n};\r\n\r\nexport type ItemPrice = {\r\n __typename?: \"ItemPrice\";\r\n currency: Scalars[\"String\"];\r\n defaultQuantity: Scalars[\"Int\"];\r\n isMandatory: Scalars[\"Boolean\"];\r\n item: Item;\r\n itemId: Scalars[\"Int\"];\r\n maxQuantity: Scalars[\"Int\"];\r\n minQuantity: Scalars[\"Int\"];\r\n priceWithQuantityDisplayValue: Scalars[\"String\"];\r\n unitPrice: Scalars[\"Decimal\"];\r\n unitPriceDisplayValue: Scalars[\"String\"];\r\n};\r\n\r\nexport type ItemPricePriceWithQuantityDisplayValueArgs = {\r\n quantity?: InputMaybe;\r\n};\r\n\r\nexport enum ItemTypes {\r\n Cleaning = \"CLEANING\",\r\n Consumables = \"CONSUMABLES\",\r\n Deposit = \"DEPOSIT\",\r\n Insurance = \"INSURANCE\",\r\n Standard = \"STANDARD\",\r\n Transportation = \"TRANSPORTATION\",\r\n}\r\n\r\nexport type Location = {\r\n __typename?: \"Location\";\r\n id: Scalars[\"Int\"];\r\n level: Scalars[\"Int\"];\r\n locations?: Maybe>>;\r\n name: Scalars[\"String\"];\r\n reviews: Array;\r\n shortDescription: Scalars[\"String\"];\r\n slug: Scalars[\"String\"];\r\n};\r\n\r\nexport type LocationReviewsArgs = {\r\n limit: Scalars[\"Int\"];\r\n};\r\n\r\nexport type Lodging = {\r\n __typename?: \"Lodging\";\r\n activeDescription?: Maybe;\r\n address1: Scalars[\"String\"];\r\n address1Slug: Scalars[\"String\"];\r\n address2: Scalars[\"String\"];\r\n city: Scalars[\"String\"];\r\n country: Scalars[\"String\"];\r\n departmentId?: Maybe;\r\n descriptions: Array;\r\n facilityValue?: Maybe;\r\n facilityValues: Array;\r\n id: Scalars[\"Int\"];\r\n images: Array;\r\n internalName: Scalars[\"String\"];\r\n latitude: Scalars[\"String\"];\r\n location: Location;\r\n locationId: Scalars[\"Int\"];\r\n longitude: Scalars[\"String\"];\r\n maxPeople?: Maybe;\r\n maxPets?: Maybe;\r\n name: Scalars[\"String\"];\r\n nameSlug: Scalars[\"String\"];\r\n petsAllowed?: Maybe;\r\n postalCode: Scalars[\"String\"];\r\n primaryImage?: Maybe;\r\n rating: Scalars[\"String\"];\r\n reviews: Array;\r\n stars?: Maybe;\r\n starsPostText: Scalars[\"String\"];\r\n terms?: Maybe;\r\n typeId: Scalars[\"Int\"];\r\n websiteUrl: Scalars[\"String\"];\r\n};\r\n\r\nexport type LodgingActiveDescriptionArgs = {\r\n displayDate?: InputMaybe;\r\n};\r\n\r\nexport type LodgingFacilityValueArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n facilityId: Scalars[\"Int\"];\r\n};\r\n\r\nexport type LodgingFacilityValuesArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n onlyFacilities?: InputMaybe>;\r\n onlyMasterFacilities?: InputMaybe>;\r\n};\r\n\r\nexport type LodgingMaxPeopleArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n};\r\n\r\nexport type LodgingMaxPetsArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n};\r\n\r\nexport type LodgingPetsAllowedArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n};\r\n\r\nexport type LodgingReviewsArgs = {\r\n take: Scalars[\"Int\"];\r\n};\r\n\r\nexport type LodgingTermsArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n};\r\n\r\nexport type LodgingBookingOptions = {\r\n __typename?: \"LodgingBookingOptions\";\r\n bookingOptions: Array;\r\n lodging: Lodging;\r\n};\r\n\r\nexport type LodgingDescription = {\r\n __typename?: \"LodgingDescription\";\r\n body?: Maybe;\r\n embeddedVideoHtml?: Maybe;\r\n fromDate?: Maybe;\r\n longHtmlDescription?: Maybe;\r\n summary?: Maybe;\r\n title?: Maybe;\r\n toDate?: Maybe;\r\n};\r\n\r\nexport type LodgingListView = {\r\n __typename?: \"LodgingListView\";\r\n results?: Maybe>>;\r\n};\r\n\r\nexport type LodgingPresentationView = {\r\n __typename?: \"LodgingPresentationView\";\r\n lodging?: Maybe;\r\n selectedBookingOption?: Maybe;\r\n};\r\n\r\nexport type MutationResult_Boolean = {\r\n __typename?: \"MutationResult_Boolean\";\r\n errorMessage?: Maybe;\r\n result?: Maybe;\r\n success: Scalars[\"Boolean\"];\r\n};\r\n\r\nexport type MutationResult_CreateBookingResult = {\r\n __typename?: \"MutationResult_CreateBookingResult\";\r\n errorMessage?: Maybe;\r\n result?: Maybe;\r\n success: Scalars[\"Boolean\"];\r\n};\r\n\r\nexport type Newsletter = {\r\n __typename?: \"Newsletter\";\r\n description?: Maybe;\r\n id: Scalars[\"Int\"];\r\n name: Scalars[\"String\"];\r\n};\r\n\r\nexport type OrderItem = {\r\n __typename?: \"OrderItem\";\r\n id: Scalars[\"Int\"];\r\n reservationId: Scalars[\"Int\"];\r\n type: Scalars[\"String\"];\r\n};\r\n\r\nexport type PayRate = {\r\n __typename?: \"PayRate\";\r\n amount: Scalars[\"Decimal\"];\r\n amountDisplayValue: Scalars[\"String\"];\r\n currency: Scalars[\"String\"];\r\n payDate?: Maybe;\r\n payDateDisplayValue: Scalars[\"String\"];\r\n};\r\n\r\nexport type PayRatePayDateDisplayValueArgs = {\r\n format: Scalars[\"String\"];\r\n};\r\n\r\nexport type PayRates = {\r\n __typename?: \"PayRates\";\r\n rate1?: Maybe;\r\n rate2?: Maybe;\r\n};\r\n\r\nexport type Payment = {\r\n __typename?: \"Payment\";\r\n amount: Scalars[\"Decimal\"];\r\n currency: Scalars[\"String\"];\r\n fee: Scalars[\"Decimal\"];\r\n id: Scalars[\"Int\"];\r\n status?: Maybe;\r\n transact: Scalars[\"String\"];\r\n};\r\n\r\nexport type PaymentInput = {\r\n amount: Scalars[\"Decimal\"];\r\n basketId?: InputMaybe;\r\n cardId: Scalars[\"String\"];\r\n createOrderOnAccept: Scalars[\"Boolean\"];\r\n currency: Scalars[\"String\"];\r\n fee: Scalars[\"Decimal\"];\r\n gatewayId: Scalars[\"Int\"];\r\n id: Scalars[\"Int\"];\r\n status?: InputMaybe;\r\n transactionId: Scalars[\"String\"];\r\n};\r\n\r\nexport enum PaymentOption {\r\n BankTransfer = \"BANK_TRANSFER\",\r\n CreditCardWithOneRate = \"CREDIT_CARD_WITH_ONE_RATE\",\r\n CreditCardWithTwoRates = \"CREDIT_CARD_WITH_TWO_RATES\",\r\n}\r\n\r\nexport enum PaymentStatus {\r\n Authorized = \"AUTHORIZED\",\r\n Cancelled = \"CANCELLED\",\r\n Captured = \"CAPTURED\",\r\n Completed = \"COMPLETED\",\r\n Expired = \"EXPIRED\",\r\n Failed = \"FAILED\",\r\n New = \"NEW\",\r\n}\r\n\r\nexport type Query = {\r\n __typename?: \"Query\";\r\n availabilityCalendars: Array;\r\n booking?: Maybe;\r\n bureauReviews?: Maybe>>;\r\n calendar?: Maybe;\r\n checkoutPresentation?: Maybe;\r\n countries: Array;\r\n facilities?: Maybe>>;\r\n items?: Maybe>>;\r\n lastMinute?: Maybe;\r\n locations?: Maybe>>;\r\n lodgingBookingOptions?: Maybe;\r\n lodgingList?: Maybe;\r\n lodgingPresentation?: Maybe;\r\n lodgings?: Maybe>>;\r\n newsletters: Array;\r\n payRates?: Maybe;\r\n search?: Maybe;\r\n terms?: Maybe;\r\n};\r\n\r\nexport type QueryAvailabilityCalendarsArgs = {\r\n displayDate: Scalars[\"Date\"];\r\n month?: InputMaybe;\r\n year?: InputMaybe;\r\n};\r\n\r\nexport type QueryBookingArgs = {\r\n basketId: Scalars[\"String\"];\r\n};\r\n\r\nexport type QueryBureauReviewsArgs = {\r\n limit: Scalars[\"Int\"];\r\n};\r\n\r\nexport type QueryCalendarArgs = {\r\n month?: InputMaybe;\r\n numberOfMonths?: InputMaybe;\r\n query?: InputMaybe;\r\n year?: InputMaybe;\r\n};\r\n\r\nexport type QueryCheckoutPresentationArgs = {\r\n request?: InputMaybe;\r\n};\r\n\r\nexport type QueryLastMinuteArgs = {\r\n daysAhead?: InputMaybe;\r\n query?: InputMaybe;\r\n sorting?: InputMaybe;\r\n tagFilter?: InputMaybe;\r\n take?: InputMaybe;\r\n};\r\n\r\nexport type QueryLodgingBookingOptionsArgs = {\r\n query?: InputMaybe;\r\n};\r\n\r\nexport type QueryLodgingListArgs = {\r\n query?: InputMaybe;\r\n sorting?: InputMaybe;\r\n take?: InputMaybe;\r\n year?: InputMaybe;\r\n};\r\n\r\nexport type QueryLodgingPresentationArgs = {\r\n query?: InputMaybe;\r\n request?: InputMaybe;\r\n seasonPricesYear?: InputMaybe;\r\n};\r\n\r\nexport type QueryPayRatesArgs = {\r\n request: BookingRequestInput;\r\n};\r\n\r\nexport type QuerySearchArgs = {\r\n query?: InputMaybe;\r\n sorting?: InputMaybe;\r\n};\r\n\r\nexport type QueryTermsArgs = {\r\n arrivalDate: Scalars[\"DateTime\"];\r\n lodgingId: Scalars[\"Int\"];\r\n};\r\n\r\nexport type RootMutation = {\r\n __typename?: \"RootMutation\";\r\n createBooking?: Maybe;\r\n newsletterSignup?: Maybe;\r\n};\r\n\r\nexport type RootMutationCreateBookingArgs = {\r\n payMethod?: InputMaybe;\r\n request?: InputMaybe;\r\n};\r\n\r\nexport type RootMutationNewsletterSignupArgs = {\r\n email: Scalars[\"String\"];\r\n firstName: Scalars[\"String\"];\r\n lastName: Scalars[\"String\"];\r\n mailConfigurationId: Scalars[\"String\"];\r\n newsletterCategories: Array;\r\n};\r\n\r\nexport type SearchResult = {\r\n __typename?: \"SearchResult\";\r\n numberOfResults: Scalars[\"Int\"];\r\n results?: Maybe>>;\r\n supportData?: Maybe;\r\n};\r\n\r\nexport type SearchResultLodging = {\r\n __typename?: \"SearchResultLodging\";\r\n bookingOptions: Array;\r\n group?: Maybe>;\r\n groupInfo?: Maybe;\r\n lodging: Lodging;\r\n nameInGroup: Scalars[\"String\"];\r\n positionInGroup: Scalars[\"Int\"];\r\n selectedBookingOption: BookingOption;\r\n};\r\n\r\nexport enum SearchSorting {\r\n PriceHighToLow = \"PRICE_HIGH_TO_LOW\",\r\n PriceLowToHigh = \"PRICE_LOW_TO_HIGH\",\r\n Random = \"RANDOM\",\r\n Standard = \"STANDARD\",\r\n}\r\n\r\nexport type Season = {\r\n __typename?: \"Season\";\r\n id: Scalars[\"Int\"];\r\n internalName: Scalars[\"String\"];\r\n periods: Array>;\r\n seasonCode: Scalars[\"String\"];\r\n seasonCodeId: Scalars[\"Int\"];\r\n seasonColorCode: Scalars[\"String\"];\r\n};\r\n\r\nexport type SeasonCalendar = {\r\n __typename?: \"SeasonCalendar\";\r\n id: Scalars[\"Int\"];\r\n internalName: Scalars[\"String\"];\r\n seasons: Array;\r\n year: Scalars[\"Int\"];\r\n};\r\n\r\nexport type SeasonPeriod = {\r\n __typename?: \"SeasonPeriod\";\r\n fromDate?: Maybe;\r\n toDate?: Maybe;\r\n};\r\n\r\nexport type SeasonPrice = {\r\n __typename?: \"SeasonPrice\";\r\n colorCode: Scalars[\"String\"];\r\n currency: Scalars[\"String\"];\r\n lodgingId: Scalars[\"Int\"];\r\n price: Scalars[\"Decimal\"];\r\n priceDisplayValue: Scalars[\"String\"];\r\n seasonCode: Scalars[\"String\"];\r\n weeklyPriceDisplayValue: Scalars[\"String\"];\r\n year: Scalars[\"Int\"];\r\n};\r\n\r\nexport type SupportData = {\r\n __typename?: \"SupportData\";\r\n facilities?: Maybe>>;\r\n items?: Maybe>>;\r\n locations?: Maybe>>;\r\n};\r\n\r\nexport type TermsAndConditions = {\r\n __typename?: \"TermsAndConditions\";\r\n description: Scalars[\"String\"];\r\n id: Scalars[\"Int\"];\r\n};\r\n","import { CalendarValue, FacilityValueComparison, PluralizedTranslation } from \"./types\";\r\nimport { addDays, format, getDay, getISODay, getMonth, getYear } from \"date-fns\";\r\nimport { processTemplate } from \"./templates\";\r\nimport { sv, da, de, enUS } from \"date-fns/locale\";\r\nimport { Facility, SearchSorting } from \"./graphql-types.generated\";\r\nimport {ItemSelectorCheckoutPresentationFragment} from \"../operations.generated\";\r\n\r\nexport function getLocale(culture: string): Locale {\r\n let locale = enUS;\r\n if (culture.indexOf(\"da\") === 0) {\r\n locale = da;\r\n }\r\n if (culture.indexOf(\"de\") === 0) {\r\n locale = de;\r\n }\r\n if (culture.indexOf(\"en\") === 0) {\r\n locale = enUS;\r\n }\r\n if (culture.indexOf(\"sv\") === 0) {\r\n locale = sv;\r\n }\r\n return locale;\r\n}\r\n\r\nexport function prefixed(prefix, text) {\r\n if (!text) return \"\";\r\n if (!prefix) return text;\r\n return `${prefix}${text}`;\r\n}\r\n\r\nexport function getSearchSorting(value: string) {\r\n if (value === \"Random\") {\r\n return SearchSorting.Random;\r\n }\r\n if (value === \"PriceLowToHigh\") {\r\n return SearchSorting.PriceLowToHigh;\r\n }\r\n if (value === \"PriceHighToLow\") {\r\n return SearchSorting.PriceHighToLow;\r\n }\r\n if (value === \"Standard\") {\r\n return SearchSorting.Standard;\r\n }\r\n return null;\r\n}\r\n\r\nexport function isValidDate(date: Date) {\r\n return (\r\n Object.prototype.toString.call(date) === \"[object Date]\" && isNaN(date.getTime()) === false\r\n );\r\n}\r\n\r\nexport function facilityKey(\r\n facility: Facility | number,\r\n comparison: FacilityValueComparison = \"equal\"\r\n) {\r\n const id = typeof facility === \"number\" ? facility : facility.id;\r\n\r\n const postfix = comparison === \"equal\" ? \"\" : `_${comparison}`;\r\n\r\n return `fac${id}${postfix}`;\r\n}\r\n\r\nexport function isBrowser() {\r\n return typeof window === \"object\";\r\n}\r\n\r\nexport function getPluralizedValue(num: number, translation: PluralizedTranslation) {\r\n if (num == 0 && translation.zero) {\r\n return translation.zero;\r\n }\r\n if (num == 1 && translation.one) {\r\n return translation.one;\r\n }\r\n\r\n return translation.other;\r\n}\r\n\r\nexport function pluralize(num: number, translation: PluralizedTranslation) \r\n{\r\n return stringFormat(getPluralizedValue(num, translation), (num ?? 0).toString());\r\n}\r\n\r\nexport function stringFormat(str: string, ...tokens: string[]) {\r\n let result = str;\r\n tokens.forEach((token, index) => {\r\n result = replaceAll(result, \"{\" + index + \"}\", token);\r\n });\r\n return result;\r\n}\r\n\r\nexport function replaceAll(str: string, search: string, replacement: string) {\r\n if (str[\"replaceAll\"] !== undefined) {\r\n return str[\"replaceAll\"](search, replacement);\r\n } else {\r\n return str.split(search).join(replacement);\r\n }\r\n}\r\n\r\nexport function telLinkHref(telephone: string) {\r\n if (!telephone) {\r\n return \"#\";\r\n }\r\n\r\n const onlyNumbers = telephone.replace(/\\s+/g, \"\").replace(/^\\+/, \"00\");\r\n\r\n return `tel:${onlyNumbers}`;\r\n}\r\n\r\nexport function emailLinkHref(email: string) {\r\n if (!email) {\r\n return \"#\";\r\n }\r\n\r\n return `mailto:${email}`;\r\n}\r\n\r\nexport function formattedShortDate(date: Date, culture: string) {\r\n if (!isValidDate(date)) {\r\n return \"\";\r\n }\r\n\r\n return format(date, \"dd-MM\", { locale: getLocale(culture) });\r\n}\r\n\r\nexport function formattedDate(date: Date, culture: string) {\r\n if (!isValidDate(date)) {\r\n return \"\";\r\n }\r\n\r\n return format(date, \"dd-MM-yyyy\", { locale: getLocale(culture) });\r\n}\r\n\r\nexport function formattedValue(value: string | number | boolean, translation: string): string {\r\n if (translation) {\r\n return processTemplate(translation, [value]);\r\n }\r\n return value.toString();\r\n}\r\n\r\nexport function getDateValueFromDate(date: Date): CalendarValue {\r\n if (!date || !isValidDate(date)) {\r\n return null;\r\n }\r\n \r\n return {\r\n day: getDay(date),\r\n month: getMonth(date),\r\n year: getYear(date)\r\n } as CalendarValue;\r\n}\r\n\r\nexport function getDateFromCalendarValue(value: CalendarValue) {\r\n if (!value) {\r\n return null;\r\n }\r\n return new Date(value.year, value.month - 1, value.day, 0, 0, 0, 0);\r\n}\r\n\r\nexport function formattedAmount(amount: number, currency: string, culture: string) {\r\n try {\r\n return new Intl.NumberFormat(culture, {\r\n style: \"currency\",\r\n currency: currency,\r\n }).format(amount);\r\n } catch (e) {\r\n console.warn(\"Unable to use formatter: \", e);\r\n return amount.toString();\r\n }\r\n}\r\n\r\n/**\r\n * Coalesce is a method that returns the first of its parameters that is not null or undefined.\r\n * You can use it to have a list of fallbacks for a value\r\n * @param params\r\n */\r\nexport function coalesce(...params: T[]): T {\r\n const len = params.length;\r\n for (let i = 0; i < len; i++) {\r\n if (params[i] !== null && params[i] !== undefined) {\r\n return params[i];\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const defaultDateValue = (() => {\r\n let tmp = new Date();\r\n\r\n // move to next saturday\r\n switch (getISODay(tmp)) {\r\n case 1:\r\n tmp = addDays(tmp, 5);\r\n break;\r\n case 2:\r\n tmp = addDays(tmp, 4);\r\n break;\r\n case 3:\r\n tmp = addDays(tmp, 3);\r\n break;\r\n case 4:\r\n tmp = addDays(tmp, 2);\r\n break;\r\n case 5:\r\n tmp = addDays(tmp, 1);\r\n break;\r\n case 6:\r\n tmp = addDays(tmp, 0);\r\n break;\r\n case 7:\r\n tmp = addDays(tmp, 6);\r\n break;\r\n }\r\n\r\n let ensureLength = (str: string) => {\r\n return str.length == 1 ? \"0\" + str : str;\r\n };\r\n\r\n return (\r\n ensureLength((tmp.getMonth() + 1).toString()) +\r\n \"-\" +\r\n ensureLength(tmp.getDate().toString()) +\r\n \"-\" +\r\n tmp.getFullYear()\r\n );\r\n})();\r\n\r\nexport const defaultValue = {\r\n adults: 2,\r\n duration: 7,\r\n pets: null,\r\n arrival: defaultDateValue,\r\n};\r\n\r\nexport function removeEmptyProps(obj: any) {\r\n if (!obj) {\r\n return obj;\r\n }\r\n\r\n const result = {};\r\n Object.keys(obj).forEach(key => {\r\n if (obj[key]) {\r\n result[key] = obj[key];\r\n }\r\n });\r\n return result;\r\n}\r\n\r\nexport function isSelectableItem(ip: ItemSelectorCheckoutPresentationFragment[\"itemLines\"][0]) {\r\n return (\r\n ip.itemPrice.isMandatory === false &&\r\n ip.itemPrice.minQuantity !== ip.itemPrice.maxQuantity &&\r\n ip.itemPrice.maxQuantity > 0\r\n )\r\n}","import React from \"react\";\r\nimport {NavGroup, Brand, FooterPanel, isNavGroup, isFooterBrand, isColumnList, isImages, Image} from \"./shared/types\";\r\n\r\nimport \"./Footer.scss\";\r\nimport { telLinkHref, emailLinkHref } from \"./shared/helpers\";\r\nimport { FooterTranslations } from \"./translations/FooterTranslations\";\r\n\r\nexport interface FooterProps {\r\n brand: Brand;\r\n panels: FooterPanel[];\r\n backgroundStyle?: string;\r\n translations: FooterTranslations;\r\n}\r\n\r\n// Component Footer\r\n// - component for rendering a website footer\r\nexport default function Footer({ brand, panels, backgroundStyle, translations }: FooterProps) {\r\n\r\n const renderPanel = (panel: FooterPanel, key: string) => {\r\n if (!panel || !panel.data) {\r\n return null;\r\n }\r\n\r\n if (isNavGroup(panel.data)) {\r\n return (\r\n \r\n );\r\n } else if (isFooterBrand(panel.data)) {\r\n return (\r\n \r\n );\r\n } else if (isImages(panel.data)) {\r\n return (\r\n \r\n );\r\n } else if (isColumnList(panel.data)) {\r\n return (\r\n
\r\n {panel.data.panels.map((subPanel, i) => (\r\n
\r\n {isNavGroup(subPanel.data) && (\r\n \r\n )}\r\n {isFooterBrand(subPanel.data) && (\r\n \r\n )}\r\n {isImages(subPanel.data) && (\r\n \r\n )}\r\n
\r\n ))}\r\n
\r\n )\r\n }\r\n return null;\r\n }\r\n\r\n const bodyClassNames = ['bwp-footer__body-center'];\r\n if (panels.length) {\r\n bodyClassNames.push(`bwp-footer__body-col-${panels.length}`);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {panels.map((panel, index) => renderPanel(panel, `footerPanel${index}`))}\r\n
\r\n
\r\n
\r\n
\r\n ©{new Date().getFullYear()} - {brand.legalName}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\ninterface FooterMenuProps {\r\n menu: NavGroup;\r\n}\r\n\r\n// Component FooterMenu\r\n// - component for showing a list of links in the footer\r\nfunction FooterMenu({ menu }: FooterMenuProps) {\r\n const isExternalUrl = (url) => {\r\n return (url && url.toLowerCase().startsWith(\"https://\"));\r\n }\r\n \r\n const makeLink = (node) => {\r\n const target = isExternalUrl(node.url)\r\n ? \"_blank\"\r\n : null;\r\n \r\n return {node.name}\r\n }\r\n \r\n return (\r\n
\r\n

{menu.headline}

\r\n {menu.nodes && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\ninterface FooterContactDetailsProps {\r\n name: string;\r\n address: string;\r\n telephone?: string;\r\n email?: string;\r\n brandLogoUrl?: string;\r\n brandLogoWidth?: string;\r\n brandLogoHeight?: string;\r\n translations: FooterTranslations;\r\n}\r\n\r\n// Component FooterContactDetails\r\n// - for showing a box with contact details and optionally a logo also.\r\nfunction FooterContactDetails({ name, address, telephone, email, brandLogoUrl, brandLogoWidth, brandLogoHeight, translations }: FooterContactDetailsProps) {\r\n const brand = brandLogoUrl\r\n ?
{name}
\r\n :

{name}

;\r\n\r\n return (\r\n
\r\n
\r\n {brand}\r\n {(address || \"\").split(\"\\n\").map((line, index) => (\r\n \r\n {line}\r\n
\r\n
\r\n ))}\r\n
    \r\n {telephone && (\r\n
  • \r\n {`${translations.telephone} `}\r\n {telephone}\r\n
  • \r\n )}\r\n {email && (\r\n
  • \r\n {`${translations.email} `}\r\n {email}\r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\n// Component FooterImages\r\n// - a component for showing images in the footer (i.e. credit card logos)\r\nfunction FooterImages({ images }: { images: Image[]}) {\r\n \r\n const ImageTag = ({ image } : { image: Image }) => {\r\n const tagProps = Object.assign({\r\n src: image.url\r\n }, image);\r\n delete tagProps.url;\r\n return ;\r\n }\r\n \r\n return (\r\n
\r\n
\r\n {images.map((img, i) => (\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\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 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}","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 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 { useEffect } from \"react\";\r\n// Source: https://usehooks.com/useOnClickOutside/\r\n// JBJ: TypeScript Typings added\r\n\r\nexport default function useOnClickOutside(\r\n refs: React.MutableRefObject[],\r\n handler: (event: Event) => void\r\n) {\r\n useEffect(\r\n () => {\r\n const listener = (event: Event) => {\r\n let clickInside = false;\r\n\r\n for (const ref of refs) {\r\n // Do nothing if clicking ref's element or descendent elements\r\n if (!ref.current || ref.current.contains(event.target)) {\r\n clickInside = true;\r\n }\r\n }\r\n\r\n if (clickInside) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener(\"mousedown\", listener);\r\n document.addEventListener(\"touchstart\", listener);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", listener);\r\n document.removeEventListener(\"touchstart\", listener);\r\n };\r\n },\r\n\r\n // Add refs and handler to effect dependencies\r\n // It's worth noting that because passed in handler is a new ...\r\n // ... function on every render that will cause this effect ...\r\n // ... callback/cleanup to run every render. It's not a big deal ...\r\n // ... but to optimize you can wrap handler in useCallback before ...\r\n // ... passing it into this hook.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [...refs, handler] // we spread the array. ESLint can't figure that out\r\n );\r\n}","import React from \"react\";\r\nimport \"./IconButton.scss\";\r\n\r\nexport interface IconButtonProps {\r\n type?: \"button\" | \"submit\" | \"reset\";\r\n onClick: (e: React.SyntheticEvent) => void;\r\n children: React.ReactNode;\r\n padding?: string;\r\n className?: string;\r\n}\r\n\r\n\r\nexport default React.forwardRef(({ type, onClick, className, padding, children }: IconButtonProps, ref: React.RefObject) => {\r\n const classNames = [\"bwp-iconbutton\"];\r\n if (className) {\r\n classNames.push(className);\r\n }\r\n\r\n const style = padding\r\n ? { 'padding': padding }\r\n : {};\r\n\r\n return (\r\n \r\n );\r\n});","import React from \"react\";\r\n\r\nexport const IconSearch: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconSearchSmall: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconHouseSmall: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconMenu: React.ReactNode = (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const IconClose: React.ReactNode = (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const IconCircleClose: React.ReactNode = (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const IconStar20: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconStar32: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconHalfStar20: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconHalfStar32: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconPlus22: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconPlus14: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconArrowLeft: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport const IconArrowRight: React.ReactNode = (\r\n \r\n \r\n \r\n);\r\n\r\nexport interface CommentIconProps {\r\n width?: number;\r\n height?: number; \r\n fill?: string;\r\n}\r\n\r\nexport function CommentIcon({ width, height, fill }: CommentIconProps) {\r\n\r\n const safeWidth = width || 21;\r\n const safeHeight = height || 20;\r\n const safeFill = fill || \"#777777\";\r\n\r\n const viewBox = `0 0 ${safeWidth} ${safeHeight}`;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\n\r\nexport function setBoundsFromRef(ref: React.RefObject, bounds, setBounds) {\r\n if (ref && ref.current) {\r\n const rect = ref.current.getBoundingClientRect();\r\n if (!bounds) {\r\n setBounds(rect);\r\n } else if (rect !== bounds) {\r\n setBounds(rect);\r\n }\r\n }\r\n};\r\n","/* This is taken from \r\n * https://medium.com/@alexandereardon/uselayouteffect-and-ssr-192986cdcf7a\r\n * \r\n * to avoid warnings on useLayoutEffect(...) \r\n */\r\n\r\nimport { useLayoutEffect, useEffect } from 'react';\r\n\r\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\r\n\r\nexport default useIsomorphicLayoutEffect;","import React from \"react\";\r\n\r\nexport function getImageUrl(image: { url: string }, width: number, height?: number) {\r\n let url = image.url.replace(\"/default\", \"\");\r\n url = url.replace(\"/cl/\", \"/v2/\");\r\n url = url + \"?width=\" + width;\r\n if (height) {\r\n url = url + \"&height=\" + height;\r\n }\r\n url = url + \"&mode=crop\";\r\n return url;\r\n}\r\n\r\nexport function createImg(src: string | (() => string), options: { width?: string, height?: string, alt?: string }) {\r\n const imgSrc = typeof src === \"function\"\r\n ? src()\r\n : src;\r\n\r\n return ;\r\n}\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport useOnClickOutside from \"./shared/useOnClickOutside\";\r\nimport IconButton from \"./IconButton\";\r\nimport \"./MenuBar.scss\";\r\nimport { Language, NavNode, Brand } from \"./shared/types\";\r\nimport { IconMenu, IconClose } from \"./shared/icons\";\r\nimport { setBoundsFromRef } from \"./shared/dimensions\";\r\nimport useIsomorphicLayoutEffect from \"./shared/useIsomorphicLayoutEffect\";\r\nimport { createImg } from \"./shared/images\";\r\nimport { MenuBarTranslations } from \"./translations/MenuBarTranslations\";\r\n\r\nexport interface MenuBarProps {\r\n brand: Brand;\r\n languages: Language[];\r\n menus: NavNode[];\r\n overlapsContent?: boolean;\r\n backgroundColor?: string;\r\n showLabelWithMenuIcon?: boolean;\r\n favourites?: NavNode;\r\n serverPath: string;\r\n testPath?: string;\r\n translations?: MenuBarTranslations;\r\n}\r\n\r\nexport default function MenuBar({\r\n brand,\r\n languages,\r\n menus,\r\n overlapsContent,\r\n backgroundColor,\r\n showLabelWithMenuIcon,\r\n favourites,\r\n serverPath,\r\n testPath,\r\n translations\r\n}: MenuBarProps) {\r\n const [activeSubMenu, setActiveSubMenu] = useState(null);\r\n const [path, setPath] = useState(null);\r\n const menuListRef = useRef(null);\r\n const menuListMobileRef = useRef(null);\r\n const [navigationPanelOpen, setNavigationPanelOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n if (typeof testPath !== \"undefined\") {\r\n setPath(testPath);\r\n } else {\r\n if (typeof window !== \"undefined\") {\r\n setPath(window.location.pathname);\r\n } else {\r\n setPath(serverPath);\r\n }\r\n }\r\n }, [testPath, serverPath]);\r\n\r\n useOnClickOutside([menuListRef], () => {\r\n if (!navigationPanelOpen) {\r\n setActiveSubMenu(null);\r\n }\r\n });\r\n\r\n useOnClickOutside([menuListMobileRef], () => {\r\n if (navigationPanelOpen) {\r\n setActiveSubMenu(null);\r\n }\r\n });\r\n\r\n const handleMenuClick = (nodes: NavNode[]) => {\r\n if (activeSubMenu === nodes) {\r\n setActiveSubMenu(null);\r\n } else {\r\n setActiveSubMenu(nodes);\r\n }\r\n };\r\n\r\n const handleMenuIconClick = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n setNavigationPanelOpen(true);\r\n };\r\n\r\n const handleCloseIconClick = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n setNavigationPanelOpen(false);\r\n };\r\n\r\n const isMenuActive = (menu: NavNode) => {\r\n if (!path) {\r\n return false;\r\n }\r\n\r\n return (\r\n path === menu.url ||\r\n (menu.nodes && menu.nodes.length && menu.nodes.some((node) => node.url === path))\r\n );\r\n };\r\n\r\n const getMenuItem = (menu: NavNode) => {\r\n if (menu.nodes && menu.nodes.length) {\r\n return (\r\n \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const classNames = [\"bwp-menu-bar\"];\r\n if (backgroundColor === \"ffffff\") {\r\n classNames.push(\"bwp-menu-bar--light\");\r\n } else if (backgroundColor === \"eeeeee\") {\r\n classNames.push(\"bwp-menu-bar--light-transparent\");\r\n } else if (backgroundColor === \"666666\") {\r\n classNames.push(\"bwp-menu-bar--dark-transparent\");\r\n } else if (backgroundColor === \"000000\") {\r\n classNames.push(\"bwp-menu-bar--dark\");\r\n }\r\n if (overlapsContent) {\r\n classNames.push(\"bwp-menu-bar--overlaps-content\");\r\n }\r\n\r\n const panelClassNames = [\"bwp-menu-bar__panel\"];\r\n if (navigationPanelOpen) {\r\n panelClassNames.push(\"bwp-open\");\r\n }\r\n\r\n const logoUrl = brand.logoUrl || brand.logoLightBgUrl || brand.logoDarkBgUrl;\r\n let logo: React.ReactNode = createImg(logoUrl, {\r\n width: brand.logoWidth,\r\n height: brand.logoHeight,\r\n alt: brand.name\r\n });\r\n\r\n const menuButtonContent = showLabelWithMenuIcon\r\n ? <>
{translations.menu}
{IconMenu}\r\n : <>{IconMenu};\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport interface MenuWithSubMenuProps {\r\n menu: NavNode;\r\n isOpen: boolean;\r\n onClick: (subMenu: NavNode[]) => void;\r\n isActive: boolean;\r\n}\r\n\r\nexport function MenuWithSubMenu({ menu, isOpen, onClick, isActive }: MenuWithSubMenuProps) {\r\n const [menuBounds, setMenuBounds] = useState(null);\r\n const menuRef: React.RefObject = useRef(null);\r\n\r\n const [subMenuBounds, setSubMenuBounds] = useState(null);\r\n const subMenuRef: React.RefObject = useRef(null);\r\n\r\n const handleMenuClick = (e: React.SyntheticEvent, subMenu: NavNode[]) => {\r\n e.preventDefault();\r\n onClick(subMenu);\r\n };\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n setBoundsFromRef(menuRef, menuBounds, setMenuBounds);\r\n setBoundsFromRef(subMenuRef, subMenuBounds, setSubMenuBounds);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isOpen]);\r\n\r\n const subMenuStyle =\r\n menuBounds && subMenuBounds\r\n ? { left: Math.round((menuBounds.width - subMenuBounds.width) / 2) }\r\n : {};\r\n\r\n const classNames: string[] = [];\r\n if (isActive) {\r\n classNames.push(\"bwp-active\");\r\n }\r\n if (isOpen) {\r\n classNames.push(\"bwp-open\");\r\n }\r\n\r\n return (\r\n
  • \r\n handleMenuClick(e, menu.nodes)}\r\n aria-expanded={isOpen}\r\n >\r\n {menu.name}\r\n \r\n {isOpen && (\r\n
    \r\n
      \r\n {menu.nodes.map((submenu) => (\r\n
    • \r\n {submenu.name}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n )}\r\n
  • \r\n );\r\n}\r\n\r\nexport interface MenuProps {\r\n menu: NavNode;\r\n isActive: boolean;\r\n}\r\n\r\nexport function Menu({ menu, isActive }: MenuProps) {\r\n return (\r\n
  • \r\n {menu.name}\r\n
  • \r\n );\r\n}\r\n\r\nfunction thisOrParentElement(element: HTMLElement, matcher: (e: HTMLElement) => boolean) {\r\n if (matcher(element)) {\r\n return true;\r\n } else {\r\n if (element.parentElement != null) {\r\n return thisOrParentElement(element.parentElement, matcher);\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n","import React, { useCallback } from \"react\";\r\nimport \"./Spot.scss\";\r\ninterface Props {\r\n image: {\r\n src: string;\r\n srcSet?: string;\r\n sizes?: string;\r\n alt: string;\r\n };\r\n category?: string;\r\n headline: string;\r\n body?: string;\r\n imageHeight: string;\r\n link?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport default function Spot({ image, category, headline, body, link, openInNewTab }: Props) {\r\n const onClickHandler = useCallback(\r\n () => {\r\n if (link) {\r\n window.location.href = link;\r\n }\r\n },\r\n [link]\r\n );\r\n\r\n let linkTarget = undefined;\r\n let rel = undefined;\r\n if (openInNewTab) {\r\n linkTarget = \"_blank\";\r\n rel = \"noopener noreferrer\";\r\n }\r\n\r\n const bodyClassNames = ['bwp-spot__body'];\r\n if (!link) {\r\n bodyClassNames.push(\"bwp-no-link\");\r\n }\r\n\r\n return (\r\n \r\n {image && }\r\n {category &&

    {category}

    }\r\n {headline &&

    {link ? {headline} : headline}

    }\r\n {body && (\r\n
    \r\n )}\r\n \r\n );\r\n}\r\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 _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}","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}","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}","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}","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}","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}","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}","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 * as React from \"react\";\r\nimport { useCallback, useEffect, useState } from \"react\";\r\n\r\nfunction calculateVisible(containerRef: React.RefObject) {\r\n let maxHeight = document.body.scrollTop + window.innerHeight;\r\n let buffer = window.innerHeight;\r\n let loadHeight = maxHeight + buffer;\r\n let clientRect = containerRef.current?.getClientRects()[0];\r\n if (clientRect) {\r\n return clientRect.top <= loadHeight;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport default function useLazyLoad(\r\n containerRef: React.RefObject,\r\n onVisible: () => void\r\n) {\r\n const [initialRender, setInitialRender] = useState(true);\r\n const [registerLazyLoading, setRegisterLazyLoading] = useState(false);\r\n\r\n const onLoaded = useCallback(() => {\r\n onVisible();\r\n }, [onVisible]);\r\n\r\n useEffect(() => {\r\n if (initialRender == true) {\r\n setInitialRender(false);\r\n if (calculateVisible(containerRef)) {\r\n onLoaded();\r\n } else {\r\n if (containerRef?.current) {\r\n setRegisterLazyLoading(true);\r\n }\r\n }\r\n }\r\n }, [containerRef, initialRender, onLoaded]);\r\n\r\n useEffect(() => {\r\n if (registerLazyLoading) {\r\n if (window[\"IntersectionObserver\"] != null) {\r\n let observer = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.intersectionRatio > 0) {\r\n onLoaded();\r\n observer.disconnect();\r\n }\r\n });\r\n },\r\n {\r\n // If the image gets within 50px in the Y axis, start the download.\r\n rootMargin: \"50px 0px\",\r\n threshold: 0.01,\r\n }\r\n );\r\n observer.observe(containerRef.current);\r\n } else {\r\n // The browser does not support IntersectionObserver - so we will just show the image\r\n onLoaded();\r\n }\r\n }\r\n }, [containerRef, onLoaded, registerLazyLoading]);\r\n}\r\n","import * as React from \"react\";\r\nimport { useCallback, useRef, useState } from \"react\";\r\nimport useLazyLoad from \"./shared/useLazyLoad\";\r\n\r\nexport interface SmartBackgroundImageProps {\r\n imageUrlFunc: (width: number, height: number) => string;\r\n className?: string;\r\n link?: string;\r\n onClick?: (e) => void;\r\n title?: string;\r\n}\r\n\r\nexport interface SmartBackgroundImageState {\r\n imageUrl: string;\r\n visible: boolean;\r\n imageLoaded: boolean;\r\n}\r\n\r\nexport default function SmartBackgroundImage({\r\n imageUrlFunc,\r\n link,\r\n className,\r\n title,\r\n onClick,\r\n children,\r\n}: React.PropsWithChildren) {\r\n const containerRef = useRef();\r\n const [imageUrl, setImageUrl] = useState();\r\n const [imageLoaded, setImageLoaded] = useState(false);\r\n const [visible, setVisible] = useState(false);\r\n\r\n const handleVisible = useCallback(() => {\r\n setVisible(true);\r\n setImageUrl(\r\n imageUrlFunc(containerRef.current.offsetWidth, containerRef.current.offsetHeight)\r\n );\r\n }, [imageUrlFunc]);\r\n\r\n useLazyLoad(containerRef, handleVisible);\r\n\r\n const handleClick = useCallback(\r\n (e) => {\r\n if (onClick) {\r\n onClick(e);\r\n }\r\n if (link) {\r\n window.location.href = link;\r\n }\r\n },\r\n [link, onClick]\r\n );\r\n\r\n const handleImageLoaded = useCallback(() => {\r\n setImageLoaded(true);\r\n }, []);\r\n\r\n //if the complete imageurl is not loaded yet, get a very small image to show until thenn\r\n const url = imageLoaded ? \"url(\" + imageUrl + \")\" : \"url(\" + imageUrlFunc(12, 12) + \")\";\r\n\r\n return (\r\n \r\n {imageUrl && visible && (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport SmartBackgroundImage from \"./SmartBackgroundImage\";\r\n\r\nimport \"./CardImageSlider.scss\";\r\n\r\nexport interface CardImageSliderTranslations {\r\n imageMissing: string;\r\n previousImage: string;\r\n nextImage: string;\r\n addToFavourites: string;\r\n removeFromFavourites: string;\r\n}\r\n\r\nexport interface CardImageSliderProps {\r\n key?: React.Key;\r\n images: { url: string }[];\r\n favourite: boolean;\r\n onFavouriteClick?: () => void;\r\n enableFavorite: boolean;\r\n enableImageSlider: boolean;\r\n disableSmartImage?: boolean;\r\n imageMaxWidth?: number;\r\n imageMaxHeight?: number;\r\n getImageUrl?: (url: string, width: number, height: number) => string;\r\n translations: CardImageSliderTranslations;\r\n nextUrl: string;\r\n title: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\ninterface CardImageSliderState {\r\n current: number;\r\n favorite: boolean;\r\n imagesPreloaded: number[];\r\n direction: \"prev\" | \"next\" | \"\";\r\n}\r\n\r\nconst MaxNumberOfImagesToPreload = 5;\r\nconst DefaultImageMaxWidth = 260;\r\nconst DefaultImageMaxHeight = 200;\r\n\r\nexport default class CardImageSlider extends React.Component<\r\n CardImageSliderProps,\r\n CardImageSliderState\r\n> {\r\n constructor(props: CardImageSliderProps) {\r\n super(props);\r\n this.state = {\r\n current: 0,\r\n favorite: false,\r\n imagesPreloaded: [0],\r\n direction: \"\"\r\n };\r\n }\r\n \r\n componentDidMount() {\r\n const { getImageUrl, imageMaxWidth, imageMaxHeight, images } = this.props;\r\n \r\n if (images.length > 2) {\r\n const url = getImageUrl(images[1].url, (imageMaxWidth || DefaultImageMaxWidth), (imageMaxHeight || DefaultImageMaxHeight));\r\n if (url) {\r\n const img: HTMLImageElement = document.createElement(\"img\");\r\n img.src = url;\r\n this.setState({ ...this.state, imagesPreloaded: [0,1] });\r\n }\r\n }\r\n }\r\n\r\n preloadImages = () => {\r\n const {\r\n getImageUrl,\r\n images,\r\n imageMaxWidth,\r\n imageMaxHeight\r\n } = this.props;\r\n const { current, imagesPreloaded } = this.state;\r\n if (imagesPreloaded.length <= 2) {\r\n // Initial preload of \"MaxNumberOfImagesToPreload\" images\r\n const maxIndexToPreload: number = Math.min(MaxNumberOfImagesToPreload, images.length);\r\n const preloaded: number[] = [];\r\n for (let i = imagesPreloaded.length; i < maxIndexToPreload; i++) {\r\n const url = getImageUrl(images[i].url, (imageMaxWidth || DefaultImageMaxWidth), (imageMaxHeight || DefaultImageMaxHeight));\r\n if (url) {\r\n const img: HTMLImageElement = document.createElement(\"img\");\r\n img.src = url;\r\n preloaded.push(i);\r\n }\r\n }\r\n this.setState({\r\n imagesPreloaded: imagesPreloaded.concat(preloaded),\r\n });\r\n } else {\r\n // Incremental preload of one image that is \"MaxNumberOfImagesToPreload - 1\" away from \"current\"\r\n const nextImageToPreload: number = current + (MaxNumberOfImagesToPreload - 1);\r\n if (nextImageToPreload < images.length) {\r\n const url = getImageUrl(images[nextImageToPreload].url, (imageMaxWidth || DefaultImageMaxWidth), (imageMaxHeight || DefaultImageMaxHeight));\r\n if (url) {\r\n const img: HTMLImageElement = document.createElement(\"img\");\r\n img.src = url;\r\n this.setState({\r\n imagesPreloaded: imagesPreloaded.concat([nextImageToPreload]),\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n handlePrev = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n const { current } = this.state;\r\n this.preloadImages();\r\n if (current > 0) {\r\n this.setState({\r\n direction: \"prev\",\r\n current: current - 1,\r\n });\r\n }\r\n };\r\n\r\n handleNext = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n const { current } = this.state;\r\n const images = this.props.images;\r\n this.preloadImages();\r\n if (current < images.length - 1) {\r\n this.setState({\r\n direction: \"next\",\r\n current: current + 1,\r\n });\r\n }\r\n };\r\n\r\n render(): JSX.Element {\r\n const {\r\n images = [],\r\n favourite,\r\n translations,\r\n disableSmartImage,\r\n imageMaxWidth,\r\n imageMaxHeight,\r\n nextUrl,\r\n } = this.props;\r\n\r\n const getImageUrl = this.props.getImageUrl || ((url) => url);\r\n\r\n const { current, imagesPreloaded } = this.state;\r\n const listStyles: React.CSSProperties = {\r\n left: `${current * -100}%`,\r\n width: `${Math.max(images.length * 100, 100)}%`,\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 {this.props.enableFavorite && (\r\n {\r\n e.preventDefault();\r\n this.props.onFavouriteClick();\r\n }}\r\n >\r\n {!favourite && (\r\n \r\n \r\n \r\n )}\r\n {favourite && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {this.props.children && (\r\n
    {this.props.children}
    \r\n )}\r\n \r\n );\r\n }\r\n\r\n handleImageClick = () => {\r\n window.location.href = this.props.nextUrl;\r\n };\r\n}\r\n","import React from \"react\";\r\nimport CardImageSlider from \"./CardImageSlider\";\r\nimport { getImageUrl } from \"./shared/images\";\r\nimport \"./GallerySpot.scss\";\r\n\r\nexport interface GallerySpotTranslations {\r\n imageMissing: string;\r\n nextImage: string;\r\n previousImage: string;\r\n addToFavourites: string;\r\n removeFromFavourites: string;\r\n}\r\n\r\nexport interface ImageProps {\r\n url: string;\r\n}\r\n\r\nexport interface GallerySpotProps {\r\n headline?: string;\r\n images: ImageProps[];\r\n link?: string;\r\n buttonText?: string;\r\n disableSmartImage?: boolean;\r\n disableImageSlider?: boolean;\r\n translations: GallerySpotTranslations;\r\n}\r\n\r\nexport default function GallerySpot({ headline, images, link, buttonText, disableSmartImage, disableImageSlider, translations }: GallerySpotProps) {\r\n const showBar = (headline || (buttonText && link));\r\n const barClassNames = [\"bwp-gallery-spot__bar\"];\r\n if (!headline) {\r\n barClassNames.push(\"bwp-gallery-spot__bar--no-headline\");\r\n }\r\n if (!(buttonText && link)) {\r\n barClassNames.push(\"bwp-gallery-spot__bar--no-button\");\r\n }\r\n\r\n return
    \r\n getImageUrl({ url }, width, height)}\r\n />\r\n {showBar && (\r\n
    \r\n {headline && (\r\n

    {headline}

    \r\n )}\r\n {(buttonText && link) && (\r\n {buttonText}\r\n )}\r\n
    \r\n )}\r\n
    ;\r\n}\r\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}","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}","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeighte||o>t&&l=e&&d>=n?o-t-r:l>e&&dn?l-e+i:0}var i=function(e,i){var o=window,l=i.scrollMode,d=i.block,f=i.inline,h=i.boundary,u=i.skipOverflowHiddenElements,s=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var a,c,g=document.scrollingElement||document.documentElement,p=[],m=e;t(m)&&s(m);){if((m=null==(c=(a=m).parentElement)?a.getRootNode().host||null:c)===g){p.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,u)&&p.push(m)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C=\"start\"===d||\"nearest\"===d?M:\"end\"===d?x:M+y/2,R=\"center\"===f?I+E/2:\"end\"===f?V:I,T=[],k=0;k=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K=\"offsetWidth\"in B?B.offsetWidth-B.clientWidth-q-A:0,P=\"offsetHeight\"in B?B.offsetHeight-B.clientHeight-z-F:0,Q=\"offsetWidth\"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U=\"offsetHeight\"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G=\"start\"===d?C:\"end\"===d?C-v:\"nearest\"===d?r(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J=\"start\"===f?R:\"center\"===f?R-w/2:\"end\"===f?R-w:r(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G=\"start\"===d?C-Y-z:\"end\"===d?C-S+F+P:\"nearest\"===d?r(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J=\"start\"===f?R-j-q:\"center\"===f?R-(j+X/2)+K/2:\"end\"===f?R-L+A+K:r(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};export{i as default};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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 { cloneElement, Component, useRef, useEffect, useCallback, useLayoutEffect, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage$1(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n\n\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n if (itemCount === 0) {\n return -1;\n }\n\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n if (nonDisabledNewIndex === -1) {\n return baseIndex >= itemCount ? -1 : baseIndex;\n }\n\n return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (var index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (var _index = baseIndex - 1; _index >= 0; _index--) {\n if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar _excluded$4 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$1 = [\"refKey\", \"ref\"],\n _excluded5$1 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n return _this2.getItemNodeFromIndex(index);\n });\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n return _this3.getItemNodeFromIndex(index);\n });\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this4 = this;\n\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n return _this4.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this5 = this;\n\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n return _this5.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n _ref4.onChangeText;\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$1);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n _ref7.onPress;\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5$1);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var _this6 = this;\n\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n return _this6.getItemNodeFromIndex(index);\n });\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this7 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this7.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment);\n\n if (!contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: mouseUp\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this7.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this7.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment, false);\n\n if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: touchEnd\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this7.internalClearTimeouts();\n\n _this7.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage$1,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar _excluded$3 = [\"isInitialMount\", \"highlightedIndex\", \"items\", \"environment\"];\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n var selectedItem = selectionParameters.selectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return selectedItem ? itemToStringLocal(selectedItem) + \" has been selected.\" : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (getA11yMessage, document) {\n setStatus(getA11yMessage(), document);\n}, 200); // istanbul ignore next\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useElementIds(_ref) {\n var _ref$id = _ref.id,\n id = _ref$id === void 0 ? \"downshift-\" + generateId() : _ref$id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n if (action && prevStateRef.current && prevStateRef.current !== state) {\n callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n }\n\n prevStateRef.current = state;\n }, [state, props, action]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar defaultProps$3 = {\n itemToString: itemToString,\n stateReducer: stateReducer,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n circularNavigation: false,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function onMouseDown() {\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment)) {\n handleBlur();\n }\n };\n\n var onTouchStart = function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment, false)) {\n handleBlur();\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, environment]);\n return mouseAndTouchTrackersRef;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n var isInitialMountRef = useRef(true);\n\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (isInitialMountRef.current) {\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if ((!elementRef || !elementRef.current) && !suppressRefError) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n isInitialMountRef.current = false;\n });\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\nfunction useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {\n var isInitialMount = _ref2.isInitialMount,\n highlightedIndex = _ref2.highlightedIndex,\n items = _ref2.items,\n environment = _ref2.environment,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded$3);\n\n // Sets a11y status message on changes in state.\n useEffect(function () {\n if (isInitialMount || false) {\n return;\n }\n\n updateA11yStatus(function () {\n return getA11yMessage(_extends({\n highlightedIndex: highlightedIndex,\n highlightedItem: items[highlightedIndex],\n resultCount: items.length\n }, rest));\n }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n}\n\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var isInitialMount = _ref4.isInitialMount,\n props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/* eslint-disable complexity */\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n var offsetIndex = (index + highlightedIndex + 1) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item)\n .toLowerCase()\n .startsWith(lowerCasedKeysSoFar)) {\n var element = getItemNodeFromIndex(offsetIndex);\n if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {\n return offsetIndex;\n }\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_a) {\n var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n }\n return '';\n}\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: getA11yStatusMessage });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var itemIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: inputValue\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = _extends({\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: _inputValue,\n highlightedIndex: state.highlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: _inputValue\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"],\n _excluded2$2 = [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"refKey\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n itemToString = props.itemToString,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var initialState = getInitialState$2(props);\n\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({}); // used not to trigger menu blur action in some scenarios.\n\n var shouldBlurRef = useRef(true); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef();\n var isInitialMountRef = useRef(true); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n\n\n if (isOpen) {\n // istanbul ignore else\n if (menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n if (environment.document.activeElement === menuRef.current) {\n // istanbul ignore else\n if (toggleButtonRef.current) {\n shouldBlurRef.current = false;\n toggleButtonRef.current.focus();\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: MenuBlur\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]);\n var menuKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n ' ': function _(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n var latestState = latest.current.state;\n\n var menuHandleKeyDown = function menuHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var menuHandleBlur = function menuHandleBlur() {\n // if the blur was a result of selection, we don't trigger this action.\n if (shouldBlurRef.current === false) {\n shouldBlurRef.current = true;\n return;\n }\n\n var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur)\n }, rest);\n }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getToggleButtonProps = useCallback(function (_temp3, _temp4) {\n var _extends3;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$2);\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$suppressRefErro = _ref4.suppressRefError,\n suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = elementIds.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIds.labelId + \" \" + elementIds.toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getItemProps = useCallback(function (_temp5) {\n var _extends4;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n item = _ref5.item,\n index = _ref5.index,\n onMouseMove = _ref5.onMouseMove,\n onClick = _ref5.onClick,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {\n role: 'option',\n 'aria-selected': \"\" + (itemIndex === latestState.highlightedIndex),\n id: elementIds.getItemId(itemIndex)\n }, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends4), rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n\n return itemProps;\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 19;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset$1,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n\n useEffect(function () {\n if (isControlledProp(props, 'selectedItem')) {\n if (previousSelectedItemRef.current !== props.selectedItem) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n }\n });\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n getA11yStatusMessage: getA11yStatusMessage$1,\n circularNavigation: true\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = _extends({}, state.isOpen && state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"],\n _excluded5 = [\"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n itemToString = props.itemToString; // Initial state depending on controlled props.\n\n var initialState = getInitialState$1(props);\n\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var comboboxRef = useRef(null);\n var isInitialMountRef = useRef(true); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n }); // Focus the input on first render if required.\n\n useEffect(function () {\n var focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n var latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n }, [dispatch, latest, getItemNodeFromIndex]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIds.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove)\n }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), rest);\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n _ref5.onPress;\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n\n if (!latest.current.state.isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n _ref6.onChangeText;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur() {\n /* istanbul ignore else */\n if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {\n dispatch({\n type: InputBlur,\n selectItem: true\n });\n }\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n }\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5.id = elementIds.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n 'aria-labelledby': elementIds.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: latestState.inputValue\n }, eventHandlers, rest);\n }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);\n var getComboboxProps = useCallback(function (_temp7, _temp8) {\n var _extends6;\n\n var _ref8 = _temp7 === void 0 ? {} : _temp7,\n _ref8$refKey = _ref8.refKey,\n refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,\n ref = _ref8.ref,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded5);\n\n var _ref9 = _temp8 === void 0 ? {} : _temp8,\n _ref9$suppressRefErro = _ref9.suppressRefError,\n suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n return _extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n comboboxRef.current = comboboxNode;\n }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIds.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);\n }, [latest, setGetterPropCallInfo, elementIds]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getComboboxProps: getComboboxProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && (element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11yRemovalMessage(selectionParameters) {\n var removedSelectedItem = selectionParameters.removedSelectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return itemToStringLocal(removedSelectedItem) + \" has been removed.\";\n}\n\nvar propTypes = {\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n itemToString: PropTypes.func,\n getA11yRemovalMessage: PropTypes.func,\n stateReducer: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\nvar defaultProps = {\n itemToString: defaultProps$3.itemToString,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n getA11yRemovalMessage: getA11yRemovalMessage,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownClick: DropdownClick,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))\n }, {\n activeIndex: _newActiveIndex\n });\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps, userProps);\n\n var getA11yRemovalMessage = props.getA11yRemovalMessage,\n itemToString = props.itemToString,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMountRef = useRef(true);\n var dropdownRef = useRef(null);\n var previousSelectedItemsRef = useRef(selectedItems);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (selectedItems.length < previousSelectedItemsRef.current.length) {\n var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {\n return selectedItems.indexOf(item) < 0;\n });\n setStatus(getA11yRemovalMessage({\n itemToString: itemToString,\n resultCount: selectedItems.length,\n removedSelectedItem: removedSelectedItem,\n activeIndex: activeIndex,\n activeSelectedItem: selectedItems[activeIndex]\n }), environment.document);\n }\n\n previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems.length]); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n }, [activeIndex]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItem = _ref3.selectedItem,\n index = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var latestState = latest.current.state;\n var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n if (itemIndex < 0) {\n throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n }\n\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","import React, { useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { isBrowser } from \"./shared/helpers\";\r\nimport { Position } from \"./shared/types\";\r\n\r\nexport interface Adjustments {\r\n width?: number;\r\n x?: number;\r\n y?: number;\r\n}\r\n\r\nexport interface CalloutProps {\r\n className?: string;\r\n isOpen: boolean;\r\n rect: Position;\r\n zIndex?: number;\r\n adjustments?: Adjustments;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport default function Callout({ className, isOpen, rect, zIndex, adjustments, children }: CalloutProps) {\r\n\r\n const [portalContainer, setPortalContainer] = useState(null);\r\n\r\n useEffect(() => {\r\n if (isBrowser() && portalContainer === null) {\r\n const newPortalContainer = document.createElement(\"div\");\r\n document.body.appendChild(newPortalContainer);\r\n setPortalContainer(newPortalContainer);\r\n }\r\n\r\n return () => {\r\n if (isBrowser() && portalContainer) {\r\n window.document.body.removeChild(portalContainer);\r\n setPortalContainer(null);\r\n }\r\n }\r\n }, [portalContainer]);\r\n\r\n const adj = adjustments || {\r\n width: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n let styles = rect\r\n ? {\r\n display: isOpen ? \"block\" : \"none\",\r\n top: `${rect.y + rect.height + (adj.y || 0)}px`,\r\n left: `${rect.x + (adj.x || 0)}px`,\r\n minWidth: `${rect.width + (adj.width || 0)}px`\r\n }\r\n : { display: isOpen ? \"block\" : \"none\", zIndex: 1 };\r\n\r\n if (typeof zIndex === 'number') {\r\n Object.assign(styles, { zIndex: zIndex });\r\n }\r\n\r\n if (isBrowser() && portalContainer) {\r\n return ReactDOM.createPortal((\r\n
    \r\n {children}\r\n
    \r\n ), portalContainer);\r\n }\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { debounce } from \"ts-debounce\";\r\nimport { isBrowser } from \"./helpers\";\r\nimport { Position } from \"./types\";\r\n\r\nexport function usePositioned() {\r\n\r\n const ref: React.RefObject = useRef(null);\r\n const [rect, setRect] = useState(null);\r\n \r\n const updateRect = () => {\r\n if (ref && ref.current) {\r\n const clientRect = ref.current.getBoundingClientRect();\r\n const newRect: Position = {\r\n width: clientRect.width,\r\n height: clientRect.height,\r\n x: clientRect.x + (isBrowser() ? window.scrollX : 0),\r\n y: clientRect.y + (isBrowser() ? window.scrollY : 0)\r\n };\r\n if (!rect || (\r\n (rect.width !== newRect.width) ||\r\n (rect.height !== newRect.height) ||\r\n (rect.x !== newRect.x) ||\r\n (rect.y !== newRect.y)\r\n )) {\r\n setRect(newRect);\r\n }\r\n }\r\n };\r\n\r\n useEffect(updateRect, [ref, rect, updateRect]);\r\n\r\n useEffect(() => {\r\n const resizeHandler = debounce(updateRect, 200);\r\n\r\n if (isBrowser()) {\r\n window.addEventListener(\"resize\", resizeHandler);\r\n }\r\n\r\n return () => {\r\n if (isBrowser()) {\r\n window.removeEventListener(\"resize\", resizeHandler);\r\n }\r\n };\r\n }, [ref, rect, updateRect]);\r\n\r\n return [ref, rect];\r\n}","function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n","import React from \"react\";\r\nimport { useSelect } from \"downshift\";\r\nimport \"./FieldWithLabel.scss\";\r\nimport Callout from \"./Callout\";\r\nimport { usePositioned } from \"./shared/usePositioned\";\r\n\r\nexport interface SelectItem {\r\n text: React.ReactNode;\r\n value: string;\r\n}\r\n\r\nexport interface SelectWithLabelProps {\r\n id: string;\r\n label: string;\r\n value: string;\r\n onChange: (value: string) => void;\r\n items?: SelectItem[];\r\n disabled?: boolean;\r\n}\r\n\r\nexport default function SelectWithLabel({\r\n id,\r\n label,\r\n value,\r\n items,\r\n onChange,\r\n disabled,\r\n}: SelectWithLabelProps) {\r\n const selectedItem = items.find((i) => i.value == value);\r\n const {\r\n isOpen,\r\n getToggleButtonProps,\r\n getLabelProps,\r\n getMenuProps,\r\n highlightedIndex,\r\n getItemProps,\r\n } = useSelect({\r\n items,\r\n onSelectedItemChange: (item) => onChange(item.selectedItem.value),\r\n selectedItem: selectedItem,\r\n id,\r\n });\r\n\r\n const [container, rect] = usePositioned();\r\n\r\n const defaultText = selectedItem?.text;\r\n\r\n const classNames = [\"bwp-field-with-label\", \"bwp-field-with-label--select\"];\r\n\r\n if (disabled) {\r\n classNames.push(\"bwp-field-with-label--disabled\");\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {(selectedItem && selectedItem.text) || defaultText || \"\"}\r\n \r\n \r\n
      \r\n {items.map((item, index) => (\r\n \r\n {item.text}\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useCallback } from \"react\";\r\nimport \"./CheckBoxWithLabel.scss\";\r\n\r\ninterface Props {\r\n label: React.ReactNode;\r\n value: boolean;\r\n onChange: (value: boolean) => void;\r\n disabled?: boolean;\r\n required?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport default function CheckBoxWithLabel({\r\n label,\r\n value,\r\n onChange,\r\n disabled,\r\n required,\r\n className,\r\n}: Props) {\r\n const handleOnChange = useCallback(\r\n (e: React.SyntheticEvent) => {\r\n onChange(e.currentTarget.checked);\r\n },\r\n [onChange]\r\n );\r\n\r\n const classNames = [\"bwp-checkbox-with-label\"];\r\n if (className) {\r\n classNames.push(className);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { ComponentProps, useMemo } from \"react\";\r\nimport useDurationOptions from \"./shared/useDurationOptions\";\r\nimport {Dictionary, PluralizedTranslation} from \"./shared/types\";\r\nimport SelectWithLabel from \"./SelectWithLabel\";\r\n\r\ninterface DurationSelectWithLabelTranslations {\r\n day: PluralizedTranslation;\r\n week: PluralizedTranslation;\r\n}\r\n\r\ninterface Props extends Omit, \"value\" | \"onChange\"> {\r\n translations: DurationSelectWithLabelTranslations;\r\n durations: number[];\r\n value: number;\r\n onChange: (value: number) => void;\r\n durationsAndPrices?: Dictionary;\r\n}\r\n\r\nexport function DurationSelectWithLabel(props: Props) {\r\n const { translations, durations, value, onChange, durationsAndPrices } = props;\r\n const durationOptions = useDurationOptions(translations.day, translations.week, durations, durationsAndPrices);\r\n \r\n const selectProps = { ...props };\r\n delete selectProps.translations;\r\n delete selectProps.durations;\r\n \r\n return (\r\n onChange(parseInt(value))}\r\n value={value?.toString()}\r\n />\r\n );\r\n}\r\n","import {Dictionary, PluralizedTranslation} from \"./types\";\r\nimport React, {useMemo} from \"react\";\r\nimport {SelectItem} from \"../SelectWithLabel\";\r\nimport {pluralize} from \"./helpers\";\r\n\r\n/**\r\n * A helper hook that helps creating the options for a select list that lets you choose durations. It will automaticly use weeks if the durations is whole weeks\r\n * @param dayTranslation The pluralized translation for day\r\n * @param weekTranslation The pluralized translation for week\r\n * @param durations an array of durations that should be converted to select options\r\n */\r\nexport default function useDurationOptions(dayTranslation: PluralizedTranslation, weekTranslation: PluralizedTranslation, durations: number[], durationsWithPrice?: Dictionary) {\r\n return useMemo(() => {\r\n\r\n const result: SelectItem[] = [];\r\n\r\n durations.forEach(days => {\r\n let text: React.ReactNode;\r\n let label: string;\r\n\r\n if (days % 7 == 0) {\r\n let weeks = days / 7;\r\n label = pluralize(weeks, weekTranslation);\r\n } else {\r\n label = pluralize(days, dayTranslation);\r\n }\r\n \r\n if (durationsWithPrice && durationsWithPrice[`dur${days}`]) {\r\n text = (\r\n
    \r\n
    {label}
    \r\n
    {durationsWithPrice[`dur${days}`]}
    \r\n
    \r\n );\r\n } else {\r\n text = label;\r\n }\r\n\r\n result.push({value: days.toString(), text})\r\n });\r\n\r\n return result;\r\n\r\n }, [dayTranslation, weekTranslation, durations, durationsWithPrice]);\r\n}\r\n","import React, { ComponentProps } from \"react\";\r\nimport { PluralizedTranslation } from \"./shared/types\";\r\nimport SelectWithLabel from \"./SelectWithLabel\";\r\nimport useArrayPluralizeOptions from \"./shared/useArrayPluralizeOptions\";\r\n\r\ninterface Props extends Omit, \"value\" | \"onChange\"> {\r\n itemTranslation: PluralizedTranslation;\r\n min: number;\r\n max: number;\r\n value: number;\r\n onChange: (value: number) => void;\r\n nullValueText?: string;\r\n minValueText?: string;\r\n maxValueText?: string;\r\n}\r\n\r\nexport function NumberSelectWithLabel(props: Props) {\r\n const { value, onChange } = props;\r\n const items = useArrayPluralizeOptions(\r\n props.itemTranslation,\r\n props.min,\r\n props.max,\r\n props.nullValueText,\r\n props.minValueText,\r\n props.maxValueText\r\n );\r\n\r\n const selectProps = { ...props };\r\n delete selectProps.min;\r\n delete selectProps.max;\r\n delete selectProps.itemTranslation;\r\n delete selectProps.nullValueText;\r\n delete selectProps.minValueText;\r\n delete selectProps.maxValueText;\r\n\r\n return (\r\n onChange(value === \"\" ? null : parseInt(value))}\r\n value={value == null ? \"\" : value.toString()}\r\n />\r\n );\r\n}\r\n","import { useMemo } from \"react\";\r\nimport { PluralizedTranslation, SelectItem } from \"./types\";\r\nimport { pluralize } from \"./helpers\";\r\n\r\n/**\r\n * A helper hook that helps making select list options where you need to choose from ex. 1 adult og 2 adults\r\n * @param translation the pluralized translation to use\r\n * @param from the minimum number to start from\r\n * @param to the maximum number to end with\r\n * @param nullText Add a null item text\r\n * @param fromText show a special text for the minimum value\r\n * @param toText show a special text for the maximum value\r\n */\r\nexport default function useArrayPluralizeOptions(\r\n translation: PluralizedTranslation,\r\n from: number,\r\n to: number,\r\n nullText: string = null,\r\n fromText: string = null,\r\n toText: string = null\r\n) {\r\n return useMemo(() => {\r\n const result: SelectItem[] = [];\r\n\r\n if (nullText) {\r\n result.push({ value: \"\", text: nullText });\r\n }\r\n\r\n for (let x = from; x <= to; x++) {\r\n let text = null;\r\n if (x == from && fromText) {\r\n text = fromText;\r\n } else if (x == to && toText) {\r\n text = toText;\r\n } else {\r\n text = pluralize(x, translation);\r\n }\r\n result.push({ value: x.toString(), text });\r\n }\r\n\r\n return result;\r\n }, [nullText, from, to, fromText, toText, translation]);\r\n}\r\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // 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}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // 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}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar 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};\nvar 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};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.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: string.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 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\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}\n\nfunction 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}\n\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]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\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 | | 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\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\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 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\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 incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (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 incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\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 incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\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(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\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(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\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 set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\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 set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (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 parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (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 parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (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, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\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 incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\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 incompatibleTokens: ['h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\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}","import defaultLocale from \"../locale/en-US/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 parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // 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://git.io/fxCyr\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://git.io/fxCyr\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://git.io/fxCyr\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\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://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\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://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\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, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // 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 localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // 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 = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.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, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!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 = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\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) {\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.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\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 new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\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)) {\n return new Date(NaN);\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/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(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\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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}","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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\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;","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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, 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, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\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}","import React, {PropsWithChildren, useMemo, useState} from \"react\";\r\nimport {CalendarValue} from \"./shared/types\";\r\nimport {DatePickerTranslations} from \"./translations/DatePickerTranslations\";\r\nimport \"./DatePickerCalendar.scss\";\r\nimport {\r\n addDays,\r\n addMonths,\r\n format,\r\n getDaysInMonth,\r\n getISODay, getISOWeek,\r\n isAfter,\r\n isBefore,\r\n isEqual,\r\n parse,\r\n parseISO\r\n} from \"date-fns\";\r\n\r\n// DayCell component\r\ntype DayCellProps = React.HTMLProps;\r\n\r\nconst DayCell = (props: DayCellProps) => {\r\n let basicClassName = \"bwp-calendar__day-cell\";\r\n\r\n if (props.onClick) {\r\n basicClassName = basicClassName + \" bwp-calendar__cell-clickable\";\r\n } else {\r\n basicClassName = basicClassName + \" bwp-calendar__cell-not-clickable\";\r\n }\r\n\r\n const localProps = {\r\n ...props,\r\n className: [basicClassName, props.className].join(\" \"),\r\n };\r\n\r\n return {localProps.children};\r\n}\r\n\r\n// WeekCell component\r\nconst WeekCell = (props: PropsWithChildren) => {\r\n return {props.children};\r\n};\r\n\r\n// DatePickerCalendar component\r\nexport interface DatePickerCalendarDay {\r\n overrideValue?: string;\r\n title?: string;\r\n suggestionRange?: { from: string; to: string };\r\n date: string;\r\n parsedDate: Date;\r\n selectable?: boolean;\r\n unSelectableReason?: string;\r\n classNames: string[];\r\n}\r\n\r\nexport interface DatePickerCalendarProps {\r\n days: DatePickerCalendarDay[];\r\n onChange: (value: CalendarValue) => void;\r\n onActiveMonthChanged?: (year: number, month: number) => void;\r\n displayYear: number;\r\n displayMonth: number;\r\n value: CalendarValue;\r\n translations: DatePickerTranslations;\r\n showTwoMonths: boolean;\r\n}\r\n\r\ninterface Cell {\r\n day: number;\r\n component: any;\r\n}\r\n\r\ninterface DayInfo {\r\n day: DatePickerCalendarDay;\r\n parsedDate: Date;\r\n key: string;\r\n}\r\n\r\nconst intoWeekRows = (result: Array>, cur) => {\r\n let curRow = result[result.length - 1];\r\n if (curRow.length === 7) {\r\n curRow = [];\r\n result.push(curRow);\r\n }\r\n curRow.push(cur);\r\n return result;\r\n};\r\n\r\n/**\r\n * Finds the weeknumber by looking at the first day in the week\r\n * We will out the cells that is duds\r\n */\r\nconst getRowWeekNumer = (date: Date, row: Cell[]) => {\r\n const cell = row.filter((d) => d.day > 0)[0];\r\n if (!cell?.day) {\r\n return -1;\r\n }\r\n const day = addDays(date, cell.day - 1);\r\n return getISOWeek(day);\r\n}\r\n\r\nexport default function DatePickerCalendar({\r\n days,\r\n onChange,\r\n onActiveMonthChanged,\r\n displayYear,\r\n displayMonth,\r\n value,\r\n translations,\r\n showTwoMonths\r\n}: DatePickerCalendarProps) {\r\n \r\n const [selectionMessage, setSelectionMessage] = useState(null);\r\n const [hoveredDay, setHoveredDay] = useState(null);\r\n\r\n const dayToValue = (day: number): CalendarValue => {\r\n return {\r\n year: displayYear,\r\n month: displayMonth + 1,\r\n day: day,\r\n };\r\n };\r\n \r\n const handleDayClicked = (day: number, dayInfo: DayInfo) => {\r\n if (dayInfo.day.selectable) {\r\n setSelectionMessage(null);\r\n if (dayInfo.day.overrideValue == null) {\r\n onChange(dayToValue(day));\r\n } else {\r\n let value = parse(dayInfo.day.overrideValue, \"yyyy-MM-dd\", new Date());\r\n onChange({\r\n year: value.getFullYear(),\r\n month: value.getMonth() + 1,\r\n day: value.getDate(),\r\n });\r\n }\r\n } else {\r\n setSelectionMessage(dayInfo.day.unSelectableReason);\r\n }\r\n };\r\n \r\n const renderCell = (day: number, dayInfo: DayInfo) => {\r\n const cellProps: DayCellProps = {\r\n key: dayInfo.key,\r\n className: dayInfo.day.classNames.join(\" \"),\r\n onMouseOver: () => setHoveredDay(dayInfo),\r\n onMouseOut: () => {\r\n if (hoveredDay == dayInfo) {\r\n setHoveredDay(null);\r\n }\r\n },\r\n };\r\n\r\n cellProps.title = dayInfo.day.title;\r\n\r\n if (dayInfo.day.selectable) {\r\n cellProps.onClick = () => handleDayClicked(day, dayInfo);\r\n } else {\r\n cellProps.title = dayInfo.day.unSelectableReason;\r\n }\r\n\r\n const suggestionRange = hoveredDay?.day?.suggestionRange;\r\n if (suggestionRange != null) {\r\n let from = parse(suggestionRange.from, \"yyyy-MM-dd\", new Date());\r\n let to = parse(suggestionRange.to, \"yyyy-MM-dd\", new Date());\r\n let parsedDate = dayInfo.parsedDate;\r\n if (isEqual(parsedDate, from)) {\r\n cellProps.className += \" bwp-calendar__cell-suggestion-arrival-date\";\r\n }\r\n if (isAfter(parsedDate, from) && isBefore(parsedDate, to)) {\r\n cellProps.className += \" bwp-calendar__cell-suggestion\";\r\n }\r\n if (isEqual(parsedDate, to)) {\r\n cellProps.className += \" bwp-calendar__cell-suggestion-departure-date\";\r\n }\r\n }\r\n\r\n if (value != null) {\r\n let date = new Date(\r\n value.year,\r\n value.month - 1,\r\n value.day,\r\n 0,\r\n 0,\r\n 0\r\n );\r\n\r\n let suggestionRange = days.find((d) => isEqual(d.parsedDate, date))?.suggestionRange;\r\n\r\n if (suggestionRange != null) {\r\n let from = parse(suggestionRange.from, \"yyyy-MM-dd\", new Date());\r\n let to = parse(suggestionRange.to, \"yyyy-MM-dd\", new Date());\r\n let parsedDate = dayInfo.parsedDate;\r\n if (isEqual(parsedDate, from)) {\r\n cellProps.className += \" bwp-calendar__cell-selected-arrival-date\";\r\n }\r\n if (isAfter(parsedDate, from) && isBefore(parsedDate, to)) {\r\n cellProps.className += \" bwp-calendar__cell-selected\";\r\n }\r\n if (isEqual(parsedDate, to)) {\r\n cellProps.className += \" bwp-calendar__cell-selected-departure-date\";\r\n }\r\n } else {\r\n if (isEqual(dayInfo.day.parsedDate, date)) {\r\n cellProps.className += \" bwp-calendar__cell-selected-single\";\r\n }\r\n }\r\n }\r\n\r\n return {day.toString()};\r\n };\r\n \r\n const generateCells = (date: Date, dayInfos: DayInfo[]) => {\r\n const cells: Cell[] = [];\r\n\r\n // we need to add duds for days not in this month\r\n const numberOfDuds = getISODay(date) - 1;\r\n for (let x = 1; x <= numberOfDuds; x++) {\r\n cells.push({ day: null, component: });\r\n }\r\n\r\n for (let x = 1; x <= getDaysInMonth(date); x++) {\r\n const key = format(new Date(date.getFullYear(), date.getMonth(), x), \"yyyy-MM-dd\");\r\n const dayInfo = dayInfos.find((x) => x.key === key);\r\n if (dayInfo) {\r\n cells.push({ \r\n day: x,\r\n component: renderCell(x, dayInfo)\r\n });\r\n }\r\n }\r\n\r\n return cells;\r\n };\r\n \r\n const handleNavigateBackward = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const date = addMonths(\r\n new Date(\r\n displayYear, \r\n displayMonth, \r\n 1, \r\n 0, \r\n 0, \r\n 0\r\n ),\r\n-1);\r\n\r\n onActiveMonthChanged(date.getFullYear(), date.getMonth());\r\n };\r\n \r\n const handleNavigateForward = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const date = addMonths(\r\n new Date(\r\n displayYear,\r\n displayMonth,\r\n 1\r\n ),\r\n 1\r\n );\r\n\r\n onActiveMonthChanged(date.getFullYear(), date.getMonth());\r\n };\r\n \r\n if (!days) {\r\n return;\r\n }\r\n \r\n const dayInfos = days.map(day => ({\r\n day,\r\n parsedDate: parseISO(day.date),\r\n key: day.date.substr(0, \"yyyy-MM-dd\".length)\r\n }));\r\n\r\n const monthNumber = displayMonth;\r\n const year = displayYear;\r\n\r\n const monthNames = [\r\n translations.january,\r\n translations.february,\r\n translations.march,\r\n translations.april,\r\n translations.may,\r\n translations.june,\r\n translations.july,\r\n translations.august,\r\n translations.september,\r\n translations.october,\r\n translations.november,\r\n translations.december\r\n ];\r\n\r\n const monthDate = new Date(year, monthNumber, 1, 0, 0, 0);\r\n const monthName = monthNames[monthDate.getMonth()];\r\n\r\n const nextMonthDate = new Date(\r\n monthNumber === 11 ? year + 1 : year,\r\n monthNumber === 11 ? 0 : monthNumber + 1,\r\n 1, 0, 0, 0\r\n );\r\n const nextMonthName = monthNames[nextMonthDate.getMonth()];\r\n const nextMonthYear = nextMonthDate.getFullYear();\r\n\r\n const weekDayNames = [\r\n translations.sun,\r\n translations.mon,\r\n translations.tue,\r\n translations.wed,\r\n translations.thu,\r\n translations.fri,\r\n translations.sat\r\n ];\r\n \r\n const cells: Cell[] = useMemo(() => generateCells(monthDate, dayInfos), [monthDate, dayInfos]);\r\n const rows = cells.reduce(intoWeekRows, [[]]) as Array>;\r\n \r\n const nextMonthCells: Cell[] = useMemo(() => generateCells(nextMonthDate, dayInfos), [nextMonthDate, dayInfos]);\r\n const nextMonthRows = nextMonthCells.reduce(intoWeekRows, [[]]) as Array>;\r\n\r\n const showWeeks = window.innerWidth > 400;\r\n \r\n const headerStyles = showTwoMonths\r\n ? \"bwp-calendar__two-months\"\r\n : \"\";\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n
    «
    \r\n
    {monthName}{\" \"}{year}
    \r\n {showTwoMonths && (\r\n
    {nextMonthName}{\" \"}{nextMonthYear}
    \r\n )}\r\n
    »
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {showWeeks ? : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rows.map((row, index) => (\r\n \r\n {showWeeks ? (\r\n {getRowWeekNumer(monthDate, row)}\r\n ) : null}\r\n {row.map((r) => r.component)}\r\n \r\n ))}\r\n \r\n
    \r\n {weekDayNames[1]}\r\n \r\n {weekDayNames[2]}\r\n \r\n {weekDayNames[3]}\r\n \r\n {weekDayNames[4]}\r\n \r\n {weekDayNames[5]}\r\n \r\n {weekDayNames[6]}\r\n \r\n {weekDayNames[0]}\r\n
    \r\n {showTwoMonths && (\r\n \r\n \r\n \r\n {showWeeks ? : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {nextMonthRows.map((row, index) => (\r\n \r\n {showWeeks ? (\r\n \r\n {getRowWeekNumer(nextMonthDate, row)}\r\n \r\n ) : null}\r\n {row.map((r) => r.component)}\r\n \r\n ))}\r\n \r\n
    \r\n {weekDayNames[1]}\r\n \r\n {weekDayNames[2]}\r\n \r\n {weekDayNames[3]}\r\n \r\n {weekDayNames[4]}\r\n \r\n {weekDayNames[5]}\r\n \r\n {weekDayNames[6]}\r\n \r\n {weekDayNames[0]}\r\n
    \r\n )}\r\n
    \r\n {selectionMessage && (\r\n \r\n {selectionMessage}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\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 React, { useState } from \"react\";\r\nimport { format, eachDayOfInterval, compareAsc, addDays, isAfter, startOfToday, startOfDay } from \"date-fns\";\r\nimport { CalendarValue } from \"./shared/types\";\r\nimport {\r\n formattedShortDate,\r\n formattedValue,\r\n getDateValueFromDate,\r\n isValidDate,\r\n} from \"./shared/helpers\";\r\nimport { DatePickerTranslations } from \"./translations/DatePickerTranslations\";\r\nimport useIsomorphicLayoutEffect from \"./shared/useIsomorphicLayoutEffect\";\r\nimport DatePickerCalendar, {DatePickerCalendarDay} from \"./DatePickerCalendar\";\r\n\r\nimport \"./DatePicker.scss\";\r\n\r\ntype DayManipulator = (\r\n currentYear: number,\r\n currentMonth: number,\r\n day: DatePickerCalendarDay,\r\n dayManipulatorLastReturnValue: boolean\r\n) => void;\r\n\r\ninterface DatePickerProps {\r\n value: CalendarValue;\r\n onChange: (value: CalendarValue) => void;\r\n selectionMode: SelectionMode;\r\n dateSelectionDate?: Date;\r\n translations: DatePickerTranslations;\r\n culture: string;\r\n dayManipulator?: DayManipulator;\r\n showTwoMonths: boolean;\r\n}\r\n\r\nexport enum SelectionMode {\r\n TodayAndFuture,\r\n AllDays,\r\n Future,\r\n Past,\r\n TodayAndPast,\r\n SetDateAndFuture,\r\n SetDateAndPast,\r\n FutureFromSetDate,\r\n PastFromSetDate,\r\n}\r\n\r\nexport default function DatePicker({\r\n value,\r\n dateSelectionDate,\r\n selectionMode,\r\n onChange,\r\n translations,\r\n culture,\r\n dayManipulator,\r\n showTwoMonths\r\n}: DatePickerProps) {\r\n const defaultSelectedDay = getDateValueFromDate(\r\n isValidDate(dateSelectionDate) ? dateSelectionDate : new Date()\r\n );\r\n const selectedDate: CalendarValue = value\r\n ? value\r\n : { ...defaultSelectedDay, month: defaultSelectedDay.month + 1 };\r\n \r\n let [displayYear, setDisplayYear] = useState(selectedDate.year);\r\n let [displayMonth, setDisplayMonth] = useState(selectedDate.month - 1);\r\n let [days, setDays] = useState(null);\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n setDays(\r\n generateDays(\r\n displayYear,\r\n displayMonth,\r\n selectionMode,\r\n translations,\r\n culture,\r\n dateSelectionDate,\r\n dayManipulator,\r\n showTwoMonths ? 2 : 1\r\n )\r\n );\r\n }, [\r\n culture,\r\n dateSelectionDate,\r\n dayManipulator,\r\n displayMonth,\r\n displayYear,\r\n selectionMode,\r\n translations,\r\n showTwoMonths\r\n ]);\r\n\r\n let handleActiveMonthChanged = (year: number, month: number) => {\r\n setDisplayYear(year);\r\n setDisplayMonth(month);\r\n };\r\n\r\n const today = startOfDay(new Date());\r\n if (displayYear === null || displayYear === undefined) {\r\n displayYear = today.getFullYear();\r\n }\r\n if (displayMonth === null || displayMonth === undefined) {\r\n displayMonth = today.getMonth();\r\n }\r\n \r\n return (\r\n \r\n {days && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nfunction generateDays(\r\n year: number,\r\n month: number,\r\n selectionMode: SelectionMode,\r\n translations: DatePickerTranslations,\r\n culture: string,\r\n dateSelectionDate: Date,\r\n dayManipulator: DayManipulator,\r\n numberOfMonths: number\r\n): DatePickerCalendarDay[] {\r\n const days = eachDayOfInterval({\r\n start: new Date(year, month, 1),\r\n end: new Date(year, month + numberOfMonths, 0),\r\n });\r\n\r\n let dayManipulatorLastReturnValue = null;\r\n return days.map((d) => {\r\n let selectable = false;\r\n let unSelectableReason = \"\";\r\n const today = startOfDay(new Date());\r\n const setDate = dateSelectionDate || new Date();\r\n switch (selectionMode) {\r\n case SelectionMode.AllDays:\r\n selectable = true;\r\n break;\r\n case SelectionMode.Future:\r\n selectable = compareAsc(d, today) === 1;\r\n unSelectableReason = translations.onlyDaysInFuture;\r\n break;\r\n case SelectionMode.Past:\r\n selectable = compareAsc(d, today) === -1;\r\n unSelectableReason = translations.onlyDaysInPast;\r\n break;\r\n case SelectionMode.TodayAndFuture:\r\n selectable = compareAsc(d, today) >= 0;\r\n unSelectableReason = translations.onlyTodayAndFuture;\r\n break;\r\n case SelectionMode.TodayAndPast:\r\n selectable = compareAsc(d, today) <= 0;\r\n unSelectableReason = translations.onlyTodayAndPast;\r\n break;\r\n case SelectionMode.SetDateAndFuture:\r\n selectable = compareAsc(d, setDate) >= 0;\r\n unSelectableReason = formattedValue(\r\n formattedShortDate(addDays(setDate, -1), culture),\r\n translations.onlyDaysAfter\r\n );\r\n break;\r\n case SelectionMode.SetDateAndPast:\r\n selectable = compareAsc(d, setDate) <= 0;\r\n unSelectableReason = formattedValue(\r\n formattedShortDate(addDays(setDate, +1), culture),\r\n translations.onlyDaysBefore\r\n );\r\n break;\r\n case SelectionMode.FutureFromSetDate:\r\n selectable = compareAsc(d, setDate) === 1;\r\n unSelectableReason = formattedValue(\r\n formattedShortDate(setDate, culture),\r\n translations.onlyDaysAfter\r\n );\r\n break;\r\n case SelectionMode.PastFromSetDate:\r\n selectable = compareAsc(d, setDate) === -1;\r\n unSelectableReason = formattedValue(\r\n formattedShortDate(setDate, culture),\r\n translations.onlyDaysBefore\r\n );\r\n break;\r\n }\r\n\r\n let day: DatePickerCalendarDay = {\r\n date: format(d, \"yyyy-MM-dd\"),\r\n parsedDate: d,\r\n selectable: selectable,\r\n unSelectableReason: unSelectableReason,\r\n classNames: [],\r\n };\r\n\r\n if (dayManipulator != null) {\r\n dayManipulator(\r\n year,\r\n month,\r\n day,\r\n dayManipulatorLastReturnValue\r\n );\r\n }\r\n\r\n return day;\r\n });\r\n}\r\n\r\nexport function createDayManipulatorWithHighlightDays(days: number[]) : DayManipulator {\r\n return (currentMonth: number, currentYear: number, day: DatePickerCalendarDay, dayManipulartorLastReturnValue: boolean) => {\r\n if (isAfter(day.parsedDate, startOfToday()) && days.some((x) => x == day.parsedDate.getDay())) {\r\n day.classNames.push(\"bwp-calendar__cell-highlighted\");\r\n }\r\n };\r\n}\r\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `eachDay` to `eachDayOfInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * eachDay(new Date(2014, 0, 10), new Date(2014, 0, 20))\n *\n * // v2.0.0 onward\n *\n * eachDayOfInterval(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }\n * )\n * ```\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\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 * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\n\nexport default function eachDayOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = options && 'step' in options ? Number(options.step) : 1;\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}","import startOfDay from \"../startOfDay/index.js\";\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the start of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\n\nexport default function startOfToday() {\n return startOfDay(Date.now());\n}","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","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\";\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}","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 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\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\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);\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 } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.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 = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\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 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}","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(options) {\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 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}","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};","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { top, left, right, bottom } 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 { 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) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(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 offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\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') {\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) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\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) < 2 ? \"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(_ref4) {\n var state = _ref4.state,\n options = _ref4.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 popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\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\";\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) {\n var rect = getBoundingClientRect(element);\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) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : 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) {\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);\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));\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\";\nexport default function getViewportRect(element) {\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; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\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 getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.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$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 referenceElement = state.elements.reference;\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);\n var referenceClientRect = getBoundingClientRect(referenceElement);\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 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 { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\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 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 { max as mathMax, min as mathMin } 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 data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\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 = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - 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 - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\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 = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\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 _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\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 * 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;","import * as React from 'react';\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 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 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 React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from \"react\";\r\nimport \"./FieldWithLabel.scss\";\r\nimport DatePicker, { SelectionMode } from \"./DatePicker\";\r\nimport { CalendarValue } from \"./shared/types\";\r\nimport { formattedDate, getDateFromCalendarValue, isBrowser } from \"./shared/helpers\";\r\nimport { DatePickerTranslations } from \"./translations/DatePickerTranslations\";\r\nimport useOnClickOutside from \"./shared/useOnClickOutside\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { usePopper } from \"react-popper\";\r\n\r\nexport interface FieldWithLabelProps {\r\n label: string;\r\n value: CalendarValue;\r\n onChange: (newValue: CalendarValue) => void;\r\n required?: boolean;\r\n culture: string;\r\n selectionMode: SelectionMode;\r\n translations: DatePickerTranslations;\r\n dayManipulator?: React.ComponentProps[\"dayManipulator\"];\r\n showTwoMonths?: boolean;\r\n}\r\n\r\nexport interface DatePickerWithLabelRef {\r\n focusAndShowCalendar: () => void;\r\n}\r\n\r\nfunction DatePickerWithLabel(\r\n {\r\n label,\r\n value,\r\n onChange,\r\n required,\r\n selectionMode,\r\n translations,\r\n culture,\r\n dayManipulator,\r\n showTwoMonths\r\n }: FieldWithLabelProps,\r\n ref\r\n) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const containerRef = useRef();\r\n const inputRef = useRef();\r\n\r\n const [referenceElement, setReferenceElement] = useState(null);\r\n const [popperElement, setPopperElement] = useState(null);\r\n const [div, setDiv] = useState(null);\r\n\r\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\r\n placement: showTwoMonths ? 'bottom' : 'bottom-start'\r\n });\r\n\r\n // Setup the portal container\r\n useEffect(() => {\r\n if (!div && isBrowser()) {\r\n const newDiv = document.createElement(\"div\");\r\n document.body.appendChild(newDiv);\r\n setDiv(newDiv);\r\n }\r\n\r\n return () => {\r\n if (div && isBrowser()) {\r\n document.body.removeChild(div);\r\n setDiv(null);\r\n }\r\n };\r\n }, [div]);\r\n\r\n useOnClickOutside([containerRef, { current: popperElement }], () => setIsOpen(false));\r\n\r\n useImperativeHandle(ref, () => ({\r\n focusAndShowCalendar: () => {\r\n setIsOpen(true);\r\n referenceElement.focus();\r\n },\r\n }));\r\n\r\n const handleInputClick = useCallback((e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n setIsOpen((value) => !value);\r\n }, []);\r\n\r\n const handleOnChange = useCallback(\r\n (value: CalendarValue) => {\r\n onChange(value);\r\n setIsOpen(false);\r\n },\r\n [onChange]\r\n );\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setIsOpen(true);\r\n } else if (event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {isOpen && (isBrowser() && div) && ReactDOM.createPortal(\r\n
    \r\n \r\n
    \r\n , div)}\r\n
    \r\n );\r\n}\r\n\r\nexport default forwardRef(DatePickerWithLabel);\r\n\r\nfunction CalendarIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","var _jsxFileName = \"/Users/brians/git/react-slider/src/components/ReactSlider/ReactSlider.jsx\";\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _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\nimport React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * To prevent text selection while dragging.\n * http://stackoverflow.com/questions/5429827/how-can-i-prevent-text-element-selection-with-cursor-drag\n */\n\nfunction pauseEvent(e) {\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n\n return false;\n}\n\nfunction stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n}\n\nfunction sanitizeInValue(x) {\n if (x == null) {\n return [];\n }\n\n return Array.isArray(x) ? x.slice() : [x];\n}\n\nfunction prepareOutValue(x) {\n return x !== null && x.length === 1 ? x[0] : x.slice();\n}\n\nfunction trimSucceeding(length, nextValue, minDistance, max) {\n for (var i = 0; i < length; i += 1) {\n var padding = max - i * minDistance;\n\n if (nextValue[length - 1 - i] > padding) {\n // eslint-disable-next-line no-param-reassign\n nextValue[length - 1 - i] = padding;\n }\n }\n}\n\nfunction trimPreceding(length, nextValue, minDistance, min) {\n for (var i = 0; i < length; i += 1) {\n var padding = min + i * minDistance;\n\n if (nextValue[i] < padding) {\n // eslint-disable-next-line no-param-reassign\n nextValue[i] = padding;\n }\n }\n}\n\nfunction addHandlers(eventMap) {\n Object.keys(eventMap).forEach(function (key) {\n if (typeof document !== 'undefined') {\n document.addEventListener(key, eventMap[key], false);\n }\n });\n}\n\nfunction removeHandlers(eventMap) {\n Object.keys(eventMap).forEach(function (key) {\n if (typeof document !== 'undefined') {\n document.removeEventListener(key, eventMap[key], false);\n }\n });\n}\n\nfunction trimAlignValue(val, props) {\n return alignValue(trimValue(val, props), props);\n}\n\nfunction alignValue(val, props) {\n var valModStep = (val - props.min) % props.step;\n var alignedValue = val - valModStep;\n\n if (Math.abs(valModStep) * 2 >= props.step) {\n alignedValue += valModStep > 0 ? props.step : -props.step;\n }\n\n return parseFloat(alignedValue.toFixed(5));\n}\n\nfunction trimValue(val, props) {\n var trimmed = val;\n\n if (trimmed <= props.min) {\n trimmed = props.min;\n }\n\n if (trimmed >= props.max) {\n trimmed = props.max;\n }\n\n return trimmed;\n}\n\nvar ReactSlider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReactSlider, _React$Component);\n\n function ReactSlider(_props) {\n var _this;\n\n _this = _React$Component.call(this, _props) || this;\n\n _this.onKeyUp = function () {\n _this.onEnd();\n };\n\n _this.onMouseUp = function () {\n _this.onEnd(_this.getMouseEventMap());\n };\n\n _this.onTouchEnd = function () {\n _this.onEnd(_this.getTouchEventMap());\n };\n\n _this.onBlur = function () {\n _this.setState({\n index: -1\n }, _this.onEnd(_this.getKeyDownEventMap()));\n };\n\n _this.onMouseMove = function (e) {\n // Prevent controlled updates from happening while mouse is moving\n _this.setState({\n pending: true\n });\n\n var position = _this.getMousePosition(e);\n\n var diffPosition = _this.getDiffPosition(position[0]);\n\n var newValue = _this.getValueFromPosition(diffPosition);\n\n _this.move(newValue);\n };\n\n _this.onTouchMove = function (e) {\n if (e.touches.length > 1) {\n return;\n } // Prevent controlled updates from happending while touch is moving\n\n\n _this.setState({\n pending: true\n });\n\n var position = _this.getTouchPosition(e);\n\n if (typeof _this.isScrolling === 'undefined') {\n var diffMainDir = position[0] - _this.startPosition[0];\n var diffScrollDir = position[1] - _this.startPosition[1];\n _this.isScrolling = Math.abs(diffScrollDir) > Math.abs(diffMainDir);\n }\n\n if (_this.isScrolling) {\n _this.setState({\n index: -1\n });\n\n return;\n }\n\n var diffPosition = _this.getDiffPosition(position[0]);\n\n var newValue = _this.getValueFromPosition(diffPosition);\n\n _this.move(newValue);\n };\n\n _this.onKeyDown = function (e) {\n if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) {\n return;\n } // Prevent controlled updates from happening while a key is pressed\n\n\n _this.setState({\n pending: true\n });\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n case 'Left':\n case 'Down':\n e.preventDefault();\n\n _this.moveDownByStep();\n\n break;\n\n case 'ArrowRight':\n case 'ArrowUp':\n case 'Right':\n case 'Up':\n e.preventDefault();\n\n _this.moveUpByStep();\n\n break;\n\n case 'Home':\n e.preventDefault();\n\n _this.move(_this.props.min);\n\n break;\n\n case 'End':\n e.preventDefault();\n\n _this.move(_this.props.max);\n\n break;\n\n case 'PageDown':\n e.preventDefault();\n\n _this.moveDownByStep(_this.props.pageFn(_this.props.step));\n\n break;\n\n case 'PageUp':\n e.preventDefault();\n\n _this.moveUpByStep(_this.props.pageFn(_this.props.step));\n\n break;\n\n default:\n }\n };\n\n _this.onSliderMouseDown = function (e) {\n // do nothing if disabled or right click\n if (_this.props.disabled || e.button === 2) {\n return;\n } // Prevent controlled updates from happening while mouse is moving\n\n\n _this.setState({\n pending: true\n });\n\n if (!_this.props.snapDragDisabled) {\n var position = _this.getMousePosition(e);\n\n _this.forceValueFromPosition(position[0], function (i) {\n _this.start(i, position[0]);\n\n addHandlers(_this.getMouseEventMap());\n });\n }\n\n pauseEvent(e);\n };\n\n _this.onSliderClick = function (e) {\n if (_this.props.disabled) {\n return;\n }\n\n if (_this.props.onSliderClick && !_this.hasMoved) {\n var position = _this.getMousePosition(e);\n\n var valueAtPos = trimAlignValue(_this.calcValue(_this.calcOffsetFromPosition(position[0])), _this.props);\n\n _this.props.onSliderClick(valueAtPos);\n }\n };\n\n _this.createOnKeyDown = function (i) {\n return function (e) {\n if (_this.props.disabled) {\n return;\n }\n\n _this.start(i);\n\n addHandlers(_this.getKeyDownEventMap());\n pauseEvent(e);\n };\n };\n\n _this.createOnMouseDown = function (i) {\n return function (e) {\n // do nothing if disabled or right click\n if (_this.props.disabled || e.button === 2) {\n return;\n } // Prevent controlled updates from happending while mouse is moving\n\n\n _this.setState({\n pending: true\n });\n\n var position = _this.getMousePosition(e);\n\n _this.start(i, position[0]);\n\n addHandlers(_this.getMouseEventMap());\n pauseEvent(e);\n };\n };\n\n _this.createOnTouchStart = function (i) {\n return function (e) {\n if (_this.props.disabled || e.touches.length > 1) {\n return;\n } // Prevent controlled updates from happending while touch is moving\n\n\n _this.setState({\n pending: true\n });\n\n var position = _this.getTouchPosition(e);\n\n _this.startPosition = position; // don't know yet if the user is trying to scroll\n\n _this.isScrolling = undefined;\n\n _this.start(i, position[0]);\n\n addHandlers(_this.getTouchEventMap());\n stopPropagation(e);\n };\n };\n\n _this.handleResize = function () {\n // setTimeout of 0 gives element enough time to have assumed its new size if\n // it is being resized\n var resizeTimeout = window.setTimeout(function () {\n // drop this timeout from pendingResizeTimeouts to reduce memory usage\n _this.pendingResizeTimeouts.shift();\n\n _this.resize();\n }, 0);\n\n _this.pendingResizeTimeouts.push(resizeTimeout);\n };\n\n _this.renderThumb = function (style, i) {\n var className = _this.props.thumbClassName + \" \" + _this.props.thumbClassName + \"-\" + i + \" \" + (_this.state.index === i ? _this.props.thumbActiveClassName : '');\n var props = {\n 'ref': function ref(r) {\n _this[\"thumb\" + i] = r;\n },\n 'key': _this.props.thumbClassName + \"-\" + i,\n className: className,\n style: style,\n 'onMouseDown': _this.createOnMouseDown(i),\n 'onTouchStart': _this.createOnTouchStart(i),\n 'onFocus': _this.createOnKeyDown(i),\n 'tabIndex': 0,\n 'role': 'slider',\n 'aria-orientation': _this.props.orientation,\n 'aria-valuenow': _this.state.value[i],\n 'aria-valuemin': _this.props.min,\n 'aria-valuemax': _this.props.max,\n 'aria-label': Array.isArray(_this.props.ariaLabel) ? _this.props.ariaLabel[i] : _this.props.ariaLabel,\n 'aria-labelledby': Array.isArray(_this.props.ariaLabelledby) ? _this.props.ariaLabelledby[i] : _this.props.ariaLabelledby\n };\n var state = {\n index: i,\n value: prepareOutValue(_this.state.value),\n valueNow: _this.state.value[i]\n };\n\n if (_this.props.ariaValuetext) {\n props['aria-valuetext'] = typeof _this.props.ariaValuetext === 'string' ? _this.props.ariaValuetext : _this.props.ariaValuetext(state);\n }\n\n return _this.props.renderThumb(props, state);\n };\n\n _this.renderTrack = function (i, offsetFrom, offsetTo) {\n var props = {\n key: _this.props.trackClassName + \"-\" + i,\n className: _this.props.trackClassName + \" \" + _this.props.trackClassName + \"-\" + i,\n style: _this.buildTrackStyle(offsetFrom, _this.state.upperBound - offsetTo)\n };\n var state = {\n index: i,\n value: prepareOutValue(_this.state.value)\n };\n return _this.props.renderTrack(props, state);\n };\n\n var value = sanitizeInValue(_props.value);\n\n if (!value.length) {\n value = sanitizeInValue(_props.defaultValue);\n } // array for storing resize timeouts ids\n\n\n _this.pendingResizeTimeouts = [];\n var zIndices = [];\n\n for (var i = 0; i < value.length; i += 1) {\n value[i] = trimAlignValue(value[i], _props);\n zIndices.push(i);\n }\n\n _this.state = {\n index: -1,\n upperBound: 0,\n sliderLength: 0,\n value: value,\n zIndices: zIndices\n };\n return _this;\n }\n\n var _proto = ReactSlider.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', this.handleResize);\n this.resize();\n }\n } // Keep the internal `value` consistent with an outside `value` if present.\n // This basically allows the slider to be a controlled component.\n ;\n\n ReactSlider.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var value = sanitizeInValue(props.value);\n\n if (!value.length) {\n return null;\n } // Do not allow controlled upates to happen while we have pending updates\n\n\n if (state.pending) {\n return null;\n }\n\n return {\n value: value.map(function (item) {\n return trimAlignValue(item, props);\n })\n };\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // If an upperBound has not yet been determined (due to the component being hidden\n // during the mount event, or during the last resize), then calculate it now\n if (this.state.upperBound === 0) {\n this.resize();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearPendingResizeTimeouts();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleResize);\n }\n };\n\n _proto.onEnd = function onEnd(eventMap) {\n if (eventMap) {\n removeHandlers(eventMap);\n }\n\n if (this.hasMoved) {\n this.fireChangeEvent('onAfterChange');\n } // Allow controlled updates to continue\n\n\n this.setState({\n pending: false\n });\n this.hasMoved = false;\n };\n\n _proto.getValue = function getValue() {\n return prepareOutValue(this.state.value);\n };\n\n _proto.getClosestIndex = function getClosestIndex(pixelOffset) {\n var minDist = Number.MAX_VALUE;\n var closestIndex = -1;\n var value = this.state.value;\n var l = value.length;\n\n for (var i = 0; i < l; i += 1) {\n var offset = this.calcOffset(value[i]);\n var dist = Math.abs(pixelOffset - offset);\n\n if (dist < minDist) {\n minDist = dist;\n closestIndex = i;\n }\n }\n\n return closestIndex;\n };\n\n _proto.getMousePosition = function getMousePosition(e) {\n return [e[\"page\" + this.axisKey()], e[\"page\" + this.orthogonalAxisKey()]];\n };\n\n _proto.getTouchPosition = function getTouchPosition(e) {\n var touch = e.touches[0];\n return [touch[\"page\" + this.axisKey()], touch[\"page\" + this.orthogonalAxisKey()]];\n };\n\n _proto.getKeyDownEventMap = function getKeyDownEventMap() {\n return {\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n focusout: this.onBlur\n };\n };\n\n _proto.getMouseEventMap = function getMouseEventMap() {\n return {\n mousemove: this.onMouseMove,\n mouseup: this.onMouseUp\n };\n };\n\n _proto.getTouchEventMap = function getTouchEventMap() {\n return {\n touchmove: this.onTouchMove,\n touchend: this.onTouchEnd\n };\n };\n\n _proto.getValueFromPosition = function getValueFromPosition(position) {\n var diffValue = position / (this.state.sliderLength - this.state.thumbSize) * (this.props.max - this.props.min);\n return trimAlignValue(this.state.startValue + diffValue, this.props);\n };\n\n _proto.getDiffPosition = function getDiffPosition(position) {\n var diffPosition = position - this.state.startPosition;\n\n if (this.props.invert) {\n diffPosition *= -1;\n }\n\n return diffPosition;\n } // create the `keydown` handler for the i-th thumb\n ;\n\n _proto.resize = function resize() {\n var slider = this.slider,\n thumb = this.thumb0;\n\n if (!slider || !thumb) {\n return;\n }\n\n var sizeKey = this.sizeKey(); // For the slider size, we want to use the client width/height, excluding any borders\n\n var sliderRect = slider.getBoundingClientRect();\n var sliderSize = slider[sizeKey];\n var sliderMax = sliderRect[this.posMaxKey()];\n var sliderMin = sliderRect[this.posMinKey()]; // For the thumb size, we want to use the outer width/height, including any borders\n\n var thumbRect = thumb.getBoundingClientRect();\n var thumbSize = thumbRect[sizeKey.replace('client', '').toLowerCase()];\n var upperBound = sliderSize - thumbSize;\n var sliderLength = Math.abs(sliderMax - sliderMin);\n\n if (this.state.upperBound !== upperBound || this.state.sliderLength !== sliderLength || this.state.thumbSize !== thumbSize) {\n this.setState({\n upperBound: upperBound,\n sliderLength: sliderLength,\n thumbSize: thumbSize\n });\n }\n } // calculates the offset of a thumb in pixels based on its value.\n ;\n\n _proto.calcOffset = function calcOffset(value) {\n var range = this.props.max - this.props.min;\n\n if (range === 0) {\n return 0;\n }\n\n var ratio = (value - this.props.min) / range;\n return ratio * this.state.upperBound;\n } // calculates the value corresponding to a given pixel offset, i.e. the inverse of `calcOffset`.\n ;\n\n _proto.calcValue = function calcValue(offset) {\n var ratio = offset / this.state.upperBound;\n return ratio * (this.props.max - this.props.min) + this.props.min;\n };\n\n _proto.calcOffsetFromPosition = function calcOffsetFromPosition(position) {\n var slider = this.slider;\n var sliderRect = slider.getBoundingClientRect();\n var sliderMax = sliderRect[this.posMaxKey()];\n var sliderMin = sliderRect[this.posMinKey()]; // The `position` value passed in is the mouse position based on the window height.\n // The slider bounding rect is based on the viewport, so we must add the window scroll\n // offset to normalize the values.\n\n var windowOffset = window[\"page\" + this.axisKey() + \"Offset\"];\n var sliderStart = windowOffset + (this.props.invert ? sliderMax : sliderMin);\n var pixelOffset = position - sliderStart;\n\n if (this.props.invert) {\n pixelOffset = this.state.sliderLength - pixelOffset;\n }\n\n pixelOffset -= this.state.thumbSize / 2;\n return pixelOffset;\n } // Snaps the nearest thumb to the value corresponding to `position`\n // and calls `callback` with that thumb's index.\n ;\n\n _proto.forceValueFromPosition = function forceValueFromPosition(position, callback) {\n var _this2 = this;\n\n var pixelOffset = this.calcOffsetFromPosition(position);\n var closestIndex = this.getClosestIndex(pixelOffset);\n var nextValue = trimAlignValue(this.calcValue(pixelOffset), this.props); // Clone this.state.value since we'll modify it temporarily\n // eslint-disable-next-line zillow/react/no-access-state-in-setstate\n\n var value = this.state.value.slice();\n value[closestIndex] = nextValue; // Prevents the slider from shrinking below `props.minDistance`\n\n for (var i = 0; i < value.length - 1; i += 1) {\n if (value[i + 1] - value[i] < this.props.minDistance) {\n return;\n }\n }\n\n this.fireChangeEvent('onBeforeChange');\n this.hasMoved = true;\n this.setState({\n value: value\n }, function () {\n callback(closestIndex);\n\n _this2.fireChangeEvent('onChange');\n });\n } // clear all pending timeouts to avoid error messages after unmounting\n ;\n\n _proto.clearPendingResizeTimeouts = function clearPendingResizeTimeouts() {\n do {\n var nextTimeout = this.pendingResizeTimeouts.shift();\n clearTimeout(nextTimeout);\n } while (this.pendingResizeTimeouts.length);\n };\n\n _proto.start = function start(i, position) {\n var thumbRef = this[\"thumb\" + i];\n\n if (thumbRef) {\n thumbRef.focus();\n }\n\n var zIndices = this.state.zIndices; // remove wherever the element is\n\n zIndices.splice(zIndices.indexOf(i), 1); // add to end\n\n zIndices.push(i);\n this.setState(function (prevState) {\n return {\n startValue: prevState.value[i],\n startPosition: position !== undefined ? position : prevState.startPosition,\n index: i,\n zIndices: zIndices\n };\n });\n };\n\n _proto.moveUpByStep = function moveUpByStep(step) {\n if (step === void 0) {\n step = this.props.step;\n }\n\n var oldValue = this.state.value[this.state.index];\n var newValue = trimAlignValue(oldValue + step, this.props);\n this.move(Math.min(newValue, this.props.max));\n };\n\n _proto.moveDownByStep = function moveDownByStep(step) {\n if (step === void 0) {\n step = this.props.step;\n }\n\n var oldValue = this.state.value[this.state.index];\n var newValue = trimAlignValue(oldValue - step, this.props);\n this.move(Math.max(newValue, this.props.min));\n };\n\n _proto.move = function move(newValue) {\n var _this$state = this.state,\n index = _this$state.index,\n value = _this$state.value;\n var length = value.length; // Short circuit if the value is not changing\n\n var oldValue = value[index];\n\n if (newValue === oldValue) {\n return;\n } // Trigger only before the first movement\n\n\n if (!this.hasMoved) {\n this.fireChangeEvent('onBeforeChange');\n }\n\n this.hasMoved = true; // if \"pearling\" (= thumbs pushing each other) is disabled,\n // prevent the thumb from getting closer than `minDistance` to the previous or next thumb.\n\n var _this$props = this.props,\n pearling = _this$props.pearling,\n max = _this$props.max,\n min = _this$props.min,\n minDistance = _this$props.minDistance;\n\n if (!pearling) {\n if (index > 0) {\n var valueBefore = value[index - 1];\n\n if (newValue < valueBefore + minDistance) {\n // eslint-disable-next-line no-param-reassign\n newValue = valueBefore + minDistance;\n }\n }\n\n if (index < length - 1) {\n var valueAfter = value[index + 1];\n\n if (newValue > valueAfter - minDistance) {\n // eslint-disable-next-line no-param-reassign\n newValue = valueAfter - minDistance;\n }\n }\n }\n\n value[index] = newValue; // if \"pearling\" is enabled, let the current thumb push the pre- and succeeding thumbs.\n\n if (pearling && length > 1) {\n if (newValue > oldValue) {\n this.pushSucceeding(value, minDistance, index);\n trimSucceeding(length, value, minDistance, max);\n } else if (newValue < oldValue) {\n this.pushPreceding(value, minDistance, index);\n trimPreceding(length, value, minDistance, min);\n }\n } // Normally you would use `shouldComponentUpdate`,\n // but since the slider is a low-level component,\n // the extra complexity might be worth the extra performance.\n\n\n this.setState({\n value: value\n }, this.fireChangeEvent.bind(this, 'onChange'));\n };\n\n _proto.pushSucceeding = function pushSucceeding(value, minDistance, index) {\n var i;\n var padding;\n\n for (i = index, padding = value[i] + minDistance; value[i + 1] !== null && padding > value[i + 1]; i += 1, padding = value[i] + minDistance) {\n // eslint-disable-next-line no-param-reassign\n value[i + 1] = alignValue(padding, this.props);\n }\n };\n\n _proto.pushPreceding = function pushPreceding(value, minDistance, index) {\n for (var i = index, padding = value[i] - minDistance; value[i - 1] !== null && padding < value[i - 1]; i -= 1, padding = value[i] - minDistance) {\n // eslint-disable-next-line no-param-reassign\n value[i - 1] = alignValue(padding, this.props);\n }\n };\n\n _proto.axisKey = function axisKey() {\n if (this.props.orientation === 'vertical') {\n return 'Y';\n } // Defaults to 'horizontal';\n\n\n return 'X';\n };\n\n _proto.orthogonalAxisKey = function orthogonalAxisKey() {\n if (this.props.orientation === 'vertical') {\n return 'X';\n } // Defaults to 'horizontal'\n\n\n return 'Y';\n };\n\n _proto.posMinKey = function posMinKey() {\n if (this.props.orientation === 'vertical') {\n return this.props.invert ? 'bottom' : 'top';\n } // Defaults to 'horizontal'\n\n\n return this.props.invert ? 'right' : 'left';\n };\n\n _proto.posMaxKey = function posMaxKey() {\n if (this.props.orientation === 'vertical') {\n return this.props.invert ? 'top' : 'bottom';\n } // Defaults to 'horizontal'\n\n\n return this.props.invert ? 'left' : 'right';\n };\n\n _proto.sizeKey = function sizeKey() {\n if (this.props.orientation === 'vertical') {\n return 'clientHeight';\n } // Defaults to 'horizontal'\n\n\n return 'clientWidth';\n };\n\n _proto.fireChangeEvent = function fireChangeEvent(event) {\n if (this.props[event]) {\n this.props[event](prepareOutValue(this.state.value), this.state.index);\n }\n };\n\n _proto.buildThumbStyle = function buildThumbStyle(offset, i) {\n var style = {\n position: 'absolute',\n touchAction: 'none',\n willChange: this.state.index >= 0 ? this.posMinKey() : '',\n zIndex: this.state.zIndices.indexOf(i) + 1\n };\n style[this.posMinKey()] = offset + \"px\";\n return style;\n };\n\n _proto.buildTrackStyle = function buildTrackStyle(min, max) {\n var obj = {\n position: 'absolute',\n willChange: this.state.index >= 0 ? this.posMinKey() + \",\" + this.posMaxKey() : ''\n };\n obj[this.posMinKey()] = min;\n obj[this.posMaxKey()] = max;\n return obj;\n };\n\n _proto.buildMarkStyle = function buildMarkStyle(offset) {\n var _ref;\n\n return _ref = {\n position: 'absolute'\n }, _ref[this.posMinKey()] = offset, _ref;\n };\n\n _proto.renderThumbs = function renderThumbs(offset) {\n var length = offset.length;\n var styles = [];\n\n for (var i = 0; i < length; i += 1) {\n styles[i] = this.buildThumbStyle(offset[i], i);\n }\n\n var res = [];\n\n for (var _i = 0; _i < length; _i += 1) {\n res[_i] = this.renderThumb(styles[_i], _i);\n }\n\n return res;\n };\n\n _proto.renderTracks = function renderTracks(offset) {\n var tracks = [];\n var lastIndex = offset.length - 1;\n tracks.push(this.renderTrack(0, 0, offset[0]));\n\n for (var i = 0; i < lastIndex; i += 1) {\n tracks.push(this.renderTrack(i + 1, offset[i], offset[i + 1]));\n }\n\n tracks.push(this.renderTrack(lastIndex + 1, offset[lastIndex], this.state.upperBound));\n return tracks;\n };\n\n _proto.renderMarks = function renderMarks() {\n var _this3 = this;\n\n var marks = this.props.marks;\n var range = this.props.max - this.props.min + 1;\n\n if (typeof marks === 'boolean') {\n marks = Array.from({\n length: range\n }).map(function (_, key) {\n return key;\n });\n } else if (typeof marks === 'number') {\n marks = Array.from({\n length: range\n }).map(function (_, key) {\n return key;\n }).filter(function (key) {\n return key % marks === 0;\n });\n }\n\n return marks.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (mark) {\n var offset = _this3.calcOffset(mark);\n\n var props = {\n key: mark,\n className: _this3.props.markClassName,\n style: _this3.buildMarkStyle(offset)\n };\n return _this3.props.renderMark(props);\n });\n };\n\n _proto.render = function render() {\n var _this4 = this;\n\n var offset = [];\n var value = this.state.value;\n var l = value.length;\n\n for (var i = 0; i < l; i += 1) {\n offset[i] = this.calcOffset(value[i], i);\n }\n\n var tracks = this.props.withTracks ? this.renderTracks(offset) : null;\n var thumbs = this.renderThumbs(offset);\n var marks = this.props.marks ? this.renderMarks() : null;\n return /*#__PURE__*/React.createElement('div', {\n ref: function ref(r) {\n _this4.slider = r;\n },\n style: {\n position: 'relative'\n },\n className: this.props.className + (this.props.disabled ? ' disabled' : ''),\n onMouseDown: this.onSliderMouseDown,\n onClick: this.onSliderClick\n }, tracks, thumbs, marks);\n };\n\n return ReactSlider;\n}(React.Component);\n\nReactSlider.displayName = 'ReactSlider';\nReactSlider.defaultProps = {\n min: 0,\n max: 100,\n step: 1,\n pageFn: function pageFn(step) {\n return step * 10;\n },\n minDistance: 0,\n defaultValue: 0,\n orientation: 'horizontal',\n className: 'slider',\n thumbClassName: 'thumb',\n thumbActiveClassName: 'active',\n trackClassName: 'track',\n markClassName: 'mark',\n withTracks: true,\n pearling: false,\n disabled: false,\n snapDragDisabled: false,\n invert: false,\n marks: [],\n renderThumb: function renderThumb(props) {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n __self: ReactSlider,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 31\n }\n }));\n },\n renderTrack: function renderTrack(props) {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n __self: ReactSlider,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 354,\n columnNumber: 31\n }\n }));\n },\n renderMark: function renderMark(props) {\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n __self: ReactSlider,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 30\n }\n }));\n }\n};\nReactSlider.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * The minimum value of the slider.\n */\n min: PropTypes.number,\n\n /**\n * The maximum value of the slider.\n */\n max: PropTypes.number,\n\n /**\n * Value to be added or subtracted on each step the slider makes.\n * Must be greater than zero.\n * `max - min` should be evenly divisible by the step value.\n */\n step: PropTypes.number,\n\n /**\n * The result of the function is the value to be added or subtracted\n * when the `Page Up` or `Page Down` keys are pressed.\n *\n * The current `step` value will be passed as the only argument.\n * By default, paging will modify `step` by a factor of 10.\n */\n pageFn: PropTypes.func,\n\n /**\n * The minimal distance between any pair of thumbs.\n * Must be positive, but zero means they can sit on top of each other.\n */\n minDistance: PropTypes.number,\n\n /**\n * Determines the initial positions of the thumbs and the number of thumbs.\n *\n * If a number is passed a slider with one thumb will be rendered.\n * If an array is passed each value will determine the position of one thumb.\n * The values in the array must be sorted.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n /**\n * Like `defaultValue` but for\n * [controlled components](http://facebook.github.io/react/docs/forms.html#controlled-components).\n */\n // eslint-disable-next-line zillow/react/require-default-props\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n /**\n * Determines whether the slider moves horizontally (from left to right)\n * or vertically (from top to bottom).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The css class set on the slider node.\n */\n className: PropTypes.string,\n\n /**\n * The css class set on each thumb node.\n *\n * In addition each thumb will receive a numbered css class of the form\n * `${thumbClassName}-${i}`, e.g. `thumb-0`, `thumb-1`, ...\n */\n thumbClassName: PropTypes.string,\n\n /**\n * The css class set on the thumb that is currently being moved.\n */\n thumbActiveClassName: PropTypes.string,\n\n /**\n * If `true` tracks between the thumbs will be rendered.\n */\n withTracks: PropTypes.bool,\n\n /**\n * The css class set on the tracks between the thumbs.\n * In addition track fragment will receive a numbered css class of the form\n * `${trackClassName}-${i}`, e.g. `track-0`, `track-1`, ...\n */\n trackClassName: PropTypes.string,\n\n /**\n * If `true` the active thumb will push other thumbs\n * within the constraints of `min`, `max`, `step` and `minDistance`.\n */\n pearling: PropTypes.bool,\n\n /**\n * If `true` the thumbs can't be moved.\n */\n disabled: PropTypes.bool,\n\n /**\n * Disables thumb move when clicking the slider track\n */\n snapDragDisabled: PropTypes.bool,\n\n /**\n * Inverts the slider.\n */\n invert: PropTypes.bool,\n\n /**\n * Shows passed marks on the track, if true it shows all the marks,\n * if an array of numbers it shows just the passed marks, if a number is passed\n * it shows just the marks in that steps: like passing 3 shows the marks 3, 6, 9\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.bool, PropTypes.number]),\n\n /**\n * The css class set on the marks.\n */\n markClassName: PropTypes.string,\n\n /**\n * Callback called before starting to move a thumb. The callback will only be called if the\n * action will result in a change. The function will be called with two arguments, the first\n * being the initial value(s) the second being thumb index.\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onBeforeChange: PropTypes.func,\n\n /**\n * Callback called on every value change.\n * The function will be called with two arguments, the first being the new value(s)\n * the second being thumb index.\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onChange: PropTypes.func,\n\n /**\n * Callback called only after moving a thumb has ended. The callback will only be called if\n * the action resulted in a change. The function will be called with two arguments, the\n * first being the result value(s) the second being thumb index.\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line zillow/react/require-default-props, zillow/react/no-unused-prop-types\n onAfterChange: PropTypes.func,\n\n /**\n * Callback called when the the slider is clicked (thumb or tracks).\n * Receives the value at the clicked position as argument.\n */\n // eslint-disable-next-line zillow/react/require-default-props\n onSliderClick: PropTypes.func,\n\n /**\n * aria-label for screen-readers to apply to the thumbs.\n * Use an array for more than one thumb.\n * The length of the array must match the number of thumbs in the value array.\n */\n // eslint-disable-next-line zillow/react/require-default-props\n ariaLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * aria-labelledby for screen-readers to apply to the thumbs.\n * Used when slider rendered with separate label.\n * Use an array for more than one thumb.\n * The length of the array must match the number of thumbs in the value array.\n */\n // eslint-disable-next-line zillow/react/require-default-props\n ariaLabelledby: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * aria-valuetext for screen-readers.\n * Can be a static string, or a function that returns a string.\n * The function will be passed a single argument,\n * an object with the following properties:\n *\n * state => `Value: ${state.value}`\n *\n * - `state.index` {`number`} the index of the thumb\n * - `state.value` {`number` | `array`} the current value state\n * - `state.valueNow` {`number`} the value of the thumb (i.e. aria-valuenow)\n */\n // eslint-disable-next-line zillow/react/require-default-props\n ariaValuetext: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Provide a custom render function for the track node.\n * The render function will be passed two arguments,\n * an object with props that should be added to your handle node,\n * and an object with track and slider state:\n *\n * (props, state) =>
    \n *\n * - `props` {`object`} props to be spread into your track node\n * - `state.index` {`number`} the index of the track\n * - `state.value` {`number` | `array`} the current value state\n */\n renderTrack: PropTypes.func,\n\n /**\n * Provide a custom render function for dynamic thumb content.\n * The render function will be passed two arguments,\n * an object with props that should be added to your thumb node,\n * and an object with thumb and slider state:\n *\n * (props, state) =>
    \n *\n * - `props` {`object`} props to be spread into your thumb node\n * - `state.index` {`number`} the index of the thumb\n * - `state.value` {`number` | `array`} the current value state\n * - `state.valueNow` {`number`} the value of the thumb (i.e. aria-valuenow)\n */\n // eslint-disable-next-line zillow/react/require-default-props\n renderThumb: PropTypes.func,\n\n /**\n * Provide a custom render function for the mark node.\n * The render function will be passed one argument,\n * an object with props that should be added to your handle node\n *\n * (props) => \n *\n * - `props` {`object`} props to be spread into your track node\n */\n renderMark: PropTypes.func\n} : {};\nexport default ReactSlider;","import React, { useCallback } from \"react\";\r\nimport ReactSlider from \"react-slider\";\r\n\r\nimport \"./RangeSlider.scss\";\r\nimport { coalesce } from \"./shared/helpers\";\r\n\r\nexport type RangeValue = { min: number; max: number };\r\n\r\ninterface Props {\r\n value: RangeValue;\r\n onChange: (value: RangeValue) => void;\r\n onAfterChange?: (value: RangeValue) => void;\r\n minText?: string;\r\n maxText?: string;\r\n min: number;\r\n max: number;\r\n /**\r\n * If this is true when it will set the min or max value to null, if the current selected value is the same as the minimum and maximum value.\r\n * For example. Say that you have a max of 4 bathrooms in the RangeSlider.\r\n * Now there is a house with 5 bathrooms. If you set 'replaceEdgeValuesWithNull' to false it will add both the min (0) and max (4) values to the SearchContext.\r\n * If 'replaceEdgeValuesWithNull' is true it will not add any of the parameters as both will be null that there value is on the \"edge\" of the slider\r\n **/\r\n replaceEdgeValuesWithNull?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport default function RangeSlider({\r\n value,\r\n onChange,\r\n onAfterChange,\r\n minText,\r\n maxText,\r\n min,\r\n max,\r\n replaceEdgeValuesWithNull = true,\r\n disabled,\r\n}: Props) {\r\n let displayValue = [coalesce(value?.min, min), coalesce(value?.max, max)];\r\n\r\n function getThumbText(value: number) {\r\n if (value == min && minText) {\r\n return minText;\r\n }\r\n\r\n if (value == max && maxText) {\r\n return maxText;\r\n }\r\n\r\n return value.toString();\r\n }\r\n\r\n const convertValue = useCallback(\r\n (value: number[]) => {\r\n let val = { min: value[0], max: value[1] };\r\n if (replaceEdgeValuesWithNull && value[0] == min) {\r\n val.min = null;\r\n }\r\n if (replaceEdgeValuesWithNull && value[1] == max) {\r\n val.max = null;\r\n }\r\n return val;\r\n },\r\n [replaceEdgeValuesWithNull, min, max]\r\n );\r\n\r\n return (\r\n `Thumb value ${state.valueNow}`}\r\n onAfterChange={(v) => onAfterChange && onAfterChange(convertValue(v as number[]))}\r\n onChange={(v) => onChange(convertValue(v as number[]))}\r\n renderThumb={(props, state) => (\r\n
    \r\n {getThumbText(state.valueNow)}\r\n
    \r\n )}\r\n pearling\r\n disabled={disabled}\r\n />\r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./FieldWithLabel.scss\";\r\nimport RangeSlider from \"./RangeSlider\";\r\nimport \"./RangeSliderWithLabel.scss\";\r\nexport interface RangeSliderWithLabelProps extends React.ComponentProps {\r\n label: string;\r\n}\r\n\r\nexport default function RangeSliderWithLabel(props: RangeSliderWithLabelProps) {\r\n const sliderProps = { ...props };\r\n delete sliderProps.label;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import { SearchBoxSettings } from \"./shared/types\";\r\nimport { RangeValue } from \"./RangeSlider\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport RangeSliderWithLabel from \"./RangeSliderWithLabel\";\r\n\r\nexport default function SearchBoxRangeFilter({\r\n filter,\r\n value,\r\n onChange,\r\n disabled,\r\n}: {\r\n filter: SearchBoxSettings[\"rangeFacilities\"][0];\r\n value: RangeValue;\r\n onChange: (value: RangeValue) => void;\r\n disabled?: boolean;\r\n}) {\r\n const [intermediateValue, setIntermediateValue] = useState(value);\r\n\r\n useEffect(() => {\r\n setIntermediateValue(value);\r\n }, [value]);\r\n\r\n return (\r\n setIntermediateValue(value)}\r\n onAfterChange={onChange}\r\n disabled={disabled}\r\n />\r\n );\r\n}\r\n","import { SearchContext } from \"./searchcontext\";\r\nimport { useCallback, useEffect, useState } from \"react\";\r\nimport { isBrowser } from \"./helpers\";\r\n\r\n/**\r\n * A hook that supplies access to a SearchContext instance.\r\n */\r\nexport default function usePassiveGlobalSearchContext() {\r\n let [searchContext, setSearchContext] = useState();\r\n\r\n useEffect(() => {\r\n if (isBrowser()) {\r\n const listener = (e: { detail: SearchContext }) => {\r\n setSearchContext(e.detail);\r\n };\r\n\r\n window.addEventListener(\"searchContextUpdated\", listener as any);\r\n\r\n return () => {\r\n window.removeEventListener(\"searchContextUpdated\", listener as any);\r\n };\r\n }\r\n }, []);\r\n\r\n const handleSetSearchContext = useCallback((searchContext: SearchContext) => {\r\n if (isBrowser()) {\r\n window.dispatchEvent(\r\n new CustomEvent(\"passiveSearchContextUpdated\", { detail: searchContext })\r\n );\r\n } else {\r\n throw \"Global Search Context does not supporting setting the value outside of a browser context\";\r\n }\r\n }, []);\r\n\r\n return [searchContext, handleSetSearchContext] as [\r\n SearchContext,\r\n (searchContext: SearchContext) => void\r\n ];\r\n}\r\n","import React from \"react\";\r\nimport { ButtonType } from \"./shared/types\";\r\n\r\nimport \"./Button.scss\";\r\n\r\nexport interface ButtonProps {\r\n type?: ButtonType;\r\n onClick?: (e?: React.MouseEvent | React.TouchEvent) => void;\r\n children: React.ReactNode;\r\n submitButton?: boolean;\r\n icon?: () => JSX.Element;\r\n noWrap?: boolean;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport default function Button({\r\n type,\r\n onClick,\r\n submitButton,\r\n children,\r\n icon,\r\n noWrap,\r\n className,\r\n disabled,\r\n}: ButtonProps) {\r\n const classNames = [\"bwp-button\"];\r\n if (type && type !== \"default\") {\r\n classNames.push(`bwp-button--${type}`);\r\n }\r\n if (noWrap) {\r\n classNames.push(`bwp-button--nowrap`);\r\n }\r\n\r\n let Icon = icon;\r\n\r\n let body = children;\r\n\r\n if (Icon != null) {\r\n classNames.push(\"bwp-button--with-icon\");\r\n\r\n body = (\r\n <>\r\n
    {children}
    \r\n \r\n \r\n );\r\n }\r\n\r\n if (className != null) {\r\n classNames.push(className);\r\n }\r\n\r\n return (\r\n \r\n {body}\r\n \r\n );\r\n}\r\n","import * as React from 'react'\r\nimport {useEffect, useState} from \"react\";\r\n\r\ninterface AnimatedCounterProps {\r\n number: number;\r\n}\r\n\r\nexport default function AnimatedCounter({ number }: AnimatedCounterProps) {\r\n\r\n const [currentNumber, setCurrentNumber] = useState(0);\r\n const [timer, setTimer] = useState(null);\r\n \r\n useEffect(() => {\r\n if (number != currentNumber) {\r\n // After each render we set the timer to null.\r\n // If we have a timer at this point we clear it\r\n // as we are about to schedule a new render.\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n const newTimer = setTimeout(() => {\r\n if (currentNumber != number) {\r\n const change = (currentNumber < number) ? 1 : -1;\r\n // Setting the currentNumber in state here\r\n // triggers useEffect(...) to run again \r\n // as currentNumber is listed as a dependency.\r\n setCurrentNumber(currentNumber + change);\r\n }\r\n setTimer(null);\r\n }, 5);\r\n // Schedule the next frame to run in 5 milliseconds\r\n setTimer(newTimer);\r\n }\r\n }, [number, currentNumber]);\r\n \r\n return (\r\n {currentNumber}\r\n );\r\n\r\n\r\n \r\n\r\n}","import React from \"react\";\r\n\r\nexport function CloseIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport { isBrowser } from \"./helpers\";\r\nimport { parse, stringify } from \"query-string\";\r\n\r\nexport default function useQueryString(name: string, defaultValue: string | null = null) {\r\n const value = getQueryString(name);\r\n const [internalValue, setInternalValue] = useState(value); // used to trigger updates of react\r\n const eventName = \"onQueryStringChanged_\" + name;\r\n\r\n let parsedValue = value;\r\n\r\n if (value == null) {\r\n parsedValue = defaultValue;\r\n }\r\n\r\n function setValue(value: string) {\r\n const url = updateQueryStringParameter(window.location.search, name, value);\r\n window.history.replaceState(null, null, url);\r\n setInternalValue(value);\r\n window.dispatchEvent(new CustomEvent(eventName));\r\n }\r\n\r\n useEffect(() => {\r\n const handler = () => {\r\n const value = getQueryString(name);\r\n if (value != internalValue) {\r\n setInternalValue(value);\r\n }\r\n };\r\n\r\n window.addEventListener(eventName, handler);\r\n\r\n return () => {\r\n window.removeEventListener(eventName, handler);\r\n };\r\n }, [eventName, internalValue, name]);\r\n\r\n return [parsedValue, setValue] as [string | null, (value: string | null) => void];\r\n}\r\n\r\nexport function getQueryString(name: string): string {\r\n let location = isBrowser() ? window.location.href : globalUrl;\r\n\r\n let match = RegExp(\"[?&]\" + name + \"=([^&]*)\", \"i\").exec(location);\r\n return match && decodeURIComponent(match[1].replace(/\\+/g, \" \"));\r\n}\r\n\r\nexport function updateQueryStringParameter(uri, key, value) {\r\n let qs = parse(uri);\r\n\r\n if (value !== null && value !== undefined) {\r\n qs[key] = value.toString();\r\n } else {\r\n delete qs[key];\r\n }\r\n let stringQs = stringify(qs);\r\n if (stringQs.length > 0) {\r\n return uri.split(\"?\")[0] + \"?\" + stringify(qs);\r\n } else {\r\n return uri.split(\"?\")[0];\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./NumberPicker.scss\";\r\n\r\nexport interface NumberPickerProps {\r\n value: number;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n onChange: (newValue: number) => void;\r\n}\r\n\r\nexport default function NumberPicker({ value, step, min, max, onChange }: NumberPickerProps) {\r\n const handleMinusClick = (e: React.MouseEvent | React.TouchEvent) => {\r\n e.preventDefault();\r\n const stepValue = typeof step !== \"undefined\" ? step : 1;\r\n onChange(value - stepValue);\r\n };\r\n\r\n const handlePlusClick = (e: React.MouseEvent | React.TouchEvent) => {\r\n e.preventDefault();\r\n const stepValue = typeof step !== \"undefined\" ? step : 1;\r\n onChange(value + stepValue);\r\n };\r\n\r\n const canMinus = typeof min !== \"undefined\" ? value > min : true;\r\n\r\n const canPlus = typeof max !== \"undefined\" ? value < max : true;\r\n\r\n return (\r\n
    \r\n \r\n -\r\n \r\n
    {value}
    \r\n \r\n +\r\n \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport \"./FieldWithLabel.scss\";\r\nimport { SearchBoxTranslations } from \"./translations/SearchBoxTranslations\";\r\nimport { isBrowser, pluralize } from \"./shared/helpers\";\r\nimport NumberPicker from \"./NumberPicker\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { usePopper } from \"react-popper\";\r\nimport useOnClickOutside from \"./shared/useOnClickOutside\";\r\n\r\nexport interface PeopleValue {\r\n adults: number;\r\n children: number;\r\n infants?: number;\r\n pets?: number;\r\n}\r\n\r\nexport interface PeopleWithLabelProps {\r\n label: string;\r\n value: PeopleValue;\r\n onChange: (value: PeopleValue) => void;\r\n maxPersons: number;\r\n translations: SearchBoxTranslations;\r\n showLabelAsPersons?: boolean;\r\n warningMessage?: string;\r\n showInfants?: boolean;\r\n peopleSummaryMaxWidth?: number;\r\n}\r\n\r\nexport default function PeopleSelectWithLabel({\r\n label,\r\n value = { adults: 0, children: 0, infants: 0, pets: 0 },\r\n onChange,\r\n translations,\r\n maxPersons,\r\n showLabelAsPersons,\r\n warningMessage,\r\n showInfants,\r\n peopleSummaryMaxWidth\r\n}: PeopleWithLabelProps): JSX.Element {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const [referenceElement, setReferenceElement] = useState(null);\r\n const [popperElement, setPopperElement] = useState(null);\r\n const [div, setDiv] = useState(null);\r\n \r\n const [inputWidth, setInputWidth] = useState(null);\r\n const inputContainerRef = useRef(null);\r\n\r\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\r\n placement: 'bottom-start' \r\n }); \r\n\r\n useOnClickOutside([{ current: referenceElement }, { current: popperElement }], (event) => {\r\n setIsOpen(false);\r\n })\r\n\r\n // Setup the portal container\r\n useEffect(() => {\r\n if (!div && isBrowser()) {\r\n const newDiv = document.createElement(\"div\");\r\n document.body.appendChild(newDiv);\r\n setDiv(newDiv);\r\n }\r\n\r\n return () => {\r\n if (div && isBrowser()) {\r\n document.body.removeChild(div);\r\n setDiv(null);\r\n }\r\n };\r\n }, [div]);\r\n\r\n // Setup close on Esc key and tab key\r\n useEffect(() => {\r\n const listener = (event: KeyboardEvent): any => {\r\n if (event.key === \"Escape\" || event.key === \"Tab\") {\r\n setIsOpen(false);\r\n }\r\n };\r\n\r\n document.addEventListener(\"keydown\", listener);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", listener);\r\n }\r\n });\r\n \r\n // Setup the text value so that it changes in accordance to the screen size\r\n useEffect(() => {\r\n let resizeObserver = null;\r\n if (inputContainerRef.current) {\r\n if (typeof ResizeObserver === \"function\") {\r\n resizeObserver = new ResizeObserver(entries => {\r\n for (let entry of entries) {\r\n if (entry.contentBoxSize[0]) {\r\n setInputWidth(entry.contentBoxSize[0].inlineSize);\r\n\r\n }\r\n }\r\n });\r\n resizeObserver.observe(inputContainerRef.current);\r\n } else {\r\n let width = inputContainerRef.current.getBoundingClientRect().width;\r\n setInputWidth(width);\r\n }\r\n }\r\n \r\n return () => {\r\n if (resizeObserver) {\r\n resizeObserver.disconnect();\r\n }\r\n };\r\n }, [inputContainerRef]);\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setIsOpen(true);\r\n } else if (event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setIsOpen(false);\r\n }\r\n };\r\n \r\n const defaultThreshold = showInfants \r\n ? 650 \r\n : 500;\r\n\r\n const threshold = peopleSummaryMaxWidth || defaultThreshold;\r\n const labelAsPersons = showLabelAsPersons || (typeof inputWidth === \"number\" && inputWidth < threshold) \r\n ? (\r\n <>{pluralize(value.adults + value.children + (value.infants || 0), translations.person)}\r\n )\r\n : (\r\n <>\r\n {pluralize(value.adults, translations.adult)}\r\n {\", \"}\r\n {pluralize(value.children, translations.child)}\r\n {(showInfants && value.infants > 0) && (\r\n <>\r\n {\", \"}\r\n {pluralize(value.infants, translations.infant)}\r\n \r\n )}\r\n \r\n );\r\n \r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n { setIsOpen(!isOpen) }}\r\n onKeyDown={handleKeyDown}\r\n >\r\n {labelAsPersons}\r\n \r\n
    \r\n
    \r\n {isOpen && (isBrowser() && div) && ReactDOM.createPortal(\r\n
    \r\n
    \r\n
    {translations.adults}
    \r\n \r\n onChange({ adults, children: value.children, infants: value.infants})\r\n }\r\n />\r\n
    \r\n
    \r\n
    {translations.children}
    \r\n \r\n onChange({ adults: value.adults, children, infants: value.infants})\r\n }\r\n />\r\n
    \r\n {showInfants && ( \r\n
    \r\n
    {translations.infants}
    \r\n \r\n onChange({adults: value.adults, children: value.children, infants})\r\n }\r\n />\r\n
    \r\n )}\r\n
    \r\n

    {warningMessage}

    \r\n
    \r\n
    \r\n , div)}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport \"./FilterPanel.scss\";\r\nimport SelectWithLabel from \"./SelectWithLabel\";\r\nimport CheckBoxWithLabel from \"./CheckBoxWithLabel\";\r\nimport { DurationSelectWithLabel } from \"./DurationSelectWithLabel\";\r\nimport { NumberSelectWithLabel } from \"./NumberSelectWithLabel\";\r\nimport DatePickerWithLabel from \"./DatePickerWithLabel\";\r\nimport { createDayManipulatorWithHighlightDays, SelectionMode } from \"./DatePicker\";\r\nimport {SearchBoxProps, SearchBoxSettings} from \"./shared/types\";\r\nimport SearchBoxRangeFilter from \"./SearchBoxRangeFilter\";\r\nimport usePassiveGlobalSearchContext from \"./shared/usePassiveGlobalSearchContext\";\r\nimport Button from \"./Button\";\r\nimport AnimatedCounter from \"./AnimatedCounter\";\r\nimport { CloseIcon } from \"./CloseIcon\";\r\nimport useQueryString from \"./shared/useQueryString\";\r\nimport PeopleSelectWithLabel from \"./PeopleSelectWithLabel\";\r\n\r\ninterface FilterPanelProps {\r\n searchBox: SearchBoxProps;\r\n culture: string;\r\n}\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"searchBox.translations\": \"SearchBox\",\r\n \"searchBox.datePickerTranslations\": \"DatePicker\"\r\n };\r\n}\r\n\r\nexport default function SearchBox({ searchBox, culture }: FilterPanelProps) {\r\n const [searchContext, setSearchContext] = usePassiveGlobalSearchContext();\r\n const [open, setOpen] = useState(false);\r\n const [numberOfSearchResults, setNumberOfSearchResults] = useState(null);\r\n const [sorting, setSorting] = useQueryString(\"ord\", null);\r\n\r\n useEffect(() => {\r\n const body = document.querySelector(\"body\");\r\n const bounds = body.getBoundingClientRect();\r\n if (bounds.width < 768) {\r\n if (open) {\r\n body.classList.add(\"bwp-noscroll\");\r\n } else {\r\n body.classList.remove(\"bwp-noscroll\");\r\n }\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n let listener = (e: { detail: number }) => {\r\n setNumberOfSearchResults(e.detail);\r\n };\r\n\r\n window.addEventListener(\"numberOfSearchResultsUpdated\", listener as any);\r\n\r\n return () => {\r\n window.removeEventListener(\"numberOfSearchResultsUpdated\", listener as any);\r\n };\r\n });\r\n\r\n if (searchContext == null) {\r\n return
    ;\r\n }\r\n\r\n if (searchBox == null) {\r\n return (\r\n
    \r\n Please choose search box settings.\r\n
    \r\n );\r\n }\r\n\r\n const translations = searchBox.translations;\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Grid.scss\";\r\n\r\nexport interface Row {\r\n className: string;\r\n cells: React.ReactNode[];\r\n}\r\n\r\nexport interface Props {\r\n rows: Row[];\r\n autoShade: boolean;\r\n}\r\n\r\nexport default function Grid({ rows, autoShade }: Props) {\r\n const cellClassNames = (index) => {\r\n if (!autoShade) {\r\n return \"bwp-sb-cell\";\r\n }\r\n\r\n const shades = [\"lightest\", \"lighter\", \"light\", \"base\", \"dark\", \"darker\", \"darkest\"];\r\n const shade = shades[index % shades.length];\r\n return [\"bwp-sb-cell\", `bwp-sb-cell-${shade}`].join(\" \");\r\n };\r\n\r\n const createCell = (content: React.ReactNode, rowNumber: number, index: number) => {\r\n if (typeof content === \"string\") {\r\n return (\r\n
    \r\n {content}\r\n
    \r\n );\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n \r\n {rows.map((row, index) => (\r\n
    \r\n {row.cells.map((cell, cellIndex) => createCell(cell, index, cellIndex))}\r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Article.scss\";\r\n\r\nexport default function Article() {\r\n return (\r\n
    \r\n
    \r\n

    This our beautiful headline

    \r\n

    \r\n Lorem, ipsum dolor sit amet consectetur adipisicing elit. Placeat, eligendi\r\n dolores assumenda consequuntur beatae eius sapiente! Eum animi aspernatur,\r\n tenetur debitis dolor ab illo incidunt voluptatum laudantium laboriosam neque\r\n suscipit?\r\n

    \r\n

    \r\n Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsa magnam dolor\r\n architecto asperiores inventore blanditiis iusto, molestias molestiae!\r\n Repellendus obcaecati corporis vitae debitis aliquam ipsam hic, est laudantium\r\n labore? Explicabo.\r\n

    \r\n
      \r\n
    • This is the first item
    • \r\n
    • This is the second item
    • \r\n
    • This is the third item
    • \r\n
    • This is the forth item
    • \r\n
    \r\n

    \r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Labore modi\r\n reprehenderit quisquam! Laboriosam accusantium corrupti incidunt illum sapiente!\r\n Consequuntur iste laboriosam quod harum, quae impedit quas ut sequi modi nemo!\r\n

    \r\n
      \r\n
    1. First we do this
    2. \r\n
    3. Second we do this
    4. \r\n
    5. Third we do this
    6. \r\n
    7. Forth we do this
    8. \r\n
    \r\n

    This is a second level headline

    \r\n

    \r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore officiis\r\n autem, explicabo quidem quasi harum quas iusto architecto ad sunt, adipisci\r\n accusantium qui maxime iste laudantium. Quisquam nihil corrupti doloremque.\r\n

    \r\n

    This is a third level headline

    \r\n

    \r\n Lorem ipsum dolor, sit amet consectetur adipisicing elit. Itaque pariatur\r\n placeat provident, neque ex quibusdam iste, accusamus eum laboriosam cum\r\n cupiditate, recusandae voluptas ad atque quia libero eveniet! Accusamus,\r\n tempora.\r\n

    \r\n

    \r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Amet at numquam\r\n mollitia ab, ipsa possimus reprehenderit ad sapiente nulla modi perferendis\r\n inventore repellat non. Reiciendis modi neque debitis vitae sed?\r\n

    \r\n

    Another third level headline

    \r\n

    \r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel veniam nemo quos!\r\n Sunt alias sed placeat quas dignissimos quo saepe voluptatibus, voluptates enim\r\n in reiciendis libero laborum voluptatem, impedit nam?\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Days of the weekOpening hours
    Mon-Thur08:00 - 16:00
    Friday08:00 - 18:00
    Saturday and Sunday07:30 - 20:00
    \r\n

    \r\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora hic iusto\r\n neque nobis id pariatur deleniti non consequatur aperiam laborum? Accusantium,\r\n asperiores nisi reiciendis aliquam nihil velit error. Unde, mollitia.\r\n

    \r\n

    What our customers say about us

    \r\n

    \r\n Lorem, ipsum dolor sit amet consectetur adipisicing elit. Laudantium in iure\r\n nulla debitis dolor, aliquid fugit rerum facere, dolorem quos illo quaerat hic\r\n doloremque, necessitatibus doloribus aspernatur corrupti sequi odit.\r\n

    \r\n
    They really deliver on every promise!
    \r\n

    \r\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis libero, culpa\r\n suscipit explicabo laboriosam qui eaque provident adipisci repellendus,\r\n quibusdam facere nostrum corporis iste illo aliquid sint magni. Dolores, dolor.\r\n

    \r\n
    Everything worked like a charm. No complains from us.
    \r\n
    \r\n
    \r\n );\r\n}\r\n","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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * as React from \"react\";\r\nimport format from \"date-fns/format\";\r\nimport differenceInCalendarDays from \"date-fns/differenceInCalendarDays\";\r\nimport subDays from \"date-fns/subDays\";\r\nimport * as queryString from \"query-string\";\r\nimport { CalendarValue, FacilityValueComparison } from \"../types\";\r\nimport {isValidDate, facilityKey, defaultDateValue} from \"../helpers\";\r\nimport slugify from \"slugify\";\r\nimport { isDate, parse } from \"date-fns\";\r\n\r\ntype Dictionary = { [key: string]: string };\r\nconst contextPrefix = \"context:\";\r\nexport const IgnoredContextNames = [\"lodging-address1\", \"lodging-name\", \"lodging-location\"];\r\n\r\nfunction parseQueryStringDate(date: string | string[]) {\r\n if (!date) {\r\n return null;\r\n }\r\n const dateStr = Array.isArray(date) ? date[0] : date;\r\n const tokens = dateStr.split(\"-\");\r\n return new Date(Date.parse(tokens[2] + \"-\" + tokens[0] + \"-\" + tokens[1]));\r\n}\r\n\r\nexport interface SearchContextProps {\r\n adults?: number;\r\n allItemPrices?: boolean;\r\n arrival?: string;\r\n arrivalDensity?: number;\r\n children?: number;\r\n duration?: number;\r\n durations?: number[];\r\n facilityValues?: Dictionary;\r\n infants?: number;\r\n locationIds?: number[];\r\n lodgingId?: number;\r\n lodgingIds?: number[];\r\n page?: number;\r\n pageSize?: number;\r\n pets?: number;\r\n priceFrom?: number;\r\n priceTo?: number;\r\n}\r\n\r\nexport interface SearchContextValues {\r\n adults?: string;\r\n allItemPrices?: string;\r\n arrival?: string;\r\n arrivalDensity?: number;\r\n children?: string;\r\n duration?: string;\r\n durations?: string[];\r\n facilityValues?: Dictionary;\r\n infants?: string;\r\n locationIds?: string[];\r\n lodgingId?: string;\r\n lodgingIds?: string[];\r\n page?: string;\r\n pageSize?: string;\r\n pets?: string;\r\n priceFrom?: string;\r\n priceTo?: string;\r\n}\r\n\r\nexport interface SearchContextRouterOptions {\r\n getPathname?: () => string;\r\n getSearch?: () => string;\r\n}\r\n\r\nexport type RoutePropertyMap = { [key: string]: string };\r\n\r\nexport type RouteValueMap = {\r\n [key: string]: RoutePropertyMap;\r\n};\r\n\r\nexport interface SearchContextRouterConfig {\r\n url: string;\r\n map: RouteValueMap;\r\n}\r\n\r\nexport function serializeNumber(value: number) {\r\n if (value === null || value === undefined) {\r\n throw new Error(\"Argument value for serializeNumber is not valid\");\r\n }\r\n\r\n return value.toString();\r\n}\r\n\r\nexport function deserializeNumber(value: string) {\r\n if (value === null || value === undefined) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(value, 10);\r\n}\r\n\r\nexport function serializeString(value: string) {\r\n if (value === null || value === undefined) {\r\n throw new Error(\"Argument value for serializeString is not valid\");\r\n }\r\n\r\n return slugify(value).toLowerCase();\r\n}\r\n\r\nexport function serializeDate(date: Date) {\r\n if (!isValidDate(date)) {\r\n throw new Error(\"Invalid date given to serializeDate\");\r\n }\r\n\r\n return format(date, \"MM-dd-yyyy\");\r\n}\r\n\r\nexport function deserializeDate(value: string) {\r\n return parseQueryStringDate(value);\r\n}\r\n\r\nexport function serializeNumberArray(numbers: number[]) {\r\n if (numbers === null || numbers === undefined) {\r\n throw new Error(\"Invalid numbers array given to serializeNumbersArray\");\r\n }\r\n\r\n return numbers.join(\",\");\r\n}\r\n\r\nexport function deserializeNumberArray(value: string) {\r\n if (value === null || value === undefined) {\r\n return undefined;\r\n }\r\n\r\n return value\r\n .split(\",\")\r\n .map((p) => parseInt(p, 10))\r\n .filter((n) => !isNaN(n));\r\n}\r\n\r\n/**\r\n * Parses the query object and returns all the keys that start with fac, as a object with the facility id and the value\r\n */\r\nfunction queryStringToFacilityValues(query: any): Dictionary {\r\n const facilityValues: Dictionary = {};\r\n Object.keys(query)\r\n .filter((name) => name.startsWith(\"fac\"))\r\n .forEach((name) => {\r\n facilityValues[name] = query[name];\r\n });\r\n\r\n return facilityValues;\r\n}\r\n\r\n/**\r\n * Parses the query object and returns all the keys that start with context:, as a object with the key and the value\r\n */\r\nfunction queryStringToContextValues(query: any): Dictionary {\r\n const contextValues: Dictionary = {};\r\n Object.keys(query)\r\n .filter((name) => name.startsWith(contextPrefix))\r\n .forEach((name) => {\r\n contextValues[name.substring(contextPrefix.length)] = query[name];\r\n });\r\n\r\n return contextValues;\r\n}\r\n\r\n/**\r\n * The SearchContext is a object that contains information about a search in BookingStudio.\r\n * It can convert to and from a querystring. That querystring can then be converted to a C# SearchContext on the backend and used in the API\r\n */\r\nexport class SearchContext {\r\n private _adults = null as number;\r\n private _allItemPrices = false;\r\n private _arrival = null as Date;\r\n private _arrivalDensity = null as number;\r\n private _children = null as number;\r\n private _contextValues = {} as Dictionary;\r\n private _duration = null as number;\r\n private _durations = null as number[];\r\n private _facilityValues = {} as Dictionary;\r\n private _infants = null as number;\r\n private _locationIds = null as number[];\r\n private _lodgingId = null as number;\r\n private _lodgingIds = null as number[];\r\n private _page = null as number;\r\n private _pageSize = null as number;\r\n private _pets = null as number;\r\n private _preset = null as SearchContext;\r\n private _priceFrom = null as number;\r\n private _priceTo = null as number;\r\n\r\n get pageSize() {\r\n return this._pageSize;\r\n }\r\n\r\n get page() {\r\n return this._page;\r\n }\r\n\r\n get adults() {\r\n return this._adults;\r\n }\r\n get children() {\r\n return this._children;\r\n }\r\n get infants() {\r\n return this._infants;\r\n }\r\n get pets() {\r\n return this._pets;\r\n }\r\n get duration() {\r\n return this._duration;\r\n }\r\n get durations() {\r\n return this._durations;\r\n }\r\n get lodgingId() {\r\n return this._lodgingId;\r\n }\r\n get lodgingIds() {\r\n return this._lodgingIds;\r\n }\r\n get arrival() {\r\n return this._arrival;\r\n }\r\n get arrivalDensity() {\r\n return this._arrivalDensity;\r\n }\r\n get parsedArrival() {\r\n if (!isValidDate(this._arrival)) {\r\n return null;\r\n }\r\n\r\n return {\r\n day: this._arrival.getDate(),\r\n month: this._arrival.getMonth() + 1,\r\n year: this._arrival.getFullYear(),\r\n };\r\n }\r\n get priceFrom() {\r\n return this._priceFrom;\r\n }\r\n get priceTo() {\r\n return this._priceTo;\r\n }\r\n get locationIds() {\r\n return this._locationIds;\r\n }\r\n get facilityValues() {\r\n return this._facilityValues;\r\n }\r\n get allItemPrices() {\r\n return this._allItemPrices;\r\n }\r\n\r\n get contextValues() {\r\n return this._contextValues;\r\n }\r\n\r\n get preset() {\r\n return this._preset;\r\n }\r\n\r\n changeLodging = (lodgingId: number) => {\r\n const clone = this.clone();\r\n clone._lodgingId = lodgingId;\r\n return clone;\r\n };\r\n\r\n changeLodgings = (lodgingIds: number[]) => {\r\n const clone = this.clone();\r\n clone._lodgingIds = lodgingIds;\r\n return clone;\r\n };\r\n\r\n changeDuration = (value: number) => {\r\n const clone = this.clone();\r\n clone._duration = value;\r\n return clone;\r\n };\r\n \r\n changeDurations = (values: number[]) => {\r\n const clone = this.clone();\r\n clone._durations = values;\r\n return clone;\r\n }\r\n\r\n changeAdults = (adults: number) => {\r\n const clone = this.clone();\r\n clone._adults = adults;\r\n return clone;\r\n };\r\n\r\n changeChildren = (children: number) => {\r\n const clone = this.clone();\r\n clone._children = children;\r\n return clone;\r\n };\r\n\r\n changeInfants = (infants: number) => {\r\n const clone = this.clone();\r\n clone._infants = infants;\r\n return clone;\r\n };\r\n\r\n changePets = (pets: number) => {\r\n const clone = this.clone();\r\n clone._pets = pets;\r\n return clone;\r\n };\r\n\r\n changePersons = (adults: number, children: number, infants: number, pets: number) => {\r\n const clone = this.clone();\r\n clone._adults = adults;\r\n clone._children = children;\r\n clone._infants = infants;\r\n clone._pets = pets;\r\n return clone;\r\n };\r\n\r\n changeArrival = (arrival: Date | CalendarValue) => {\r\n let value: Date;\r\n if (isDate(arrival)) {\r\n value = arrival as Date;\r\n } else {\r\n let cArrival = arrival as CalendarValue;\r\n value = new Date(cArrival.year, cArrival.month - 1, cArrival.day, 0, 0, 0);\r\n }\r\n\r\n const clone = this.clone();\r\n clone._arrival = value;\r\n return clone;\r\n };\r\n\r\n changeArrivalDensity = (value: number) => {\r\n const clone = this.clone();\r\n clone._arrivalDensity = value;\r\n return clone;\r\n };\r\n\r\n changeDeparture = (departure: Date) => {\r\n let arrival = this.arrival;\r\n let duration = this.duration;\r\n\r\n // Handle where arrival hasn't been set.\r\n // Set arrival to departure minus duration (default default is one week)\r\n if (!arrival) {\r\n if (duration) {\r\n duration = 7;\r\n }\r\n arrival = subDays(departure, duration);\r\n }\r\n\r\n // Handle where departure is before arrival.\r\n // Move arrival to be same amount before departure\r\n if (differenceInCalendarDays(departure, arrival) < 0) {\r\n arrival = subDays(departure, duration);\r\n }\r\n\r\n const diffInDays = differenceInCalendarDays(departure, arrival);\r\n\r\n let clone = this.changeDuration(diffInDays);\r\n if (arrival !== this.arrival) {\r\n clone = clone.changeArrival(arrival);\r\n }\r\n return clone;\r\n };\r\n\r\n changePage = (value: number) => {\r\n const clone = this.clone();\r\n clone._page = value;\r\n return clone;\r\n };\r\n\r\n changePageSize = (value: number) => {\r\n const clone = this.clone();\r\n clone._pageSize = value;\r\n return clone;\r\n };\r\n\r\n changeLocationId = (locationId: number) => {\r\n const clone = this.clone();\r\n if (locationId !== null) {\r\n clone._locationIds = [locationId];\r\n } else {\r\n clone._locationIds = [];\r\n }\r\n return clone;\r\n };\r\n\r\n changeLocationIds = (locationIds: number[]) => {\r\n const clone = this.clone();\r\n clone._locationIds = locationIds;\r\n return clone;\r\n };\r\n\r\n changeAllItemPrices = (allItemPrices: boolean) => {\r\n const clone = this.clone();\r\n clone._allItemPrices = allItemPrices;\r\n return clone;\r\n };\r\n\r\n changeFacilityValue = (\r\n id: number,\r\n value: string,\r\n comparison: FacilityValueComparison = \"equal\"\r\n ) => {\r\n const clone = this.clone();\r\n clone._facilityValues[facilityKey(id, comparison)] = value;\r\n return clone;\r\n };\r\n\r\n changeContextValue = (name: string, value: string) => {\r\n const clone = this.clone();\r\n clone._contextValues[name] = value;\r\n return clone;\r\n };\r\n\r\n changeFacilityRange = (id: number, range: { min: number; max: number | null }) => {\r\n const clone = this.clone();\r\n clone._facilityValues[facilityKey(id, \"min\")] = range.min?.toString();\r\n clone._facilityValues[facilityKey(id, \"max\")] = range.max?.toString();\r\n return clone;\r\n };\r\n\r\n getFacilityRange = (id: number) => {\r\n if (typeof id === \"undefined\") {\r\n console.error(\"Facility id is undefined\");\r\n return null;\r\n }\r\n \r\n let minRaw = this._facilityValues[facilityKey(id, \"min\")];\r\n let maxRaw = this._facilityValues[facilityKey(id, \"max\")];\r\n\r\n let min: number = null;\r\n let max: number = null;\r\n\r\n if (minRaw !== undefined && minRaw !== null) {\r\n min = parseInt(minRaw);\r\n }\r\n if (maxRaw !== undefined && maxRaw !== null) {\r\n max = parseInt(maxRaw);\r\n }\r\n\r\n return { min, max };\r\n };\r\n\r\n getFacilityEqualValue = (id: number) => {\r\n return this.facilityValues[facilityKey(id, \"equal\")];\r\n };\r\n\r\n canSearchBookingOptions = () => {\r\n return (\r\n (this._adults || 0) + (this._children || 0) > 0 &&\r\n (\r\n (\r\n this._duration &&\r\n this._duration > 0\r\n ) || (\r\n this._durations &&\r\n this._durations.length &&\r\n this._durations.every(dur => dur > 0)\r\n )\r\n ) &&\r\n this._arrival &&\r\n isValidDate(this._arrival)\r\n );\r\n };\r\n\r\n canChangeFacilityValue(facilityId: number) {\r\n if (this.preset == null) {\r\n return true;\r\n } else {\r\n let strFacilityId = \"fac\" + facilityId.toString();\r\n return (\r\n Object.keys(this.preset.facilityValues).every((f) => f != strFacilityId) &&\r\n Object.keys(this.preset.facilityValues).every((f) => f != strFacilityId + \"_min\") &&\r\n Object.keys(this.preset.facilityValues).every((f) => f != strFacilityId + \"_max\")\r\n );\r\n }\r\n }\r\n\r\n static createFromQueryStringWithPresetsAndDefaults = (qs: string, presets: SearchContextProps, defaults: SearchContextProps) => {\r\n let fromPresets = presets\r\n ? SearchContext.createFromSearchContextProps(presets)\r\n : null;\r\n let fromQueryString = SearchContext.createFromQueryString(qs);\r\n \r\n if (fromPresets) {\r\n let context = SearchContext.createFromSearchContextProps(defaults).merge(fromQueryString);\r\n context.usePreset(fromPresets);\r\n return context;\r\n }\r\n \r\n return SearchContext.createFromSearchContextProps(defaults).merge(fromQueryString);\r\n };\r\n \r\n /**\r\n * Parses a querystring and returns an instance of the SearchContext\r\n */\r\n static createFromQueryString = (qs: string) => {\r\n const query = queryString.parse(qs);\r\n const instance = new SearchContext();\r\n const parseIntValue = (value: string | string[]) => {\r\n const parsedValue = Array.isArray(value) ? parseInt(value[0], 10) : parseInt(value, 10);\r\n\r\n if (isNaN(parsedValue)) {\r\n return null;\r\n }\r\n\r\n return parsedValue;\r\n };\r\n\r\n const parseFloatValue = (value: string | string[]) => {\r\n const parsedValue = Array.isArray(value) ? parseFloat(value[0]) : parseFloat(value);\r\n\r\n if (isNaN(parsedValue)) {\r\n return null;\r\n }\r\n\r\n return parsedValue;\r\n };\r\n\r\n const parseBooleanValue = (value: string | string[]) => {\r\n return Array.isArray(value)\r\n ? value[0]?.toLowerCase() === \"true\"\r\n : value?.toLowerCase() === \"true\";\r\n };\r\n\r\n instance._page = parseIntValue(query.pge) || 0;\r\n instance._pageSize = parseIntValue(query.psz) || null;\r\n instance._adults = parseIntValue(query.adu);\r\n instance._children = parseIntValue(query.chi);\r\n instance._infants = parseIntValue(query.inf);\r\n instance._pets = parseIntValue(query.pet);\r\n instance._duration = parseIntValue(query.dur);\r\n instance._lodgingId = parseIntValue(query.lod);\r\n instance._lodgingIds = query.lods\r\n ? (query.lods as string).split(\",\").map((x) => parseInt(x, 10))\r\n : [];\r\n instance._arrival = parseQueryStringDate(query.ari);\r\n instance._priceFrom = parseFloatValue(query.prfro);\r\n instance._priceTo = parseFloatValue(query.prto);\r\n instance._locationIds = query.loc\r\n ? (query.loc as string).split(\",\").map((x) => parseInt(x, 10))\r\n : [];\r\n instance._allItemPrices = parseBooleanValue(query.itp);\r\n instance._facilityValues = queryStringToFacilityValues(query);\r\n instance._contextValues = queryStringToContextValues(query);\r\n return instance;\r\n };\r\n\r\n static createFromSearchContextProps = (props: SearchContextProps) => {\r\n const searchContext = new SearchContext();\r\n searchContext._duration = props.duration;\r\n searchContext._durations = props.durations;\r\n searchContext._arrival = parse(props.arrival, \"MM-dd-yyyy\", new Date());\r\n searchContext._adults = props.adults;\r\n searchContext._children = props.children;\r\n searchContext._infants = props.infants;\r\n searchContext._pets = props.pets;\r\n searchContext._locationIds = props.locationIds;\r\n searchContext._facilityValues = props.facilityValues || {};\r\n searchContext._lodgingId = props.lodgingId;\r\n searchContext._lodgingIds = props.lodgingIds;\r\n searchContext._page = props.page || 0;\r\n searchContext._pageSize = props.pageSize || null;\r\n searchContext._allItemPrices = props.allItemPrices || false;\r\n return searchContext;\r\n };\r\n\r\n private buildQuery = (ignored: string[], ignorePresets: boolean) => {\r\n const result = [];\r\n \r\n // We add a element to the querystring and omit empty values\r\n const add = (propertyName: string, qsName: string, value: string) => {\r\n const isIgnored = ignored.indexOf(propertyName) > -1;\r\n if (value && !isIgnored) {\r\n result.push(qsName + \"=\" + encodeURIComponent(value.toString()));\r\n }\r\n };\r\n \r\n const addPart = (propertyName: string, qsName: string, value: string | number, preset: string | number) => {\r\n if (preset && !ignorePresets) {\r\n add(propertyName, qsName, preset.toString());\r\n } else if (value) {\r\n add(propertyName, qsName, value.toString());\r\n }\r\n };\r\n\r\n const addBooleanPart = (propertyName: string, qsName: string, value: boolean, preset: boolean) => {\r\n if (typeof preset === \"boolean\" && !ignorePresets) {\r\n add(propertyName, qsName, preset ? \"true\" : \"\");\r\n } else if (typeof value === \"boolean\") {\r\n add(propertyName, qsName, value ? \"true\" : \"\");\r\n }\r\n }; \r\n \r\n const addMultiPart = (propertyName: string, qsName: string, value: string[] | number[], preset: string[] | number[]) => {\r\n if (preset && preset.length && !ignorePresets) {\r\n const sorted = [...preset];\r\n sorted.sort();\r\n add(propertyName, qsName, sorted.join(\",\"));\r\n } else if (value && value.length) {\r\n const sorted = [...value];\r\n sorted.sort();\r\n add(propertyName, qsName, sorted.join(\",\"));\r\n }\r\n };\r\n \r\n const addDatePart = (propertyName: string, qsName: string, value: Date, preset: Date) => {\r\n if (preset && isValidDate(preset) && !ignorePresets) {\r\n add(propertyName, qsName, format(preset, \"MM-dd-yyyy\"));\r\n } else if (value && isValidDate(value)) {\r\n add(propertyName, qsName, format(value, \"MM-dd-yyyy\"));\r\n }\r\n };\r\n \r\n const addKeyedValues = (value: Dictionary, preset: Dictionary, prefix: string = \"\") => {\r\n const valueKeys = Object.keys(value ?? {});\r\n const presetKeys = ignorePresets\r\n ? []\r\n : Object.keys(preset ?? {});\r\n \r\n const keys = presetKeys.concat(valueKeys.filter(k => presetKeys.indexOf(k) === -1));\r\n keys.sort();\r\n \r\n keys.forEach(key => addPart(key, prefix + key, value?.[key], preset?.[key]));\r\n }\r\n \r\n addPart(\"adults\", \"adu\", this.adults, this.preset?.adults);\r\n addPart(\"children\", \"chi\", this.children, this.preset?.children);\r\n addPart(\"infants\", \"inf\", this.infants, this.preset?.infants);\r\n addPart(\"pets\", \"pet\", this.pets, this.preset?.pets);\r\n if (typeof this.duration === \"number\" && this.duration > 0) {\r\n addPart(\"duration\", \"dur\", this.duration, this.preset?.duration); \r\n } else if (Array.isArray(this.durations) && this.durations.length) {\r\n addMultiPart(\"durations\", \"dur\", this.durations, this.preset?.durations);\r\n }\r\n addPart(\"lodgingId\", \"lod\", this.lodgingId, this.preset?.lodgingId);\r\n addMultiPart(\"lodgingIds\", \"lods\", this.lodgingIds, this.preset?.lodgingIds);\r\n addDatePart(\"arrival\", \"ari\", this.arrival, this.preset?.arrival);\r\n addPart(\"arrivalDensity\", \"ari_density\", this.arrivalDensity, this.preset?.arrivalDensity);\r\n addPart(\"priceFrom\", \"prfro\", this.priceFrom, this.preset?.priceFrom);\r\n addPart(\"priceTo\", \"prto\", this.priceTo, this.preset?.priceTo);\r\n addPart(\"page\", \"pge\", this.page, this.preset?.page);\r\n addPart(\"pageSize\", \"psz\", this.pageSize, this.preset?.pageSize);\r\n addMultiPart(\"locationIds\", \"loc\", this.locationIds, this.preset?.locationIds);\r\n addBooleanPart(\"allItemPrices\", \"itp\", this.allItemPrices, this.preset?.allItemPrices);\r\n addKeyedValues(this.facilityValues, this.preset?.facilityValues);\r\n addKeyedValues(this.contextValues, null, contextPrefix);\r\n\r\n // We combine the parts and returns the result\r\n return result.join(\"&\");\r\n };\r\n\r\n /**\r\n * Converts the SearchContext to a querystring that can be used in the backend. Is not prefixed by \"?\"\r\n */\r\n public toQueryString = (ignored: string[] = [], ignorePresets: boolean = false) => {\r\n const ignoredParams = [...IgnoredContextNames].concat(ignored);\r\n return this.buildQuery(ignoredParams, ignorePresets);\r\n }\r\n \r\n public toServerQuery = () => {\r\n return this.buildQuery([], false);\r\n }\r\n\r\n public toUrl(router: SearchContextRouter) {\r\n return router.makeUrl(this);\r\n }\r\n\r\n toProps = (): SearchContextProps => {\r\n let merged: SearchContext = this.clone();\r\n if (this.preset) {\r\n merged.merge(this.preset);\r\n }\r\n \r\n const props: SearchContextProps = {};\r\n props.adults = merged.adults;\r\n props.children = merged.children;\r\n props.infants = merged.infants;\r\n props.pets = merged.pets;\r\n props.duration = merged.duration;\r\n props.durations = merged.durations;\r\n props.arrival = isValidDate(merged.arrival)\r\n ? format(merged.arrival, \"MM-dd-yyyy\")\r\n : undefined;\r\n props.page = merged.page;\r\n props.pageSize = merged.pageSize;\r\n props.allItemPrices = merged.allItemPrices;\r\n props.lodgingId = merged.lodgingId;\r\n props.lodgingIds = merged.lodgingIds;\r\n props.facilityValues = merged.facilityValues;\r\n props.locationIds = merged.locationIds;\r\n props.arrivalDensity = merged.arrivalDensity;\r\n props.priceFrom = merged.priceFrom;\r\n props.priceTo = merged.priceTo;\r\n return props;\r\n };\r\n\r\n values = (): SearchContextValues => {\r\n return {\r\n arrival: (this.arrival && format(this.arrival, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")) || \"\",\r\n duration: (this.duration && this.duration.toString()) || \"\",\r\n durations: (Array.isArray(this.durations) && this.durations.length)\r\n ? this.durations.map(d => d.toString())\r\n : [],\r\n adults: this.adults !== null ? this.adults.toString() : \"\",\r\n children: this.children !== null ? this.children.toString() : \"\",\r\n infants: this.infants !== null ? this.infants.toString() : \"\",\r\n pets: this.pets !== null ? this.pets.toString() : \"\",\r\n lodgingId: (this.lodgingId && this.lodgingId.toString()) || \"\",\r\n lodgingIds: this.lodgingIds !== null ? this.lodgingIds.map((id) => id.toString()) : [],\r\n locationIds:\r\n this.locationIds !== null ? this.locationIds.map((id) => id.toString()) : [],\r\n facilityValues: this.facilityValues !== null ? this.facilityValues : {},\r\n page: this.page !== null ? this.page.toString() : \"\",\r\n pageSize: this.pageSize !== null ? this.pageSize.toString() : \"\",\r\n priceFrom: this.priceFrom !== null ? this.priceFrom.toString() : \"\",\r\n priceTo: this.priceTo !== null ? this.priceTo.toString() : \"\",\r\n allItemPrices: this.allItemPrices ? \"true\" : \"false\",\r\n };\r\n };\r\n\r\n clone = () => {\r\n const context = new SearchContext();\r\n context._adults = this._adults;\r\n context._children = this._children;\r\n context._infants = this._infants;\r\n context._pets = this._pets;\r\n context._arrival = this._arrival;\r\n if (typeof this._arrivalDensity === \"number\") context._arrivalDensity = this._arrivalDensity;\r\n context._duration = this._duration;\r\n if (this._durations) context._durations = [ ...this._durations ];\r\n context._lodgingId = this._lodgingId;\r\n if (this._lodgingIds) context._lodgingIds = [ ...this._lodgingIds ];\r\n context._allItemPrices = this._allItemPrices;\r\n if (this._contextValues) context._contextValues = { ...this._contextValues };\r\n if (this._locationIds) context._locationIds = [ ...this._locationIds ];\r\n if (this._facilityValues) context._facilityValues = { ...this._facilityValues };\r\n if (this._locationIds) context._locationIds = [ ...this._locationIds ];\r\n context._page = this._page;\r\n context._pageSize = this._pageSize;\r\n context._priceFrom = this._priceFrom;\r\n context._priceTo = this._priceTo;\r\n if (this._preset) context._preset = this._preset.clone();\r\n return context;\r\n };\r\n\r\n merge(other: SearchContext) {\r\n \r\n if (typeof other._adults === \"number\") this._adults = other._adults;\r\n if (typeof other._children === \"number\") this._children = other._children;\r\n if (typeof other._infants === \"number\") this._infants = other._infants;\r\n if (typeof other._pets === \"number\") this._pets = other._pets;\r\n if (isValidDate(other._arrival)) this._arrival = other._arrival;\r\n if (typeof other._arrivalDensity === \"number\") this._arrivalDensity = other._arrivalDensity;\r\n if (typeof other._duration === \"number\") this._duration = other._duration;\r\n if (Array.isArray(other.durations) && other.durations.length) this._durations = other._durations;\r\n if (other._lodgingId) this._lodgingId = other._lodgingId;\r\n if (other._lodgingIds) this._lodgingIds = this._lodgingIds\r\n ? this._lodgingIds.concat(other._lodgingIds.filter(lid => this._lodgingIds.indexOf(lid) === -1))\r\n : [ ...other._lodgingIds ];\r\n if (other._allItemPrices) this._allItemPrices = other._allItemPrices;\r\n if (other._contextValues) this._contextValues = this._contextValues \r\n ? { ...this._contextValues, ...other._contextValues }\r\n : { ...other._contextValues };\r\n if (other._locationIds) this._locationIds = other._locationIds;\r\n if (other._facilityValues) this._facilityValues = this._facilityValues\r\n ? { ...this.facilityValues, ...other._facilityValues }\r\n : { ...other._facilityValues };\r\n if (other._locationIds) this._locationIds = this._locationIds\r\n ? this._locationIds.concat(other._locationIds.filter(lid => this._locationIds.indexOf(lid) === -1))\r\n : [ ... other._locationIds ];\r\n if (typeof other._page === \"number\") this._page = other._page;\r\n if (other._pageSize) this._pageSize = other._pageSize;\r\n if (other._priceFrom) this._priceFrom = other._priceFrom;\r\n if (other._priceTo) this._priceTo = other._priceTo;\r\n if (other._preset) this._preset = this._preset\r\n ? this._preset.merge(other._preset)\r\n : other._preset.clone();\r\n \r\n return this;\r\n }\r\n\r\n usePreset(preset: SearchContext) {\r\n this._preset = preset;\r\n return this;\r\n }\r\n\r\n static isSearchContextQueryStringKeyName(name: string) {\r\n if (\r\n name == \"adu\" ||\r\n name == \"chi\" ||\r\n name == \"inf\" ||\r\n name == \"pet\" ||\r\n name == \"dur\" ||\r\n name == \"lod\" ||\r\n name == \"lods\" ||\r\n name == \"ari\" ||\r\n name == \"ari_density\" ||\r\n name == \"prfro\" ||\r\n name == \"prto\" ||\r\n name == \"pge\" ||\r\n name == \"psz\" ||\r\n name == \"loc\" ||\r\n name == \"itp\"\r\n ) {\r\n return true;\r\n }\r\n\r\n if (/^fac\\d+(_min|_max)?$/.test(name)) {\r\n return true;\r\n }\r\n\r\n return name.startsWith(contextPrefix);\r\n }\r\n}\r\n\r\nexport class SearchContextRouter {\r\n private readonly url: string;\r\n private readonly routeValueMap: RouteValueMap;\r\n private readonly options: SearchContextRouterOptions;\r\n\r\n constructor(\r\n url: string,\r\n routeValueMap: RouteValueMap = null,\r\n options: SearchContextRouterOptions = null\r\n ) {\r\n if (!url) {\r\n throw new Error(\"SearchContextRouter constructor parameter url is missing\");\r\n }\r\n\r\n this.url = url.replace(/\\/+$/, \"\");\r\n this.routeValueMap = routeValueMap;\r\n this.options = options;\r\n }\r\n\r\n static createFromConfig = (config: SearchContextRouterConfig) => {\r\n return new SearchContextRouter(config.url, config.map);\r\n };\r\n\r\n matchesUrl = (url: string = null) => {\r\n const patternUrlPath = this.splitPathSeqments(this.url);\r\n const currentUrlPath = url ? this.splitPathSeqments(url) : this.getValues();\r\n\r\n for (let i = 0; i < patternUrlPath.length; i++) {\r\n if (i < currentUrlPath.length) {\r\n if (!SearchContextRouter.pathSegmentIsParameterKey(patternUrlPath[i]) && patternUrlPath[i] !== currentUrlPath[i]) {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n getFieldConfig = () => {\r\n return {\r\n arrival: {\r\n read: (value) => deserializeDate(value),\r\n write: (value) => serializeDate(value),\r\n },\r\n duration: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n adults: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n children: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n infants: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n pets: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n locationIds: {\r\n read: (value) => deserializeNumberArray(value),\r\n write: (value) => serializeNumberArray(value),\r\n },\r\n lodgingId: {\r\n read: (value) => deserializeNumber(value),\r\n write: (value) => serializeNumber(value),\r\n },\r\n lodgingIds: {\r\n read: (value) => deserializeNumberArray(value),\r\n write: (value) => serializeNumberArray(value),\r\n },\r\n };\r\n };\r\n\r\n getSearchContext = (searchContext: SearchContext = null) => {\r\n let newSearchContext =\r\n searchContext || SearchContext.createFromQueryString(this.getSearch());\r\n const parameters = this.getParameters();\r\n const fieldConfig = this.getFieldConfig();\r\n\r\n if (parameters === null) {\r\n return newSearchContext;\r\n }\r\n\r\n // Override with path parameters (if not set in query string)\r\n Object.keys(parameters).forEach((key) => {\r\n if (Object.keys(fieldConfig).indexOf(key) > -1) {\r\n const value = fieldConfig[key].read(parameters[key]);\r\n if (key === \"arrival\" && newSearchContext.arrival === null) {\r\n newSearchContext = newSearchContext.changeArrival(value);\r\n } else if (key === \"duration\" && newSearchContext.duration === null) {\r\n newSearchContext = newSearchContext.changeDuration(value);\r\n } else if (key === \"adults\" && newSearchContext.adults === null) {\r\n newSearchContext = newSearchContext.changePersons(\r\n value,\r\n newSearchContext.children,\r\n newSearchContext.infants,\r\n newSearchContext.pets\r\n );\r\n } else if (key === \"children\" && newSearchContext.children === null) {\r\n newSearchContext = newSearchContext.changePersons(\r\n newSearchContext.adults,\r\n value,\r\n newSearchContext.infants,\r\n newSearchContext.pets\r\n );\r\n } else if (key === \"infants\" && newSearchContext.infants === null) {\r\n newSearchContext = newSearchContext.changePersons(\r\n newSearchContext.adults,\r\n newSearchContext.children,\r\n value,\r\n newSearchContext.pets\r\n );\r\n } else if (key === \"pets\" && newSearchContext.pets === null) {\r\n newSearchContext = newSearchContext.changePersons(\r\n newSearchContext.adults,\r\n newSearchContext.children,\r\n newSearchContext.infants,\r\n value\r\n );\r\n } else if (key === \"locationIds\" && newSearchContext.locationIds === null) {\r\n newSearchContext = newSearchContext.changeLocationIds(value);\r\n } else if (key === \"lodgingId\" && newSearchContext.lodgingId === null) {\r\n newSearchContext = newSearchContext.changeLodging(value);\r\n } else if (key === \"lodgingIds\" && newSearchContext.lodgingIds === null) {\r\n newSearchContext = newSearchContext.changeLodgings(value);\r\n }\r\n }\r\n });\r\n\r\n return newSearchContext;\r\n };\r\n\r\n makeUrl = (searchContext: SearchContext) => {\r\n const parameters = this.getParameters();\r\n const fieldConfig = this.getFieldConfig();\r\n const ignored = Object.keys(parameters);\r\n const lodgingId = searchContext.lodgingId;\r\n const routeValueProperties =\r\n this.routeValueMap !== null && this.routeValueMap !== undefined\r\n ? Object.keys(this.routeValueMap)\r\n : [];\r\n\r\n // Replace keywords with values in url\r\n let processedUrl = this.url;\r\n Object.keys(parameters).forEach((key) => {\r\n // Is it a normal field (and the search context has a value)\r\n if (Object.keys(fieldConfig).indexOf(key) > -1 && searchContext[key]) {\r\n processedUrl = processedUrl.replace(\r\n \"{\" + key + \"}\",\r\n fieldConfig[key].write(searchContext[key])\r\n );\r\n // Is it route value property (and we know the lodging id)\r\n } else if (routeValueProperties.indexOf(key) > -1 && lodgingId) {\r\n const value = this.routeValueMap[key][lodgingId.toString()];\r\n processedUrl = processedUrl.replace(\"{\" + key + \"}\", serializeString(value));\r\n }\r\n });\r\n if (!processedUrl.endsWith(\"/\")) {\r\n processedUrl += \"/\";\r\n }\r\n\r\n // Append querystring with keywords ignored\r\n const queryString = searchContext.toQueryString(ignored);\r\n return queryString ? processedUrl + \"?\" + queryString : processedUrl;\r\n };\r\n\r\n getParameters() {\r\n const keys = this.getKeys();\r\n const values = this.getValues();\r\n const isRouterUrl = this.matchesUrl();\r\n\r\n const parameters: any = {};\r\n for (let i = 0; i < keys.length; i++) {\r\n if (SearchContextRouter.pathSegmentIsParameterKey(keys[i])) {\r\n if (isRouterUrl) {\r\n parameters[keys[i].replace(/^{/, \"\").replace(/}$/, \"\")] =\r\n values.length > i ? values[i] : undefined;\r\n } else {\r\n parameters[keys[i].replace(/^{/, \"\").replace(/}$/, \"\")] = undefined;\r\n }\r\n }\r\n }\r\n\r\n return parameters;\r\n }\r\n\r\n static pathSegmentIsParameterKey(segment: string) {\r\n if (!segment) {\r\n return false;\r\n }\r\n\r\n return segment.startsWith(\"{\") && segment.endsWith(\"}\");\r\n }\r\n\r\n private getPathname = () => {\r\n if (\r\n this.options &&\r\n this.options.getPathname &&\r\n typeof this.options.getPathname === \"function\"\r\n ) {\r\n return this.options.getPathname();\r\n }\r\n return window.location.pathname;\r\n };\r\n\r\n private getSearch = () => {\r\n if (\r\n this.options &&\r\n this.options.getSearch &&\r\n typeof this.options.getSearch === \"function\"\r\n ) {\r\n return this.options.getSearch();\r\n }\r\n return window.location.search;\r\n };\r\n\r\n private getKeys = () => {\r\n return this.splitPathSeqments(this.url);\r\n };\r\n\r\n private getValues = () => {\r\n return this.splitPathSeqments(this.getPathname());\r\n };\r\n\r\n private splitPathSeqments = (path: string) => {\r\n if (!path) {\r\n return [];\r\n }\r\n\r\n return path.split(\"/\").filter((part) => part !== \"\");\r\n };\r\n}\r\n\r\nexport interface BookingOptionSearchContextProps {\r\n arrival: Date;\r\n duration: number;\r\n lodgingId: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n}\r\n\r\nexport function getSearchContextPropsFromBookingOption({ arrival, duration, lodgingId, adults, children, infants, pets }: BookingOptionSearchContextProps) {\r\n let props = {} as SearchContextProps;\r\n\r\n if (isValidDate(arrival)) {\r\n props.arrival = serializeDate(arrival);\r\n }\r\n props.duration = duration;\r\n props.lodgingId = lodgingId;\r\n props.adults = adults;\r\n if (0 <= children) {\r\n props.children = children;\r\n }\r\n if (0 <= infants) {\r\n props.infants = infants;\r\n }\r\n if (0 <= pets) {\r\n props.pets = pets;\r\n }\r\n return props;\r\n}\r\n\r\nexport interface WithSearchContextProps {\r\n onSearchContextChanged?: (searchContext: SearchContext) => void;\r\n searchContext?: SearchContext;\r\n}\r\n\r\ninterface ComponentWithSearchContextState {\r\n searchContext: SearchContext;\r\n}\r\n\r\nexport const withSearchContext =

    (\r\n WrappedComponent: React.ComponentType

    \r\n) =>\r\n class ComponentWithSearchContext extends React.Component<\r\n P & WithSearchContextProps,\r\n ComponentWithSearchContextState\r\n > {\r\n state = {\r\n searchContext: undefined,\r\n };\r\n\r\n handleSearchContextChanged = (searchContext: SearchContext) => {\r\n const { onSearchContextChanged } = this.props;\r\n this.setState({ searchContext });\r\n if (typeof onSearchContextChanged === \"function\") {\r\n onSearchContextChanged(searchContext);\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\nexport const StandardDefaultSearchContext = {\r\n adults: 2,\r\n children: 0,\r\n infants: 0,\r\n pets: null,\r\n arrival: defaultDateValue,\r\n duration: 7,\r\n} as SearchContextProps;","import { LodgingListSetting } from \"./types\";\r\nimport { SearchContext } from \"./searchcontext\";\r\n\r\nexport function lodgingListSettingToSearchContext(settings: LodgingListSetting) {\r\n let context = new SearchContext();\r\n if (!settings) {\r\n return context;\r\n }\r\n\r\n if (settings.locations.length > 0) {\r\n context = context.changeLocationIds(settings.locations);\r\n }\r\n\r\n if (settings.facilities.length > 0) {\r\n for (let facility of settings.facilities) {\r\n if (facility.value !== null) {\r\n context = context.changeFacilityValue(facility.facilityId, facility.value, \"equal\");\r\n }\r\n if (facility.minValue !== null || facility.maxValue !== null) {\r\n let from = facility.minValue;\r\n let to = facility.maxValue;\r\n\r\n if (from.length == 0 && to.length > 0) {\r\n context = context.changeFacilityValue(facility.facilityId, to, \"max\");\r\n }\r\n if (to.length == 0 && from.length > 0) {\r\n context = context.changeFacilityValue(facility.facilityId, from, \"min\");\r\n }\r\n if (from.length > 0 && to.length > 0) {\r\n context = context.changeFacilityRange(facility.facilityId, {\r\n min: parseInt(from),\r\n max: parseInt(to),\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n return context;\r\n}\r\n","import { SearchContext, SearchContextProps } from \"./searchcontext\";\r\nimport { useMemo, useState } from \"react\";\r\nimport { LodgingListSetting } from \"./types\";\r\nimport { lodgingListSettingToSearchContext } from \"./lodgingListUtils\";\r\n\r\n/**\r\n * A hook that supplies access to a SearchContext instance.\r\n * If you supply a urlWriter it will automaticly update the url with history.replaceState\r\n * If you supply a urlReader it will read the value from the url on popState and merge the defaultValue with the current url values on first render\r\n * @param defaultValue the default value to use for a new instance of the searchContext\r\n */\r\nexport default function useLocalSearchContext({\r\n defaultValue = {},\r\n lodgingListSetting\r\n}: {\r\n defaultValue?: SearchContextProps;\r\n lodgingListSetting?: LodgingListSetting;\r\n }) {\r\n let defaultSearchContextValue = useInitialSearchContext({ defaultValue, lodgingListSetting });\r\n\r\n let [searchContext, setSearchContext] = useState(defaultSearchContextValue);\r\n\r\n function handleSetSearchContext(searchContext: SearchContext) {\r\n setSearchContext(searchContext);\r\n }\r\n\r\n return [searchContext, handleSetSearchContext] as [\r\n SearchContext,\r\n (searchContext: SearchContext) => void\r\n ];\r\n}\r\n\r\n/**\r\n * Gets a merge of the default search context values supplied and the ones using the urlReader.\r\n * These will not change on window popState\r\n * @param defaultValue\r\n * @param urlReader\r\n */\r\nfunction useInitialSearchContext({ defaultValue, lodgingListSetting }: { defaultValue?: SearchContextProps, lodgingListSetting?: LodgingListSetting }) {\r\n return useMemo(() => SearchContext.createFromSearchContextProps(defaultValue), [defaultValue]).usePreset(lodgingListSettingToSearchContext(lodgingListSetting));\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport \"./FieldWithLabel.scss\";\r\nimport \"./AutoCompleteFieldWithLabel.scss\";\r\nimport { useCombobox } from \"downshift\";\r\nimport Callout from \"./Callout\";\r\nimport { usePositioned } from \"./shared/usePositioned\";\r\n\r\nexport interface AutoCompleteFieldWithLabelProps {\r\n label: string;\r\n focus?: boolean;\r\n onChange: (newValue) => void;\r\n items: any[];\r\n itemFilter: (item: any, inputValue: string) => boolean;\r\n itemToString: (item: any) => string;\r\n itemToKey: (item: any) => string;\r\n itemListItem: (item: any) => React.ReactNode;\r\n itemCompare: (a: any, b: any) => number;\r\n onLoadItems: () => void;\r\n noLodgingsMatch?: string;\r\n loadingData?: string;\r\n}\r\n\r\nexport default function AutoCompleteFieldWithLabel({\r\n label,\r\n focus,\r\n onChange,\r\n items,\r\n itemFilter,\r\n itemToString,\r\n itemToKey,\r\n itemListItem,\r\n itemCompare,\r\n onLoadItems,\r\n noLodgingsMatch,\r\n loadingData\r\n}: AutoCompleteFieldWithLabelProps) {\r\n const [container, rect] = usePositioned();\r\n\r\n const [hasInputValue, setHasInputValue] = useState(false);\r\n const [allItems, setAllItems] = useState([]);\r\n const [inputItems, setInputItems] = useState([]);\r\n const [hasRequestedItems, setHasRequestedItems] = useState(false);\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (hasRequestedItems && items && items.length) {\r\n const copy = [...items];\r\n copy.sort((a, b) => itemCompare(a, b));\r\n setAllItems(copy);\r\n setInputItems(copy);\r\n }\r\n }, [items, hasRequestedItems]);\r\n\r\n useEffect(() => {\r\n if (focus && inputRef && inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n }, [focus]);\r\n\r\n const {\r\n isOpen,\r\n getToggleButtonProps,\r\n getLabelProps,\r\n getMenuProps,\r\n highlightedIndex,\r\n getItemProps,\r\n getInputProps,\r\n getComboboxProps,\r\n } = useCombobox({\r\n items: inputItems,\r\n itemToString,\r\n onInputValueChange: ({ inputValue }) => {\r\n setHasInputValue(inputValue && inputValue.length > 0);\r\n if (!hasRequestedItems && inputValue) {\r\n onLoadItems();\r\n setHasRequestedItems(true);\r\n }\r\n setInputItems(allItems.filter((item) => itemFilter(item, inputValue)));\r\n },\r\n onSelectedItemChange: (changes) => {\r\n handleChange(changes.selectedItem);\r\n },\r\n defaultHighlightedIndex: 0,\r\n });\r\n\r\n const handleChange = (selectedItem) => {\r\n if (onChange && typeof onChange === \"function\") {\r\n onChange(selectedItem);\r\n }\r\n };\r\n \r\n const listClassName = isOpen && inputItems.length ? \"bwp-open\" : \"bwp-closed\";\r\n\r\n const itemItemsOrWarning = inputItems.length\r\n ? inputItems\r\n : hasInputValue\r\n ? (allItems && allItems.length)\r\n ? [noLodgingsMatch]\r\n : [loadingData]\r\n : [];\r\n\r\n return (\r\n

    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
      \r\n {itemItemsOrWarning.map((item, index) => {\r\n return (\r\n \r\n
      {itemListItem(item)}
      \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","export type LodgingUrlData = {\r\n id: number;\r\n nameSlug: string;\r\n address1Slug: string;\r\n location: {\r\n slug: string;\r\n } \r\n};\r\n\r\nexport function lodgingUrl(pattern: string, lodging: LodgingUrlData) {\r\n const values = [\r\n { key: \"lodging:id\", value: lodging.id.toString() },\r\n { key: \"lodging:name\", value: lodging.nameSlug },\r\n { key: \"lodging:area\", value: lodging.location.slug },\r\n { key: \"lodging:address\", value: lodging.address1Slug }\r\n ];\r\n\r\n let url = pattern;\r\n for (const value of values) {\r\n url = url.replace(`{${value.key}}`, value.value);\r\n }\r\n\r\n return url;\r\n}\r\n","import Button from \"./Button\";\r\nimport React, { useState } from \"react\";\r\nimport SelectWithLabel from \"./SelectWithLabel\";\r\nimport useLocalSearchContext from \"./shared/useLocalSearchContext\";\r\nimport { SearchBoxProps } from \"./shared/types\";\r\nimport DatePickerWithLabel from \"./DatePickerWithLabel\";\r\nimport { createDayManipulatorWithHighlightDays, SelectionMode } from \"./DatePicker\";\r\nimport { DurationSelectWithLabel } from \"./DurationSelectWithLabel\";\r\nimport { NumberSelectWithLabel } from \"./NumberSelectWithLabel\";\r\nimport PeopleSelectWithLabel from \"./PeopleSelectWithLabel\";\r\nimport \"./HeroSearchSearchBox.scss\";\r\nimport { IconHouseSmall, IconSearchSmall } from \"./shared/icons\";\r\nimport AutoCompleteFieldWithLabel from \"./AutoCompleteFieldWithLabel\";\r\nimport getLodgingAutoComplete from \"./shared/autocompletehelpers/LodgingAutoCompleteHelper\";\r\nimport { LodgingsQuery } from \"./operations.generated\";\r\nimport { lodgingUrl } from \"./shared/lodgingurl\";\r\nimport {SearchContextProps, StandardDefaultSearchContext} from \"./shared/searchcontext\";\r\n\r\ntype Lodging = LodgingsQuery[\"lodgings\"][0];\r\n\r\nexport type HeroSearchSearchBoxProps = {\r\n searchBox: SearchBoxProps;\r\n requestLodgings: () => LodgingsQuery;\r\n lodgings?: LodgingsQuery[\"lodgings\"];\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n culture: string;\r\n defaultValues?: SearchContextProps;\r\n};\r\n\r\nconst TabSearch = \"tabSearch\";\r\nconst TabLodging = \"tabLodging\";\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"searchBox.translations\": \"SearchBox\",\r\n \"searchBox.datePickerTranslations\": \"DatePicker\"\r\n };\r\n}\r\n\r\nexport default function HeroSearchSearchBox({\r\n searchBox,\r\n requestLodgings,\r\n lodgings,\r\n lodgingUrlPattern,\r\n includeLodgingIdInUrl,\r\n culture,\r\n defaultValues\r\n}: HeroSearchSearchBoxProps) {\r\n \r\n let {\r\n translations,\r\n locations,\r\n durations,\r\n maxPeople,\r\n maxPets,\r\n onSubmit,\r\n datePickerTranslations,\r\n highlightDays,\r\n } = searchBox;\r\n \r\n if (!culture && window && window[\"BookingStudio_culture\"]) {\r\n culture = window[\"BookingStudio_culture\"];\r\n }\r\n \r\n const [currentTab, setCurrentTab] = useState(TabSearch);\r\n const [hasRequestedLodgings, setHasRequestedLodgings] = useState(false);\r\n\r\n const contextDefaults = Object.assign(StandardDefaultSearchContext, defaultValues);\r\n \r\n const [searchContext, setSearchContext] = useLocalSearchContext({\r\n defaultValue: contextDefaults\r\n });\r\n\r\n function handleSubmit(e: React.SyntheticEvent) {\r\n e.preventDefault();\r\n\r\n if (onSubmit) {\r\n onSubmit(searchContext);\r\n }\r\n }\r\n\r\n function handleLoadLodgings() {\r\n if (!hasRequestedLodgings) {\r\n requestLodgings();\r\n setHasRequestedLodgings(true);\r\n }\r\n }\r\n\r\n function handleLodgingSearchChange(lodging: Lodging) {\r\n if (lodging) {\r\n gotoLodging(lodging);\r\n }\r\n };\r\n\r\n const gotoLodging = (lodging: Lodging) => {\r\n if (lodgingUrlPattern) {\r\n if (lodging) {\r\n let url = lodgingUrl(lodgingUrlPattern, lodging);\r\n if (includeLodgingIdInUrl) {\r\n url += url.indexOf('?') > -1 ? \"&\" : \"?\";\r\n url += `lod=${lodging.id}`;\r\n }\r\n window.location.href = url;\r\n }\r\n } else {\r\n console.error(\"HeroSearchSearchBox component is missing lodgingUrlPattern prop\");\r\n }\r\n };\r\n\r\n function setupTabClicked(tabName: string) {\r\n return (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n setCurrentTab(tabName);\r\n }\r\n }\r\n\r\n function tabClassNames(isActive) {\r\n const names = ['bwp-hero-searchbox__tab'];\r\n if (isActive) {\r\n names.push('bwp-active');\r\n }\r\n return names.join(' ');\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {currentTab === TabSearch && (\r\n
    \r\n
    \r\n \r\n setSearchContext(searchContext.changeLocationId(v == null ? null : parseInt(v)))\r\n }\r\n items={locations}\r\n />\r\n setSearchContext(searchContext.changeArrival(v))}\r\n selectionMode={SelectionMode.Future}\r\n culture={culture}\r\n translations={datePickerTranslations}\r\n dayManipulator={createDayManipulatorWithHighlightDays(highlightDays ?? [])}\r\n />\r\n setSearchContext(searchContext.changeDuration(v))}\r\n translations={translations}\r\n durations={durations}\r\n />\r\n \r\n setSearchContext(\r\n searchContext.changePersons(v.adults, v.children, v.infants, searchContext.pets)\r\n )\r\n }\r\n translations={translations}\r\n showLabelAsPersons\r\n />\r\n setSearchContext(searchContext.changePets(v))}\r\n />\r\n \r\n \r\n
    \r\n )}\r\n {currentTab === TabLodging && (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function getLodgingAutoComplete() {\r\n return {\r\n itemToString: item => (item?.name || item || null),\r\n itemToKey: item => {\r\n if (item?.id && item?.name) {\r\n return `${item.name}-${item.id}`;\r\n }\r\n if (item) {\r\n return item;\r\n }\r\n return \"\";\r\n },\r\n itemFilter: (item, inputValue) => {\r\n if (!inputValue) return false;\r\n const name = item.name?.toLowerCase();\r\n const area = item.location?.name?.toLowerCase();\r\n const address = item.address1?.toLowerCase();\r\n return (\r\n (name && name.startsWith(inputValue.toLowerCase())) ||\r\n (area && area.startsWith(inputValue.toLowerCase())) ||\r\n (address && address.startsWith(inputValue.toLowerCase()))\r\n );\r\n },\r\n // eslint-disable-next-line react/display-name\r\n itemListItem: (item) => (\r\n <>\r\n {(item.name && item.address1 && item.location.name) && (\r\n <>\r\n {item.name}
    \r\n {item.address1}, {item.location.name}\r\n \r\n )}\r\n {!(item.name && item.address1 && item.location.name) && (\r\n <>\r\n {item}\r\n \r\n )}\r\n \r\n ),\r\n itemCompare: (a, b) => {\r\n if (a.name === b.name) {\r\n return 0;\r\n }\r\n return a.name < b.name ? -1 : 1;\r\n }\r\n };\r\n}","import React, {useEffect, useRef, useState} from 'react';\r\nimport \"./HeroSearch.scss\";\r\nimport HeroSearchSearchBox from \"./HeroSearchSearchBox\";\r\nimport { LodgingsQuery } from './operations.generated';\r\nimport {SearchBoxProps} from \"./shared/types\";\r\n\r\nexport interface Props {\r\n title: string;\r\n paragraph: string;\r\n backgroundImageUrl: string;\r\n searchBox: SearchBoxProps;\r\n requestLodgings: () => LodgingsQuery;\r\n lodgings?: LodgingsQuery[\"lodgings\"];\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n culture: string;\r\n}\r\n\r\nexport function registerTranslations() : { [propName: string]: string }\r\n{\r\n return {\r\n \"searchBox.translations\": \"SearchBox\",\r\n \"searchBox.datePickerTranslations\": \"DatePicker\"\r\n }\r\n}\r\n\r\nexport default function HeroSearch({title, paragraph, backgroundImageUrl, searchBox, requestLodgings, lodgings, lodgingUrlPattern, includeLodgingIdInUrl, culture }: Props) {\r\n \r\n const containerRef = useRef();\r\n \r\n const [mounted, setIsMounted] = useState(false);\r\n useEffect(() => {\r\n setIsMounted(true)\r\n }, [mounted]);\r\n \r\n function handleScrollDown() {\r\n window.scroll({\r\n behavior: \"smooth\",\r\n top: containerRef.current.offsetTop + containerRef.current.offsetHeight \r\n });\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {title}

    \r\n

    {paragraph}

    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import React from \"react\";\r\nimport \"./LodgingTitle.scss\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { IconHalfStar32, IconPlus22, IconStar32 } from \"./shared/icons\";\r\n\r\ninterface Props {\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n translations: LodgingPageTranslations;\r\n}\r\n\r\nexport default function LodgingTitle({\r\n id,\r\n name,\r\n activeDescription,\r\n location,\r\n translations,\r\n stars,\r\n starsPostText,\r\n showStars,\r\n starsExtraIcon\r\n}: Props & LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"]) {\r\n\r\n const hasTitle = activeDescription?.title != null && activeDescription?.title.length > 0;\r\n\r\n const lodgingTitle = hasTitle ? activeDescription.title : name;\r\n \r\n const starsToShow = stars\r\n ? [1, 2, 3, 4, 5].filter(s => s <= stars)\r\n : [];\r\n\r\n return (\r\n
    \r\n {(name.toLowerCase() != lodgingTitle.toLowerCase()) && (\r\n
    \r\n {translations.lodgingNamePrefix} {name}\r\n
    \r\n )}\r\n

    {lodgingTitle}

    \r\n
    {location.name}
    \r\n {showStars && (\r\n
    \r\n {starsToShow.map(s => )}\r\n {starsPostText && ()}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nfunction LodgingStar() {\r\n return (\r\n <>\r\n {IconStar32}\r\n \r\n )\r\n}\r\n\r\nfunction LodgingStarsExtraIcon({ starsExtraIcon }: { starsExtraIcon?: string })\r\n{\r\n let icon: React.ReactNode = null;\r\n if (starsExtraIcon === \"Half star\") {\r\n icon = IconHalfStar32;\r\n } else if (starsExtraIcon === \"Plus\") {\r\n icon = IconPlus22;\r\n }\r\n\r\n if (!icon) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {icon}\r\n \r\n );\r\n}","import * as React from \"react\";\r\nimport { useCallback, useRef, useState } from \"react\";\r\nimport useLazyLoad from \"./shared/useLazyLoad\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\n\r\nexport interface SmartImageProps {\r\n imageUrlFunc: ImageUrlFunction;\r\n className?: string;\r\n onClick?: (e) => void;\r\n altText?: string;\r\n originalWidth?: number;\r\n originalHeight?: number;\r\n}\r\n\r\nexport interface SmartImageState {\r\n imageUrl: string;\r\n srcSet: string;\r\n visible: boolean;\r\n}\r\n\r\ntype ImageUrlFunction = (width: number, height: number) => string;\r\n\r\nfunction generateSrcSet(\r\n url: string,\r\n imageUrlFunc: ImageUrlFunction,\r\n { offsetWidth, offsetHeight }: { offsetWidth: number; offsetHeight: number }\r\n) {\r\n let size1 = imageUrlFunc(offsetWidth, offsetHeight);\r\n let size1point5 = imageUrlFunc(Math.ceil(offsetWidth * 1.5), Math.ceil(offsetHeight * 1.5));\r\n let size2 = imageUrlFunc(Math.ceil(offsetWidth * 2), Math.ceil(offsetHeight * 2));\r\n return `${size1} 1x, ${size1point5} 1.5x, ${size2} 2x`;\r\n}\r\n\r\nexport default function SmartImage({\r\n imageUrlFunc,\r\n className,\r\n onClick,\r\n altText,\r\n originalWidth,\r\n originalHeight,\r\n}: SmartImageProps) {\r\n const [imageUrl, setImageUrl] = useState(null);\r\n const [srcSet, setSrcSet] = useState(null);\r\n const [visible, setVisible] = useState(false);\r\n const containerRef = useRef();\r\n\r\n const handleLoaded = useCallback(() => {\r\n setVisible(true);\r\n setImageUrl(\r\n imageUrlFunc(containerRef.current.offsetWidth, containerRef.current.offsetHeight)\r\n );\r\n setSrcSet(generateSrcSet(imageUrl, imageUrlFunc, containerRef.current));\r\n }, [imageUrl, imageUrlFunc]);\r\n\r\n useLazyLoad(containerRef, handleLoaded);\r\n\r\n let fixedHeight =\r\n originalWidth && originalHeight && containerRef.current?.offsetWidth\r\n ? (containerRef.current.offsetWidth / originalWidth) * originalHeight + \"px\"\r\n : undefined;\r\n\r\n return (\r\n
    \r\n {imageUrl && visible && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport \"./ImageViewer.scss\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport { useEffect, useRef } from \"react\";\r\nimport SmartImage from \"./SmartImage\";\r\n\r\n// Converts a rem value to a pixel value\r\nexport function rem(value: number, rootSize: number = 16) {\r\n return value / 0.0625;\r\n}\r\n\r\nexport interface ImageViewerState {\r\n current: number;\r\n lastPan: \"left\" | \"right\" | \"\";\r\n orientation: \"landscape\" | \"portrait\" | \"\";\r\n}\r\n\r\nconst DefaultImageMaxWidth = 1600;\r\nconst DefaultImageMaxHeight = 1200;\r\n\r\ninterface ImageViewerProps {\r\n openingImageIndex: number;\r\n images: {\r\n url: string;\r\n originalWidth?: number;\r\n originalHeight?: number;\r\n }[];\r\n onClose: () => void;\r\n translations: LodgingPageTranslations;\r\n}\r\n\r\nfunction getImageWithMaxUrl(image: { url: string }, maxWidth: number, maxHeight: number) {\r\n let url = image.url.replace(\"/default\", \"\");\r\n url = url.replace(\"/cl/\", \"/v2/\");\r\n url = url + \"?maxwidth=\" + maxWidth + \"&maxheight=\" + maxHeight;\r\n return url;\r\n}\r\n\r\nexport function getImageUrl(image: { url: string }, width: number, height: number) {\r\n let url = image.url.replace(\"/default\", \"\");\r\n url = url.replace(\"/cl/\", \"/v2/\");\r\n url = url + \"?width=\" + width + \"&height=\" + height + \"&mode=crop\";\r\n return url;\r\n}\r\n\r\nclass ImageViewer extends React.Component {\r\n private activeThumbnailRef;\r\n private thumbnailStripRef;\r\n private containerRef: React.RefObject;\r\n private resizeTimer;\r\n private stickies;\r\n\r\n constructor(props: ImageViewerProps) {\r\n super(props);\r\n this.state = {\r\n current: props.openingImageIndex || 0,\r\n lastPan: \"\",\r\n orientation: \"\",\r\n };\r\n this.activeThumbnailRef = React.createRef();\r\n this.thumbnailStripRef = React.createRef();\r\n this.containerRef = React.createRef();\r\n }\r\n\r\n handlePrevImage = () => {\r\n const { current } = this.state;\r\n if (current > 0) {\r\n this.setState({ current: current - 1, lastPan: \"left\" });\r\n }\r\n };\r\n\r\n handleNextImage = () => {\r\n const { current } = this.state;\r\n const { images } = this.props;\r\n if (current < images.length - 1) {\r\n this.setState({ current: current + 1, lastPan: \"right\" });\r\n }\r\n };\r\n\r\n handleGotoImage = (e, imageId) => {\r\n this.setState({ current: imageId });\r\n };\r\n\r\n handleClose = () => {\r\n const { onClose } = this.props;\r\n if (typeof onClose === \"function\") {\r\n onClose();\r\n }\r\n };\r\n\r\n thumbnailClassnames(isActive) {\r\n let classnames = [\"bwp-thumbnail\"];\r\n if (isActive) {\r\n classnames.push(\"bwp-active\");\r\n }\r\n return classnames.join(\" \");\r\n }\r\n\r\n classNames() {\r\n const { orientation } = this.state;\r\n let names = [\"bwp-image-viewer\"];\r\n names.push(\"bwp-image-viewer--\" + orientation);\r\n return names.join(\" \");\r\n }\r\n\r\n getComputedMarginLeft = (elem) => {\r\n return parseFloat(getComputedStyle(elem).marginLeft.slice(0, -2));\r\n };\r\n\r\n adjustStripPositionOnMove() {\r\n if (!this.activeThumbnailRef || !this.activeThumbnailRef.current) {\r\n return;\r\n }\r\n\r\n // Viewport halfway (width)\r\n let halfway = Math.round(window.innerWidth / 2);\r\n // Active thumbnail rectangle info\r\n let activeThumbnailRect = this.activeThumbnailRef.current.getBoundingClientRect();\r\n // If we move, what is the new correct active thumbnail left position?\r\n let newLeft = halfway - activeThumbnailRect.width / 2;\r\n // Thumbnail strip rectangle info\r\n let stripRect = this.thumbnailStripRef.current.getBoundingClientRect();\r\n // Thumbnail strip current margin left (in pixels)\r\n let stripCurrentLeft = this.getComputedMarginLeft(this.thumbnailStripRef.current);\r\n // What is the maximum we will want to move the strip offscreen to the left?\r\n let maxStripOffscreenWidth = window.innerWidth - stripRect.width - 32;\r\n\r\n // Is the active thumbnail more to right in the viewport?\r\n let activeIsOnTheRight =\r\n halfway - activeThumbnailRect.right < 0 &&\r\n Math.abs(halfway - activeThumbnailRect.left) <\r\n Math.abs(halfway - activeThumbnailRect.right);\r\n\r\n let stripAtBeginningActiveOnRight = stripCurrentLeft === 0 && activeIsOnTheRight;\r\n let stripAtEndActiveOnLeft =\r\n stripCurrentLeft <= maxStripOffscreenWidth && !activeIsOnTheRight;\r\n let stripInTheMiddle = maxStripOffscreenWidth < stripCurrentLeft && stripCurrentLeft < 0;\r\n\r\n if (stripAtBeginningActiveOnRight || stripAtEndActiveOnLeft || stripInTheMiddle) {\r\n let diffLeft = newLeft - activeThumbnailRect.left;\r\n\r\n // Move the strip to make active thumbnail\r\n // But don't move the strip to the right (left margin is positive)\r\n // and don't move the strup to far to the left (respect max strip offscreen width)\r\n let stripNextLeft = Math.min(\r\n 0,\r\n Math.max(maxStripOffscreenWidth, stripCurrentLeft + diffLeft)\r\n );\r\n\r\n this.thumbnailStripRef.current.style.marginLeft = `${stripNextLeft}px`;\r\n }\r\n }\r\n\r\n getOrientation = () => {\r\n return window.innerWidth > window.innerHeight ? \"landscape\" : \"portrait\";\r\n };\r\n\r\n disableStickies() {\r\n this.stickies = document.querySelectorAll(\".bwp-sticky\");\r\n this.stickies.forEach((s) => s.classList.remove(\"bwp-sticky\"));\r\n }\r\n\r\n reenableStickies() {\r\n this.stickies.forEach((s) => s.classList.add(\"bwp-sticky\"));\r\n }\r\n\r\n componentDidMount() {\r\n this.disableStickies();\r\n this.adjustStripPositionOnMove();\r\n this.setState({ orientation: this.getOrientation() });\r\n window.addEventListener(\r\n \"resize\",\r\n () => {\r\n const { orientation } = this.state;\r\n if (this.resizeTimer) {\r\n clearTimeout(this.resizeTimer);\r\n }\r\n this.resizeTimer = setTimeout(() => {\r\n const newOrientation = this.getOrientation();\r\n if (orientation !== newOrientation) {\r\n this.setState({ orientation: newOrientation });\r\n }\r\n }, 400);\r\n },\r\n false\r\n );\r\n this.containerRef.current.focus();\r\n document.body.style.overflowY = \"hidden\";\r\n }\r\n\r\n componentDidUpdate() {\r\n this.adjustStripPositionOnMove();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.reenableStickies();\r\n this.stickies = [];\r\n document.body.style.overflowY = \"auto\";\r\n }\r\n\r\n getContainerRect = () => {\r\n const rect = this.containerRef.current && this.containerRef.current.getBoundingClientRect();\r\n\r\n return rect;\r\n };\r\n\r\n handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key == \"ArrowLeft\") {\r\n this.handlePrevImage();\r\n }\r\n if (e.key == \"ArrowRight\") {\r\n this.handleNextImage();\r\n }\r\n if (e.key == \"Escape\") {\r\n this.handleClose();\r\n }\r\n };\r\n\r\n render() {\r\n const { images } = this.props;\r\n const { current } = this.state;\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 {images.map(\r\n (img, index) =>\r\n (index === current && (\r\n this.handleGotoImage(e, index)}\r\n />\r\n )) ||\r\n (index !== current && (\r\n this.handleGotoImage(e, index)}\r\n />\r\n ))\r\n )}\r\n
    \r\n
    \r\n
    \r\n {images.map((img, index) => (\r\n getImageUrl(img, width, 0)}\r\n originalWidth={img.originalWidth}\r\n originalHeight={img.originalHeight}\r\n />\r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction ContainedImage({ image }: { image: { url: string } }) {\r\n const ref = useRef();\r\n\r\n const rect = ref.current?.getBoundingClientRect();\r\n\r\n let width = Math.ceil((rect && rect.width) || DefaultImageMaxWidth);\r\n let height = Math.ceil((rect && rect.height) || DefaultImageMaxHeight);\r\n\r\n // Adjust for aspect ratio 16:9\r\n const size = width > height ? getLandscape(width) : getPortrait(width);\r\n\r\n let currentImageUrl = \"\";\r\n if (image?.url) {\r\n currentImageUrl = getImageWithMaxUrl(image, size.width, size.height);\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst getLandscape = (width: number) => {\r\n let pixelRatio = window.devicePixelRatio;\r\n\r\n let sizes = [\r\n { width: 320, height: 180 },\r\n { width: 640, height: 360 },\r\n { width: 764, height: 432 },\r\n { width: 1024, height: 576 },\r\n { width: 1280, height: 720 },\r\n { width: 1440, height: 810 },\r\n { width: 1600, height: 900 },\r\n { width: 2000, height: 1125 },\r\n ];\r\n\r\n let pixelWidth = pixelRatio * width;\r\n\r\n for (let i = 0; i < sizes.length; i++) {\r\n if (sizes[i].width > pixelWidth) {\r\n return sizes[i];\r\n }\r\n }\r\n\r\n return sizes[sizes.length - 1];\r\n};\r\n\r\nconst getPortrait = (width: number) => {\r\n let pixelRatio = window.devicePixelRatio;\r\n\r\n let sizes = [\r\n { width: 180, height: 320 },\r\n { width: 360, height: 640 },\r\n { width: 432, height: 764 },\r\n { width: 576, height: 1024 },\r\n { width: 720, height: 1280 },\r\n { width: 810, height: 1440 },\r\n { width: 900, height: 1600 },\r\n { width: 1125, height: 2000 },\r\n ];\r\n\r\n let pixelWidth = pixelRatio * width;\r\n\r\n for (let i = 0; i < sizes.length; i++) {\r\n if (sizes[i].width > pixelWidth) {\r\n return sizes[i];\r\n }\r\n }\r\n\r\n return sizes[sizes.length - 1];\r\n};\r\nexport default ImageViewer;\r\n","// Ported from: https://github.com/BookingStudio/BookingStudio/blob/407cc1cf51ebe5a5aa391e6d31da0854c9c8ab7e/src/BookingStudioBricks/wwwroot/scripts/bricks/BookingStudio.Bricks.EmbedKit.js#L1\r\n// Extended to add autoplay support\r\n\r\nconst urlParsers = [\r\n { regex: /(?:http[s]?:)?\\/\\/vimeo.com\\/(\\d*)/, type: \"vimeo\" },\r\n { regex: /(?:http[s]?:)?\\/\\/player.vimeo.com\\/video\\/(\\d*)/, type: \"vimeo\" },\r\n { regex: /(?:http[s]?:)?\\/\\/youtu.be\\/([-A-z0-9]*)/, type: \"youtube\" },\r\n { regex: /(?:http[s]?:)?\\/\\/www.youtube.com\\/embed\\/([^?]*)/, type: \"youtube\" },\r\n { regex: /(?:http[s]?:)?\\/\\/www.youtube.com\\/watch\\?v=([^?]*)/, type: \"youtube\" },\r\n];\r\n\r\ninterface Movie {\r\n id: string;\r\n type: string;\r\n}\r\n\r\nexport interface EmbedKitOptions {\r\n embedElementManipulator?: (\r\n embedElement: HTMLElement,\r\n movie: Movie,\r\n element: HTMLElement\r\n ) => void;\r\n autoPlay?: boolean;\r\n}\r\n\r\nexport function embed(selector, options) {\r\n let elements = query(selector);\r\n\r\n let allEmbeds = [];\r\n elements.forEach((item) => {\r\n const embedElem = embedSingle(item, options);\r\n if (embedElem) {\r\n allEmbeds.push(embedElem);\r\n }\r\n });\r\n\r\n return allEmbeds;\r\n}\r\n\r\nexport function embedSingle(element: HTMLElement, options: EmbedKitOptions) {\r\n options = options || {};\r\n\r\n let movie = resolveEmbedUrl(element.getAttribute(\"data-url\"));\r\n if (!movie?.id || !movie.type) {\r\n return null;\r\n }\r\n\r\n let embedElement = getEmbedElement(movie, options);\r\n if (!embedElement) {\r\n return null;\r\n }\r\n\r\n if (options.embedElementManipulator) {\r\n options.embedElementManipulator(embedElement, movie, element);\r\n }\r\n\r\n element.appendChild(embedElement);\r\n\r\n return embedElement;\r\n}\r\n\r\nfunction getEmbedElement(movie: Movie, options: EmbedKitOptions) {\r\n let iframeElement = document.createElement(\"iframe\");\r\n iframeElement.setAttribute(\"allowfullscreen\", \"allowfullscreen\");\r\n iframeElement.setAttribute(\"allow\", \"autoplay; fullscreen\");\r\n\r\n if (!movie?.id || !movie?.type) {\r\n return null;\r\n }\r\n \r\n switch (movie.type) {\r\n case \"youtube\": {\r\n let src = \"https://www.youtube.com/embed/\" + movie.id + \"?enablejsapi=1\";\r\n if (options.autoPlay) {\r\n src += \"&autoplay=1\";\r\n }\r\n iframeElement.setAttribute(\"src\", src);\r\n return iframeElement;\r\n }\r\n case \"vimeo\": {\r\n let src = \"https://player.vimeo.com/video/\" + movie.id;\r\n if (options.autoPlay) {\r\n src += \"?autoplay=1\";\r\n }\r\n iframeElement.setAttribute(\"src\", src);\r\n return iframeElement;\r\n }\r\n }\r\n}\r\n\r\nfunction query(selector: string) {\r\n let nodeList = document.querySelectorAll(selector);\r\n return Array.prototype.slice.call(nodeList, 0);\r\n}\r\nexport function resolveEmbedUrl(url: string) {\r\n return urlParsers.reduce((result, current) => {\r\n if (result) {\r\n return result;\r\n }\r\n\r\n let matches = current.regex.exec(url);\r\n if (matches && matches.length > 0) {\r\n return {\r\n type: current.type,\r\n id: matches[1],\r\n };\r\n }\r\n }, null as Movie);\r\n}\r\n\r\nexport function getEmbedController(element: HTMLIFrameElement) {\r\n let movie = resolveEmbedUrl(element.getAttribute(\"src\"));\r\n\r\n if (movie) {\r\n switch (movie.type) {\r\n case \"youtube\":\r\n return youTubeController(element);\r\n case \"vimeo\":\r\n return vimeoController(element);\r\n }\r\n }\r\n\r\n warn(\"Could not find controller for element: \" + element.outerHTML);\r\n}\r\n\r\nfunction youTubeController(element: HTMLIFrameElement) {\r\n if (element.src.indexOf(\"enablejsapi=1\") < 0) {\r\n warn(\r\n \"The youTubeController needs the enablejsapi=1 querystring parameter to be set in the src attribute, to be able to control the video\"\r\n );\r\n }\r\n\r\n return {\r\n play: () => {\r\n element.contentWindow.postMessage(\r\n JSON.stringify({ event: \"command\", func: \"playVideo\" }),\r\n \"https://www.youtube.com\"\r\n );\r\n },\r\n pause: () => {\r\n element.contentWindow.postMessage(\r\n JSON.stringify({ event: \"command\", func: \"pauseVideo\" }),\r\n \"https://www.youtube.com\"\r\n );\r\n },\r\n };\r\n}\r\n\r\nfunction vimeoController(element) {\r\n return {\r\n play: () => {\r\n element.contentWindow.postMessage(\r\n JSON.stringify({ method: \"play\" }),\r\n \"https://player.vimeo.com\"\r\n );\r\n },\r\n pause: () => {\r\n element.contentWindow.postMessage(\r\n JSON.stringify({ method: \"pause\" }),\r\n \"https://player.vimeo.com\"\r\n );\r\n },\r\n };\r\n}\r\n\r\nfunction warn(message) {\r\n console && console.warn && console.warn(message);\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { EmbedKitOptions, embedSingle, getEmbedController } from \"./shared/EmbedKit\";\r\n\r\ninterface Props {\r\n url: string;\r\n autoPlay?: boolean;\r\n}\r\n\r\nexport default function Video({ url, embedElementManipulator, autoPlay }: Props & EmbedKitOptions) {\r\n const divRef = useRef();\r\n const [embedFrame, setEmbedFrame] = useState();\r\n\r\n useEffect(() => {\r\n let element = embedSingle(divRef.current, { embedElementManipulator, autoPlay });\r\n setEmbedFrame(element);\r\n }, [embedElementManipulator, url]);\r\n\r\n return
    ;\r\n}\r\n","import * as React from \"react\";\r\nimport ImageViewer from \"./ImageViewer\";\r\nimport SmartBackgroundImage from \"./SmartBackgroundImage\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport Button from \"./Button\";\r\nimport Video from \"./Video\";\r\nimport {resolveEmbedUrl} from \"./shared/EmbedKit\";\r\nimport {useMemo, useState} from \"react\";\r\n\r\nexport type LodgingImagesViewerDisplayMode = \"single\" | \"collage\";\r\n\r\ninterface LodgingImagesViewer2Props {\r\n disableViewerTools?: boolean;\r\n backgroundMode?: boolean;\r\n images: { url: string; tagIds: number[] }[];\r\n clusterImageTagId?: number;\r\n floorPlanImageTagId?: number;\r\n displayMode?: LodgingImagesViewerDisplayMode;\r\n isGrouped: boolean;\r\n translations: LodgingPageTranslations;\r\n embeddedVideoHtml?: string;\r\n}\r\n\r\nfunction imagesForCluster(\r\n images: { url: string; tagIds: number[] }[],\r\n clusterImageTagId: number,\r\n minNumberOfImages: number = null\r\n) {\r\n if (!images || images.length === 0) {\r\n return [];\r\n }\r\n\r\n let clusteredImages = clusterImageTagId\r\n ? images.filter((img) => img.tagIds.some((id) => id === clusterImageTagId))\r\n : images;\r\n\r\n if (minNumberOfImages == null) {\r\n return clusteredImages;\r\n } else {\r\n if (clusteredImages.length < minNumberOfImages) {\r\n let remainingImages = images.filter((i) => clusteredImages.find((c) => c == i) == null);\r\n let missingImages = minNumberOfImages - clusteredImages.length;\r\n return [...clusteredImages, ...remainingImages.slice(0, missingImages)];\r\n } else {\r\n return clusteredImages;\r\n }\r\n }\r\n}\r\n\r\nfunction VideoIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function LodgingImageViewer({\r\n disableViewerTools,\r\n backgroundMode,\r\n images,\r\n clusterImageTagId,\r\n floorPlanImageTagId,\r\n displayMode,\r\n isGrouped,\r\n translations,\r\n embeddedVideoHtml\r\n}: LodgingImagesViewer2Props) {\r\n \r\n const [openingImageId, setOpeningImageId] = useState(null);\r\n const [viewerOpen, setViewerOpen] = useState(false);\r\n const [showVideo, setShowVideo] = useState(false);\r\n\r\n const collageMode = useMemo(() => {\r\n return (displayMode && displayMode === \"collage\");\r\n }, [displayMode]);\r\n \r\n const containerClassName = useMemo(() => {\r\n if (collageMode) {\r\n return \"bwp-lodging-image-grid1\";\r\n }\r\n return \"bwp-lodging-image-single\";\r\n }, [collageMode]);\r\n\r\n const classNames = useMemo(() => {\r\n const names = [\"bwp-lodging-images\"];\r\n if (backgroundMode) {\r\n names.push(\"bwp-background-mode\");\r\n }\r\n return names.join(\" \"); \r\n }, [backgroundMode]);\r\n \r\n const viewerToolsEnabled = useMemo(() => {\r\n return !disableViewerTools;\r\n }, [disableViewerTools]);\r\n \r\n if (!images?.length) {\r\n const images = collageMode\r\n ? [0, 1, 2, 3, 4, 5, 6, 7]\r\n : [0];\r\n\r\n return (\r\n
    \r\n
    \r\n {images.slice(0, Math.min(images.length, 6)).map((img, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const hasVideo = useMemo(() => {\r\n return !!resolveEmbedUrl(embeddedVideoHtml);\r\n }, [embeddedVideoHtml]);\r\n\r\n const floorPlanImageIndex = useMemo(() => {\r\n if (!images?.length){\r\n return -1;\r\n }\r\n return images.findIndex((i) =>\r\n i.tagIds.includes(floorPlanImageTagId)\r\n );\r\n }, [images, floorPlanImageTagId]);\r\n\r\n const imagesForViewer: { url: string }[] = useMemo(() => {\r\n if (isGrouped) {\r\n return imagesForCluster(images, clusterImageTagId);\r\n }\r\n return images;\r\n }, [images, isGrouped, clusterImageTagId]);\r\n \r\n const clusteredImages: { url: string }[] = useMemo(() => {\r\n if (isGrouped) {\r\n return imagesForCluster(images, clusterImageTagId);\r\n }\r\n return imagesForCluster(images, clusterImageTagId, 6);\r\n }, [images, isGrouped, clusterImageTagId]);\r\n \r\n const displayedImages = useMemo(() => {\r\n return collageMode\r\n ? clusteredImages.slice(0, 6)\r\n : [clusteredImages[0]];\r\n }, [collageMode, clusteredImages]);\r\n\r\n const getImageUrl = (image: { url: string }, width: number, height: number) => {\r\n if (!(image?.url)) {\r\n return null;\r\n }\r\n let url = image.url.replace(\"/default\", \"\");\r\n url = url.replace(\"/cl/\", \"/v2/\");\r\n url = url + \"?width=\" + width + \"&height=\" + height + \"&mode=crop\";\r\n return url;\r\n };\r\n\r\n const handleViewerOpen = (imageId: number | null) => {\r\n if (viewerToolsEnabled) {\r\n setViewerOpen(true);\r\n setOpeningImageId(imageId);\r\n }\r\n };\r\n \r\n const handleViewerClose = () => {\r\n setViewerOpen(false);\r\n setOpeningImageId(null);\r\n };\r\n\r\n const handlePlayVideo = () => {\r\n setShowVideo(true);\r\n };\r\n\r\n const handleHideVideo = () => {\r\n setShowVideo(false);\r\n };\r\n \r\n return (\r\n \r\n
    \r\n
    \r\n {displayedImages.map((img, index) => {\r\n return (\r\n \r\n getImageUrl(img, width, height)\r\n }\r\n onClick={() => handleViewerOpen(index)}\r\n />\r\n );\r\n })}\r\n {hasVideo && (\r\n
    \r\n {showVideo == false && (\r\n
    \r\n \r\n )}\r\n
    \r\n )}\r\n {showVideo && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n if (el) {\r\n el.style.height = \"100%\";\r\n el.style.width = \"100%\";\r\n }\r\n }}\r\n />\r\n
    \r\n
    \r\n )}\r\n {viewerToolsEnabled && (\r\n
    \r\n {floorPlanImageIndex != -1 && (\r\n handleViewerOpen(floorPlanImageIndex)}\r\n >\r\n {translations.showFloorPlan}\r\n \r\n )}\r\n handleViewerOpen(null)}\r\n >\r\n {translations.showImages}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {viewerOpen && (\r\n \r\n )}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport \"./Breadcrumb.scss\";\r\ninterface Props {\r\n items: BreadcrumbItem[];\r\n}\r\n\r\nexport interface BreadcrumbItem {\r\n name: string;\r\n url?: string;\r\n}\r\n\r\nexport default function Breadcrumb({ items }: Props) {\r\n return (\r\n
      \r\n {items.map((i, index) => (\r\n
    1. \r\n {i.url ? {i.name} : {i.name}}\r\n \r\n \r\n \r\n
    2. \r\n ))}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\ninterface Props {\r\n favourite: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport default function HeartIcon({ favourite, onClick }: Props) {\r\n return (\r\n
    \r\n {!favourite && (\r\n \r\n \r\n \r\n )}\r\n {favourite && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport HeartIcon from \"./HeartIcon\";\r\nimport \"./FavoriteButton.scss\";\r\n\r\ninterface Props {\r\n text: string;\r\n value: boolean;\r\n onChange: (value: boolean) => void;\r\n}\r\n\r\nexport default function FavoriteButton({ text, value, onChange }: Props) {\r\n return (\r\n {\r\n onChange(!value);\r\n }}\r\n >\r\n {text} \r\n
    \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport LodgingImagesViewer, { LodgingImagesViewerDisplayMode } from \"./LodgingImagesViewer\";\r\n\r\nimport \"./LodgingImages.scss\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport Breadcrumb, { BreadcrumbItem } from \"./Breadcrumb\";\r\nimport FavoriteButton from \"./FavoriteButton\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\n\r\ninterface Props {\r\n clusterImageTagId: number;\r\n floorPlanImageTagId: number;\r\n displayMode?: LodgingImagesViewerDisplayMode; \r\n useGrouping: boolean;\r\n translations: LodgingPageTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n breadcrumb: BreadcrumbItem[];\r\n favorite: boolean;\r\n onFavoriteChanged: (value: boolean) => void;\r\n}\r\n\r\nexport default function LodgingImages({\r\n images,\r\n useGrouping,\r\n clusterImageTagId,\r\n floorPlanImageTagId,\r\n displayMode,\r\n translations,\r\n favouritesTranslations,\r\n activeDescription,\r\n breadcrumb,\r\n favorite,\r\n onFavoriteChanged,\r\n}: Props & LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"]) {\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import \"./LodgingFacilityRow.scss\";\r\nimport React from \"react\";\r\nimport { pluralize } from \"./shared/helpers\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { MasterFacilities } from \"./shared/types\";\r\n\r\ninterface Props {\r\n translations: LodgingPageTranslations;\r\n}\r\n\r\nexport default function LodgingFacilityRow({\r\n maxPeople,\r\n petsAllowed,\r\n facilityValues,\r\n translations,\r\n}: Props & LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"]) {\r\n const bedsFacility = facilityValues.find((f) => f.masterFacilityId == MasterFacilities.Bedrooms);\r\n const sizeFacility = facilityValues.find((f) => f.masterFacilityId == MasterFacilities.LodgingArea);\r\n const sizeFacilityText = sizeFacility\r\n ? `${sizeFacility.facility.name} ${sizeFacility.displayValue}`\r\n : \"\";\r\n return (\r\n
    \r\n
    \r\n \r\n {pluralize(maxPeople, translations.person)}\r\n
    \r\n {petsAllowed != null && petsAllowed && (\r\n
    \r\n \r\n {translations.petsAllowed}\r\n
    \r\n )}\r\n {(petsAllowed == null || petsAllowed === false) && (\r\n
    \r\n \r\n {translations.petsNotAllowed}\r\n
    \r\n )}\r\n {bedsFacility != null && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n {sizeFacility != null && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nfunction PersonIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction DogIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction BedIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction SizeIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\n\r\nimport \"./LodgingDescription.scss\";\r\n\r\ninterface Props {\r\n translations: LodgingPageTranslations;\r\n}\r\n\r\nexport default function LodgingDescription({\r\n translations,\r\n activeDescription,\r\n}: Props & LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"]) {\r\n if (activeDescription?.body == null && activeDescription?.longHtmlDescription == null) {\r\n return null;\r\n }\r\n\r\n let hasLongHtmlDescription =\r\n activeDescription?.longHtmlDescription != null &&\r\n activeDescription?.longHtmlDescription.trim().length > 0;\r\n\r\n return (\r\n
    \r\n

    {translations.lodgingDescription}

    \r\n {hasLongHtmlDescription && (\r\n
    \r\n )}\r\n {!hasLongHtmlDescription && activeDescription?.body && (\r\n
    {activeDescription?.body}
    \r\n )}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./IconHeadline.scss\";\r\n\r\nexport interface Props {\r\n headline: string;\r\n icon: \"video\" | \"comment\" | \"envelope\" | \"\";\r\n}\r\n\r\nexport default function IconHeadline({ headline, icon }: Props) {\r\n const names = ['bwp-icon-headline'];\r\n if (icon) {\r\n names.push(`bwp-icon-headline--${icon}`);\r\n }\r\n\r\n return (\r\n

    {headline}

    \r\n );\r\n}","import React from \"react\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport \"./LodgingFacilityGroup.scss\";\r\n\r\ninterface Props {\r\n groupName: string;\r\n facilityIds: number[];\r\n}\r\n\r\nexport default function LodgingFacilityGroup({\r\n groupName,\r\n facilityIds,\r\n facilityValues,\r\n}: Props & LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"]) {\r\n return (\r\n
    \r\n

    {groupName}

    \r\n {facilityIds\r\n .map((f) => facilityValues.find((fv) => fv.facilityId == f))\r\n .filter((fv) => fv != null)\r\n .map((fi) => (\r\n
    \r\n
    {fi.facility.name}
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { LodgingPageTranslations } from \"./translations/LodgingPageTranslations\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { stringFormat } from \"./shared/helpers\";\r\nimport \"./LodgingReviews.scss\";\r\n\r\ninterface Props {\r\n translations: LodgingPageTranslations;\r\n lodging: LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"];\r\n}\r\n\r\nexport default function LodgingReviews({ translations, lodging }: Props) {\r\n\r\n const containerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (lodging && lodging.reviews && lodging.reviews.length && containerRef.current) {\r\n const rowElement = containerRef.current.closest('.bwp-row');\r\n if (rowElement) {\r\n rowElement.classList.remove('bwp-optional');\r\n }\r\n }\r\n }, [lodging]);\r\n\r\n return (\r\n
    \r\n

    {translations.reviews}

    \r\n\r\n {lodging.reviews.map((r, index) => (\r\n \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nfunction LodgingReview({\r\n review,\r\n translations,\r\n}: {\r\n review: Props[\"lodging\"][\"reviews\"][0];\r\n translations: LodgingPageTranslations;\r\n}) {\r\n return (\r\n
    \r\n
    \r\n {review.reviewerName} \r\n
    \r\n
    {review.reviewOfLodgingText}
    \r\n
    \r\n {stringFormat(translations.reviewPeriod, review.month)}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction CommentIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","let googleMapsCallbackListener = [];\r\nlet loadingGoogleMaps = false;\r\n\r\nif (typeof window != \"undefined\") {\r\n window[\"CALLBACK_INCLUDEGOOGLEMAP\"] = () => {\r\n googleMapsCallbackListener.forEach((fn) => {\r\n fn();\r\n });\r\n\r\n googleMapsCallbackListener = [];\r\n };\r\n}\r\n\r\nexport function ensureGoogleMapsIncluded(apiKey: string): Promise {\r\n if (window[\"google\"] === undefined || window[\"google\"][\"maps\"] === undefined) {\r\n if (loadingGoogleMaps === false) {\r\n loadingGoogleMaps = true;\r\n\r\n const googleScript = document.createElement(\"script\");\r\n googleScript.src =\r\n \"https://maps.googleapis.com/maps/api/js?callback=CALLBACK_INCLUDEGOOGLEMAP&key=\" +\r\n apiKey;\r\n\r\n document.body.appendChild(googleScript);\r\n }\r\n\r\n return new Promise((resolve, _) => {\r\n addGoogleMapsCallbackListener(resolve);\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n}\r\n\r\nfunction addGoogleMapsCallbackListener(fn: (value: any) => void) {\r\n googleMapsCallbackListener.push(fn);\r\n}\r\n","import * as React from \"react\";\r\nimport { LodgingPresentationQuery } from \"./operations.generated\";\r\nimport { ensureGoogleMapsIncluded } from \"./shared/googleMapUtils\";\r\nimport { fuzzyCoordinate } from \"./shared/Coordinates\";\r\nimport { Coordinate } from \"./shared/types\";\r\nimport \"./LodgingMap.scss\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport useLazyLoad from \"./shared/useLazyLoad\";\r\n\r\ninterface HouseMapProps {\r\n lodging: LodgingPresentationQuery[\"lodgingPresentation\"][\"lodging\"];\r\n googleMapsApiKey: string;\r\n maxMapZoomLevel?: number;\r\n mapZoomLevel?: number;\r\n useCircle?: boolean;\r\n useFuzzyCoordinates?: boolean;\r\n fuzzyRangeInKm?: number;\r\n circleRadius?: number;\r\n circleFillColor?: string;\r\n circleFillOpacity?: number;\r\n circleStrokeColor?: string;\r\n circleStrokeOpacity?: number;\r\n circleStrokeWeight?: number;\r\n markerIconUrl?: string;\r\n mapHeight?: number;\r\n}\r\n\r\nconst DefaultMapHeight = \"500px\";\r\nconst DefaultMapZoomLevel = 6;\r\nconst DefaultMaxMapZoomLevel = 11;\r\nconst DefaultCircleRadius = 10000;\r\nconst DefaultCircleFillColor = \"#6666ff\";\r\nconst DefaultCircleFillOpacity = 0.2;\r\nconst DefaultCircleStrokeColor = \"#000000\";\r\nconst DefaultCircleStrokeOpacity = 0;\r\nconst DefaultCircleStrokeWeight = 1;\r\n\r\nexport default function LodgingMap({\r\n mapZoomLevel = DefaultMapZoomLevel,\r\n useCircle,\r\n useFuzzyCoordinates,\r\n fuzzyRangeInKm,\r\n circleRadius,\r\n circleFillColor,\r\n circleFillOpacity,\r\n circleStrokeColor,\r\n circleStrokeOpacity,\r\n circleStrokeWeight,\r\n markerIconUrl,\r\n googleMapsApiKey,\r\n lodging,\r\n mapHeight,\r\n maxMapZoomLevel = DefaultMaxMapZoomLevel,\r\n}: HouseMapProps) {\r\n const map = useRef();\r\n const circle = useRef();\r\n const mapTarget = useRef();\r\n\r\n const [googleApiAvailable, setGoogleApiAvailable] = useState(false);\r\n\r\n useLazyLoad(mapTarget, () => {\r\n if (!googleMapsApiKey) {\r\n return;\r\n }\r\n ensureGoogleMapsIncluded(googleMapsApiKey).then(() => {\r\n setGoogleApiAvailable(true);\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n if (map.current == null && lodging != null && googleApiAvailable) {\r\n const coords = useFuzzyCoordinates\r\n ? fuzzyCoordinate(\r\n {\r\n lat: parseFloat(lodging.latitude),\r\n lng: parseFloat(lodging.longitude),\r\n } as Coordinate,\r\n fuzzyRangeInKm,\r\n `lodging${lodging.id}`\r\n )\r\n : ({\r\n lat: parseFloat(lodging.latitude),\r\n lng: parseFloat(lodging.longitude),\r\n } as Coordinate);\r\n\r\n map.current = new google.maps.Map(mapTarget.current, {\r\n center: coords,\r\n zoom: mapZoomLevel,\r\n styles: [\r\n {\r\n featureType: \"poi.business\",\r\n elementType: \"labels\",\r\n stylers: [{ visibility: \"off\" }],\r\n },\r\n ],\r\n });\r\n\r\n const startRadius = useCircle ? circleRadius : 1;\r\n const startZoomLevel = mapZoomLevel;\r\n const stopZoomLevel = maxMapZoomLevel;\r\n const stopRadius = (startZoomLevel / stopZoomLevel) * startRadius;\r\n const levelRatio = (stopRadius - startRadius) / (stopZoomLevel - startZoomLevel);\r\n const baseRadius = startRadius - levelRatio * startZoomLevel;\r\n\r\n map.current.addListener(\"bounds_changed\", () => {\r\n const zoomLevel = map.current.getZoom();\r\n if (useCircle) {\r\n const calculatedCircleRadius = zoomLevel * levelRatio + baseRadius;\r\n circle.current.setRadius(calculatedCircleRadius);\r\n }\r\n if (0 < maxMapZoomLevel && maxMapZoomLevel < zoomLevel) {\r\n map.current.setZoom(maxMapZoomLevel);\r\n }\r\n });\r\n\r\n if (useCircle !== undefined && useCircle !== null && useCircle) {\r\n circle.current = new google.maps.Circle({\r\n center: coords,\r\n radius:\r\n circleRadius !== undefined && circleRadius !== null\r\n ? circleRadius\r\n : DefaultCircleRadius,\r\n strokeColor:\r\n circleStrokeColor !== undefined && circleStrokeColor !== null\r\n ? circleStrokeColor\r\n : DefaultCircleStrokeColor,\r\n strokeOpacity:\r\n circleStrokeOpacity !== undefined && circleStrokeOpacity !== null\r\n ? circleStrokeOpacity\r\n : DefaultCircleStrokeOpacity,\r\n strokeWeight:\r\n circleStrokeWeight !== undefined && circleStrokeWeight !== null\r\n ? circleStrokeWeight\r\n : DefaultCircleStrokeWeight,\r\n fillColor:\r\n circleFillColor !== undefined && circleFillColor !== null\r\n ? circleFillColor\r\n : DefaultCircleFillColor,\r\n fillOpacity:\r\n circleFillOpacity !== undefined && circleFillOpacity !== null\r\n ? circleFillOpacity\r\n : DefaultCircleFillOpacity,\r\n map: map.current,\r\n });\r\n } else {\r\n let opts = {\r\n position: coords,\r\n map: map.current,\r\n };\r\n if (markerIconUrl !== undefined && markerIconUrl !== null && markerIconUrl !== \"\") {\r\n opts = Object.assign(opts, { icon: markerIconUrl });\r\n }\r\n new google.maps.Marker(opts);\r\n }\r\n }\r\n }, [\r\n circleFillColor,\r\n circleFillOpacity,\r\n circleRadius,\r\n circleStrokeColor,\r\n circleStrokeOpacity,\r\n circleStrokeWeight,\r\n fuzzyRangeInKm,\r\n googleApiAvailable,\r\n lodging,\r\n mapZoomLevel,\r\n markerIconUrl,\r\n maxMapZoomLevel,\r\n useCircle,\r\n useFuzzyCoordinates,\r\n ]);\r\n \r\n if (!googleMapsApiKey) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import seedrandom from \"seedrandom\";\r\nimport { Coordinate } from \"./types\";\r\n\r\nexport function fuzzyCoordinate(\r\n coord: Coordinate,\r\n fuzzinessInKm: number,\r\n seed: string\r\n): Coordinate {\r\n const kmPerDegreeLatitude: number = (1 / 110.574) * (fuzzinessInKm || 1);\r\n const kmPerDegreeLongitude: number =\r\n (1 / (111.325 * Math.cos((coord.lat * Math.PI) / 180))) * (fuzzinessInKm || 1);\r\n\r\n const latitudeMinMax = {\r\n min: coord.lat - kmPerDegreeLatitude,\r\n max: coord.lat + kmPerDegreeLatitude,\r\n };\r\n\r\n const longitudeMinMax = {\r\n min: coord.lng - kmPerDegreeLongitude,\r\n max: coord.lng + kmPerDegreeLongitude,\r\n };\r\n\r\n let rng = seed !== null && seed !== \"\" ? seedrandom(seed) : seedrandom();\r\n\r\n return {\r\n lat: rng() * (latitudeMinMax.max - latitudeMinMax.min) + latitudeMinMax.min,\r\n lng: rng() * (longitudeMinMax.max - longitudeMinMax.min) + longitudeMinMax.min,\r\n } as Coordinate;\r\n}\r\n","import React from \"react\";\r\nimport { LocationDescriptionFragment } from \"./operations.generated\";\r\nimport \"./LocationDescription.scss\";\r\n\r\ninterface Props {\r\n location: LocationDescriptionFragment;\r\n}\r\n\r\nexport default function LocationDescription({ location }: Props) {\r\n return (\r\n
    \r\n

    {location.name}

    \r\n

    {location.shortDescription}

    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./LocationReviews.scss\";\r\nimport { LocationReviewsFragment } from \"./operations.generated\";\r\nimport { CommentIcon } from \"./shared/icons\";\r\n\r\ninterface Props {\r\n reviews: LocationReviewsFragment[\"reviews\"];\r\n}\r\n\r\nexport default function LocationReviews({ reviews }: Props) {\r\n return (\r\n
    \r\n {reviews.map((review, index) => (\r\n
    \r\n \r\n

    {review.reviewOfAreaText}

    \r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ButtonType } from \"./shared/types\";\r\nimport \"./Button.scss\";\r\nimport { removeEmptyProps } from \"./shared/helpers\";\r\n\r\nexport interface NavButtonStyles {\r\n marginTop?: string;\r\n marginBottom?: string;\r\n marginLeft?: string;\r\n marginRight?: string;\r\n}\r\n\r\nexport interface NavButtonProps {\r\n type: ButtonType;\r\n url: string;\r\n children: React.ReactNode;\r\n isFullWidth?: boolean;\r\n isCentered?: boolean;\r\n openInNewTab?: boolean;\r\n style?: NavButtonStyles;\r\n}\r\n\r\nexport default function NavButton({ type, children, url, isFullWidth, isCentered, openInNewTab, style }: NavButtonProps) {\r\n const classNames = [\"bwp-button\"];\r\n if (type && type !== \"default\") {\r\n classNames.push(`bwp-button--${type}`);\r\n }\r\n if (isFullWidth) {\r\n classNames.push(\"bwp-button--fullwidth\");\r\n }\r\n \r\n let linkTagProps = {\r\n href: url,\r\n className: classNames.join(\" \"),\r\n style: removeEmptyProps(style)\r\n };\r\n \r\n if (openInNewTab) {\r\n linkTagProps = Object.assign(linkTagProps, { target: \"_blank\" });\r\n }\r\n\r\n const link = (\r\n \r\n {children}\r\n \r\n );\r\n\r\n if (isCentered) {\r\n return (\r\n
    \r\n {link}\r\n
    \r\n )\r\n }\r\n\r\n return link;\r\n}\r\n","import React from \"react\";\r\nimport SmartBackgroundImage from \"./SmartBackgroundImage\";\r\nimport \"./BreakoutImage.scss\";\r\n\r\nexport interface BreakoutImageProps {\r\n imageUrl: string;\r\n title?: string;\r\n link?: string;\r\n side: \"left\" | \"right\";\r\n}\r\n\r\nexport default function BreakoutImage({ imageUrl, title, link, side }) {\r\n\r\n const getImageUrl = (width: number, height: number) => {\r\n return imageUrl;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport \"./FilterPanel.scss\";\r\nimport CheckBoxWithLabel from \"./CheckBoxWithLabel\";\r\nimport { SearchBoxSettings } from \"./shared/types\";\r\nimport usePassiveGlobalSearchContext from \"./shared/usePassiveGlobalSearchContext\";\r\nimport SearchBoxRangeFilter from \"./SearchBoxRangeFilter\";\r\nimport Button from \"./Button\";\r\nimport AnimatedCounter from \"./AnimatedCounter\";\r\nimport { CloseIcon } from \"./CloseIcon\";\r\nimport { SearchBoxTranslations } from \"./translations/SearchBoxTranslations\";\r\n\r\ninterface LodgingListFilterProps {\r\n searchBoxSettings: SearchBoxSettings;\r\n translations: SearchBoxTranslations;\r\n}\r\n\r\nexport default function LodgingListFilter({\r\n searchBoxSettings,\r\n translations,\r\n}: LodgingListFilterProps) {\r\n const [searchContext, setSearchContext] = usePassiveGlobalSearchContext();\r\n const [open, setOpen] = useState(false);\r\n const [numberOfSearchResults, setNumberOfSearchResults] = useState(null);\r\n\r\n useEffect(() => {\r\n const body = document.querySelector(\"body\");\r\n const bounds = body.getBoundingClientRect();\r\n if (bounds.width < 768) {\r\n if (open) {\r\n body.classList.add(\"bwp-noscroll\");\r\n } else {\r\n body.classList.remove(\"bwp-noscroll\");\r\n }\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n let listener = (e: { detail: number }) => {\r\n setNumberOfSearchResults(e.detail);\r\n };\r\n\r\n window.addEventListener(\"numberOfSearchResultsUpdated\", listener as any);\r\n\r\n return () => {\r\n window.removeEventListener(\"numberOfSearchResultsUpdated\", listener as any);\r\n };\r\n });\r\n\r\n if (searchContext == null) {\r\n return
    ;\r\n }\r\n\r\n if (searchBoxSettings == null) {\r\n return (\r\n
    \r\n SearchBoxSettings was null. It must be supplied by choosing a SearchBoxSetting in\r\n the Administration.\r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    setOpen(false)}>\r\n \r\n
    \r\n {searchBoxSettings.rangeFacilities.map((filter) => (\r\n \r\n setSearchContext(\r\n searchContext.changeFacilityRange(filter.facilityId, v)\r\n )\r\n }\r\n disabled={!searchContext.canChangeFacilityValue(filter.facilityId)}\r\n />\r\n ))}\r\n {searchBoxSettings.booleanFacilities.map((facility) => (\r\n \r\n setSearchContext(\r\n searchContext.changeFacilityValue(\r\n facility.facilityId,\r\n v ? \"true\" : null\r\n )\r\n )\r\n }\r\n disabled={!searchContext.canChangeFacilityValue(facility.facilityId)}\r\n />\r\n ))}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function ClockIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function HouseIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function KeyIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./LodgingGeneralInfo.scss\";\r\nimport ClockIcon from \"./ClockIcon\";\r\nimport HouseIcon from \"./HouseIcon\";\r\nimport KeyIcon from \"./KeyIcon\";\r\n\r\ninterface Props {\r\n title: string;\r\n checkInOutTitle: string;\r\n checkInOutContentHtml: string;\r\n houseInformationTitle: string;\r\n houseInformationHtml: string;\r\n keyInformationTitle: string;\r\n keyInformationHtml: string;\r\n}\r\n\r\nexport default function LodgingGeneralInfo({\r\n title,\r\n checkInOutTitle,\r\n checkInOutContentHtml,\r\n houseInformationTitle,\r\n houseInformationHtml,\r\n keyInformationTitle,\r\n keyInformationHtml,\r\n}: Props) {\r\n return (\r\n
    \r\n

    {title}

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

    {checkInOutTitle}

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

    {houseInformationTitle}

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

    {keyInformationTitle}

    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import { SearchContext, SearchContextProps } from \"./searchcontext\";\r\nimport { useCallback, useEffect, useState } from \"react\";\r\nimport {isBrowser, isValidDate} from \"./helpers\";\r\nimport * as queryString from \"querystring\";\r\nimport { LodgingListSetting } from \"./types\";\r\nimport { lodgingListSettingToSearchContext } from \"./lodgingListUtils\";\r\n\r\nfunction getSearchFromGlobal() {\r\n let tokens = globalUrl.split(\"?\");\r\n if (tokens.length > 1) {\r\n return globalUrl.split(\"?\")[1];\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction getSearchFromLocal() {\r\n let url = window[\"BookingStudio_originalUrl\"] || window.location.search;\r\n let tokens = url.split(\"?\");\r\n if (tokens.length > 1) {\r\n return url.split(\"?\")[1];\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction generateDefaultSearchContext(\r\n presetValues: SearchContextProps,\r\n defaultValue: SearchContextProps,\r\n lodgingListSetting: LodgingListSetting\r\n) {\r\n if (lodgingListSetting != null) {\r\n const presetContext = presetValues\r\n ? SearchContext.createFromSearchContextProps(presetValues).merge(lodgingListSettingToSearchContext(lodgingListSetting))\r\n : lodgingListSettingToSearchContext(lodgingListSetting);\r\n \r\n return isBrowser()\r\n ? SearchContext.createFromQueryString(getSearchFromLocal()).usePreset(presetContext)\r\n : SearchContext.createFromQueryString(getSearchFromGlobal()).usePreset(presetContext);\r\n }\r\n\r\n const result = isBrowser()\r\n ? SearchContext.createFromQueryStringWithPresetsAndDefaults(getSearchFromLocal(), presetValues, defaultValue)\r\n : SearchContext.createFromQueryStringWithPresetsAndDefaults(getSearchFromGlobal(), presetValues, defaultValue);\r\n \r\n return result;\r\n}\r\n\r\n/**\r\n * A hook that supplies access to a SearchContext instance.\r\n */\r\nexport default function useGlobalSearchContext({\r\n presets,\r\n defaultValues,\r\n lodgingListSetting,\r\n}: {\r\n presets?: SearchContextProps;\r\n defaultValues?: SearchContextProps;\r\n lodgingListSetting?: LodgingListSetting;\r\n}) {\r\n let [searchContext, setSearchContext] = useState(\r\n generateDefaultSearchContext(presets, (defaultValues || {}), lodgingListSetting)\r\n );\r\n\r\n useEffect(() => {\r\n if (isBrowser()) {\r\n const listener = () => {\r\n const newSearchContext = SearchContext.createFromQueryStringWithPresetsAndDefaults(\r\n window.location.search,\r\n presets,\r\n defaultValues\r\n );\r\n setSearchContext(newSearchContext);\r\n };\r\n const passiveListener = (e: { detail: SearchContext }) => {\r\n if (e.detail != searchContext) {\r\n setSearchContext(e.detail);\r\n replaceState(e.detail);\r\n }\r\n };\r\n const updatedListener = (e: { detail: SearchContext }) => {\r\n if (e.detail != searchContext) {\r\n setSearchContext(e.detail);\r\n }\r\n };\r\n\r\n window.addEventListener(\"popstate\", listener);\r\n window.addEventListener(\"passiveSearchContextUpdated\", passiveListener as any);\r\n window.addEventListener(\"searchContextUpdated\", updatedListener as any);\r\n\r\n return () => {\r\n window.removeEventListener(\"popstate\", listener);\r\n window.addEventListener(\"passiveSearchContextUpdated\", passiveListener as any);\r\n window.addEventListener(\"searchContextUpdated\", updatedListener as any);\r\n };\r\n }\r\n }, [defaultValues, presets, searchContext]);\r\n\r\n useEffect(() => {\r\n window.dispatchEvent(new CustomEvent(\"searchContextUpdated\", { detail: searchContext }));\r\n }, [searchContext]);\r\n\r\n const handleSetSearchContext = useCallback((searchContext: SearchContext) => {\r\n if (isBrowser()) {\r\n setSearchContext(searchContext);\r\n replaceState(searchContext);\r\n } else {\r\n throw \"Global Search Context does not supporting setting the value outside of a browser context\";\r\n }\r\n }, []);\r\n\r\n return [searchContext, handleSetSearchContext] as [\r\n SearchContext,\r\n (searchContext: SearchContext) => void\r\n ];\r\n}\r\n\r\nexport function replaceState(searchContext: SearchContext) {\r\n let queryStringValuesToKeep = {};\r\n if (window.location.search.startsWith(\"?\")) {\r\n let qs = queryString.parse(window.location.search.substring(1));\r\n\r\n Object.keys(qs).forEach((key) => {\r\n if (!SearchContext.isSearchContextQueryStringKeyName(key)) {\r\n queryStringValuesToKeep[key] = qs[key];\r\n }\r\n });\r\n }\r\n\r\n let searchContextQueryString = searchContext.toQueryString(\r\n [],\r\n true\r\n );\r\n let parsedSearchContextQueryString = queryString.parse(searchContextQueryString);\r\n Object.keys(parsedSearchContextQueryString).forEach((key) => {\r\n queryStringValuesToKeep[key] = parsedSearchContextQueryString[key];\r\n });\r\n\r\n let url = window.location.href.split(\"?\")[0];\r\n\r\n let qs = queryString.stringify(queryStringValuesToKeep);\r\n\r\n if (qs != \"\") {\r\n url = \"?\" + qs;\r\n }\r\n\r\n window.history.replaceState(null, null, url);\r\n}\r\n","import toDate from \"../toDate/index.js\";\nimport addLeadingZeros from \"../_lib/addLeadingZeros/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with local time zone, or both.\n * @returns {String} the formatted date string (in local time zone)\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\n\nexport default function formatISO(date, options) {\n requiredArgs(1, arguments);\n var originalDate = toDate(date);\n\n if (isNaN(originalDate.getTime())) {\n throw new RangeError('Invalid time value');\n }\n\n var format = !(options !== null && options !== void 0 && options.format) ? 'extended' : String(options.format);\n var representation = !(options !== null && options !== void 0 && options.representation) ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with 'T'\n\n var separator = result === '' ? '' : 'T'; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n\n var time = [hour, minute, second].join(timeDelimiter); // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n\n return result;\n}","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}","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n /**\n * An array of `{ line, column }` locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n /**\n * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nexport let OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n","/**\n * The set of allowed directive location values.\n */\nexport let DirectiveLocation;\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n\n(function (DirectiveLocation) {\n DirectiveLocation['QUERY'] = 'QUERY';\n DirectiveLocation['MUTATION'] = 'MUTATION';\n DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n DirectiveLocation['FIELD'] = 'FIELD';\n DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n DirectiveLocation['SCHEMA'] = 'SCHEMA';\n DirectiveLocation['SCALAR'] = 'SCALAR';\n DirectiveLocation['OBJECT'] = 'OBJECT';\n DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n DirectiveLocation['INTERFACE'] = 'INTERFACE';\n DirectiveLocation['UNION'] = 'UNION';\n DirectiveLocation['ENUM'] = 'ENUM';\n DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport let Kind;\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport let TokenKind;\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n\n(function (TokenKind) {\n TokenKind['SOF'] = '';\n TokenKind['EOF'] = '';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport class Lexer {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const token = (this.token = this.lookahead());\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n\n lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // \n\n case 0x0009: // \\t\n\n case 0x0020: // \n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n const parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseConstValueLiteral();\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport class Parser {\n constructor(source, options) {\n const sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n parseName() {\n const token = this.expectToken(TokenKind.NAME);\n return this.node(token, {\n kind: Kind.NAME,\n value: token.value,\n });\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n\n parseDocument() {\n return this.node(this._lexer.token, {\n kind: Kind.DOCUMENT,\n definitions: this.many(\n TokenKind.SOF,\n this.parseDefinition,\n TokenKind.EOF,\n ),\n });\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n *\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n\n parseDefinition() {\n if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } // Many definitions begin with a description and require a lookahead.\n\n const hasDescription = this.peekDescription();\n const keywordToken = hasDescription\n ? this._lexer.lookahead()\n : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n\n if (hasDescription) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n 'Unexpected description, descriptions are supported only on type definitions.',\n );\n }\n\n switch (keywordToken.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n\n parseOperationDefinition() {\n const start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n const operation = this.parseOperationType();\n let name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation,\n name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * OperationType : one of query mutation subscription\n */\n\n parseOperationType() {\n const operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return OperationTypeNode.QUERY;\n\n case 'mutation':\n return OperationTypeNode.MUTATION;\n\n case 'subscription':\n return OperationTypeNode.SUBSCRIPTION;\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n\n parseVariableDefinitions() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseVariableDefinition,\n TokenKind.PAREN_R,\n );\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n\n parseVariableDefinition() {\n return this.node(this._lexer.token, {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n ? this.parseConstValueLiteral()\n : undefined,\n directives: this.parseConstDirectives(),\n });\n }\n /**\n * Variable : $ Name\n */\n\n parseVariable() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return this.node(start, {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n });\n }\n /**\n * ```\n * SelectionSet : { Selection+ }\n * ```\n */\n\n parseSelectionSet() {\n return this.node(this._lexer.token, {\n kind: Kind.SELECTION_SET,\n selections: this.many(\n TokenKind.BRACE_L,\n this.parseSelection,\n TokenKind.BRACE_R,\n ),\n });\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n\n parseSelection() {\n return this.peek(TokenKind.SPREAD)\n ? this.parseFragment()\n : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n\n parseField() {\n const start = this._lexer.token;\n const nameOrAlias = this.parseName();\n let alias;\n let name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return this.node(start, {\n kind: Kind.FIELD,\n alias,\n name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L)\n ? this.parseSelectionSet()\n : undefined,\n });\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n\n parseArguments(isConst) {\n const item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n\n parseArgument(isConst = false) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.ARGUMENT,\n name,\n value: this.parseValueLiteral(isConst),\n });\n }\n\n parseConstArgument() {\n return this.parseArgument(true);\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n\n parseFragment() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n const hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return this.node(start, {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n });\n }\n\n return this.node(start, {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n\n parseFragmentDefinition() {\n var _this$_options;\n\n const start = this._lexer.token;\n this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (\n ((_this$_options = this._options) === null || _this$_options === void 0\n ? void 0\n : _this$_options.allowLegacyFragmentVariables) === true\n ) {\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentName : Name but not `on`\n */\n\n parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseValueLiteral(isConst) {\n const token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return this.node(token, {\n kind: Kind.INT,\n value: token.value,\n });\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return this.node(token, {\n kind: Kind.FLOAT,\n value: token.value,\n });\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: true,\n });\n\n case 'false':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: false,\n });\n\n case 'null':\n return this.node(token, {\n kind: Kind.NULL,\n });\n\n default:\n return this.node(token, {\n kind: Kind.ENUM,\n value: token.value,\n });\n }\n\n case TokenKind.DOLLAR:\n if (isConst) {\n this.expectToken(TokenKind.DOLLAR);\n\n if (this._lexer.token.kind === TokenKind.NAME) {\n const varName = this._lexer.token.value;\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected variable \"$${varName}\" in constant value.`,\n );\n } else {\n throw this.unexpected(token);\n }\n }\n\n return this.parseVariable();\n\n default:\n throw this.unexpected();\n }\n }\n\n parseConstValueLiteral() {\n return this.parseValueLiteral(true);\n }\n\n parseStringLiteral() {\n const token = this._lexer.token;\n\n this._lexer.advance();\n\n return this.node(token, {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n });\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n\n parseList(isConst) {\n const item = () => this.parseValueLiteral(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n });\n }\n /**\n * ```\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n * ```\n */\n\n parseObject(isConst) {\n const item = () => this.parseObjectField(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n });\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n\n parseObjectField(isConst) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.OBJECT_FIELD,\n name,\n value: this.parseValueLiteral(isConst),\n });\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n\n parseDirectives(isConst) {\n const directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n\n parseConstDirectives() {\n return this.parseDirectives(true);\n }\n /**\n * ```\n * Directive[Const] : @ Name Arguments[?Const]?\n * ```\n */\n\n parseDirective(isConst) {\n const start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return this.node(start, {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n });\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n\n parseTypeReference() {\n const start = this._lexer.token;\n let type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n const innerType = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = this.node(start, {\n kind: Kind.LIST_TYPE,\n type: innerType,\n });\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return this.node(start, {\n kind: Kind.NON_NULL_TYPE,\n type,\n });\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n\n parseNamedType() {\n return this.node(this._lexer.token, {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n });\n } // Implements the parsing rules in the Type Definition section.\n\n peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n\n parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * ```\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n * ```\n */\n\n parseSchemaDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.many(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n return this.node(start, {\n kind: Kind.SCHEMA_DEFINITION,\n description,\n directives,\n operationTypes,\n });\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n\n parseOperationTypeDefinition() {\n const start = this._lexer.token;\n const operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n const type = this.parseNamedType();\n return this.node(start, {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation,\n type,\n });\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n\n parseScalarTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n\n parseObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n\n parseImplementsInterfaces() {\n return this.expectOptionalKeyword('implements')\n ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n : [];\n }\n /**\n * ```\n * FieldsDefinition : { FieldDefinition+ }\n * ```\n */\n\n parseFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseFieldDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n\n parseFieldDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.FIELD_DEFINITION,\n description,\n name,\n arguments: args,\n type,\n directives,\n });\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n\n parseArgumentDefs() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseInputValueDef,\n TokenKind.PAREN_R,\n );\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n\n parseInputValueDef() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n let defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseConstValueLiteral();\n }\n\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description,\n name,\n type,\n defaultValue,\n directives,\n });\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n\n parseInterfaceTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n\n parseUnionTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n return this.node(start, {\n kind: Kind.UNION_TYPE_DEFINITION,\n description,\n name,\n directives,\n types,\n });\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n\n parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS)\n ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n\n parseEnumTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n return this.node(start, {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description,\n name,\n directives,\n values,\n });\n }\n /**\n * ```\n * EnumValuesDefinition : { EnumValueDefinition+ }\n * ```\n */\n\n parseEnumValuesDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseEnumValueDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n */\n\n parseEnumValueDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseEnumValueName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseEnumValueName() {\n if (\n this._lexer.token.value === 'true' ||\n this._lexer.token.value === 'false' ||\n this._lexer.token.value === 'null'\n ) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n `${getTokenDesc(\n this._lexer.token,\n )} is reserved and cannot be used for an enum value.`,\n );\n }\n\n return this.parseName();\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n\n parseInputObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * InputFieldsDefinition : { InputValueDefinition+ }\n * ```\n */\n\n parseInputFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseInputValueDef,\n TokenKind.BRACE_R,\n );\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n\n parseTypeSystemExtension() {\n const keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * ```\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n * ```\n */\n\n parseSchemaExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.optionalMany(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCHEMA_EXTENSION,\n directives,\n operationTypes,\n });\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n\n parseScalarTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n\n parseObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n\n parseInterfaceTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n\n parseUnionTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.UNION_TYPE_EXTENSION,\n name,\n directives,\n types,\n });\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n\n parseEnumTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name,\n directives,\n values,\n });\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n\n parseInputObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n * ```\n */\n\n parseDirectiveDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n const repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n const locations = this.parseDirectiveLocations();\n return this.node(start, {\n kind: Kind.DIRECTIVE_DEFINITION,\n description,\n name,\n arguments: args,\n repeatable,\n locations,\n });\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n\n parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n\n parseDirectiveLocation() {\n const start = this._lexer.token;\n const name = this.parseName();\n\n if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a node that, if configured to do so, sets a \"loc\" field as a\n * location object, used to identify the place in the source that created a\n * given parsed object.\n */\n\n node(startToken, node) {\n var _this$_options2;\n\n if (\n ((_this$_options2 = this._options) === null || _this$_options2 === void 0\n ? void 0\n : _this$_options2.noLocation) !== true\n ) {\n node.loc = new Location(\n startToken,\n this._lexer.lastToken,\n this._lexer.source,\n );\n }\n\n return node;\n }\n /**\n * Determines if the next token is of a given kind\n */\n\n peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n );\n }\n /**\n * If the next token is of the given kind, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n );\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n\n unexpected(atToken) {\n const token =\n atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected ${getTokenDesc(token)}.`,\n );\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n\n delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n const value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\nvar InvariantError = /** @class */ (function (_super) {\n __extends(InvariantError, _super);\n function InvariantError(message) {\n if (message === void 0) { message = genericMessage; }\n var _this = _super.call(this, typeof message === \"number\"\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\n : message) || this;\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n return InvariantError;\n}(Error));\nexport { InvariantError };\nexport function invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\nfunction wrapConsoleMethod(name) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n var method = console[name] || console.log;\n return method.apply(console, arguments);\n }\n };\n}\n(function (invariant) {\n invariant.debug = wrapConsoleMethod(\"debug\");\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\nexport function setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\nexport default invariant;\n//# sourceMappingURL=invariant.js.map","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) || maybe(function () { return maybe.constructor(\"return this\")(); }));\n//# sourceMappingURL=global.js.map","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n }\n catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () { return process.env.NODE_ENV; }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n return global[GLOBAL_KEY];\n }\n}\nexport default getDEV();\n//# sourceMappingURL=DEV.js.map","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { return global }) ||\n // We don't expect the Function constructor ever to be invoked at runtime, as\n // long as at least one of globalThis, window, self, or global is defined, so\n // we are under no obligation to make it easy for static analysis tools to\n // detect syntactic usage of the Function constructor. If you think you can\n // improve your static analysis to detect this obfuscation, think again. This\n // is an arms race you cannot win, at least not in JavaScript.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\",\n },\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true,\n });\n needToRemove = true;\n }\n}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 36);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();\n//# sourceMappingURL=index.js.map","import { maybe } from \"../globals/index.js\";\nexport var canUseWeakMap = typeof WeakMap === 'function' &&\n maybe(function () { return navigator.product; }) !== 'ReactNative';\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\nexport var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === \"function\";\nvar usingJSDOM = maybe(function () { return navigator.userAgent.indexOf(\"jsdom\") >= 0; }) || false;\nexport var canUseLayoutEffect = canUseDOM && !usingJSDOM;\n//# sourceMappingURL=canUse.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { canUseLayoutEffect } from \"../../utilities/index.js\";\nvar didWarnUncachedGetSnapshot = false;\nvar uSESKey = \"useSyncExternalStore\";\nvar realHook = React[uSESKey];\nexport var useSyncExternalStore = realHook || (function (subscribe, getSnapshot, getServerSnapshot) {\n var value = getSnapshot();\n if (__DEV__ &&\n !didWarnUncachedGetSnapshot &&\n value !== getSnapshot()) {\n didWarnUncachedGetSnapshot = true;\n __DEV__ && invariant.error('The result of getSnapshot should be cached to avoid an infinite loop');\n }\n var _a = React.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];\n if (canUseLayoutEffect) {\n React.useLayoutEffect(function () {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n }, [subscribe, value, getSnapshot]);\n }\n else {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n }\n React.useEffect(function () {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n return subscribe(function handleStoreChange() {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({ inst: inst });\n }\n });\n }, [subscribe]);\n return value;\n});\nfunction checkIfSnapshotChanged(_a) {\n var value = _a.value, getSnapshot = _a.getSnapshot;\n try {\n return value !== getSnapshot();\n }\n catch (_b) {\n return true;\n }\n}\n//# sourceMappingURL=useSyncExternalStore.js.map","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map();\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a, b) {\n try {\n return check(a, b);\n }\n finally {\n previousComparisons.clear();\n }\n}\n// Allow default imports as well.\nexport default equal;\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length)\n return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b))\n return true;\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length)\n return false;\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a)\n return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size)\n return false;\n if (previouslyCompared(a, b))\n return true;\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n while (true) {\n const info = aIterator.next();\n if (info.done)\n break;\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n return true;\n }\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\n }\n }\n return len === -1;\n }\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]': {\n const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n // Otherwise the values are not equal.\n return false;\n}\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\nconst nativeCodeSuffix = \"{ [native code] }\";\nfunction endsWith(full, suffix) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b))\n return true;\n }\n else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n//# sourceMappingURL=index.js.map","export function compact() {\n var objects = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=compact.js.map","import { __assign } from \"tslib\";\nimport { compact } from \"./compact.js\";\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, (defaults && defaults.variables)), options.variables),\n });\n}\n//# sourceMappingURL=mergeOptions.js.map","import * as React from 'react';\nimport { canUseSymbol } from \"../../utilities/index.js\";\nvar contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\nexport { getApolloContext as resetApolloContext };\n//# sourceMappingURL=ApolloContext.js.map","export function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\n//# sourceMappingURL=arrays.js.map","import { __extends } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonEmptyArray } from \"../utilities/index.js\";\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || [])\n .concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += \"\".concat(errorMessage, \"\\n\");\n });\n }\n if (err.networkError) {\n message += \"\".concat(err.networkError.message, \"\\n\");\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, clientErrors = _a.clientErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\nexport { ApolloError };\n//# sourceMappingURL=index.js.map","export var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}\n//# sourceMappingURL=networkStatus.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nexport var DocumentType;\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached)\n return cached;\n var variables, type, name;\n __DEV__ ? invariant(!!document && !!document.kind, \"Argument of \".concat(document, \" passed to parser was not a valid GraphQL \") +\n \"DocumentNode. You may need to use 'graphql-tag' or another method \" +\n \"to convert your operation into a document\") : invariant(!!document && !!document.kind, 30);\n var fragments = [];\n var queries = [];\n var mutations = [];\n var subscriptions = [];\n for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {\n var x = _a[_i];\n if (x.kind === 'FragmentDefinition') {\n fragments.push(x);\n continue;\n }\n if (x.kind === 'OperationDefinition') {\n switch (x.operation) {\n case 'query':\n queries.push(x);\n break;\n case 'mutation':\n mutations.push(x);\n break;\n case 'subscription':\n subscriptions.push(x);\n break;\n }\n }\n }\n __DEV__ ? invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), \"Passing only a fragment to 'graphql' is not yet supported. \" +\n \"You must include a query, subscription or mutation as well\") : invariant(!fragments.length ||\n (queries.length || mutations.length || subscriptions.length), 31);\n __DEV__ ? invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" +\n \"\".concat(document, \" had \").concat(queries.length, \" queries, \").concat(subscriptions.length, \" \") +\n \"subscriptions and \".concat(mutations.length, \" mutations. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(queries.length + mutations.length + subscriptions.length <= 1, 32);\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length)\n type = DocumentType.Subscription;\n var definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n __DEV__ ? invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \".concat(document, \" had \") +\n \"\".concat(definitions.length, \" definitions. \") +\n \"You can use 'compose' to join multiple operation types to a component\") : invariant(definitions.length === 1, 33);\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n }\n else {\n name = 'data';\n }\n var payload = { name: name, type: type, variables: variables };\n cache.set(document, payload);\n return payload;\n}\nexport function verifyDocumentType(document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n __DEV__ ? invariant(operation.type === type, \"Running a \".concat(requiredOperationName, \" requires a graphql \") +\n \"\".concat(requiredOperationName, \", but a \").concat(usedOperationName, \" was used instead.\")) : invariant(operation.type === type, 34);\n}\n//# sourceMappingURL=index.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { useContext } from 'react';\nimport { getApolloContext } from \"../context/index.js\";\nexport function useApolloClient(override) {\n var context = useContext(getApolloContext());\n var client = override || context.client;\n __DEV__ ? invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an , or pass an ApolloClient ' +\n 'instance in via options.') : invariant(!!client, 29);\n return client;\n}\n//# sourceMappingURL=useApolloClient.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n//# sourceMappingURL=objects.js.map","import \"../globals/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isNonNullObject(obj[name]))\n workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\nfunction shallowFreeze(obj) {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n }\n catch (e) {\n if (e instanceof TypeError)\n return null;\n throw e;\n }\n }\n return obj;\n}\nexport function maybeDeepFreeze(obj) {\n if (__DEV__) {\n deepFreeze(obj);\n }\n return obj;\n}\n//# sourceMappingURL=maybeDeepFreeze.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { useCallback, useContext, useMemo, useRef, useState, } from 'react';\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\nimport { equal } from '@wry/equality';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus, } from \"../../core/index.js\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { canUseWeakMap, canUseWeakSet, compact, isNonEmptyArray, maybeDeepFreeze } from \"../../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function useQuery(query, options) {\n if (options === void 0) { options = Object.create(null); }\n return useInternalState(useApolloClient(options.client), query).useQuery(options);\n}\nexport function useInternalState(client, query) {\n var stateRef = useRef();\n if (!stateRef.current ||\n client !== stateRef.current.client ||\n query !== stateRef.current.query) {\n stateRef.current = new InternalState(client, query, stateRef.current);\n }\n var state = stateRef.current;\n var _a = useState(0), _tick = _a[0], setTick = _a[1];\n state.forceUpdate = function () {\n setTick(function (tick) { return tick + 1; });\n };\n return state;\n}\nvar InternalState = (function () {\n function InternalState(client, query, previous) {\n this.client = client;\n this.query = query;\n this.asyncResolveFns = new Set();\n this.optionsToIgnoreOnce = new (canUseWeakSet ? WeakSet : Set)();\n this.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.loading,\n });\n this.skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.ready,\n });\n this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();\n verifyDocumentType(query, DocumentType.Query);\n var previousResult = previous && previous.result;\n var previousData = previousResult && previousResult.data;\n if (previousData) {\n this.previousData = previousData;\n }\n }\n InternalState.prototype.forceUpdate = function () {\n __DEV__ && invariant.warn(\"Calling default no-op implementation of InternalState#forceUpdate\");\n };\n InternalState.prototype.asyncUpdate = function () {\n var _this = this;\n return new Promise(function (resolve) {\n _this.asyncResolveFns.add(resolve);\n _this.optionsToIgnoreOnce.add(_this.watchQueryOptions);\n _this.forceUpdate();\n });\n };\n InternalState.prototype.useQuery = function (options) {\n var _this = this;\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n this.useOptions(options);\n var obsQuery = this.useObservableQuery();\n var result = useSyncExternalStore(useCallback(function () {\n if (_this.renderPromises) {\n return function () { };\n }\n var onNext = function () {\n var previousResult = _this.result;\n var result = obsQuery.getCurrentResult();\n if (previousResult &&\n previousResult.loading === result.loading &&\n previousResult.networkStatus === result.networkStatus &&\n equal(previousResult.data, result.data)) {\n return;\n }\n _this.setResult(result);\n };\n var onError = function (error) {\n var last = obsQuery[\"last\"];\n subscription.unsubscribe();\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n }\n finally {\n obsQuery[\"last\"] = last;\n }\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n throw error;\n }\n var previousResult = _this.result;\n if (!previousResult ||\n (previousResult && previousResult.loading) ||\n !equal(error, previousResult.error)) {\n _this.setResult({\n data: (previousResult && previousResult.data),\n error: error,\n loading: false,\n networkStatus: NetworkStatus.error,\n });\n }\n };\n var subscription = obsQuery.subscribe(onNext, onError);\n return function () { return subscription.unsubscribe(); };\n }, [\n obsQuery,\n this.renderPromises,\n this.client.disableNetworkFetches,\n ]), function () { return _this.getCurrentResult(); }, function () { return _this.getCurrentResult(); });\n this.unsafeHandlePartialRefetch(result);\n var queryResult = this.toQueryResult(result);\n if (!queryResult.loading && this.asyncResolveFns.size) {\n this.asyncResolveFns.forEach(function (resolve) { return resolve(queryResult); });\n this.asyncResolveFns.clear();\n }\n return queryResult;\n };\n InternalState.prototype.useOptions = function (options) {\n var _a;\n var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);\n var currentWatchQueryOptions = this.watchQueryOptions;\n if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) ||\n !equal(watchQueryOptions, currentWatchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n if (currentWatchQueryOptions && this.observable) {\n this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);\n this.observable.reobserve(this.getObsQueryOptions());\n this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;\n this.result = void 0;\n }\n }\n this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;\n this.onError = options.onError || InternalState.prototype.onError;\n if ((this.renderPromises || this.client.disableNetworkFetches) &&\n this.queryHookOptions.ssr === false &&\n !this.queryHookOptions.skip) {\n this.result = this.ssrDisabledResult;\n }\n else if (this.queryHookOptions.skip ||\n this.watchQueryOptions.fetchPolicy === 'standby') {\n this.result = this.skipStandbyResult;\n }\n else if (this.result === this.ssrDisabledResult ||\n this.result === this.skipStandbyResult) {\n this.result = void 0;\n }\n };\n InternalState.prototype.getObsQueryOptions = function () {\n var toMerge = [];\n var globalDefaults = this.client.defaultOptions.watchQuery;\n if (globalDefaults)\n toMerge.push(globalDefaults);\n if (this.queryHookOptions.defaultOptions) {\n toMerge.push(this.queryHookOptions.defaultOptions);\n }\n toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));\n return toMerge.reduce(mergeOptions);\n };\n InternalState.prototype.createWatchQueryOptions = function (_a) {\n var _b;\n if (_a === void 0) { _a = {}; }\n var skip = _a.skip, ssr = _a.ssr, onCompleted = _a.onCompleted, onError = _a.onError, displayName = _a.displayName, defaultOptions = _a.defaultOptions, otherOptions = __rest(_a, [\"skip\", \"ssr\", \"onCompleted\", \"onError\", \"displayName\", \"defaultOptions\"]);\n var watchQueryOptions = Object.assign(otherOptions, { query: this.query });\n if (this.renderPromises &&\n (watchQueryOptions.fetchPolicy === 'network-only' ||\n watchQueryOptions.fetchPolicy === 'cache-and-network')) {\n watchQueryOptions.fetchPolicy = 'cache-first';\n }\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {};\n }\n if (skip) {\n var _c = watchQueryOptions.fetchPolicy, fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c, _d = watchQueryOptions.initialFetchPolicy, initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;\n Object.assign(watchQueryOptions, {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: 'standby',\n });\n }\n else if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy =\n ((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) ||\n this.getDefaultFetchPolicy();\n }\n return watchQueryOptions;\n };\n InternalState.prototype.getDefaultFetchPolicy = function () {\n var _a, _b;\n return (((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||\n ((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||\n \"cache-first\");\n };\n InternalState.prototype.onCompleted = function (data) { };\n InternalState.prototype.onError = function (error) { };\n InternalState.prototype.useObservableQuery = function () {\n var obsQuery = this.observable =\n this.renderPromises\n && this.renderPromises.getSSRObservable(this.watchQueryOptions)\n || this.observable\n || this.client.watchQuery(this.getObsQueryOptions());\n this.obsQueryFields = useMemo(function () { return ({\n refetch: obsQuery.refetch.bind(obsQuery),\n reobserve: obsQuery.reobserve.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),\n }); }, [obsQuery]);\n var ssrAllowed = !(this.queryHookOptions.ssr === false ||\n this.queryHookOptions.skip);\n if (this.renderPromises && ssrAllowed) {\n this.renderPromises.registerSSRObservable(obsQuery);\n if (obsQuery.getCurrentResult().loading) {\n this.renderPromises.addObservableQueryPromise(obsQuery);\n }\n }\n return obsQuery;\n };\n InternalState.prototype.setResult = function (nextResult) {\n var previousResult = this.result;\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n this.result = nextResult;\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n };\n InternalState.prototype.handleErrorOrCompleted = function (result) {\n if (!result.loading) {\n if (result.error) {\n this.onError(result.error);\n }\n else if (result.data) {\n this.onCompleted(result.data);\n }\n }\n };\n InternalState.prototype.getCurrentResult = function () {\n if (!this.result) {\n this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());\n }\n return this.result;\n };\n InternalState.prototype.toQueryResult = function (result) {\n var queryResult = this.toQueryResultCache.get(result);\n if (queryResult)\n return queryResult;\n var data = result.data, partial = result.partial, resultWithoutPartial = __rest(result, [\"data\", \"partial\"]);\n this.toQueryResultCache.set(result, queryResult = __assign(__assign(__assign({ data: data }, resultWithoutPartial), this.obsQueryFields), { client: this.client, observable: this.observable, variables: this.observable.variables, called: !this.queryHookOptions.skip, previousData: this.previousData }));\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n queryResult.error = new ApolloError({ graphQLErrors: result.errors });\n }\n return queryResult;\n };\n InternalState.prototype.unsafeHandlePartialRefetch = function (result) {\n if (result.partial &&\n this.queryHookOptions.partialRefetch &&\n !result.loading &&\n (!result.data || Object.keys(result.data).length === 0) &&\n this.observable.options.fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch,\n });\n this.observable.refetch();\n }\n };\n return InternalState;\n}());\n//# sourceMappingURL=useQuery.js.map","import { __assign } from \"tslib\";\nimport { useCallback, useMemo, useRef } from 'react';\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { useInternalState } from \"./useQuery.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nvar EAGER_METHODS = [\n 'refetch',\n 'reobserve',\n 'fetchMore',\n 'updateQuery',\n 'startPolling',\n 'subscribeToMore',\n];\nexport function useLazyQuery(query, options) {\n var internalState = useInternalState(useApolloClient(options && options.client), query);\n var execOptionsRef = useRef();\n var merged = execOptionsRef.current\n ? mergeOptions(options, execOptionsRef.current)\n : options;\n var useQueryResult = internalState.useQuery(__assign(__assign({}, merged), { skip: !execOptionsRef.current }));\n var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||\n internalState.getDefaultFetchPolicy();\n var result = Object.assign(useQueryResult, {\n called: !!execOptionsRef.current,\n });\n var eagerMethods = useMemo(function () {\n var eagerMethods = {};\n var _loop_1 = function (key) {\n var method = result[key];\n eagerMethods[key] = function () {\n if (!execOptionsRef.current) {\n execOptionsRef.current = Object.create(null);\n internalState.forceUpdate();\n }\n return method.apply(this, arguments);\n };\n };\n for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {\n var key = EAGER_METHODS_1[_i];\n _loop_1(key);\n }\n return eagerMethods;\n }, []);\n Object.assign(result, eagerMethods);\n var execute = useCallback(function (executeOptions) {\n execOptionsRef.current = executeOptions ? __assign(__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {\n fetchPolicy: initialFetchPolicy,\n };\n var promise = internalState\n .asyncUpdate()\n .then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });\n promise.catch(function () { });\n return promise;\n }, []);\n return [execute, result];\n}\n//# sourceMappingURL=useLazyQuery.js.map","import { __assign } from \"tslib\";\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { mergeOptions, } from \"../../core/index.js\";\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n var _a = useState({\n called: false,\n loading: false,\n client: client,\n }), result = _a[0], setResult = _a[1];\n var ref = useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options,\n });\n {\n Object.assign(ref.current, { client: client, options: options, mutation: mutation });\n }\n var execute = useCallback(function (executeOptions) {\n if (executeOptions === void 0) { executeOptions = {}; }\n var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;\n var baseOptions = __assign(__assign({}, options), { mutation: mutation });\n if (!ref.current.result.loading && !baseOptions.ignoreResults) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client,\n });\n }\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client.mutate(clientOptions).then(function (response) {\n var _a, _b, _c;\n var data = response.data, errors = response.errors;\n var error = errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : void 0;\n if (mutationId === ref.current.mutationId &&\n !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client,\n };\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult(ref.current.result = result_1);\n }\n }\n (_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data);\n (_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data);\n return response;\n }).catch(function (error) {\n var _a, _b, _c, _d;\n if (mutationId === ref.current.mutationId &&\n ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client,\n };\n if (!equal(ref.current.result, result_2)) {\n setResult(ref.current.result = result_2);\n }\n }\n if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {\n (_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error);\n (_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error);\n return { data: void 0, errors: error };\n }\n throw error;\n });\n }, []);\n var reset = useCallback(function () {\n setResult({ called: false, loading: false, client: client });\n }, []);\n useEffect(function () {\n ref.current.isMounted = true;\n return function () {\n ref.current.isMounted = false;\n };\n }, []);\n return [execute, __assign({ reset: reset }, result)];\n}\n//# sourceMappingURL=useMutation.js.map","import * as Types from \"./shared/graphql-types.generated\";\r\n\r\nimport { gql } from \"@apollo/client\";\r\nimport * as Apollo from \"@apollo/client\";\r\nconst defaultOptions = {} as const;\r\nexport type SearchResultsPageQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n onlyFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n onlyMasterFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n displayDate: Types.Scalars[\"Date\"];\r\n sorting?: Types.InputMaybe;\r\n}>;\r\n\r\nexport type SearchResultsPageQuery = {\r\n __typename?: \"Query\";\r\n search?: {\r\n __typename?: \"SearchResult\";\r\n numberOfResults: number;\r\n results?: Array<{\r\n __typename?: \"SearchResultLodging\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n address1: string;\r\n address1Slug: string;\r\n latitude: string;\r\n longitude: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: {\r\n __typename?: \"LodgingDescription\";\r\n title?: string | null;\r\n summary?: string | null;\r\n } | null;\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n };\r\n selectedBookingOption: {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n currency: string;\r\n price: any;\r\n priceDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDeposits: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPrice: any;\r\n normalPriceDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n normalPriceWithMandatoryItemsDisplayValue: string;\r\n normalPriceWithMandatoryItemsWithoutDeposits: any;\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n duration: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n arrival?: any | null;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n arrivalWeekDayName: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n itemTypeId: number;\r\n name: string;\r\n sortIndex: number;\r\n };\r\n } | null> | null;\r\n };\r\n } | null> | null;\r\n } | null;\r\n};\r\n\r\nexport type LastMinuteQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n onlyFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n onlyMasterFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n displayDate: Types.Scalars[\"Date\"];\r\n sorting?: Types.InputMaybe;\r\n daysAhead?: Types.InputMaybe;\r\n tagFilter?: Types.InputMaybe;\r\n take?: Types.InputMaybe;\r\n}>;\r\n\r\nexport type LastMinuteQuery = {\r\n __typename?: \"Query\";\r\n lastMinute?: {\r\n __typename?: \"SearchResult\";\r\n numberOfResults: number;\r\n results?: Array<{\r\n __typename?: \"SearchResultLodging\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n address1: string;\r\n address1Slug: string;\r\n latitude: string;\r\n longitude: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: {\r\n __typename?: \"LodgingDescription\";\r\n title?: string | null;\r\n summary?: string | null;\r\n } | null;\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n };\r\n selectedBookingOption: {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n currency: string;\r\n price: any;\r\n priceDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDeposits: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPrice: any;\r\n normalPriceDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n normalPriceWithMandatoryItemsDisplayValue: string;\r\n normalPriceWithMandatoryItemsWithoutDeposits: any;\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n duration: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n arrival?: any | null;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n arrivalWeekDayName: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n itemTypeId: number;\r\n name: string;\r\n sortIndex: number;\r\n };\r\n } | null> | null;\r\n };\r\n } | null> | null;\r\n } | null;\r\n};\r\n\r\nexport type LodgingListQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n year: Types.Scalars[\"Int\"];\r\n onlyFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n onlyMasterFacilities?: Types.InputMaybe | Types.Scalars[\"Int\"]>;\r\n displayDate: Types.Scalars[\"Date\"];\r\n sorting?: Types.InputMaybe;\r\n}>;\r\n\r\nexport type LodgingListQuery = {\r\n __typename?: \"Query\";\r\n lodgingList?: {\r\n __typename?: \"LodgingListView\";\r\n results?: Array<{\r\n __typename?: \"ExtendedLodging\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n latitude: string;\r\n longitude: string;\r\n name: string;\r\n nameSlug: string;\r\n address1: string;\r\n address1Slug: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: {\r\n __typename?: \"LodgingDescription\";\r\n title?: string | null;\r\n } | null;\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n };\r\n selectedBookingOption?: {\r\n __typename?: \"BookingOption\";\r\n currency: string;\r\n price: any;\r\n priceDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPrice: any;\r\n normalPriceDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n normalPriceWithMandatoryItemsDisplayValue: string;\r\n normalPriceWithMandatoryItemsWithoutDeposits: any;\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n status: string;\r\n arrivalWeekDayName: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n itemTypeId: number;\r\n name: string;\r\n sortIndex: number;\r\n };\r\n } | null> | null;\r\n } | null;\r\n seasonPrices: Array<{\r\n __typename?: \"SeasonPrice\";\r\n price: any;\r\n currency: string;\r\n seasonCode: string;\r\n weeklyPriceDisplayValue: string;\r\n }>;\r\n } | null> | null;\r\n } | null;\r\n};\r\n\r\nexport type LodgingPresentationQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n seasonPricesYear: Types.Scalars[\"Int\"];\r\n displayDate: Types.Scalars[\"Date\"];\r\n numberOfReviews: Types.Scalars[\"Int\"];\r\n}>;\r\n\r\nexport type LodgingPresentationQuery = {\r\n __typename?: \"Query\";\r\n lodgingPresentation?: {\r\n __typename?: \"LodgingPresentationView\";\r\n lodging?: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n maxPets?: number | null;\r\n latitude: string;\r\n longitude: string;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: {\r\n __typename?: \"LodgingDescription\";\r\n title?: string | null;\r\n body?: string | null;\r\n longHtmlDescription?: string | null;\r\n embeddedVideoHtml?: string | null;\r\n } | null;\r\n location: {\r\n __typename?: \"Location\";\r\n id: number;\r\n name: string;\r\n shortDescription: string;\r\n reviews: Array<{ __typename?: \"CustomerReview\"; reviewOfAreaText: string }>;\r\n };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n images: Array<{\r\n __typename?: \"Image\";\r\n url: string;\r\n tagIds: Array;\r\n originalHeight: number;\r\n originalWidth: number;\r\n }>;\r\n reviews: Array<{\r\n __typename?: \"CustomerReview\";\r\n reviewerName: string;\r\n reviewOfLodgingText: string;\r\n month: string;\r\n }>;\r\n } | null;\r\n selectedBookingOption?: {\r\n __typename?: \"BookingOption\";\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPriceDisplayValue: string;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n priceDepositItems?: any | null;\r\n priceDepositItemsDisplayValue?: string | null;\r\n currency: string;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n discountReductionDisplayValue: string;\r\n status: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n priceWithQuantityDisplayValue: string;\r\n item: { __typename?: \"Item\"; name: string; itemType?: Types.ItemTypes | null };\r\n } | null> | null;\r\n } | null;\r\n } | null;\r\n};\r\n\r\nexport type LodgingBookingOptionsQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n}>;\r\n\r\nexport type LodgingBookingOptionsQuery = {\r\n __typename?: \"Query\";\r\n lodgingBookingOptions?: {\r\n __typename?: \"LodgingBookingOptions\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n internalName: string;\r\n address1: string;\r\n address1Slug: string;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n };\r\n bookingOptions: Array<{\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDeposits: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n duration: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n arrival?: any | null;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n arrivalWeekDayName: string;\r\n }>;\r\n } | null;\r\n};\r\n\r\nexport type LodgingsQueryVariables = Types.Exact<{ [key: string]: never }>;\r\n\r\nexport type LodgingsQuery = {\r\n __typename?: \"Query\";\r\n lodgings?: Array<{\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n internalName: string;\r\n address1: string;\r\n address1Slug: string;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n } | null> | null;\r\n};\r\n\r\nexport type LodgingWithImagesFragment = {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n internalName: string;\r\n address1: string;\r\n address1Slug: string;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n};\r\n\r\nexport type DisplayBookingOptionFragment = {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDeposits: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n duration: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n arrival?: any | null;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n arrivalWeekDayName: string;\r\n};\r\n\r\nexport type LodgingFacilitySummaryFragment = {\r\n __typename?: \"Lodging\";\r\n maxPeople?: number | null;\r\n maxPets?: number | null;\r\n petsAllowed?: boolean | null;\r\n bedroomFacility?: { __typename?: \"FacilityValue\"; displayValueAndName: string } | null;\r\n internetFacility?: {\r\n __typename?: \"FacilityValue\";\r\n displayValue: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n } | null;\r\n bathroomFacility?: { __typename?: \"FacilityValue\"; displayValueAndName: string } | null;\r\n lodgingAreaFacility?: {\r\n __typename?: \"FacilityValue\";\r\n displayValue: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n } | null;\r\n};\r\n\r\nexport type BookingSummaryLodgingFragment = {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n address1: string;\r\n location: { __typename?: \"Location\"; id: number; name: string };\r\n primaryImage?: { __typename?: \"Image\"; url: string } | null;\r\n};\r\n\r\nexport type BookingSummaryBookingOptionFragment = {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n};\r\n\r\nexport type ItemsSummaryLodgingFragment = { __typename?: \"Lodging\"; name: string };\r\n\r\nexport type ItemsSummaryCheckoutPresentationFragment = {\r\n __typename?: \"CheckoutPresentationView\";\r\n totalPriceDisplayValue?: string | null;\r\n discountReductionDisplayValue?: string | null;\r\n hasDiscount: boolean;\r\n discountName?: string | null;\r\n normalBookingPriceDisplayValue?: string | null;\r\n itemLines?: Array<{\r\n __typename?: \"CheckoutPresentationViewItemLine\";\r\n quantity: number;\r\n totalPrice?: any | null;\r\n totalPriceDisplayValue: string;\r\n showInSummary?: boolean | null;\r\n itemPrice: { __typename?: \"ItemPrice\"; unitPrice: any; maxQuantity: number };\r\n item: { __typename?: \"Item\"; id: number; name: string };\r\n }> | null;\r\n};\r\n\r\nexport type ItemSelectorCheckoutPresentationFragment = {\r\n __typename?: \"CheckoutPresentationView\";\r\n itemLinesTotalDisplayValue?: string | null;\r\n totalPriceDisplayValue?: string | null;\r\n itemLines?: Array<{\r\n __typename?: \"CheckoutPresentationViewItemLine\";\r\n quantity: number;\r\n totalPriceDisplayValue: string;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n name: string;\r\n shortDescription: string;\r\n description?: string | null;\r\n };\r\n itemPrice: {\r\n __typename?: \"ItemPrice\";\r\n minQuantity: number;\r\n maxQuantity: number;\r\n unitPriceDisplayValue: string;\r\n isMandatory: boolean;\r\n };\r\n }> | null;\r\n};\r\n\r\nexport type CheckoutTrackingPresentationFragment = {\r\n __typename?: \"CheckoutPresentationView\";\r\n totalPrice?: any | null;\r\n bookingPrice: any;\r\n discountReduction?: any | null;\r\n currency: string;\r\n itemLines?: Array<{\r\n __typename?: \"CheckoutPresentationViewItemLine\";\r\n quantity: number;\r\n item: { __typename?: \"Item\"; id: number; name: string };\r\n itemPrice: { __typename?: \"ItemPrice\"; unitPrice: any };\r\n }> | null;\r\n};\r\n\r\nexport type CheckoutQueryVariables = Types.Exact<{\r\n request: Types.BookingRequestInput;\r\n displayDate: Types.Scalars[\"Date\"];\r\n bedroomFacilityId: Types.Scalars[\"Int\"];\r\n internetFacilityId: Types.Scalars[\"Int\"];\r\n bathroomFacilityId: Types.Scalars[\"Int\"];\r\n houseAreaFacilityId: Types.Scalars[\"Int\"];\r\n}>;\r\n\r\nexport type CheckoutQuery = {\r\n __typename?: \"Query\";\r\n lodgingPresentation?: {\r\n __typename?: \"LodgingPresentationView\";\r\n lodging?: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n address1: string;\r\n maxPeople?: number | null;\r\n maxPets?: number | null;\r\n petsAllowed?: boolean | null;\r\n location: { __typename?: \"Location\"; id: number; name: string };\r\n primaryImage?: { __typename?: \"Image\"; url: string } | null;\r\n bedroomFacility?: { __typename?: \"FacilityValue\"; displayValueAndName: string } | null;\r\n internetFacility?: {\r\n __typename?: \"FacilityValue\";\r\n displayValue: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n } | null;\r\n bathroomFacility?: { __typename?: \"FacilityValue\"; displayValueAndName: string } | null;\r\n lodgingAreaFacility?: {\r\n __typename?: \"FacilityValue\";\r\n displayValue: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n } | null;\r\n } | null;\r\n selectedBookingOption?: {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n } | null;\r\n } | null;\r\n checkoutPresentation?: {\r\n __typename?: \"CheckoutPresentationView\";\r\n available: boolean;\r\n totalPriceDisplayValue?: string | null;\r\n discountReductionDisplayValue?: string | null;\r\n hasDiscount: boolean;\r\n discountName?: string | null;\r\n normalBookingPriceDisplayValue?: string | null;\r\n itemLinesTotalDisplayValue?: string | null;\r\n totalPrice?: any | null;\r\n bookingPrice: any;\r\n discountReduction?: any | null;\r\n currency: string;\r\n itemLines?: Array<{\r\n __typename?: \"CheckoutPresentationViewItemLine\";\r\n quantity: number;\r\n totalPrice?: any | null;\r\n totalPriceDisplayValue: string;\r\n showInSummary?: boolean | null;\r\n itemPrice: {\r\n __typename?: \"ItemPrice\";\r\n unitPrice: any;\r\n maxQuantity: number;\r\n minQuantity: number;\r\n unitPriceDisplayValue: string;\r\n isMandatory: boolean;\r\n };\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n name: string;\r\n shortDescription: string;\r\n description?: string | null;\r\n };\r\n }> | null;\r\n } | null;\r\n countries: Array<{ __typename?: \"Country\"; id: string; name: string }>;\r\n newsletters: Array<{ __typename?: \"Newsletter\"; id: number; name: string }>;\r\n};\r\n\r\nexport type AvailabilityCalendarsQueryVariables = Types.Exact<{\r\n month: Types.Scalars[\"Int\"];\r\n year: Types.Scalars[\"Int\"];\r\n displayDate: Types.Scalars[\"Date\"];\r\n}>;\r\n\r\nexport type AvailabilityCalendarsQuery = {\r\n __typename?: \"Query\";\r\n availabilityCalendars: Array<{\r\n __typename?: \"AvailabilityCalendar\";\r\n days: Array<{\r\n __typename?: \"AvailabilityCalendarDay\";\r\n date?: any | null;\r\n isAvailable: boolean;\r\n seasonCode?: string | null;\r\n hasCalendarData: boolean;\r\n freeNightsAhead: number;\r\n }>;\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n internalName: string;\r\n address1: string;\r\n address1Slug: string;\r\n maxPeople?: number | null;\r\n maxPets?: number | null;\r\n petsAllowed?: boolean | null;\r\n location: { __typename?: \"Location\"; name: string; slug: string };\r\n };\r\n }>;\r\n};\r\n\r\nexport type AvailabilityCalendarLodgingFragment = {\r\n __typename?: \"AvailabilityCalendar\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n internalName: string;\r\n address1: string;\r\n address1Slug: string;\r\n maxPeople?: number | null;\r\n maxPets?: number | null;\r\n petsAllowed?: boolean | null;\r\n location: { __typename?: \"Location\"; name: string; slug: string };\r\n };\r\n};\r\n\r\nexport type PayRatesQueryVariables = Types.Exact<{\r\n request: Types.BookingRequestInput;\r\n}>;\r\n\r\nexport type PayRatesQuery = {\r\n __typename?: \"Query\";\r\n payRates?: {\r\n __typename?: \"PayRates\";\r\n rate1?: {\r\n __typename?: \"PayRate\";\r\n payDate?: any | null;\r\n amountDisplayValue: string;\r\n payDateDisplayValue: string;\r\n } | null;\r\n rate2?: {\r\n __typename?: \"PayRate\";\r\n amountDisplayValue: string;\r\n payDateDisplayValue: string;\r\n } | null;\r\n } | null;\r\n};\r\n\r\nexport type TermsQueryVariables = Types.Exact<{\r\n lodgingId: Types.Scalars[\"Int\"];\r\n arrivalDate: Types.Scalars[\"DateTime\"];\r\n}>;\r\n\r\nexport type TermsQuery = {\r\n __typename?: \"Query\";\r\n terms?: { __typename?: \"TermsAndConditions\"; description: string } | null;\r\n};\r\n\r\nexport type BookingQueryVariables = Types.Exact<{\r\n basketId: Types.Scalars[\"String\"];\r\n dateFormat: Types.Scalars[\"String\"];\r\n}>;\r\n\r\nexport type BookingQuery = {\r\n __typename?: \"Query\";\r\n booking?: {\r\n __typename?: \"Booking\";\r\n reservationId?: number | null;\r\n totalPrice?: any | null;\r\n totalPriceDisplayValue?: string | null;\r\n bookingsTotalPrice?: any | null;\r\n bookingsTotalPriceDisplayValue?: string | null;\r\n bookingsTotalDiscount?: any | null;\r\n bookingsTotalDiscountDisplayValue?: string | null;\r\n currency: string;\r\n balance?: any | null;\r\n balanceDisplayValue?: string | null;\r\n externalNote?: string | null;\r\n payment?: {\r\n __typename?: \"Payment\";\r\n amount: any;\r\n currency: string;\r\n fee: any;\r\n transact: string;\r\n status?: Types.PaymentStatus | null;\r\n } | null;\r\n bookingLines: Array<{\r\n __typename?: \"BookingLine\";\r\n lodgingId?: number | null;\r\n lodgingUnitTypeId?: number | null;\r\n arrivalDate?: any | null;\r\n duration?: number | null;\r\n adults?: number | null;\r\n children?: number | null;\r\n infants?: number | null;\r\n pets: number;\r\n calculatedLineTotal?: any | null;\r\n description: string;\r\n lodging?: {\r\n __typename?: \"Lodging\";\r\n name: string;\r\n location: { __typename?: \"Location\"; id: number; name: string };\r\n } | null;\r\n }>;\r\n itemLines?: Array<{\r\n __typename?: \"ItemLine\";\r\n itemId?: number | null;\r\n quantity?: any | null;\r\n calculatedUnitPrice?: any | null;\r\n calculatedLineTotal?: any | null;\r\n description: string;\r\n } | null> | null;\r\n payRates: {\r\n __typename?: \"PayRates\";\r\n rate1?: {\r\n __typename?: \"PayRate\";\r\n amount: any;\r\n amountDisplayValue: string;\r\n currency: string;\r\n payDate?: any | null;\r\n payDateDisplayValue: string;\r\n } | null;\r\n rate2?: {\r\n __typename?: \"PayRate\";\r\n amount: any;\r\n amountDisplayValue: string;\r\n currency: string;\r\n payDate?: any | null;\r\n payDateDisplayValue: string;\r\n } | null;\r\n };\r\n customer?: {\r\n __typename?: \"Customer\";\r\n email?: string | null;\r\n postalCode?: string | null;\r\n city?: string | null;\r\n country?: string | null;\r\n } | null;\r\n } | null;\r\n};\r\n\r\nexport type LodgingMapDataFragment = {\r\n __typename?: \"SearchResultLodging\";\r\n lodging: { __typename?: \"Lodging\"; latitude: string; longitude: string };\r\n};\r\n\r\nexport type LodgingCardFragment = {\r\n __typename?: \"SearchResultLodging\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n address1: string;\r\n address1Slug: string;\r\n latitude: string;\r\n longitude: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: {\r\n __typename?: \"LodgingDescription\";\r\n title?: string | null;\r\n summary?: string | null;\r\n } | null;\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n };\r\n selectedBookingOption: {\r\n __typename?: \"BookingOption\";\r\n status: string;\r\n currency: string;\r\n price: any;\r\n priceDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDeposits: any;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPrice: any;\r\n normalPriceDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n normalPriceWithMandatoryItemsDisplayValue: string;\r\n normalPriceWithMandatoryItemsWithoutDeposits: any;\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n duration: number;\r\n adults: number;\r\n children: number;\r\n infants: number;\r\n pets: number;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n arrival?: any | null;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n arrivalWeekDayName: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n itemTypeId: number;\r\n name: string;\r\n sortIndex: number;\r\n };\r\n } | null> | null;\r\n };\r\n};\r\n\r\nexport type ExtendedLodgingLodgingCardFragment = {\r\n __typename?: \"ExtendedLodging\";\r\n lodging: {\r\n __typename?: \"Lodging\";\r\n id: number;\r\n name: string;\r\n nameSlug: string;\r\n address1: string;\r\n address1Slug: string;\r\n maxPeople?: number | null;\r\n petsAllowed?: boolean | null;\r\n stars?: number | null;\r\n starsPostText: string;\r\n activeDescription?: { __typename?: \"LodgingDescription\"; title?: string | null } | null;\r\n images: Array<{ __typename?: \"Image\"; url: string }>;\r\n location: { __typename?: \"Location\"; id: number; name: string; slug: string };\r\n facilityValues: Array<{\r\n __typename?: \"FacilityValue\";\r\n facilityId: number;\r\n masterFacilityId?: number | null;\r\n displayValue: string;\r\n displayValueAndName: string;\r\n value: string;\r\n facility: { __typename?: \"Facility\"; name: string };\r\n }>;\r\n };\r\n selectedBookingOption?: {\r\n __typename?: \"BookingOption\";\r\n currency: string;\r\n price: any;\r\n priceDisplayValue: string;\r\n priceWithMandatoryItems: any;\r\n priceWithMandatoryItemsDisplayValue: string;\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n arrivalDisplayValue: string;\r\n departureDisplayValue: string;\r\n normalPrice: any;\r\n normalPriceDisplayValue: string;\r\n normalPriceWithMandatoryItems: any;\r\n normalPriceWithMandatoryItemsDisplayValue: string;\r\n normalPriceWithMandatoryItemsWithoutDeposits: any;\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue: string;\r\n discountName?: string | null;\r\n hasDiscount: boolean;\r\n cleaningIncludedInPriceWithMandatoryItems: boolean;\r\n status: string;\r\n arrivalWeekDayName: string;\r\n itemPrices?: Array<{\r\n __typename?: \"ItemPrice\";\r\n isMandatory: boolean;\r\n item: {\r\n __typename?: \"Item\";\r\n id: number;\r\n itemTypeId: number;\r\n name: string;\r\n sortIndex: number;\r\n };\r\n } | null> | null;\r\n } | null;\r\n seasonPrices: Array<{\r\n __typename?: \"SeasonPrice\";\r\n price: any;\r\n currency: string;\r\n seasonCode: string;\r\n weeklyPriceDisplayValue: string;\r\n }>;\r\n};\r\n\r\nexport type LodgingCalendarDataQueryVariables = Types.Exact<{\r\n query: Types.Scalars[\"String\"];\r\n year: Types.Scalars[\"Int\"];\r\n month: Types.Scalars[\"Int\"];\r\n numberOfMonths: Types.Scalars[\"Int\"];\r\n}>;\r\n\r\nexport type LodgingCalendarDataQuery = {\r\n __typename?: \"Query\";\r\n calendar?: {\r\n __typename?: \"Calendar\";\r\n days: Array<{\r\n __typename?: \"CalendarDay\";\r\n date?: any | null;\r\n isAvailable: boolean;\r\n isChangeDay: boolean;\r\n selectedBookingOption?: {\r\n __typename?: \"BookingOption\";\r\n arrival?: any | null;\r\n departure?: any | null;\r\n priceDisplayValue: string;\r\n } | null;\r\n }>;\r\n } | null;\r\n};\r\n\r\nexport type LocationDescriptionFragment = {\r\n __typename?: \"Location\";\r\n name: string;\r\n shortDescription: string;\r\n};\r\n\r\nexport type LocationReviewsFragment = {\r\n __typename?: \"Location\";\r\n reviews: Array<{ __typename?: \"CustomerReview\"; reviewOfAreaText: string }>;\r\n};\r\n\r\nexport type CreateBookingMutationVariables = Types.Exact<{\r\n request: Types.BookingRequestInput;\r\n payMethod?: Types.InputMaybe;\r\n}>;\r\n\r\nexport type CreateBookingMutation = {\r\n __typename?: \"RootMutation\";\r\n createBooking?: {\r\n __typename?: \"MutationResult_CreateBookingResult\";\r\n errorMessage?: string | null;\r\n success: boolean;\r\n result?: {\r\n __typename?: \"CreateBookingResult\";\r\n resultType?: Types.CreateBookingResultType | null;\r\n basketId?: any | null;\r\n bookingOptionNoLongerAvailable: boolean;\r\n formForGateway?: string | null;\r\n orderItem?: {\r\n __typename?: \"OrderItem\";\r\n id: number;\r\n reservationId: number;\r\n type: string;\r\n } | null;\r\n } | null;\r\n } | null;\r\n};\r\n\r\nexport type NewsletterSignupMutationVariables = Types.Exact<{\r\n firstName: Types.Scalars[\"String\"];\r\n lastName: Types.Scalars[\"String\"];\r\n email: Types.Scalars[\"String\"];\r\n newsletterCategories: Array | Types.Scalars[\"Int\"];\r\n mailConfigurationId: Types.Scalars[\"String\"];\r\n}>;\r\n\r\nexport type NewsletterSignupMutation = {\r\n __typename?: \"RootMutation\";\r\n newsletterSignup?: {\r\n __typename?: \"MutationResult_Boolean\";\r\n errorMessage?: string | null;\r\n success: boolean;\r\n } | null;\r\n};\r\n\r\nexport type BureauReviewsQueryVariables = Types.Exact<{ [key: string]: never }>;\r\n\r\nexport type BureauReviewsQuery = {\r\n __typename?: \"Query\";\r\n bureauReviews?: Array<{\r\n __typename?: \"CustomerReview\";\r\n reviewOfBureauText: string;\r\n reviewerName: string;\r\n } | null> | null;\r\n};\r\n\r\nexport const LodgingWithImagesFragmentDoc = gql`\r\n fragment LodgingWithImages on Lodging {\r\n id\r\n name\r\n nameSlug\r\n internalName\r\n address1\r\n address1Slug\r\n location {\r\n id\r\n name\r\n slug\r\n }\r\n images {\r\n url\r\n }\r\n }\r\n`;\r\nexport const DisplayBookingOptionFragmentDoc = gql`\r\n fragment DisplayBookingOption on BookingOption {\r\n status\r\n priceWithMandatoryItems\r\n priceWithMandatoryItemsDisplayValue\r\n priceWithMandatoryItemsWithoutDeposits\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue\r\n arrivalWeekDayName: arrivalDisplayValue(format: \"dddd\")\r\n arrivalDisplayValue(format: \"dd-MM-yyyy\")\r\n departureDisplayValue(format: \"dd-MM-yyyy\")\r\n normalPriceWithMandatoryItems\r\n duration\r\n adults\r\n children\r\n infants\r\n pets\r\n discountName\r\n hasDiscount\r\n arrival\r\n cleaningIncludedInPriceWithMandatoryItems\r\n }\r\n`;\r\nexport const LodgingFacilitySummaryFragmentDoc = gql`\r\n fragment LodgingFacilitySummary on Lodging {\r\n maxPeople(displayDate: $displayDate)\r\n maxPets(displayDate: $displayDate)\r\n petsAllowed(displayDate: $displayDate)\r\n bedroomFacility: facilityValue(facilityId: $bedroomFacilityId, displayDate: $displayDate) {\r\n displayValueAndName\r\n }\r\n internetFacility: facilityValue(\r\n facilityId: $internetFacilityId\r\n displayDate: $displayDate\r\n ) {\r\n facility {\r\n name\r\n }\r\n displayValue\r\n }\r\n bathroomFacility: facilityValue(\r\n facilityId: $bathroomFacilityId\r\n displayDate: $displayDate\r\n ) {\r\n displayValueAndName\r\n }\r\n lodgingAreaFacility: facilityValue(\r\n facilityId: $houseAreaFacilityId\r\n displayDate: $displayDate\r\n ) {\r\n facility {\r\n name\r\n }\r\n displayValue\r\n }\r\n }\r\n`;\r\nexport const BookingSummaryLodgingFragmentDoc = gql`\r\n fragment BookingSummaryLodging on Lodging {\r\n id\r\n name\r\n address1\r\n location {\r\n id\r\n name\r\n }\r\n primaryImage {\r\n url\r\n }\r\n }\r\n`;\r\nexport const BookingSummaryBookingOptionFragmentDoc = gql`\r\n fragment BookingSummaryBookingOption on BookingOption {\r\n status\r\n arrivalDisplayValue(format: \"dd-MM-yyyy\")\r\n departureDisplayValue(format: \"dd-MM-yyyy\")\r\n adults\r\n children\r\n infants\r\n pets\r\n }\r\n`;\r\nexport const ItemsSummaryLodgingFragmentDoc = gql`\r\n fragment ItemsSummaryLodging on Lodging {\r\n name\r\n }\r\n`;\r\nexport const ItemsSummaryCheckoutPresentationFragmentDoc = gql`\r\n fragment ItemsSummaryCheckoutPresentation on CheckoutPresentationView {\r\n itemLines {\r\n itemPrice {\r\n unitPrice\r\n maxQuantity\r\n }\r\n item {\r\n id\r\n name\r\n }\r\n quantity\r\n totalPrice\r\n totalPriceDisplayValue\r\n showInSummary\r\n }\r\n totalPriceDisplayValue\r\n discountReductionDisplayValue\r\n hasDiscount\r\n discountName\r\n normalBookingPriceDisplayValue\r\n }\r\n`;\r\nexport const ItemSelectorCheckoutPresentationFragmentDoc = gql`\r\n fragment ItemSelectorCheckoutPresentation on CheckoutPresentationView {\r\n itemLines {\r\n item {\r\n id\r\n name\r\n shortDescription\r\n description\r\n }\r\n itemPrice {\r\n minQuantity\r\n maxQuantity\r\n unitPriceDisplayValue\r\n isMandatory\r\n }\r\n quantity\r\n totalPriceDisplayValue\r\n }\r\n itemLinesTotalDisplayValue(includeMandatory: false)\r\n totalPriceDisplayValue\r\n }\r\n`;\r\nexport const CheckoutTrackingPresentationFragmentDoc = gql`\r\n fragment CheckoutTrackingPresentation on CheckoutPresentationView {\r\n totalPrice\r\n bookingPrice\r\n discountReduction\r\n currency\r\n itemLines {\r\n item {\r\n id\r\n name\r\n }\r\n quantity\r\n itemPrice {\r\n unitPrice\r\n }\r\n }\r\n }\r\n`;\r\nexport const AvailabilityCalendarLodgingFragmentDoc = gql`\r\n fragment availabilityCalendarLodging on AvailabilityCalendar {\r\n lodging {\r\n id\r\n name\r\n nameSlug\r\n internalName\r\n address1\r\n address1Slug\r\n location {\r\n name\r\n slug\r\n }\r\n maxPeople(displayDate: $displayDate)\r\n maxPets(displayDate: $displayDate)\r\n petsAllowed(displayDate: $displayDate)\r\n }\r\n }\r\n`;\r\nexport const LodgingMapDataFragmentDoc = gql`\r\n fragment lodgingMapData on SearchResultLodging {\r\n lodging {\r\n latitude\r\n longitude\r\n }\r\n }\r\n`;\r\nexport const LodgingCardFragmentDoc = gql`\r\n fragment lodgingCard on SearchResultLodging {\r\n lodging {\r\n id\r\n activeDescription(displayDate: $displayDate) {\r\n title\r\n summary\r\n }\r\n name\r\n nameSlug\r\n address1\r\n address1Slug\r\n latitude\r\n longitude\r\n images {\r\n url\r\n }\r\n maxPeople(displayDate: $displayDate)\r\n petsAllowed(displayDate: $displayDate)\r\n location {\r\n id\r\n name\r\n slug\r\n }\r\n facilityValues(\r\n displayDate: $displayDate\r\n onlyFacilities: $onlyFacilities\r\n onlyMasterFacilities: $onlyMasterFacilities\r\n ) {\r\n facilityId\r\n masterFacilityId\r\n facility {\r\n name\r\n }\r\n displayValue\r\n displayValueAndName\r\n value\r\n }\r\n stars\r\n starsPostText\r\n }\r\n selectedBookingOption {\r\n status\r\n currency\r\n price\r\n priceDisplayValue\r\n priceWithMandatoryItems\r\n priceWithMandatoryItemsDisplayValue\r\n priceWithMandatoryItemsWithoutDeposits\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue\r\n arrivalWeekDayName: arrivalDisplayValue(format: \"dddd\")\r\n arrivalDisplayValue(format: \"dd-MM\")\r\n departureDisplayValue(format: \"dd-MM\")\r\n normalPrice\r\n normalPriceDisplayValue\r\n normalPriceWithMandatoryItems\r\n normalPriceWithMandatoryItemsDisplayValue\r\n normalPriceWithMandatoryItemsWithoutDeposits\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue\r\n duration\r\n adults\r\n children\r\n infants\r\n pets\r\n discountName\r\n hasDiscount\r\n arrival\r\n cleaningIncludedInPriceWithMandatoryItems\r\n itemPrices {\r\n isMandatory\r\n item {\r\n id\r\n itemTypeId\r\n name\r\n sortIndex\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const ExtendedLodgingLodgingCardFragmentDoc = gql`\r\n fragment extendedLodgingLodgingCard on ExtendedLodging {\r\n lodging {\r\n id\r\n activeDescription(displayDate: $displayDate) {\r\n title\r\n }\r\n name\r\n nameSlug\r\n address1\r\n address1Slug\r\n images {\r\n url\r\n }\r\n maxPeople(displayDate: $displayDate)\r\n petsAllowed(displayDate: $displayDate)\r\n location {\r\n id\r\n name\r\n slug\r\n }\r\n facilityValues(\r\n displayDate: $displayDate\r\n onlyFacilities: $onlyFacilities\r\n onlyMasterFacilities: $onlyMasterFacilities\r\n ) {\r\n facilityId\r\n masterFacilityId\r\n facility {\r\n name\r\n }\r\n displayValue\r\n displayValueAndName\r\n value\r\n }\r\n stars\r\n starsPostText\r\n }\r\n selectedBookingOption {\r\n currency\r\n price\r\n priceDisplayValue\r\n priceWithMandatoryItems\r\n priceWithMandatoryItemsDisplayValue\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue\r\n arrivalWeekDayName: arrivalDisplayValue(format: \"dddd\")\r\n arrivalDisplayValue(format: \"dd-MM\")\r\n departureDisplayValue(format: \"dd-MM\")\r\n normalPrice\r\n normalPriceDisplayValue\r\n normalPriceWithMandatoryItems\r\n normalPriceWithMandatoryItemsDisplayValue\r\n normalPriceWithMandatoryItemsWithoutDeposits\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue\r\n discountName\r\n hasDiscount\r\n cleaningIncludedInPriceWithMandatoryItems\r\n status\r\n itemPrices {\r\n isMandatory\r\n item {\r\n id\r\n itemTypeId\r\n name\r\n sortIndex\r\n }\r\n }\r\n }\r\n seasonPrices {\r\n price\r\n currency\r\n seasonCode\r\n weeklyPriceDisplayValue\r\n }\r\n }\r\n`;\r\nexport const LocationDescriptionFragmentDoc = gql`\r\n fragment locationDescription on Location {\r\n name\r\n shortDescription\r\n }\r\n`;\r\nexport const LocationReviewsFragmentDoc = gql`\r\n fragment locationReviews on Location {\r\n reviews(limit: 5) {\r\n reviewOfAreaText\r\n }\r\n }\r\n`;\r\nexport const SearchResultsPageDocument = gql`\r\n query searchResultsPage(\r\n $query: String!\r\n $onlyFacilities: [Int!]\r\n $onlyMasterFacilities: [Int!]\r\n $displayDate: Date!\r\n $sorting: SearchSorting\r\n ) {\r\n search(query: $query, sorting: $sorting) {\r\n results {\r\n ...lodgingCard\r\n ...lodgingMapData\r\n }\r\n numberOfResults\r\n }\r\n }\r\n ${LodgingCardFragmentDoc}\r\n ${LodgingMapDataFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useSearchResultsPageQuery__\r\n *\r\n * To run a query within a React component, call `useSearchResultsPageQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useSearchResultsPageQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useSearchResultsPageQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * onlyFacilities: // value for 'onlyFacilities'\r\n * onlyMasterFacilities: // value for 'onlyMasterFacilities'\r\n * displayDate: // value for 'displayDate'\r\n * sorting: // value for 'sorting'\r\n * },\r\n * });\r\n */\r\nexport function useSearchResultsPageQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n SearchResultsPageDocument,\r\n options\r\n );\r\n}\r\nexport function useSearchResultsPageLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions<\r\n SearchResultsPageQuery,\r\n SearchResultsPageQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n SearchResultsPageDocument,\r\n options\r\n );\r\n}\r\nexport type SearchResultsPageQueryHookResult = ReturnType;\r\nexport type SearchResultsPageLazyQueryHookResult = ReturnType;\r\nexport type SearchResultsPageQueryResult = Apollo.QueryResult<\r\n SearchResultsPageQuery,\r\n SearchResultsPageQueryVariables\r\n>;\r\nexport const LastMinuteDocument = gql`\r\n query lastMinute(\r\n $query: String!\r\n $onlyFacilities: [Int!]\r\n $onlyMasterFacilities: [Int!]\r\n $displayDate: Date!\r\n $sorting: SearchSorting\r\n $daysAhead: Int\r\n $tagFilter: String\r\n $take: Int\r\n ) {\r\n lastMinute(\r\n query: $query\r\n sorting: $sorting\r\n daysAhead: $daysAhead\r\n tagFilter: $tagFilter\r\n take: $take\r\n ) {\r\n results {\r\n ...lodgingCard\r\n }\r\n numberOfResults\r\n }\r\n }\r\n ${LodgingCardFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useLastMinuteQuery__\r\n *\r\n * To run a query within a React component, call `useLastMinuteQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLastMinuteQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLastMinuteQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * onlyFacilities: // value for 'onlyFacilities'\r\n * onlyMasterFacilities: // value for 'onlyMasterFacilities'\r\n * displayDate: // value for 'displayDate'\r\n * sorting: // value for 'sorting'\r\n * daysAhead: // value for 'daysAhead'\r\n * tagFilter: // value for 'tagFilter'\r\n * take: // value for 'take'\r\n * },\r\n * });\r\n */\r\nexport function useLastMinuteQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(LastMinuteDocument, options);\r\n}\r\nexport function useLastMinuteLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n LastMinuteDocument,\r\n options\r\n );\r\n}\r\nexport type LastMinuteQueryHookResult = ReturnType;\r\nexport type LastMinuteLazyQueryHookResult = ReturnType;\r\nexport type LastMinuteQueryResult = Apollo.QueryResult;\r\nexport const LodgingListDocument = gql`\r\n query lodgingList(\r\n $query: String!\r\n $year: Int!\r\n $onlyFacilities: [Int!]\r\n $onlyMasterFacilities: [Int!]\r\n $displayDate: Date!\r\n $sorting: SearchSorting\r\n ) {\r\n lodgingList(query: $query, year: $year, sorting: $sorting) {\r\n results {\r\n ...extendedLodgingLodgingCard\r\n lodging {\r\n id\r\n latitude\r\n longitude\r\n }\r\n }\r\n }\r\n }\r\n ${ExtendedLodgingLodgingCardFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useLodgingListQuery__\r\n *\r\n * To run a query within a React component, call `useLodgingListQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLodgingListQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLodgingListQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * year: // value for 'year'\r\n * onlyFacilities: // value for 'onlyFacilities'\r\n * onlyMasterFacilities: // value for 'onlyMasterFacilities'\r\n * displayDate: // value for 'displayDate'\r\n * sorting: // value for 'sorting'\r\n * },\r\n * });\r\n */\r\nexport function useLodgingListQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n LodgingListDocument,\r\n options\r\n );\r\n}\r\nexport function useLodgingListLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n LodgingListDocument,\r\n options\r\n );\r\n}\r\nexport type LodgingListQueryHookResult = ReturnType;\r\nexport type LodgingListLazyQueryHookResult = ReturnType;\r\nexport type LodgingListQueryResult = Apollo.QueryResult<\r\n LodgingListQuery,\r\n LodgingListQueryVariables\r\n>;\r\nexport const LodgingPresentationDocument = gql`\r\n query lodgingPresentation(\r\n $query: String!\r\n $seasonPricesYear: Int!\r\n $displayDate: Date!\r\n $numberOfReviews: Int!\r\n ) {\r\n lodgingPresentation(query: $query, seasonPricesYear: $seasonPricesYear) {\r\n lodging {\r\n id\r\n name\r\n maxPeople(displayDate: $displayDate)\r\n petsAllowed(displayDate: $displayDate)\r\n maxPets(displayDate: $displayDate)\r\n activeDescription(displayDate: $displayDate) {\r\n title\r\n body\r\n longHtmlDescription\r\n embeddedVideoHtml\r\n }\r\n location {\r\n id\r\n name\r\n }\r\n facilityValues(displayDate: $displayDate) {\r\n facilityId\r\n masterFacilityId\r\n facility {\r\n name\r\n }\r\n displayValue\r\n displayValueAndName\r\n value\r\n }\r\n images {\r\n url\r\n tagIds\r\n originalHeight\r\n originalWidth\r\n }\r\n reviews(take: $numberOfReviews) {\r\n month: fromDisplayValue(format: \"MMMM yyyy\")\r\n reviewerName\r\n reviewOfLodgingText\r\n }\r\n latitude\r\n longitude\r\n location {\r\n ...locationDescription\r\n ...locationReviews\r\n }\r\n stars\r\n starsPostText\r\n }\r\n selectedBookingOption {\r\n arrivalDisplayValue(format: \"dd-MM\")\r\n departureDisplayValue(format: \"dd-MM\")\r\n itemPrices {\r\n item {\r\n name\r\n itemType\r\n }\r\n isMandatory\r\n priceWithQuantityDisplayValue\r\n }\r\n normalPriceDisplayValue\r\n priceWithMandatoryItemsDisplayValue\r\n priceWithMandatoryItems\r\n priceWithMandatoryItemsWithoutDepositsDisplayValue\r\n priceDepositItems\r\n priceDepositItemsDisplayValue\r\n currency\r\n discountName\r\n hasDiscount\r\n discountReductionDisplayValue\r\n status\r\n }\r\n }\r\n }\r\n ${LocationDescriptionFragmentDoc}\r\n ${LocationReviewsFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useLodgingPresentationQuery__\r\n *\r\n * To run a query within a React component, call `useLodgingPresentationQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLodgingPresentationQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLodgingPresentationQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * seasonPricesYear: // value for 'seasonPricesYear'\r\n * displayDate: // value for 'displayDate'\r\n * numberOfReviews: // value for 'numberOfReviews'\r\n * },\r\n * });\r\n */\r\nexport function useLodgingPresentationQuery(\r\n baseOptions: Apollo.QueryHookOptions<\r\n LodgingPresentationQuery,\r\n LodgingPresentationQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n LodgingPresentationDocument,\r\n options\r\n );\r\n}\r\nexport function useLodgingPresentationLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions<\r\n LodgingPresentationQuery,\r\n LodgingPresentationQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n LodgingPresentationDocument,\r\n options\r\n );\r\n}\r\nexport type LodgingPresentationQueryHookResult = ReturnType;\r\nexport type LodgingPresentationLazyQueryHookResult = ReturnType<\r\n typeof useLodgingPresentationLazyQuery\r\n>;\r\nexport type LodgingPresentationQueryResult = Apollo.QueryResult<\r\n LodgingPresentationQuery,\r\n LodgingPresentationQueryVariables\r\n>;\r\nexport const LodgingBookingOptionsDocument = gql`\r\n query lodgingBookingOptions($query: String!) {\r\n lodgingBookingOptions(query: $query) {\r\n lodging {\r\n ...LodgingWithImages\r\n }\r\n bookingOptions {\r\n ...DisplayBookingOption\r\n }\r\n }\r\n }\r\n ${LodgingWithImagesFragmentDoc}\r\n ${DisplayBookingOptionFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useLodgingBookingOptionsQuery__\r\n *\r\n * To run a query within a React component, call `useLodgingBookingOptionsQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLodgingBookingOptionsQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLodgingBookingOptionsQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * },\r\n * });\r\n */\r\nexport function useLodgingBookingOptionsQuery(\r\n baseOptions: Apollo.QueryHookOptions<\r\n LodgingBookingOptionsQuery,\r\n LodgingBookingOptionsQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n LodgingBookingOptionsDocument,\r\n options\r\n );\r\n}\r\nexport function useLodgingBookingOptionsLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions<\r\n LodgingBookingOptionsQuery,\r\n LodgingBookingOptionsQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n LodgingBookingOptionsDocument,\r\n options\r\n );\r\n}\r\nexport type LodgingBookingOptionsQueryHookResult = ReturnType;\r\nexport type LodgingBookingOptionsLazyQueryHookResult = ReturnType<\r\n typeof useLodgingBookingOptionsLazyQuery\r\n>;\r\nexport type LodgingBookingOptionsQueryResult = Apollo.QueryResult<\r\n LodgingBookingOptionsQuery,\r\n LodgingBookingOptionsQueryVariables\r\n>;\r\nexport const LodgingsDocument = gql`\r\n query lodgings {\r\n lodgings {\r\n id\r\n name\r\n nameSlug\r\n internalName\r\n address1\r\n address1Slug\r\n location {\r\n id\r\n name\r\n slug\r\n }\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __useLodgingsQuery__\r\n *\r\n * To run a query within a React component, call `useLodgingsQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLodgingsQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLodgingsQuery({\r\n * variables: {\r\n * },\r\n * });\r\n */\r\nexport function useLodgingsQuery(\r\n baseOptions?: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(LodgingsDocument, options);\r\n}\r\nexport function useLodgingsLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(LodgingsDocument, options);\r\n}\r\nexport type LodgingsQueryHookResult = ReturnType;\r\nexport type LodgingsLazyQueryHookResult = ReturnType;\r\nexport type LodgingsQueryResult = Apollo.QueryResult;\r\nexport const CheckoutDocument = gql`\r\n query checkout(\r\n $request: BookingRequestInput!\r\n $displayDate: Date!\r\n $bedroomFacilityId: Int!\r\n $internetFacilityId: Int!\r\n $bathroomFacilityId: Int!\r\n $houseAreaFacilityId: Int!\r\n ) {\r\n lodgingPresentation(request: $request) {\r\n lodging {\r\n ...BookingSummaryLodging\r\n ...ItemsSummaryLodging\r\n ...LodgingFacilitySummary\r\n }\r\n selectedBookingOption {\r\n ...BookingSummaryBookingOption\r\n }\r\n }\r\n checkoutPresentation(request: $request) {\r\n available\r\n ...ItemsSummaryCheckoutPresentation\r\n ...ItemSelectorCheckoutPresentation\r\n ...CheckoutTrackingPresentation\r\n }\r\n countries {\r\n id\r\n name\r\n }\r\n newsletters {\r\n id\r\n name\r\n }\r\n }\r\n ${BookingSummaryLodgingFragmentDoc}\r\n ${ItemsSummaryLodgingFragmentDoc}\r\n ${LodgingFacilitySummaryFragmentDoc}\r\n ${BookingSummaryBookingOptionFragmentDoc}\r\n ${ItemsSummaryCheckoutPresentationFragmentDoc}\r\n ${ItemSelectorCheckoutPresentationFragmentDoc}\r\n ${CheckoutTrackingPresentationFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useCheckoutQuery__\r\n *\r\n * To run a query within a React component, call `useCheckoutQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useCheckoutQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useCheckoutQuery({\r\n * variables: {\r\n * request: // value for 'request'\r\n * displayDate: // value for 'displayDate'\r\n * bedroomFacilityId: // value for 'bedroomFacilityId'\r\n * internetFacilityId: // value for 'internetFacilityId'\r\n * bathroomFacilityId: // value for 'bathroomFacilityId'\r\n * houseAreaFacilityId: // value for 'houseAreaFacilityId'\r\n * },\r\n * });\r\n */\r\nexport function useCheckoutQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(CheckoutDocument, options);\r\n}\r\nexport function useCheckoutLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(CheckoutDocument, options);\r\n}\r\nexport type CheckoutQueryHookResult = ReturnType;\r\nexport type CheckoutLazyQueryHookResult = ReturnType;\r\nexport type CheckoutQueryResult = Apollo.QueryResult;\r\nexport const AvailabilityCalendarsDocument = gql`\r\n query availabilityCalendars($month: Int!, $year: Int!, $displayDate: Date!) {\r\n availabilityCalendars(month: $month, year: $year, displayDate: $displayDate) {\r\n ...availabilityCalendarLodging\r\n days {\r\n date\r\n isAvailable\r\n seasonCode\r\n hasCalendarData\r\n freeNightsAhead\r\n }\r\n }\r\n }\r\n ${AvailabilityCalendarLodgingFragmentDoc}\r\n`;\r\n\r\n/**\r\n * __useAvailabilityCalendarsQuery__\r\n *\r\n * To run a query within a React component, call `useAvailabilityCalendarsQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useAvailabilityCalendarsQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useAvailabilityCalendarsQuery({\r\n * variables: {\r\n * month: // value for 'month'\r\n * year: // value for 'year'\r\n * displayDate: // value for 'displayDate'\r\n * },\r\n * });\r\n */\r\nexport function useAvailabilityCalendarsQuery(\r\n baseOptions: Apollo.QueryHookOptions<\r\n AvailabilityCalendarsQuery,\r\n AvailabilityCalendarsQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n AvailabilityCalendarsDocument,\r\n options\r\n );\r\n}\r\nexport function useAvailabilityCalendarsLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions<\r\n AvailabilityCalendarsQuery,\r\n AvailabilityCalendarsQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n AvailabilityCalendarsDocument,\r\n options\r\n );\r\n}\r\nexport type AvailabilityCalendarsQueryHookResult = ReturnType;\r\nexport type AvailabilityCalendarsLazyQueryHookResult = ReturnType<\r\n typeof useAvailabilityCalendarsLazyQuery\r\n>;\r\nexport type AvailabilityCalendarsQueryResult = Apollo.QueryResult<\r\n AvailabilityCalendarsQuery,\r\n AvailabilityCalendarsQueryVariables\r\n>;\r\nexport const PayRatesDocument = gql`\r\n query PayRates($request: BookingRequestInput!) {\r\n payRates(request: $request) {\r\n rate1 {\r\n payDate\r\n amountDisplayValue\r\n payDateDisplayValue(format: \"dd-MM-yyyy\")\r\n }\r\n rate2 {\r\n amountDisplayValue\r\n payDateDisplayValue(format: \"dd-MM-yyyy\")\r\n }\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __usePayRatesQuery__\r\n *\r\n * To run a query within a React component, call `usePayRatesQuery` and pass it any options that fit your needs.\r\n * When your component renders, `usePayRatesQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = usePayRatesQuery({\r\n * variables: {\r\n * request: // value for 'request'\r\n * },\r\n * });\r\n */\r\nexport function usePayRatesQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(PayRatesDocument, options);\r\n}\r\nexport function usePayRatesLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(PayRatesDocument, options);\r\n}\r\nexport type PayRatesQueryHookResult = ReturnType;\r\nexport type PayRatesLazyQueryHookResult = ReturnType;\r\nexport type PayRatesQueryResult = Apollo.QueryResult;\r\nexport const TermsDocument = gql`\r\n query Terms($lodgingId: Int!, $arrivalDate: DateTime!) {\r\n terms(lodgingId: $lodgingId, arrivalDate: $arrivalDate) {\r\n description\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __useTermsQuery__\r\n *\r\n * To run a query within a React component, call `useTermsQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useTermsQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useTermsQuery({\r\n * variables: {\r\n * lodgingId: // value for 'lodgingId'\r\n * arrivalDate: // value for 'arrivalDate'\r\n * },\r\n * });\r\n */\r\nexport function useTermsQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(TermsDocument, options);\r\n}\r\nexport function useTermsLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(TermsDocument, options);\r\n}\r\nexport type TermsQueryHookResult = ReturnType;\r\nexport type TermsLazyQueryHookResult = ReturnType;\r\nexport type TermsQueryResult = Apollo.QueryResult;\r\nexport const BookingDocument = gql`\r\n query booking($basketId: String!, $dateFormat: String!) {\r\n booking(basketId: $basketId) {\r\n reservationId\r\n totalPrice\r\n totalPriceDisplayValue\r\n bookingsTotalPrice\r\n bookingsTotalPriceDisplayValue\r\n bookingsTotalDiscount\r\n bookingsTotalDiscountDisplayValue\r\n currency\r\n balance\r\n balanceDisplayValue\r\n externalNote\r\n payment {\r\n amount\r\n currency\r\n fee\r\n transact\r\n status\r\n }\r\n bookingLines {\r\n lodgingId\r\n lodging {\r\n name\r\n location {\r\n id\r\n name\r\n }\r\n }\r\n lodgingUnitTypeId\r\n arrivalDate\r\n duration\r\n adults\r\n children\r\n infants\r\n pets\r\n calculatedLineTotal\r\n description\r\n }\r\n itemLines {\r\n itemId\r\n quantity\r\n calculatedUnitPrice\r\n calculatedLineTotal\r\n description\r\n }\r\n payRates {\r\n rate1 {\r\n amount\r\n amountDisplayValue\r\n currency\r\n payDate\r\n payDateDisplayValue(format: $dateFormat)\r\n }\r\n rate2 {\r\n amount\r\n amountDisplayValue\r\n currency\r\n payDate\r\n payDateDisplayValue(format: $dateFormat)\r\n }\r\n }\r\n customer {\r\n email\r\n postalCode\r\n city\r\n country\r\n }\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __useBookingQuery__\r\n *\r\n * To run a query within a React component, call `useBookingQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useBookingQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useBookingQuery({\r\n * variables: {\r\n * basketId: // value for 'basketId'\r\n * dateFormat: // value for 'dateFormat'\r\n * },\r\n * });\r\n */\r\nexport function useBookingQuery(\r\n baseOptions: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(BookingDocument, options);\r\n}\r\nexport function useBookingLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(BookingDocument, options);\r\n}\r\nexport type BookingQueryHookResult = ReturnType;\r\nexport type BookingLazyQueryHookResult = ReturnType;\r\nexport type BookingQueryResult = Apollo.QueryResult;\r\nexport const LodgingCalendarDataDocument = gql`\r\n query lodgingCalendarData($query: String!, $year: Int!, $month: Int!, $numberOfMonths: Int!) {\r\n calendar(query: $query, year: $year, month: $month, numberOfMonths: $numberOfMonths) {\r\n days {\r\n date\r\n isAvailable\r\n isChangeDay\r\n selectedBookingOption {\r\n arrival\r\n departure\r\n priceDisplayValue\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __useLodgingCalendarDataQuery__\r\n *\r\n * To run a query within a React component, call `useLodgingCalendarDataQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useLodgingCalendarDataQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useLodgingCalendarDataQuery({\r\n * variables: {\r\n * query: // value for 'query'\r\n * year: // value for 'year'\r\n * month: // value for 'month'\r\n * numberOfMonths: // value for 'numberOfMonths'\r\n * },\r\n * });\r\n */\r\nexport function useLodgingCalendarDataQuery(\r\n baseOptions: Apollo.QueryHookOptions<\r\n LodgingCalendarDataQuery,\r\n LodgingCalendarDataQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n LodgingCalendarDataDocument,\r\n options\r\n );\r\n}\r\nexport function useLodgingCalendarDataLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions<\r\n LodgingCalendarDataQuery,\r\n LodgingCalendarDataQueryVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n LodgingCalendarDataDocument,\r\n options\r\n );\r\n}\r\nexport type LodgingCalendarDataQueryHookResult = ReturnType;\r\nexport type LodgingCalendarDataLazyQueryHookResult = ReturnType<\r\n typeof useLodgingCalendarDataLazyQuery\r\n>;\r\nexport type LodgingCalendarDataQueryResult = Apollo.QueryResult<\r\n LodgingCalendarDataQuery,\r\n LodgingCalendarDataQueryVariables\r\n>;\r\nexport const CreateBookingDocument = gql`\r\n mutation CreateBooking($request: BookingRequestInput!, $payMethod: PaymentOption) {\r\n createBooking(request: $request, payMethod: $payMethod) {\r\n errorMessage\r\n success\r\n result {\r\n resultType\r\n basketId\r\n bookingOptionNoLongerAvailable\r\n orderItem {\r\n id\r\n reservationId\r\n type\r\n }\r\n formForGateway\r\n }\r\n }\r\n }\r\n`;\r\nexport type CreateBookingMutationFn = Apollo.MutationFunction<\r\n CreateBookingMutation,\r\n CreateBookingMutationVariables\r\n>;\r\n\r\n/**\r\n * __useCreateBookingMutation__\r\n *\r\n * To run a mutation, you first call `useCreateBookingMutation` within a React component and pass it any options that fit your needs.\r\n * When your component renders, `useCreateBookingMutation` returns a tuple that includes:\r\n * - A mutate function that you can call at any time to execute the mutation\r\n * - An object with fields that represent the current status of the mutation's execution\r\n *\r\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\r\n *\r\n * @example\r\n * const [createBookingMutation, { data, loading, error }] = useCreateBookingMutation({\r\n * variables: {\r\n * request: // value for 'request'\r\n * payMethod: // value for 'payMethod'\r\n * },\r\n * });\r\n */\r\nexport function useCreateBookingMutation(\r\n baseOptions?: Apollo.MutationHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useMutation(\r\n CreateBookingDocument,\r\n options\r\n );\r\n}\r\nexport type CreateBookingMutationHookResult = ReturnType;\r\nexport type CreateBookingMutationResult = Apollo.MutationResult;\r\nexport type CreateBookingMutationOptions = Apollo.BaseMutationOptions<\r\n CreateBookingMutation,\r\n CreateBookingMutationVariables\r\n>;\r\nexport const NewsletterSignupDocument = gql`\r\n mutation NewsletterSignup(\r\n $firstName: String!\r\n $lastName: String!\r\n $email: String!\r\n $newsletterCategories: [Int!]!\r\n $mailConfigurationId: String!\r\n ) {\r\n newsletterSignup(\r\n firstName: $firstName\r\n lastName: $lastName\r\n email: $email\r\n newsletterCategories: $newsletterCategories\r\n mailConfigurationId: $mailConfigurationId\r\n ) {\r\n errorMessage\r\n success\r\n }\r\n }\r\n`;\r\nexport type NewsletterSignupMutationFn = Apollo.MutationFunction<\r\n NewsletterSignupMutation,\r\n NewsletterSignupMutationVariables\r\n>;\r\n\r\n/**\r\n * __useNewsletterSignupMutation__\r\n *\r\n * To run a mutation, you first call `useNewsletterSignupMutation` within a React component and pass it any options that fit your needs.\r\n * When your component renders, `useNewsletterSignupMutation` returns a tuple that includes:\r\n * - A mutate function that you can call at any time to execute the mutation\r\n * - An object with fields that represent the current status of the mutation's execution\r\n *\r\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\r\n *\r\n * @example\r\n * const [newsletterSignupMutation, { data, loading, error }] = useNewsletterSignupMutation({\r\n * variables: {\r\n * firstName: // value for 'firstName'\r\n * lastName: // value for 'lastName'\r\n * email: // value for 'email'\r\n * newsletterCategories: // value for 'newsletterCategories'\r\n * mailConfigurationId: // value for 'mailConfigurationId'\r\n * },\r\n * });\r\n */\r\nexport function useNewsletterSignupMutation(\r\n baseOptions?: Apollo.MutationHookOptions<\r\n NewsletterSignupMutation,\r\n NewsletterSignupMutationVariables\r\n >\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useMutation(\r\n NewsletterSignupDocument,\r\n options\r\n );\r\n}\r\nexport type NewsletterSignupMutationHookResult = ReturnType;\r\nexport type NewsletterSignupMutationResult = Apollo.MutationResult;\r\nexport type NewsletterSignupMutationOptions = Apollo.BaseMutationOptions<\r\n NewsletterSignupMutation,\r\n NewsletterSignupMutationVariables\r\n>;\r\nexport const BureauReviewsDocument = gql`\r\n query BureauReviews {\r\n bureauReviews(limit: 11) {\r\n reviewOfBureauText\r\n reviewerName\r\n }\r\n }\r\n`;\r\n\r\n/**\r\n * __useBureauReviewsQuery__\r\n *\r\n * To run a query within a React component, call `useBureauReviewsQuery` and pass it any options that fit your needs.\r\n * When your component renders, `useBureauReviewsQuery` returns an object from Apollo Client that contains loading, error, and data properties\r\n * you can use to render your UI.\r\n *\r\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\r\n *\r\n * @example\r\n * const { data, loading, error } = useBureauReviewsQuery({\r\n * variables: {\r\n * },\r\n * });\r\n */\r\nexport function useBureauReviewsQuery(\r\n baseOptions?: Apollo.QueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useQuery(\r\n BureauReviewsDocument,\r\n options\r\n );\r\n}\r\nexport function useBureauReviewsLazyQuery(\r\n baseOptions?: Apollo.LazyQueryHookOptions\r\n) {\r\n const options = { ...defaultOptions, ...baseOptions };\r\n return Apollo.useLazyQuery(\r\n BureauReviewsDocument,\r\n options\r\n );\r\n}\r\nexport type BureauReviewsQueryHookResult = ReturnType;\r\nexport type BureauReviewsLazyQueryHookResult = ReturnType;\r\nexport type BureauReviewsQueryResult = Apollo.QueryResult<\r\n BureauReviewsQuery,\r\n BureauReviewsQueryVariables\r\n>;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\n\r\nexport default function SearchResultListSkeleton({\r\n headerElement,\r\n numberOfSkeletons = 6,\r\n height = 400,\r\n}: {\r\n headerElement?: HTMLElement;\r\n numberOfSkeletons?: number;\r\n height?: number;\r\n}) {\r\n let arr = [];\r\n for (let x = 0; x < numberOfSkeletons; x++) {\r\n arr.push(x);\r\n }\r\n\r\n return (\r\n <>\r\n {headerElement &&\r\n ReactDOM.createPortal(\r\n
    ,\r\n headerElement\r\n )}\r\n
    \r\n {arr.map((a) => (\r\n \r\n ))}\r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./SelectFilterBox.scss\";\r\n\r\ninterface Props {\r\n children?: React.ReactNode;\r\n value: HTMLSelectElement[\"value\"];\r\n onChange: (e: React.SyntheticEvent) => void;\r\n}\r\n\r\nexport default function SelectFilterBox({ children, value, onChange }: Props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function ListIcon() {\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","import React from \"react\";\r\n\r\nexport default function MapIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./SearchResultListHeader.scss\";\r\nimport { processPluralizedTemplateReact } from \"./shared/templates\";\r\nimport { SearchResultListTranslations } from \"./translations/SearchResultListTranslations\";\r\nimport SelectFilterBox from \"./SelectFilterBox\";\r\nimport Button from \"./Button\";\r\nimport ListIcon from \"./ListIcon\";\r\nimport MapIcon from \"./MapIcon\";\r\nimport { SearchResultListStyle } from \"./shared/types\";\r\n\r\ninterface Props {\r\n numberOfResults: number;\r\n sorting: string;\r\n onSortingChange: (value: string) => void;\r\n translations: SearchResultListTranslations;\r\n listStyle: SearchResultListStyle;\r\n mapUnavailable?: boolean;\r\n onListStyleChange: (style: SearchResultListStyle) => void;\r\n}\r\n\r\nexport default function SearchResultListHeader({\r\n numberOfResults,\r\n sorting,\r\n onSortingChange,\r\n translations,\r\n listStyle,\r\n mapUnavailable,\r\n onListStyleChange,\r\n}: Props) {\r\n const mapAvailable = !mapUnavailable;\r\n \r\n return (\r\n
    \r\n
    \r\n {numberOfResults !== null && (\r\n \r\n {processPluralizedTemplateReact(\r\n numberOfResults,\r\n {numberOfResults},\r\n translations.numberOfResultsFound\r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n onSortingChange(e.currentTarget.value === \"\" ? null : e.currentTarget.value)\r\n }\r\n >\r\n \r\n \r\n \r\n {mapAvailable && (\r\n <>\r\n {listStyle != \"Grid\" && (\r\n \r\n )}\r\n {listStyle != \"Map\" && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useCallback, useMemo } from \"react\";\r\nimport \"./LodgingCard2.scss\";\r\nimport CardImageSlider from \"./CardImageSlider\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\nimport { pluralize } from \"./shared/helpers\";\r\nimport { processTemplate } from \"./shared/templates\";\r\nimport { getImageUrl } from \"./shared/images\";\r\nimport { IconStar20, IconHalfStar20, IconPlus14 } from \"./shared/icons\";\r\nimport { LodgingListQuery, SearchResultsPageQuery } from \"./operations.generated\";\r\nimport { CleaningBannerType, DiscountBannerType } from \"./shared/types\";\r\n\r\ntype LodgingForLodgingCard = SearchResultsPageQuery[\"search\"][\"results\"][0][\"lodging\"]\r\n | LodgingListQuery[\"lodgingList\"][\"results\"][0][\"lodging\"]\r\n | {\r\n id: number;\r\n activeDescription?: {\r\n title: string | null;\r\n };\r\n name: string;\r\n address1: string;\r\n petsAllowed?: boolean;\r\n maxPeople?: number;\r\n images: {\r\n url: string;\r\n }[];\r\n location: {\r\n name: string;\r\n };\r\n facilityValues: {\r\n facilityId: number;\r\n displayValueAndName: string;\r\n }[];\r\n stars?: number;\r\n starsPostText: string;\r\n };\r\n\r\ntype BookingOptionForLodgingCard = SearchResultsPageQuery[\"search\"][\"results\"][0][\"selectedBookingOption\"] | LodgingListQuery[\"lodgingList\"][\"results\"][0][\"selectedBookingOption\"];\r\n\r\ntype SeasonPricesForLodgingCard = {\r\n price: number;\r\n weeklyPriceDisplayValue: string;\r\n seasonCode: string;\r\n}[]; \r\n\r\ninterface LodgingCard2Props {\r\n lodging: LodgingForLodgingCard;\r\n selectedBookingOption?: BookingOptionForLodgingCard;\r\n seasonPrices?: SeasonPricesForLodgingCard;\r\n extraFacilities?: number[];\r\n nextUrl: string;\r\n translations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n isFavorite?: boolean;\r\n onSetFavorite?: (id: number) => void;\r\n disableSmartImage?: boolean;\r\n disableImageSlider?: boolean;\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n hideAddress?: boolean;\r\n showCleaningBanner?: boolean;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nexport default function LodgingCard2({\r\n lodging,\r\n extraFacilities = [],\r\n nextUrl,\r\n translations,\r\n favouritesTranslations,\r\n selectedBookingOption,\r\n seasonPrices,\r\n isFavorite,\r\n onSetFavorite,\r\n disableSmartImage,\r\n disableImageSlider,\r\n showStars,\r\n starsExtraIcon,\r\n hideAddress,\r\n showCleaningBanner,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: LodgingCard2Props) {\r\n const handleClick = useCallback(() => {\r\n window.location.href = nextUrl;\r\n }, [nextUrl]);\r\n\r\n let petsAllowedLabel = null;\r\n let personLabel = null;\r\n if (lodging.maxPeople !== null) {\r\n personLabel = pluralize(lodging.maxPeople, translations.person);\r\n }\r\n if (lodging.petsAllowed !== null) {\r\n petsAllowedLabel = lodging.petsAllowed\r\n ? translations.petsAllowed\r\n : translations.petsNotAllowed;\r\n }\r\n\r\n let extraFacilityRows = useMemo(\r\n () =>\r\n extraFacilities.reduce((result, cur, index) => {\r\n if (index % 2 == 0) {\r\n result.push([]);\r\n }\r\n\r\n let arr = result[result.length - 1];\r\n let val = lodging.facilityValues.find((f) => f.facilityId == cur);\r\n if (val) {\r\n arr.push(val.displayValueAndName);\r\n }\r\n\r\n return result;\r\n }, [] as string[][]),\r\n [extraFacilities, lodging.facilityValues]\r\n );\r\n\r\n let {\r\n discountName = null\r\n }: Partial = selectedBookingOption || {};\r\n \r\n const hasTitle =\r\n lodging.activeDescription?.title != null && lodging.activeDescription?.title.length > 0;\r\n\r\n const lodgingTitle = hasTitle ? lodging.activeDescription?.title : lodging.name;\r\n const isTitleTheAddress = lodgingTitle.toLowerCase() == lodging.address1?.toLowerCase();\r\n const displayCleaningBanner = showCleaningBanner || selectedBookingOption?.cleaningIncludedInPriceWithMandatoryItems;\r\n\r\n const activeDiscountBannerMode = useMemo(() => {\r\n if (!discountName) {\r\n return \"hidden\";\r\n }\r\n return discountBanner;\r\n }, [discountName, discountBanner]);\r\n\r\n const activeCleaningBannerMode = useMemo(() => {\r\n if (!displayCleaningBanner) {\r\n return \"hidden\";\r\n }\r\n return cleaningBanner;\r\n }, [displayCleaningBanner, cleaningBanner]);\r\n \r\n return (\r\n
    \r\n
    \r\n onSetFavorite(lodging.id)}\r\n disableSmartImage={disableSmartImage}\r\n getImageUrl={(url, width, height) => getImageUrl({ url }, width, height)}\r\n >\r\n \r\n \r\n {(activeDiscountBannerMode === \"custom\") && (\r\n \r\n )}\r\n {(activeCleaningBannerMode === \"custom\") && (\r\n \r\n )}\r\n
    \r\n {showStars && ()}\r\n {!showStars && ()}\r\n {!isTitleTheAddress && (\r\n \r\n )}\r\n \r\n {extraFacilityRows.map((row, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n {(activeDiscountBannerMode === \"pricebox\") && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\ninterface LodgingCardBannerContainerProps {\r\n selectedBookingOption?: BookingOptionForLodgingCard;\r\n showItems: boolean;\r\n itemsToShow: number[];\r\n maxItemsToShow: number;\r\n discountBanner: DiscountBannerType;\r\n discountName: string;\r\n cleaningBanner: CleaningBannerType;\r\n translations: LodgingCardTranslations;\r\n onClick: () => void;\r\n}\r\n\r\nfunction LodgingCardBannerContainer({ selectedBookingOption, showItems, itemsToShow, maxItemsToShow, discountBanner, discountName, cleaningBanner, translations, onClick }: LodgingCardBannerContainerProps) {\r\n \r\n const handleClick = () => {\r\n if (typeof onClick === \"function\") {\r\n onClick();\r\n }\r\n }\r\n \r\n if (showItems) {\r\n return (\r\n \r\n );\r\n }\r\n \r\n return (\r\n
    \r\n {(discountBanner === \"image\") && (\r\n \r\n )}\r\n {(cleaningBanner === \"image\") && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nfunction LodgingCardTitleWithStars({ lodging, starsExtraIcon }: { lodging: LodgingForLodgingCard, starsExtraIcon?: string }) {\r\n const hasTitle =\r\n lodging.activeDescription?.title != null && lodging.activeDescription?.title.length > 0;\r\n\r\n const lodgingTitle = hasTitle ? lodging.activeDescription?.title : lodging.name;\r\n\r\n const stars = lodging.stars\r\n ? [1, 2, 3, 4, 5].filter(s => s <= lodging.stars)\r\n : [];\r\n\r\n return (\r\n
    \r\n
    {lodging.location.name}
    \r\n
    \r\n {lodgingTitle}\r\n
    \r\n
    \r\n {stars.map(s => )}\r\n {lodging.starsPostText && ()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction LodgingCardTitle({ lodging }: { lodging: LodgingForLodgingCard }) {\r\n const hasTitle =\r\n lodging.activeDescription?.title != null && lodging.activeDescription?.title.length > 0;\r\n\r\n const lodgingTitle = hasTitle ? lodging.activeDescription?.title : lodging.name;\r\n\r\n return (\r\n
    \r\n
    {lodging.location.name}
    \r\n
    \r\n {lodgingTitle}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction LodgingCardStar() {\r\n return (\r\n <>\r\n {IconStar20}\r\n \r\n )\r\n}\r\n\r\nfunction LodgingCardStarExtraIcon({ starsExtraIcon }: { starsExtraIcon?: string }) {\r\n\r\n let icon: React.ReactNode = null;\r\n if (starsExtraIcon === \"Half star\") {\r\n icon = IconHalfStar20;\r\n } else if (starsExtraIcon === \"Plus\") {\r\n icon = IconPlus14;\r\n }\r\n\r\n if (!icon) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {icon}\r\n \r\n );\r\n}\r\n\r\ninterface BannerProps {\r\n type: \"discount\" | \"cleaning\";\r\n label: string;\r\n onClick?: () => void;\r\n empty?: \"blank\" | \"hide\"\r\n}\r\n\r\nfunction StandardBanner({ type, label, onClick, empty }: BannerProps) {\r\n \r\n const handleClick = () => {\r\n if (typeof onClick === \"function\") {\r\n onClick();\r\n }\r\n }\r\n \r\n if (!label && empty === \"hide\") {\r\n return null;\r\n }\r\n \r\n if (!label && empty === \"blank\") {\r\n return (\r\n
    \r\n );\r\n }\r\n \r\n return (\r\n
    \r\n {label}\r\n
    \r\n );\r\n}\r\n\r\nfunction CustomBanner({ type, label, onClick }: BannerProps) {\r\n const cultureClassName = `bwp-culture__${window[\"BookingStudio_culture\"]}`;\r\n\r\n const handleClick = () => {\r\n if (typeof onClick === \"function\") {\r\n onClick();\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n {label}\r\n
    \r\n );\r\n}\r\n\r\ninterface ItemBoxProps {\r\n bookingOption: BookingOptionForLodgingCard;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nfunction ItemBox({ bookingOption, itemsToShow, maxItemsToShow }: ItemBoxProps) {\r\n \r\n if (!bookingOption) {\r\n return null;\r\n }\r\n \r\n if (!bookingOption.itemPrices) {\r\n return null;\r\n }\r\n \r\n const itemIsShown = (itemPrice: BookingOptionForLodgingCard[\"itemPrices\"][0]) => {\r\n if (!itemsToShow?.length) {\r\n return false;\r\n }\r\n return itemsToShow.findIndex(itemId => itemPrice.item.id === itemId) > -1;\r\n };\r\n \r\n const items = useMemo(() => \r\n bookingOption.itemPrices\r\n .filter(ip => (\r\n ip.isMandatory &&\r\n itemIsShown(ip) \r\n ))\r\n , [bookingOption.itemPrices, itemsToShow]);\r\n \r\n return (\r\n
    \r\n {items.filter((itemPrice, index) => index < (maxItemsToShow || 3)).map(itemPrice => (\r\n
    {itemPrice.item.name}
    \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\ninterface LodgingSubTitleProps {\r\n lodging: LodgingForLodgingCard;\r\n translations: LodgingCardTranslations;\r\n hideAddress: boolean;\r\n}\r\n\r\nfunction LodgingSubTitle({ lodging, translations, hideAddress }: LodgingSubTitleProps) {\r\n const showLodgingName = (lodging.name?.toLowerCase() != lodging.address1?.toLowerCase());\r\n \r\n if (!showLodgingName && hideAddress) {\r\n return null;\r\n }\r\n \r\n let label = showLodgingName\r\n ? hideAddress\r\n ? `${translations.houseNumber} ${lodging.name}`\r\n : `${translations.houseNumber} ${lodging.name} - ${lodging.address1}`\r\n : lodging.address1;\r\n \r\n return (\r\n
    \r\n {label}\r\n
    \r\n );\r\n}\r\n\r\ninterface LodgingCardFacilityRowProps {\r\n facilities: string[];\r\n}\r\n\r\nfunction LodgingCardFacilityRow({ facilities }: LodgingCardFacilityRowProps) {\r\n \r\n const visibleFacilities = facilities.filter(f => f);\r\n if (!visibleFacilities.length) {\r\n return null;\r\n }\r\n \r\n return (\r\n
    \r\n {visibleFacilities.filter(l => l).join(\" - \")}\r\n
    \r\n );\r\n}\r\n\r\ninterface LodgingCardPriceRowProps {\r\n bookingOption?: BookingOptionForLodgingCard;\r\n seasonPrices?: SeasonPricesForLodgingCard;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n onClick: () => void;\r\n translations: LodgingCardTranslations;\r\n}\r\n\r\nfunction LodgingCardPriceRow({ \r\n bookingOption,\r\n seasonPrices,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n onClick,\r\n translations }: LodgingCardPriceRowProps) {\r\n \r\n const handleClick = (e) => {\r\n e.preventDefault();\r\n if (typeof onClick === \"function\") {\r\n onClick();\r\n }\r\n };\r\n\r\n let {\r\n arrivalDisplayValue = null,\r\n arrivalWeekDayName = null,\r\n departureDisplayValue = null,\r\n priceDisplayValue = null,\r\n priceWithMandatoryItemsDisplayValue = null,\r\n hasDiscount = false,\r\n normalPriceDisplayValue = null,\r\n normalPriceWithMandatoryItemsDisplayValue = null,\r\n normalPriceWithMandatoryItemsWithoutDepositsDisplayValue = null,\r\n }: Partial = bookingOption || {};\r\n\r\n const isProbability = showProbabilityWithPriceAsBookingOption\r\n ? bookingOption?.status === \"Probability\"\r\n : bookingOption?.status === \"Probability\" || bookingOption?.status === \"ProbabilityAsBooking\";\r\n\r\n const hasBookingOption = bookingOption != null;\r\n const lowestSeasonPrice = (seasonPrices ?? []).reduce(\r\n (prev, cur) => (prev == null || prev.price > cur.price ? cur : prev),\r\n null\r\n );\r\n \r\n const priceWithMandatoryItemsWithoutDepositsDisplayValue = bookingOption?.priceWithMandatoryItemsWithoutDepositsDisplayValue || null;\r\n \r\n const beforePrice = useMemo(() => {\r\n if (!hasDiscount) {\r\n return null;\r\n }\r\n if (showPriceWithoutMandatoryItems) {\r\n return normalPriceDisplayValue;\r\n }\r\n if (showDepositSeparately) {\r\n return normalPriceWithMandatoryItemsWithoutDepositsDisplayValue;\r\n }\r\n return normalPriceWithMandatoryItemsDisplayValue;\r\n }, [hasDiscount, showPriceWithoutMandatoryItems, showDepositSeparately, normalPriceDisplayValue, normalPriceWithMandatoryItemsWithoutDepositsDisplayValue, normalPriceWithMandatoryItemsDisplayValue]);\r\n \r\n const price = useMemo(() => {\r\n if (isProbability) {\r\n return translations.canBeReserved;\r\n }\r\n if (showPriceWithoutMandatoryItems) {\r\n return priceDisplayValue;\r\n }\r\n if (showDepositSeparately) {\r\n return priceWithMandatoryItemsWithoutDepositsDisplayValue;\r\n }\r\n return priceWithMandatoryItemsDisplayValue;\r\n }, [isProbability, showPriceWithoutMandatoryItems, priceDisplayValue, showDepositSeparately, priceWithMandatoryItemsWithoutDepositsDisplayValue, priceWithMandatoryItemsDisplayValue]);\r\n \r\n return (\r\n \r\n {hasBookingOption && (\r\n <>\r\n
    \r\n
    \r\n {translations.arrival}: {arrivalWeekDayName}\r\n
    \r\n {hasDiscount && (\r\n
    \r\n \r\n {beforePrice}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {processTemplate(translations.period, {\r\n from: arrivalDisplayValue,\r\n to: departureDisplayValue,\r\n })}\r\n
    \r\n
    \r\n {price}\r\n
    \r\n
    \r\n \r\n )}\r\n {hasBookingOption == false && lowestSeasonPrice != null && (\r\n
    \r\n {processTemplate(translations.fromPricePerPeriod, {\r\n price: lowestSeasonPrice.weeklyPriceDisplayValue,\r\n period: translations.perWeek,\r\n })}\r\n
    \r\n )}\r\n
    \r\n );\r\n}","import { Favourite } from \"./types\";\r\nimport { isBrowser } from \"./helpers\";\r\n\r\nclass FavoriteHelper {\r\n private favouriteStorageKey = \"BS_Favorites_key\";\r\n private favourites: Favourite[];\r\n private subscribers: (() => void)[];\r\n\r\n constructor() {\r\n if (!isBrowser()) {\r\n return;\r\n }\r\n\r\n let jsonFavorites = localStorage.getItem(this.favouriteStorageKey);\r\n if (jsonFavorites) {\r\n this.favourites = JSON.parse(jsonFavorites);\r\n } else {\r\n this.favourites = [];\r\n window[\"localStorage\"].setItem(\r\n this.favouriteStorageKey,\r\n JSON.stringify(this.favourites)\r\n );\r\n }\r\n this.subscribers = [];\r\n }\r\n\r\n getFavorites = (filterNonFavorites: boolean = true) => {\r\n if (filterNonFavorites) {\r\n return this.favourites.filter((fav) => fav.isFavourite);\r\n }\r\n return this.favourites;\r\n };\r\n\r\n isFavourite = (id: number) => {\r\n let item = this.favourites.find((fav) => fav.id == id);\r\n if (item) {\r\n return item.isFavourite;\r\n }\r\n return false;\r\n };\r\n\r\n handleFavouriteToggle = (id: number) => {\r\n let found = false;\r\n let newFavourites = this.favourites.map((fav) => {\r\n if (fav.id == id) {\r\n found = true;\r\n return { id: fav.id, isFavourite: !fav.isFavourite };\r\n } else {\r\n return { id: fav.id, isFavourite: fav.isFavourite };\r\n }\r\n });\r\n if (!found) {\r\n newFavourites.push({ id: id, isFavourite: true });\r\n }\r\n\r\n this.favourites = newFavourites;\r\n window[\"localStorage\"].setItem(this.favouriteStorageKey, JSON.stringify(this.favourites));\r\n this.notifySubscribers();\r\n };\r\n\r\n subscribe = (notify: () => void) => {\r\n this.subscribers.push(notify);\r\n\r\n return () => {\r\n this.subscribers = this.subscribers.filter((sub) => sub != notify);\r\n };\r\n };\r\n\r\n private notifySubscribers = () => {\r\n this.subscribers.forEach((notificationFunction) => notificationFunction());\r\n };\r\n}\r\n\r\nconst favoriteHelper = new FavoriteHelper();\r\n\r\nexport default favoriteHelper;\r\n","import favoriteHelper from \"./FavoriteHelper\";\r\nimport { useCallback, useEffect, useState } from \"react\";\r\n\r\nexport default function useFavorites() {\r\n let [favorites, setFavorites] = useState(favoriteHelper.getFavorites().map((f) => f.id));\r\n\r\n useEffect(() => {\r\n return favoriteHelper.subscribe(() => {\r\n setFavorites(favoriteHelper.getFavorites().map((f) => f.id));\r\n });\r\n }, []);\r\n\r\n const setFavorite = useCallback((id: number) => {\r\n favoriteHelper.handleFavouriteToggle(id);\r\n }, []);\r\n\r\n return [favorites, setFavorite] as [number[], (id: number) => void];\r\n}\r\n","import * as React from \"react\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport { ensureGoogleMapsIncluded } from \"./shared/googleMapUtils\";\r\nimport LodgingCard2 from \"./LodgingCard2\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\n\r\ninterface Props {\r\n googleMapsApiKey: string;\r\n maxMapZoomLevel?: number;\r\n searchResults: SearchResultMapLodging[];\r\n markerIconUrl?: string;\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n extraFacilities: number[];\r\n mapHeight?: number;\r\n renderInfoWindow: (lodging: SearchResultMapLodging) => React.ReactNode;\r\n}\r\n\r\ninterface SearchResultMapLodging {\r\n id: number;\r\n latitude: string;\r\n longitude: string;\r\n}\r\n\r\nconst DefaultMapHeight = \"500px\";\r\n\r\nexport default class SearchResultMap extends React.Component {\r\n private map: google.maps.Map;\r\n private infoWindow: google.maps.InfoWindow;\r\n private mapTarget = React.createRef();\r\n private markers: google.maps.Marker[] = [];\r\n\r\n state = {\r\n googleApiAvailable: false,\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.googleMapsApiKey) {\r\n ensureGoogleMapsIncluded(this.props.googleMapsApiKey).then(() => {\r\n this.setState({googleApiAvailable: true});\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Props) {\r\n if (this.state.googleApiAvailable) {\r\n const maxZoomLevel = this.props.maxMapZoomLevel || 0;\r\n\r\n if (this.map == null) {\r\n this.map = new google.maps.Map(this.mapTarget.current, {\r\n styles: [\r\n {\r\n featureType: \"poi.business\",\r\n elementType: \"labels\",\r\n stylers: [{ visibility: \"off\" }],\r\n },\r\n ],\r\n });\r\n this.map.addListener(\"bounds_changed\", () => {\r\n if (0 < maxZoomLevel && maxZoomLevel < this.map.getZoom()) {\r\n this.map.setZoom(maxZoomLevel);\r\n }\r\n });\r\n this.infoWindow = new google.maps.InfoWindow();\r\n }\r\n\r\n let validSearchResults = this.props.searchResults.filter(\r\n (x) => x.latitude != \"0\" && x.longitude != \"0\"\r\n );\r\n\r\n let bounds = new google.maps.LatLngBounds();\r\n validSearchResults.forEach((searchResult) =>\r\n bounds.extend(\r\n new google.maps.LatLng(\r\n parseFloat(searchResult.latitude),\r\n parseFloat(searchResult.longitude)\r\n )\r\n )\r\n );\r\n this.map.fitBounds(bounds);\r\n\r\n this.markers.forEach((m) => {\r\n m.unbindAll();\r\n });\r\n this.markers = validSearchResults.map(this.createMapMarker);\r\n }\r\n }\r\n\r\n createMapMarker = (searchResult: SearchResultMapLodging): google.maps.Marker => {\r\n let markerOpts = {\r\n position: new google.maps.LatLng(\r\n parseFloat(searchResult.latitude),\r\n parseFloat(searchResult.longitude)\r\n ),\r\n map: this.map,\r\n };\r\n if (this.props.markerIconUrl) {\r\n markerOpts = Object.assign(markerOpts, { icon: this.props.markerIconUrl });\r\n }\r\n\r\n const marker = new google.maps.Marker(markerOpts);\r\n marker.addListener(\"click\", (e) => {\r\n this.infoWindow.setContent(this.createInfoWindowContent(searchResult));\r\n this.infoWindow.open(this.map, marker);\r\n });\r\n return marker;\r\n };\r\n\r\n createInfoWindowContent = (d: SearchResultMapLodging): string => {\r\n return renderToString(\r\n
    {this.props.renderInfoWindow(d)}
    \r\n );\r\n };\r\n\r\n render() {\r\n const mapHeight = this.props.mapHeight || DefaultMapHeight;\r\n\r\n if (!this.props.googleMapsApiKey) {\r\n return null;\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var 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 * var 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 * var 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 {isBrowser} from \"./helpers\";\r\n\r\nlet hasFired = [];\r\n\r\nexport function trackViewList(lodgings: TrackLodgingListItem[], options: TrackingOptions) {\r\n if (isBrowser()) {\r\n const BwpViewList = \"bwp:view-list\";\r\n \r\n if (options.onlyOnce && hasFired.indexOf(BwpViewList) > -1) {\r\n return;\r\n }\r\n \r\n const event = new CustomEvent(BwpViewList, {\r\n detail: [...lodgings]\r\n });\r\n \r\n if (hasFired.indexOf(BwpViewList) === -1) {\r\n hasFired.push(BwpViewList);\r\n }\r\n window.dispatchEvent(event);\r\n }\r\n}\r\n\r\nexport interface TrackViewListArgs {\r\n detail: TrackLodgingListItem[];\r\n}\r\n\r\nexport interface TrackValue {\r\n amount: number;\r\n currency: string;\r\n}\r\n\r\nexport function trackViewLodging(\r\n lodging: TrackLodging,\r\n value: TrackValue,\r\n options: TrackingOptions\r\n) {\r\n if (isBrowser()) {\r\n const BwpViewLodging = \"bwp:view-lodging\";\r\n \r\n if (options.onlyOnce && hasFired.indexOf(BwpViewLodging) > -1) {\r\n return;\r\n }\r\n \r\n const detail = {\r\n lodging: {\r\n id: lodging.id,\r\n name: lodging.name,\r\n location: { ...lodging.location }\r\n },\r\n value: value ? { ...value } : null\r\n };\r\n \r\n const event = new CustomEvent(BwpViewLodging, { detail } as TrackViewLodgingArgs);\r\n \r\n if (hasFired.indexOf(BwpViewLodging) === -1) {\r\n hasFired.push(BwpViewLodging);\r\n }\r\n \r\n window.dispatchEvent(event);\r\n }\r\n}\r\n\r\nexport interface TrackLodging {\r\n id: number;\r\n name: string;\r\n location: {\r\n id: number;\r\n name: string;\r\n }\r\n}\r\n\r\nexport interface TrackViewLodgingArgs {\r\n detail: {\r\n lodging: TrackLodging;\r\n }\r\n}\r\n\r\nexport interface TrackCustomer {\r\n postalCode: string;\r\n city: string;\r\n country: string;\r\n}\r\n\r\nexport interface TrackLocation {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface TrackItemLine {\r\n itemId: number;\r\n description: string;\r\n quantity: number;\r\n unitPrice: number;\r\n lineTotalPrice: number;\r\n}\r\n\r\nexport interface TrackBooking {\r\n reservationId: number;\r\n currency: string;\r\n totalPrice: number;\r\n bookingsTotalPrice: number;\r\n discountBookingsTotalPrice: number;\r\n lodging: TrackLodging;\r\n location: TrackLocation;\r\n customer: TrackCustomer;\r\n itemLines: TrackItemLine[];\r\n}\r\n\r\nexport function trackBooking(\r\n booking: TrackBooking,\r\n options?: TrackingOptions\r\n) {\r\n if (isBrowser()) {\r\n const BwpBooking = \"bwp:booking\";\r\n \r\n if (options?.onlyOnce && hasFired.indexOf(BwpBooking) > -1) {\r\n return;\r\n }\r\n \r\n const event = new CustomEvent(BwpBooking, {\r\n detail: {\r\n booking\r\n }\r\n } as TrackBookingArgs);\r\n \r\n if (hasFired.indexOf(BwpBooking) === -1) {\r\n hasFired.push(BwpBooking);\r\n }\r\n \r\n window.dispatchEvent(event);\r\n }\r\n}\r\n\r\nexport interface TrackBookingArgs {\r\n detail: {\r\n booking: TrackBooking\r\n }\r\n}\r\n\r\nexport interface TrackLodgingListItem {\r\n lodging: TrackLodging;\r\n value: TrackValue;\r\n}\r\n\r\nexport interface TrackingOptions {\r\n onlyOnce?: boolean;\r\n}\r\n\r\n/***\r\n * Imports the required tracking utility from window.\r\n * If it is available it is returned right away.\r\n * If not and CookieBot is available it will listen to the CookieBot \"CookiebotOnTagsExecuted\" event and look again\r\n * The promise will only resolve if the service is unavailable if not it will just never return.\r\n * @param name\r\n */\r\nexport function trackingRequire(name: \"ga\" | \"raptor\" | \"gtag\"): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let service = window[name];\r\n\r\n console.debug(\"trackingRequire\", name, service != null);\r\n\r\n if (service) {\r\n resolve(service);\r\n return;\r\n }\r\n\r\n let CookieBot = window[\"Cookiebot\"];\r\n\r\n if (CookieBot) {\r\n let handler = () => {\r\n window.removeEventListener(\"CookiebotOnTagsExecuted\", handler);\r\n setTimeout(() => {\r\n service = window[name];\r\n console.debug(\r\n \"trackingRequire\",\r\n \"CookiebotOnTagsExecuted\",\r\n name,\r\n service != null\r\n );\r\n if (service) {\r\n resolve(service);\r\n }\r\n }, 1000);\r\n };\r\n console.debug(\"trackingRequire\", \"Listen CookiebotOnTagsExecuted\", name);\r\n window.addEventListener(\"CookiebotOnTagsExecuted\", handler);\r\n }\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n}\r\n","import React, { ComponentProps, useEffect, useMemo } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { SearchResultListTranslations } from \"./translations/SearchResultListTranslations\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\nimport useQueryString from \"./shared/useQueryString\";\r\nimport { SearchResultsPageQuery } from \"./operations.generated\";\r\nimport SearchResultListHeader from \"./SearchResultListHeader\";\r\nimport LodgingCard2 from \"./LodgingCard2\";\r\n\r\nimport useFavorites from \"./shared/useFavorites\";\r\nimport {CleaningBannerType, DiscountBannerType, SearchResultListStyle} from \"./shared/types\";\r\nimport SearchResultMap from \"./SearchResultMap\";\r\nimport { isSameDay, parseISO } from \"date-fns\";\r\n\r\nimport \"./LodgingList.scss\";\r\nimport \"./SearchResultList.scss\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\nimport {WidgetSearchResult} from \"./widgets/types\";\r\nimport {isBrowser} from \"./shared/helpers\";\r\nimport {TrackLodgingListItem, trackViewList} from \"./shared/tracking\";\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"translations\": \"SearchResultList\",\r\n \"favouritesTranslations\": \"Favourites\",\r\n \"lodgingCardTranslations\": \"LodgingCard\"\r\n };\r\n}\r\n\r\nexport default function SearchResultList({\r\n translations,\r\n favouritesTranslations,\r\n lodgingCardTranslations,\r\n search: { results, numberOfResults },\r\n headerElement,\r\n lodgingUrlBuilder,\r\n extraFacilities,\r\n sorting,\r\n setSorting,\r\n googleMapsApiKey,\r\n mapHeight,\r\n markerIconUrl,\r\n maxMapZoomLevel,\r\n emptyResultHtmlContent,\r\n showStars,\r\n starsExtraIcon,\r\n arrivalDate,\r\n headlessMode,\r\n headlessDataFormat,\r\n showProbabilityWithPriceAsBookingOption,\r\n showPriceWithoutMandatoryItems,\r\n showDepositSeparately,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: {\r\n translations: SearchResultListTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n headerElement: HTMLElement;\r\n lodgingUrlBuilder: (result: SearchResultsPageQuery[\"search\"][\"results\"][0]) => string;\r\n extraFacilities: number[];\r\n sorting: string;\r\n setSorting: (sorting: string) => void;\r\n googleMapsApiKey: string;\r\n mapHeight: number;\r\n markerIconUrl: string;\r\n maxMapZoomLevel: number;\r\n emptyResultHtmlContent?: string;\r\n showStars?: boolean,\r\n starsExtraIcon?: string;\r\n arrivalDate: Date;\r\n headlessMode?: boolean;\r\n headlessDataFormat?: \"full\" | \"standard\" | \"simple\";\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n showDepositSeparately?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n} & SearchResultsPageQuery) {\r\n let [favorites, setFavorite] = useFavorites();\r\n let [listStyle, setListStyle] = useQueryString(\"listStyle\", \"Grid\");\r\n\r\n useEffect(() => {\r\n // Legacy event - to be removed\r\n window.dispatchEvent(\r\n new CustomEvent(\"numberOfSearchResultsUpdated\", {\r\n detail: results.length\r\n })\r\n );\r\n \r\n window.dispatchEvent(\r\n new CustomEvent(\"BookingStudio:numberOfSearchResultsUpdated\", {\r\n detail: results.length\r\n })\r\n );\r\n \r\n if (headlessMode) {\r\n const eventResults = results.map(result => toWidgetSearchResult(result, lodgingUrlBuilder(result), (headlessDataFormat ?? \"simple\")));\r\n window.dispatchEvent(\r\n new CustomEvent(\"BookingStudio:searchResultsUpdated\", {\r\n detail: eventResults\r\n })\r\n );\r\n\r\n }\r\n }, [results]);\r\n \r\n useEffect(() => {\r\n if (isBrowser()) {\r\n const items = results.map(r => {\r\n return {\r\n lodging: {\r\n id: r.lodging.id,\r\n name: r.lodging.name,\r\n location: {\r\n id: r.lodging.location.id,\r\n name: r.lodging.location.name\r\n }\r\n },\r\n value: r.selectedBookingOption \r\n ? {\r\n amount: r.selectedBookingOption.priceWithMandatoryItems,\r\n currency: r.selectedBookingOption.currency\r\n }\r\n : null\r\n } as TrackLodgingListItem;\r\n });\r\n trackViewList(items, { onlyOnce: false });\r\n }\r\n }, [results]);\r\n \r\n if (headlessMode) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {headerElement &&\r\n ReactDOM.createPortal(\r\n setListStyle(val)}\r\n />,\r\n headerElement\r\n )}\r\n {results.length == 0 && (\r\n
    \r\n )}\r\n {results.length != 0 && listStyle == \"Grid\" && (\r\n \r\n )}\r\n {results.length != 0 && listStyle == \"Map\" && (\r\n ({\r\n id: r.lodging.id,\r\n longitude: r.lodging.longitude,\r\n latitude: r.lodging.latitude,\r\n }))}\r\n mapHeight={mapHeight}\r\n markerIconUrl={markerIconUrl}\r\n maxMapZoomLevel={maxMapZoomLevel}\r\n renderInfoWindow={(lodging) => {\r\n let result = results.find((r) => r.lodging.id == lodging.id);\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\ninterface SearchResultListGridProps {\r\n results: SearchResultsPageQuery[\"search\"][\"results\"];\r\n translations: ComponentProps[\"translations\"];\r\n lodgingCardTranslations: ComponentProps[\"lodgingCardTranslations\"];\r\n favouritesTranslations: FavouritesTranslations;\r\n extraFacilities: ComponentProps[\"extraFacilities\"];\r\n lodgingUrlBuilder: ComponentProps[\"lodgingUrlBuilder\"];\r\n arrivalDate: ComponentProps[\"arrivalDate\"];\r\n favorites: number[];\r\n setFavorite: (id: number) => void;\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nfunction SearchResultListGrid({\r\n results,\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n extraFacilities,\r\n favorites,\r\n lodgingUrlBuilder,\r\n setFavorite,\r\n arrivalDate,\r\n translations,\r\n showStars,\r\n starsExtraIcon,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: SearchResultListGridProps) {\r\n const resultsOnArrivalDate = useMemo(\r\n () =>\r\n results?.filter((r) =>\r\n isSameDay(parseISO(r.selectedBookingOption.arrival), arrivalDate)\r\n ),\r\n [results, arrivalDate]\r\n );\r\n \r\n const resultsOnOtherDaysSorted = useMemo(\r\n () =>\r\n results\r\n ?.filter((r) => !isSameDay(parseISO(r.selectedBookingOption.arrival), arrivalDate))\r\n .sort(\r\n (a, b) =>\r\n parseISO(a.selectedBookingOption.arrival).getTime() -\r\n parseISO(b.selectedBookingOption.arrival).getTime()\r\n ),\r\n [results, arrivalDate]\r\n );\r\n\r\n function renderLodging(result: typeof results[0]) {\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {resultsOnArrivalDate.map((d) => renderLodging(d))}\r\n
    \r\n {resultsOnArrivalDate.length == 0 && (\r\n

    \r\n {translations.noArrivalsOnDateShowsOtherDates}\r\n

    \r\n )}\r\n\r\n {resultsOnArrivalDate.length > 0 &&

    {translations.resultsOnOtherArrivalDates}

    }\r\n
    \r\n {resultsOnOtherDaysSorted.map((d) => renderLodging(d))}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction toWidgetSearchResult(result: any, url: string, mode: \"full\" | \"standard\" | \"simple\") : WidgetSearchResult {\r\n return {\r\n lodging: (mode === \"full\" || mode === \"standard\")\r\n ? {\r\n id: result.lodging.id,\r\n name: result.lodging.name,\r\n nameSlug: result.lodging.nameSlug,\r\n longitude: mode === \"full\" ? result.lodging.longitude : 0,\r\n latitude: mode === \"full\" ? result.lodging.latitude : 0,\r\n address1: mode === \"full\" ? result.lodging.address1 : \"\",\r\n address1slug: mode === \"full\" ? result.lodging.address1slug : \"\",\r\n location: {\r\n name: result.lodging.location?.name,\r\n slug: result.lodging.location?.slug\r\n },\r\n maxPeople: result.lodging.maxPeople,\r\n petsAllowed: result.lodging.petsAllowed,\r\n images: result.lodging.images?.map(img => { return { url: img.url }}),\r\n facilityValues: result.lodging.facilityValues.map(fv => {\r\n return {\r\n facilityId: fv.facilityId,\r\n facility: {\r\n name: fv.facility.name\r\n },\r\n value: fv.value,\r\n displayValueAndName: fv.displayValueAndName,\r\n displayValue: fv.displayValue\r\n };\r\n }),\r\n description: {\r\n title: result.lodging.activeDescription.title,\r\n summary: result.lodging.activeDescription.summary\r\n },\r\n stars: result.lodging.stars,\r\n starsPostText: result.lodging.starsPostText\r\n }\r\n : {\r\n id: result.lodging.id,\r\n name: result.lodging.name\r\n },\r\n selectedBookingOption: {\r\n arrival: result.selectedBookingOption.arrival,\r\n arrivalDisplayValue: result.selectedBookingOption.arrivalDisplayValue,\r\n arrivalWeekDayName: result.selectedBookingOption.arrivalWeekDayName,\r\n duration: result.selectedBookingOption.duration,\r\n departureDisplayValue: result.selectedBookingOption.departureDisplayValue,\r\n adults: result.selectedBookingOption.adults,\r\n children: result.selectedBookingOption.children,\r\n infants: result.selectedBookingOption.infants,\r\n pets: result.selectedBookingOption.pets,\r\n priceWithMandatoryItemsDisplayValue: result.selectedBookingOption.priceWithMandatoryItemsDisplayValue,\r\n status: result.selectedBookingOption.status,\r\n normalPriceWithMandatoryItems: result.selectedBookingOption.normalPriceWithMandatoryItems,\r\n cleaningIncludedInPriceWithMandatoryItems: result.selectedBookingOption.cleaningIncludedInPriceWithMandatoryItems,\r\n hasDiscount: result.selectedBookingOption.hasDiscount,\r\n discountName: result.selectedBookingOption.discountName\r\n },\r\n url: url\r\n } as WidgetSearchResult;\r\n}","import React, { useMemo } from \"react\";\r\nimport { LodgingCardTranslations } from \"@bwp/translations/LodgingCardTranslations\";\r\nimport useGlobalSearchContext from \"@bwp/shared/useGlobalSearchContext\";\r\nimport { getSearchSorting } from \"@bwp/shared/helpers\";\r\nimport { formatISO, parseISO } from \"date-fns\";\r\nimport useQueryString from \"@bwp/shared/useQueryString\";\r\nimport { SearchResultListTranslations } from \"@bwp/translations/SearchResultListTranslations\";\r\nimport { useSearchResultsPageQuery } from \"@bwp/operations.generated\";\r\nimport SearchResultListSkeleton from \"@bwp/SearchResultListSkeleton\";\r\nimport SearchResultList from \"@bwp/SearchResultList\";\r\nimport { lodgingUrl } from \"@bwp/shared/lodgingurl\";\r\nimport { FavouritesTranslations } from \"@bwp/translations/FavouritesTranslations\";\r\nimport {getSearchContextPropsFromBookingOption, SearchContext} from \"@bwp/shared/searchcontext\";\r\nimport {CleaningBannerType, DiscountBannerType} from \"@bwp/shared/types\";\r\n\r\nexport interface SearchResultListWrapperProps {\r\n translations: SearchResultListTranslations;\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n markerIconUrl: string;\r\n mapHeight: number;\r\n googleMapsApiKey: string;\r\n maxMapZoomLevel: number;\r\n emptyResultHtmlContent: string;\r\n defaultOrderBy?: string;\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n extraFacilities?: number[];\r\n headlessMode?: boolean;\r\n headlessDataFormat?: \"full\" | \"standard\" | \"simple\";\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n showDepositSeparately?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nexport default function SearchResultListWrapper({\r\n translations,\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lodgingUrlPattern,\r\n includeLodgingIdInUrl,\r\n markerIconUrl,\r\n mapHeight,\r\n googleMapsApiKey,\r\n maxMapZoomLevel,\r\n emptyResultHtmlContent,\r\n defaultOrderBy,\r\n showStars,\r\n starsExtraIcon,\r\n extraFacilities,\r\n headlessMode,\r\n headlessDataFormat,\r\n showProbabilityWithPriceAsBookingOption,\r\n showPriceWithoutMandatoryItems,\r\n showDepositSeparately,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: SearchResultListWrapperProps) {\r\n const [headerElement] = React.useState(document.getElementById(\"bwp-search-result-header\"));\r\n const [sorting, setSorting] = useQueryString(\"ord\", null);\r\n const [searchContext] = useGlobalSearchContext({});\r\n\r\n const query = useSearchResultsPageQuery({\r\n variables: {\r\n query: searchContext.changeArrivalDensity(3).toServerQuery(),\r\n onlyMasterFacilities: [],\r\n onlyFacilities: extraFacilities,\r\n displayDate: formatISO(searchContext.arrival, {representation: \"date\"}),\r\n sorting: (sorting as any) ?? getSearchSorting(defaultOrderBy),\r\n },\r\n });\r\n\r\n const queryString = useMemo(() => {\r\n return searchContext.toQueryString([\r\n \"context:lodging-location\",\r\n \"context:lodging-address1\",\r\n \"context:lodging-name\"\r\n ]);\r\n }, [searchContext]);\r\n\r\n if (query.error) {\r\n return
    {query.error}
    ;\r\n }\r\n\r\n if (query.loading) {\r\n return ;\r\n }\r\n \r\n const ignoredParams = includeLodgingIdInUrl\r\n ? []\r\n : [\"lodgingId\"];\r\n\r\n return (\r\n <>\r\n {\r\n const baseUrl = lodgingUrl(lodgingUrlPattern, result.lodging);\r\n const separator = baseUrl.indexOf('?') === -1 ? \"?\" : \"&\";\r\n const boProps = getSearchContextPropsFromBookingOption({\r\n lodgingId: result.lodging.id,\r\n arrival: parseISO(result.selectedBookingOption.arrival),\r\n duration: result.selectedBookingOption.duration,\r\n adults: result.selectedBookingOption.adults,\r\n children: result.selectedBookingOption.children,\r\n infants: result.selectedBookingOption.infants,\r\n pets: result.selectedBookingOption.pets\r\n });\r\n const qs = SearchContext.createFromSearchContextProps(boProps).toQueryString(ignoredParams);\r\n return `${baseUrl}${separator}${qs}`;\r\n }}\r\n extraFacilities={extraFacilities}\r\n sorting={sorting}\r\n setSorting={setSorting}\r\n markerIconUrl={markerIconUrl}\r\n mapHeight={mapHeight}\r\n googleMapsApiKey={googleMapsApiKey}\r\n maxMapZoomLevel={maxMapZoomLevel}\r\n emptyResultHtmlContent={emptyResultHtmlContent}\r\n showStars={showStars}\r\n starsExtraIcon={starsExtraIcon}\r\n arrivalDate={searchContext.arrival}\r\n headlessMode={headlessMode}\r\n headlessDataFormat={headlessDataFormat}\r\n showProbabilityWithPriceAsBookingOption={showProbabilityWithPriceAsBookingOption}\r\n showDepositSeparately={showDepositSeparately}\r\n showPriceWithoutMandatoryItems={showPriceWithoutMandatoryItems}\r\n discountBanner={discountBanner}\r\n cleaningBanner={cleaningBanner}\r\n hideLodgingAddress={hideLodgingAddress}\r\n showItems={showItems}\r\n itemsToShow={itemsToShow}\r\n maxItemsToShow={maxItemsToShow}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\nimport { LodgingListQuery } from \"./operations.generated\";\r\nimport LodgingCard2 from \"./LodgingCard2\";\r\nimport \"./LodgingList.scss\";\r\nimport useFavorites from \"./shared/useFavorites\";\r\nimport ReactDOM from \"react-dom\";\r\nimport SearchResultListHeader from \"./SearchResultListHeader\";\r\nimport {CleaningBannerType, DiscountBannerType, SearchResultListStyle} from \"./shared/types\";\r\nimport { SearchResultListTranslations } from \"./translations/SearchResultListTranslations\";\r\nimport useQueryString from \"./shared/useQueryString\";\r\nimport SearchResultMap from \"./SearchResultMap\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\nimport {isBrowser} from \"./shared/helpers\";\r\nimport {TrackLodgingListItem, trackViewList} from \"./shared/tracking\";\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"lodgingCardTranslations\": \"LodgingCard\",\r\n \"favouritesTranslations\": \"Favourites\",\r\n \"searchResultListTranslations\": \"SearchResultList\"\r\n };\r\n}\r\n\r\nexport default function LodgingList({\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lodgingList: { results },\r\n lodgingUrlBuilder,\r\n extraFacilities,\r\n onlyShowFavorites,\r\n emptyResultHtmlContent,\r\n searchResultListTranslations,\r\n sorting,\r\n setSorting,\r\n headerElement,\r\n googleMapsApiKey,\r\n mapHeight,\r\n markerIconUrl,\r\n maxMapZoomLevel,\r\n showStars,\r\n starsExtraIcon,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n cleaningIncludedFacilityId,\r\n showProbabilityWithPriceAsBookingOption\r\n}: {\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n searchResultListTranslations: SearchResultListTranslations;\r\n lodgingUrlBuilder: (l: LodgingListQuery[\"lodgingList\"][\"results\"][0][\"lodging\"]) => string;\r\n extraFacilities: number[];\r\n onlyShowFavorites?: boolean;\r\n emptyResultHtmlContent?: string;\r\n sorting: string;\r\n setSorting: (sorting: string) => void;\r\n headerElement: HTMLElement;\r\n googleMapsApiKey: string;\r\n mapHeight: number;\r\n markerIconUrl: string;\r\n maxMapZoomLevel: number;\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n cleaningIncludedFacilityId?: number;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n} & LodgingListQuery) {\r\n let [favorites, setFavorite] = useFavorites();\r\n let [listStyle, setListStyle] = useQueryString(\"listStyle\", \"Grid\");\r\n\r\n let filteredResults = useMemo(() => {\r\n if (onlyShowFavorites) {\r\n return results.filter((r) => favorites.includes(r.lodging.id));\r\n } else {\r\n return results;\r\n }\r\n }, [favorites, onlyShowFavorites, results]);\r\n\r\n useEffect(() => {\r\n window.dispatchEvent(\r\n new CustomEvent(\"numberOfSearchResultsUpdated\", {\r\n detail: filteredResults.length,\r\n })\r\n );\r\n }, [filteredResults.length]);\r\n \r\n useEffect(() => {\r\n if (isBrowser()) {\r\n const items = filteredResults.map(r => {\r\n return {\r\n lodging: {\r\n id: r.lodging.id,\r\n name: r.lodging.name,\r\n location: {\r\n id: r.lodging.location.id,\r\n name: r.lodging.location.name\r\n }\r\n },\r\n value: r.seasonPrices?.length\r\n ? {\r\n amount: Math.min.apply(null, (r.seasonPrices.filter(sp => sp.price).map(sp => Math.round(sp.price * 7)))),\r\n currency: r.seasonPrices[0].currency\r\n }\r\n : null\r\n } as TrackLodgingListItem;\r\n });\r\n \r\n trackViewList(items, { onlyOnce: false });\r\n }\r\n }, [filteredResults]);\r\n\r\n if (filteredResults.length == 0) {\r\n return
    ;\r\n }\r\n\r\n const withCleaning = (fv: LodgingListQuery[\"lodgingList\"][\"results\"][0][\"lodging\"][\"facilityValues\"][0]) => {\r\n \r\n if (!cleaningIncludedFacilityId) {\r\n return false;\r\n }\r\n\r\n if (fv.facilityId === cleaningIncludedFacilityId) { \r\n return fv.value === \"True\";\r\n }\r\n return false;\r\n }\r\n \r\n const filteredExtraFacilities = extraFacilities\r\n ? extraFacilities.filter(id => cleaningIncludedFacilityId != id)\r\n : [];\r\n \r\n return (\r\n <>\r\n {headerElement &&\r\n ReactDOM.createPortal(\r\n setListStyle(val)}\r\n />,\r\n headerElement\r\n )}\r\n {listStyle == \"Grid\" && (\r\n
    \r\n {filteredResults.map((d) => (\r\n \r\n ))}\r\n
    \r\n )}\r\n {listStyle == \"Map\" && (\r\n ({\r\n id: r.lodging.id,\r\n latitude: r.lodging.latitude,\r\n longitude: r.lodging.longitude,\r\n }))}\r\n mapHeight={mapHeight}\r\n markerIconUrl={markerIconUrl}\r\n maxMapZoomLevel={maxMapZoomLevel}\r\n renderInfoWindow={(l) => {\r\n let d = results.find((r) => r.lodging.id == l.id);\r\n\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { LodgingCardTranslations } from \"@bwp/translations/LodgingCardTranslations\";\r\nimport useGlobalSearchContext from \"@bwp/shared/useGlobalSearchContext\";\r\nimport { getSearchSorting } from \"@bwp/shared/helpers\";\r\nimport { formatISO } from \"date-fns\";\r\nimport useQueryString from \"@bwp/shared/useQueryString\";\r\nimport { useLodgingListQuery } from \"@bwp/operations.generated\";\r\nimport { lodgingUrl } from \"@bwp/shared/lodgingurl\";\r\nimport LodgingList from \"@bwp/LodgingList\";\r\nimport {CleaningBannerType, DiscountBannerType, LodgingListSetting} from \"@bwp/shared/types\";\r\nimport SearchResultListSkeleton from \"@bwp/SearchResultListSkeleton\";\r\nimport { SearchResultListTranslations } from \"@bwp/translations/SearchResultListTranslations\";\r\nimport { FavouritesTranslations } from \"@bwp/translations/FavouritesTranslations\";\r\nimport {SearchContext, SearchContextProps} from \"@bwp/shared/searchcontext\";\r\n\r\nexport interface LodgingListWrapperProps {\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n searchResultListTranslations: SearchResultListTranslations;\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n year: number;\r\n lodgingListSetting: LodgingListSetting;\r\n onlyShowFavorites: boolean;\r\n emptyResultHtmlContent: string;\r\n markerIconUrl: string;\r\n mapHeight: number;\r\n googleMapsApiKey: string;\r\n maxMapZoomLevel: number;\r\n showStars?: boolean;\r\n starsExtraIcon?: string;\r\n extraFacilities?: number[];\r\n defaultOrderBy?: string;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n cleaningIncludedFacilityId?: number;\r\n presets?: SearchContextProps;\r\n defaultValues?: SearchContextProps;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n}\r\n\r\nexport default function LodgingListWrapper({\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lodgingUrlPattern,\r\n includeLodgingIdInUrl,\r\n lodgingListSetting,\r\n year,\r\n onlyShowFavorites,\r\n emptyResultHtmlContent,\r\n searchResultListTranslations,\r\n markerIconUrl,\r\n mapHeight,\r\n googleMapsApiKey,\r\n maxMapZoomLevel,\r\n showStars,\r\n starsExtraIcon,\r\n extraFacilities,\r\n defaultOrderBy,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n cleaningIncludedFacilityId,\r\n presets,\r\n defaultValues,\r\n showProbabilityWithPriceAsBookingOption\r\n}: LodgingListWrapperProps) {\r\n const [headerElement] = React.useState(document.getElementById(\"bwp-search-result-header\"));\r\n const [sorting, setSorting] = useQueryString(\"ord\", null);\r\n\r\n const [searchContext] = useGlobalSearchContext({ presets, defaultValues, lodgingListSetting });\r\n const query = useLodgingListQuery({\r\n variables: {\r\n query: searchContext.toServerQuery(),\r\n onlyMasterFacilities: [],\r\n onlyFacilities: extraFacilities,\r\n displayDate: formatISO(new Date(), { representation: \"date\" }),\r\n sorting: (sorting as any) ?? getSearchSorting(defaultOrderBy),\r\n year\r\n },\r\n });\r\n\r\n const [numberOfSkeletons, setNumberOfSeletons] = useState(6);\r\n\r\n useEffect(() => {\r\n if (query.data != null) {\r\n setNumberOfSeletons(query.data.lodgingList.results.length);\r\n }\r\n }, [query.data]);\r\n\r\n if (query.error) {\r\n return (\r\n
    \r\n
    Error message: {query.error.message}
    \r\n
    Error stack:
    {query.error.stack}
    \r\n
    \r\n );\r\n }\r\n\r\n if (query.loading) {\r\n return ;\r\n }\r\n \r\n const alwaysIgnored = [\r\n \"context:lodging-location\",\r\n \"context:lodging-address1\",\r\n \"context:lodging-name\"\r\n ];\r\n \r\n const ignoreParams = includeLodgingIdInUrl \r\n ? alwaysIgnored\r\n : alwaysIgnored.concat([\"lodgingId\"]);\r\n\r\n return (\r\n <>\r\n {\r\n const baseUrl = lodgingUrl(lodgingUrlPattern, l);\r\n const sc = new SearchContext();\r\n const qs = sc.changeLodging(l.id).toQueryString(ignoreParams);\r\n let separator = baseUrl.indexOf('?') === -1 ? \"?\" : \"&\";\r\n if (qs === \"\") {\r\n separator = \"\";\r\n }\r\n return `${baseUrl}${separator}${qs}`;\r\n }}\r\n extraFacilities={extraFacilities}\r\n onlyShowFavorites={onlyShowFavorites}\r\n emptyResultHtmlContent={emptyResultHtmlContent}\r\n searchResultListTranslations={searchResultListTranslations}\r\n headerElement={headerElement}\r\n markerIconUrl={markerIconUrl}\r\n mapHeight={mapHeight}\r\n maxMapZoomLevel={maxMapZoomLevel}\r\n googleMapsApiKey={googleMapsApiKey}\r\n sorting={sorting}\r\n setSorting={setSorting}\r\n showStars={showStars}\r\n starsExtraIcon={starsExtraIcon}\r\n discountBanner={discountBanner}\r\n cleaningBanner={cleaningBanner}\r\n hideLodgingAddress={hideLodgingAddress}\r\n cleaningIncludedFacilityId={cleaningIncludedFacilityId}\r\n showProbabilityWithPriceAsBookingOption={showProbabilityWithPriceAsBookingOption}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\nimport { LastMinuteQuery } from \"./operations.generated\";\r\nimport LodgingCard2 from \"./LodgingCard2\";\r\nimport \"./LodgingList.scss\";\r\nimport useFavorites from \"./shared/useFavorites\";\r\nimport { parseISO } from \"date-fns\";\r\nimport { SearchResultListTranslations } from \"./translations/SearchResultListTranslations\";\r\nimport { processTemplate } from \"./shared/templates\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\nimport {isBrowser} from \"./shared/helpers\";\r\nimport {TrackLodgingListItem, trackViewList} from \"./shared/tracking\";\r\nimport {CleaningBannerType, DiscountBannerType} from \"./shared/types\";\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"translations\": \"SearchResultList\",\r\n \"lodgingCardTranslations\": \"LodgingCard\",\r\n \"favouritesTranslations\": \"Favourites\"\r\n };\r\n}\r\n\r\nexport default function DiscountLodgingList({\r\n translations,\r\n favouritesTranslations,\r\n lodgingCardTranslations,\r\n lastMinute: { results },\r\n lodgingUrlBuilder,\r\n extraFacilities,\r\n emptyResultHtmlContent,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: {\r\n translations: SearchResultListTranslations;\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingUrlBuilder: (l: LastMinuteQuery[\"lastMinute\"][\"results\"][0]) => string;\r\n extraFacilities: number[];\r\n onlyShowFavorites?: boolean;\r\n emptyResultHtmlContent?: string;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n} & LastMinuteQuery) {\r\n let [favorites, setFavorite] = useFavorites();\r\n\r\n let groupedResults = useMemo(() => {\r\n // First we group all the results into groups of \"ticks\" to be able to sort the dates and group them\r\n let byArrivalDate = results\r\n .filter((r) => r.selectedBookingOption != null)\r\n .reduce((list, cur) => {\r\n let ticks = parseISO(cur.selectedBookingOption.arrival).getTime();\r\n list = { ...list, [ticks]: [...(list[ticks] ?? []), cur] };\r\n return list;\r\n }, {} as { [key: string]: typeof results[0][] });\r\n\r\n // We take all the dates (represented by their ticks)\r\n // 1. We map the keys to integers - as objects' keys is string\r\n // 2. We sort the keys\r\n // 3. We map the items in the group out to a group where we give the group a title\r\n return Object.keys(byArrivalDate)\r\n .map((k) => parseInt(k))\r\n .sort((a, b) => (a > b ? 1 : -1))\r\n .map((key) => {\r\n return {\r\n key,\r\n title:\r\n byArrivalDate[key.toString()][0].selectedBookingOption.arrivalDisplayValue,\r\n items: byArrivalDate[key.toString()],\r\n };\r\n });\r\n }, [results]);\r\n\r\n useEffect(() => {\r\n window.dispatchEvent(\r\n new CustomEvent(\"numberOfSearchResultsUpdated\", {\r\n detail: results.filter((r) => r.selectedBookingOption != null).length,\r\n })\r\n );\r\n }, [results]);\r\n\r\n useEffect(() => {\r\n if (isBrowser()) {\r\n const items = results.map(r => {\r\n return {\r\n lodging: {\r\n id: r.lodging.id,\r\n name: r.lodging.name,\r\n location: {\r\n id: r.lodging.location.id,\r\n name: r.lodging.location.name\r\n }\r\n },\r\n value: r.selectedBookingOption\r\n ? {\r\n amount: r.selectedBookingOption.priceWithMandatoryItems,\r\n currency: r.selectedBookingOption.currency\r\n }\r\n : null\r\n } as TrackLodgingListItem;\r\n });\r\n\r\n trackViewList(items, { onlyOnce: false });\r\n }\r\n }, [results]);\r\n\r\n if (groupedResults.length == 0) {\r\n return
    ;\r\n }\r\n return (\r\n
    \r\n {groupedResults.map((g) => (\r\n
    \r\n

    {processTemplate(translations.discountsWithArrival, { date: g.title })}

    \r\n
    \r\n {g.items.map((d) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { LodgingCardTranslations } from \"@bwp/translations/LodgingCardTranslations\";\r\nimport useGlobalSearchContext from \"@bwp/shared/useGlobalSearchContext\";\r\nimport {formatISO, parseISO} from \"date-fns\";\r\nimport useQueryString from \"@bwp/shared/useQueryString\";\r\nimport { useLastMinuteQuery } from \"@bwp/operations.generated\";\r\nimport { lodgingUrl } from \"@bwp/shared/lodgingurl\";\r\nimport {CleaningBannerType, DiscountBannerType, LodgingListSetting} from \"@bwp/shared/types\";\r\nimport SearchResultListSkeleton from \"@bwp/SearchResultListSkeleton\";\r\nimport DiscountLodgingList from \"@bwp/DiscountLodgingList\";\r\nimport { SearchResultListTranslations } from \"@bwp/translations/SearchResultListTranslations\";\r\nimport { FavouritesTranslations } from \"@bwp/translations/FavouritesTranslations\";\r\nimport {getSearchContextPropsFromBookingOption, SearchContext} from \"@bwp/shared/searchcontext\";\r\n\r\nexport interface DiscountLodgingListWrapperProps {\r\n translations: SearchResultListTranslations;\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n daysAhead: number;\r\n lodgingListSetting: LodgingListSetting;\r\n tagFilter: string;\r\n emptyResultHtmlContent: string;\r\n extraFacilities?: number[];\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nexport default function DiscountLodgingListWrapper({\r\n translations,\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lodgingUrlPattern,\r\n includeLodgingIdInUrl,\r\n lodgingListSetting,\r\n daysAhead,\r\n tagFilter,\r\n emptyResultHtmlContent,\r\n extraFacilities,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: DiscountLodgingListWrapperProps) {\r\n const [sorting] = useQueryString(\"ord\", null);\r\n\r\n const [searchContext] = useGlobalSearchContext({ defaultValues: {}, lodgingListSetting });\r\n const query = useLastMinuteQuery({\r\n variables: {\r\n query: searchContext.toServerQuery(),\r\n onlyMasterFacilities: [],\r\n onlyFacilities: extraFacilities,\r\n displayDate: formatISO(new Date(), { representation: \"date\" }),\r\n sorting: sorting as any,\r\n daysAhead,\r\n tagFilter,\r\n },\r\n });\r\n\r\n const [numberOfSkeletons, setNumberOfSeletons] = useState(6);\r\n\r\n useEffect(() => {\r\n if (query.data) {\r\n setNumberOfSeletons(query.data.lastMinute.results.length);\r\n }\r\n }, [query.data]);\r\n\r\n if (query.error) {\r\n return
    {query.error}
    ;\r\n }\r\n\r\n if (query.loading) {\r\n return ;\r\n }\r\n\r\n const ignoredParams = includeLodgingIdInUrl\r\n ? []\r\n : [\"lodgingId\"];\r\n \r\n return (\r\n <>\r\n {\r\n const baseUrl = lodgingUrl(lodgingUrlPattern, result.lodging);\r\n const separator = baseUrl.indexOf('?') === -1 ? \"?\" : \"&\";\r\n const boProps = getSearchContextPropsFromBookingOption({\r\n lodgingId: result.lodging.id,\r\n arrival: parseISO(result.selectedBookingOption.arrival),\r\n duration: result.selectedBookingOption.duration,\r\n adults: result.selectedBookingOption.adults,\r\n children: result.selectedBookingOption.children,\r\n infants: result.selectedBookingOption.infants,\r\n pets: result.selectedBookingOption.pets\r\n });\r\n const qs = SearchContext.createFromSearchContextProps(boProps).toQueryString(ignoredParams);\r\n return `${baseUrl}${separator}${qs}`;\r\n }}\r\n extraFacilities={extraFacilities}\r\n emptyResultHtmlContent={emptyResultHtmlContent}\r\n showProbabilityWithPriceAsBookingOption={showProbabilityWithPriceAsBookingOption}\r\n showDepositSeparately={showDepositSeparately}\r\n showPriceWithoutMandatoryItems={showPriceWithoutMandatoryItems}\r\n discountBanner={discountBanner}\r\n cleaningBanner={cleaningBanner}\r\n hideLodgingAddress={hideLodgingAddress}\r\n showItems={showItems}\r\n itemsToShow={itemsToShow}\r\n maxItemsToShow={maxItemsToShow}\r\n />\r\n \r\n );\r\n}\r\n","import React, { ReactNode } from \"react\";\r\n\r\nimport \"./Overlay.scss\";\r\n\r\nexport default function Overlay({ children }: { children?: ReactNode }) {\r\n return
    {children}
    ;\r\n}\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport \"./Modal.scss\";\r\nimport Overlay from \"./Overlay\";\r\nimport Button from \"./Button\";\r\nimport { useCallback } from \"react\";\r\n\r\nexport interface ModalTranslations {\r\n close: string;\r\n}\r\n\r\nexport interface ModalProps {\r\n title: React.ReactNode;\r\n className?: string;\r\n children: React.ReactNode;\r\n translations: ModalTranslations;\r\n}\r\n\r\ninterface ModalPrivateProps {\r\n onClose: () => void;\r\n}\r\n\r\nexport default function Modal({\r\n title,\r\n className,\r\n children,\r\n translations,\r\n onClose,\r\n}: ModalPrivateProps & ModalProps) {\r\n useEffect(() => {\r\n document.querySelector(\"body\").classList.add(\"bwp-noscroll\");\r\n return () => {\r\n document.querySelector(\"body\").classList.remove(\"bwp-noscroll\");\r\n };\r\n }, []);\r\n\r\n const Esc = 27;\r\n const escFunction = useCallback(\r\n (event) => {\r\n if (event.keyCode === Esc) {\r\n onClose();\r\n }\r\n },\r\n [onClose]\r\n );\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"keydown\", escFunction, false);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", escFunction, false);\r\n };\r\n }, [escFunction]);\r\n\r\n const handleOutsideClick = () => onClose();\r\n\r\n const handleInsideClick = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const classNames = [\"bwp-modal\"];\r\n if (className) {\r\n classNames.push(className);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {title}

    \r\n onClose()}\r\n aria-label={translations.close}\r\n >\r\n
    \r\n
    {children}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useCallback, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { isBrowser } from \"./helpers\";\r\nimport Modal, { ModalProps } from \"../Modal\";\r\n\r\nexport default function useModal() {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [portal, setPortal] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!portal && isBrowser()) {\r\n const element = document.createElement(\"div\");\r\n document.body.appendChild(element);\r\n setPortal(element);\r\n }\r\n \r\n return () => {\r\n if (portal && isBrowser()) {\r\n document.body.removeChild(portal);\r\n setPortal(null);\r\n }\r\n }\r\n }, [portal]);\r\n\r\n const handleShow = useCallback(() => {\r\n setIsOpen(true);\r\n }, []);\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false);\r\n }, []);\r\n\r\n const ModalWrapper = useCallback(\r\n (props: ModalProps) => {\r\n if (portal != null) {\r\n return createPortal((\r\n <>\r\n {isOpen && }\r\n \r\n ), portal);\r\n } else {\r\n return null;\r\n }\r\n },\r\n [handleClose, portal, isOpen]\r\n );\r\n\r\n return {\r\n Modal: ModalWrapper,\r\n showModal: handleShow,\r\n hideModal: handleClose,\r\n };\r\n}\r\n","import React, {useState} from \"react\";\r\n\r\nimport \"./BookingSummary.scss\";\r\nimport \"./global/shared.scss\";\r\nimport { pluralize, stringFormat } from \"./shared/helpers\";\r\nimport useModal from \"./shared/useModal\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport { SearchBoxTranslations} from \"./translations/SearchBoxTranslations\";\r\nimport { getImageUrl } from \"./shared/images\";\r\nimport {\r\n BookingSummaryLodgingFragment,\r\n BookingSummaryBookingOptionFragment,\r\n} from \"./operations.generated\";\r\nimport PeopleSelectWithLabel, {PeopleValue} from \"./PeopleSelectWithLabel\";\r\nimport {NumberSelectWithLabel} from \"./NumberSelectWithLabel\";\r\nimport Button from \"./Button\";\r\nimport {LodgingPageTranslations} from \"./translations/LodgingPageTranslations\";\r\n\r\nexport interface BookingSummaryProps {\r\n lodging: BookingSummaryLodgingFragment;\r\n bookingOption: BookingSummaryBookingOptionFragment;\r\n onPeopleChange: (value: PeopleValue) => void;\r\n translations: CheckoutTranslations;\r\n lodgingTranslations: LodgingPageTranslations;\r\n searchBoxTranslations: SearchBoxTranslations;\r\n showInfants?: boolean;\r\n maxPeople?: number;\r\n maxPets?: number;\r\n hideLodgingAddress?: boolean;\r\n}\r\n\r\ntype ModalValue = PeopleValue & { pets: number };\r\n\r\nexport default function BookingSummary({\r\n lodging,\r\n bookingOption,\r\n onPeopleChange,\r\n translations,\r\n lodgingTranslations,\r\n searchBoxTranslations,\r\n showInfants,\r\n maxPeople,\r\n maxPets,\r\n hideLodgingAddress\r\n}: BookingSummaryProps) {\r\n \r\n const [ modalValues, setModalValues ] = useState(null);\r\n \r\n const lodgingName = stringFormat(translations.lodgingPrefix, lodging.name);\r\n const lodgingStreetAndArea = hideLodgingAddress\r\n ? lodging.location.name\r\n : stringFormat(\r\n translations.streetAndArea,\r\n lodging.address1,\r\n lodging.location.name\r\n );\r\n \r\n const dateRange = stringFormat(\r\n translations.dateRange,\r\n bookingOption.arrivalDisplayValue,\r\n bookingOption.departureDisplayValue\r\n );\r\n const adults = pluralize(bookingOption.adults, searchBoxTranslations.adult);\r\n const children = pluralize(bookingOption.children, searchBoxTranslations.child);\r\n const infants = pluralize(bookingOption.infants, searchBoxTranslations.infant);\r\n const pets = pluralize(bookingOption.pets, translations.pet);\r\n const adultsAndChildren = stringFormat(translations.adultsAndChildren, adults, children);\r\n const allPeople = stringFormat(translations.allPeople, adults, children, infants);\r\n\r\n const width = 262;\r\n const height = 190;\r\n const imageUrl = lodging.primaryImage\r\n ? getImageUrl(\r\n lodging.primaryImage,\r\n width * window.devicePixelRatio,\r\n height * window.devicePixelRatio\r\n )\r\n : null;\r\n \r\n const { Modal, showModal, hideModal } = useModal();\r\n \r\n const handleClick = (e) => {\r\n e.preventDefault();\r\n showModal();\r\n };\r\n\r\n const modalValuesOrDefault = modalValues == null\r\n ? {\r\n adults: bookingOption.adults,\r\n children: bookingOption.children,\r\n infants: bookingOption.infants,\r\n pets: bookingOption.pets\r\n } as ModalValue\r\n : modalValues;\r\n \r\n const handlePeopleChange = (value: PeopleValue) => {\r\n setModalValues({\r\n adults: value.adults, \r\n children: value.children, \r\n infants: value.infants, \r\n pets: modalValuesOrDefault.pets \r\n });\r\n };\r\n \r\n const handlePets = (pets) => {\r\n setModalValues({\r\n adults: modalValuesOrDefault.adults,\r\n children: modalValuesOrDefault.children,\r\n infants: modalValuesOrDefault.infants,\r\n pets: pets\r\n }); \r\n };\r\n\r\n const tooManyPeopleSelected = () => {\r\n if (!modalValues) {\r\n return false;\r\n }\r\n if (!maxPeople) {\r\n return false;\r\n }\r\n const numberOfPeople = modalValues.adults + modalValues.children;\r\n return (maxPeople < numberOfPeople);\r\n };\r\n\r\n const handleClickConfirm = () => {\r\n if (modalValues) {\r\n if (!tooManyPeopleSelected()) {\r\n onPeopleChange({\r\n adults: modalValues.adults,\r\n children: modalValues.children,\r\n infants: modalValues.infants,\r\n pets: modalValues.pets\r\n });\r\n hideModal();\r\n setModalValues(null);\r\n }\r\n } else {\r\n hideModal();\r\n }\r\n };\r\n \r\n const handleClickCancel = () => {\r\n hideModal();\r\n setModalValues(null);\r\n };\r\n \r\n const maxPetsForLodging = typeof maxPets === \"number\"\r\n ? maxPets\r\n : 0; /* The default fallback is pets not allowed */\r\n \r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n

    {lodgingName}

    \r\n

    {lodgingStreetAndArea}

    \r\n

    {translations.yourStay}

    \r\n

    {dateRange}

    \r\n {showInfants ? (\r\n

    \r\n {allPeople}\r\n

    \r\n ) : (\r\n

    \r\n {adultsAndChildren}\r\n

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

    \r\n {pets}\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n {translations.changePeopleCancel}\r\n {translations.changePeopleConfirm}\r\n
    \r\n
    \r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport \"./ItemsSummary.scss\";\r\nimport { stringFormat } from \"./shared/helpers\";\r\nimport {\r\n ItemsSummaryCheckoutPresentationFragment,\r\n ItemsSummaryLodgingFragment,\r\n} from \"./operations.generated\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\n\r\nexport interface ItemSelectionProps {\r\n itemId: number;\r\n quantity: number;\r\n}\r\n\r\nexport interface ItemsSummaryProps {\r\n lodging: ItemsSummaryLodgingFragment;\r\n checkoutPresentation: ItemsSummaryCheckoutPresentationFragment;\r\n showBackToItems?: boolean;\r\n onChangeItemsClick?: () => void;\r\n openByDefault?: boolean;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function ItemsSummary({\r\n showBackToItems,\r\n openByDefault,\r\n onChangeItemsClick,\r\n lodging,\r\n checkoutPresentation,\r\n translations,\r\n}: ItemsSummaryProps) {\r\n const [isOpen, setIsOpen] = useState(openByDefault);\r\n\r\n const itemLabel = (itemName, quantity, maxQuantity) => {\r\n let label = \"\";\r\n if (maxQuantity > 1) {\r\n label += quantity.toString() + \" x \";\r\n }\r\n label += itemName;\r\n return label;\r\n };\r\n\r\n const handleOpenToggleClick = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n const handleBackClick = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n if (onChangeItemsClick) {\r\n onChangeItemsClick();\r\n }\r\n };\r\n\r\n const bookingLine = stringFormat(translations.bookingLine, lodging.name);\r\n\r\n const buttonIcon = isOpen ? (\r\n \r\n ) : (\r\n \r\n );\r\n\r\n const listClassNames = [\"bwp-items-summary__list\"];\r\n if (isOpen) {\r\n listClassNames.push(\"bwp-open\");\r\n }\r\n\r\n return (\r\n
    \r\n

    {translations.priceInformation}

    \r\n
    \r\n \r\n {checkoutPresentation.hasDiscount && (\r\n \r\n )}\r\n {checkoutPresentation.itemLines\r\n .filter((i) => i.showInSummary)\r\n .map((im) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    {translations.totalPrice}
    \r\n
    \r\n {checkoutPresentation.totalPriceDisplayValue}\r\n
    \r\n
    \r\n {showBackToItems && (\r\n \r\n )}\r\n
    \r\n \r\n {translations.thePriceIncludes} {buttonIcon}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport interface ItemRowProps {\r\n label: string;\r\n price: string;\r\n}\r\n\r\nexport function ItemRow({ label, price }: ItemRowProps) {\r\n return (\r\n
    \r\n
    {label}
    \r\n
    {price}
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./LodgingFacilitySummary.scss\";\r\nimport { pluralize, stringFormat } from \"./shared/helpers\";\r\nimport { LodgingFacilitySummaryFragment } from \"./operations.generated\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\n\r\nexport interface FacilityValueProps {\r\n value: string;\r\n facilityId: number;\r\n}\r\n\r\nexport interface LodgingFacilitySummaryProps {\r\n lodging: LodgingFacilitySummaryFragment;\r\n hideOnMobile?: boolean;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function LodgingFacilitySummary({\r\n lodging,\r\n hideOnMobile,\r\n translations,\r\n}: LodgingFacilitySummaryProps) {\r\n const maxPeople = stringFormat(translations.maxPeople, lodging.maxPeople.toString());\r\n\r\n const lodgingAreaText = lodging.lodgingAreaFacility\r\n ? `${lodging.lodgingAreaFacility.facility.name} ${lodging.lodgingAreaFacility.displayValue}`\r\n : \"\";\r\n\r\n const lodgingArea = () => (\r\n \r\n );\r\n \r\n const useNumericPets = lodging.maxPets !== null;\r\n const pets = useNumericPets\r\n ? pluralize(lodging.maxPets, translations.maxPets)\r\n : lodging.petsAllowed ? translations.petsAllowed : translations.petsNotAllowed;\r\n\r\n const internetFacility = lodging.internetFacility;\r\n const internetFacilityText = () => internetFacility\r\n ? internetFacility.facility.name\r\n : \"\"; \r\n\r\n const bedroomFacility = lodging.bedroomFacility;\r\n const bedroomText = () => bedroomFacility\r\n ? bedroomFacility.displayValueAndName\r\n : \"\";\r\n\r\n const bathroomFacility = lodging.bathroomFacility;\r\n const bathroomText = () =>\r\n bathroomFacility\r\n ? bathroomFacility.displayValueAndName\r\n : \"\";\r\n\r\n const classNames = [\"bwp-lodging-facility-summary\"];\r\n if (hideOnMobile) {\r\n classNames.push(\"bwp-only-large-screen\");\r\n }\r\n\r\n return (\r\n
    \r\n

    {translations.facilityHeadline}

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {bedroomFacility && (\r\n \r\n \r\n \r\n )}\r\n {lodging.lodgingAreaFacility && (\r\n \r\n \r\n \r\n )}\r\n {lodging.internetFacility && (\r\n \r\n \r\n \r\n )}\r\n {bathroomFacility && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport interface FacilityProps {\r\n value: React.ReactNode;\r\n children: React.ReactNode;\r\n}\r\n\r\nfunction Facility({ value, children }: FacilityProps) {\r\n if (!value || !children) {\r\n return null;\r\n }\r\n \r\n return (\r\n
    \r\n
    {children}
    \r\n
    {value}
    \r\n
    \r\n );\r\n}\r\n\r\nfunction PeopleIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction PetIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction BedroomIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction AreaIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction InternetIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction BathroomIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport \"./ItemsSelector.scss\";\r\nimport NumberPicker from \"./NumberPicker\";\r\nimport {isSelectableItem, stringFormat} from \"./shared/helpers\";\r\nimport useModal from \"./shared/useModal\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport { ItemSelectorCheckoutPresentationFragment } from \"./operations.generated\";\r\n\r\nexport interface ItemsSelectorTranslations {\r\n headline: string;\r\n perItem: string;\r\n information: string;\r\n allExtrasTotal: string;\r\n totalPrice: string;\r\n}\r\n\r\nexport interface ItemProps {\r\n name: string;\r\n shortDescription: string;\r\n description: string;\r\n}\r\n\r\nexport interface ItemPriceProps {\r\n itemId: number;\r\n defaultQuantity: number;\r\n minQuantity: number;\r\n maxQuantity: number;\r\n unitPriceDisplayValue: string;\r\n priceWithQuantityDisplayValue: string;\r\n item: ItemProps;\r\n}\r\n\r\nexport interface ItemsSelectorProps {\r\n data: ItemSelectorCheckoutPresentationFragment;\r\n translations: CheckoutTranslations;\r\n onItemQuantityChange: (itemId: number, quantity: number) => void;\r\n}\r\n\r\nexport default function ItemsSelector({\r\n data,\r\n translations,\r\n onItemQuantityChange,\r\n}: ItemsSelectorProps) {\r\n const [currentItem, setCurrentItem] = useState(null);\r\n const { Modal, showModal } = useModal();\r\n\r\n const handleItemInfoClick = (item: ItemProps) => {\r\n setCurrentItem(item);\r\n showModal();\r\n };\r\n \r\n return (\r\n <>\r\n
    \r\n

    {translations.itemSelectorHeadline}

    \r\n
    \r\n {data.itemLines\r\n .filter(isSelectableItem)\r\n .map((ip) => (\r\n onItemQuantityChange(ip.item.id, value)}\r\n onItemInfoClick={handleItemInfoClick}\r\n translations={translations}\r\n item={ip.item}\r\n maxQuantity={ip.itemPrice.maxQuantity}\r\n minQuantity={ip.itemPrice.minQuantity}\r\n totalPriceDisplayValue={ip.totalPriceDisplayValue}\r\n unitPriceDisplayValue={ip.itemPrice.unitPriceDisplayValue}\r\n />\r\n ))}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {currentItem && (\r\n \r\n

    {currentItem.name}

    \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport interface TotalsRowProps {\r\n label: string;\r\n value: string;\r\n}\r\n\r\nfunction TotalsRow({ label, value }: TotalsRowProps) {\r\n return (\r\n
    \r\n
    {label}
    \r\n
    {value}
    \r\n
    \r\n );\r\n}\r\n\r\nexport interface SelectorRowProps {\r\n value: number;\r\n onChange: (newValue: number) => void;\r\n onItemInfoClick?: (item: ItemProps) => void;\r\n translations: CheckoutTranslations;\r\n unitPriceDisplayValue: string;\r\n maxQuantity: number;\r\n minQuantity: number;\r\n item: ItemSelectorCheckoutPresentationFragment[\"itemLines\"][0][\"item\"];\r\n totalPriceDisplayValue: string;\r\n}\r\n\r\nfunction SelectorRow({\r\n value,\r\n onChange,\r\n onItemInfoClick,\r\n translations,\r\n unitPriceDisplayValue,\r\n item,\r\n maxQuantity,\r\n minQuantity,\r\n totalPriceDisplayValue,\r\n}: SelectorRowProps) {\r\n const unitPrice = () => {\r\n if (maxQuantity > 1) {\r\n return stringFormat(translations.perItem, unitPriceDisplayValue);\r\n }\r\n return unitPriceDisplayValue;\r\n };\r\n\r\n const handleNameClick = (item) => {\r\n if (onItemInfoClick) {\r\n onItemInfoClick(item);\r\n }\r\n };\r\n\r\n const label =\r\n onItemInfoClick && (item.shortDescription || item.description) ? (\r\n {\r\n e.preventDefault();\r\n handleNameClick(item);\r\n }}\r\n >\r\n {item.name}\r\n \r\n ) : (\r\n item.name\r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n {label}\r\n {unitPrice()}\r\n
    \r\n
    \r\n \r\n
    \r\n {totalPriceDisplayValue}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./FieldWithLabel.scss\";\r\n\r\nexport interface FieldWithLabelProps {\r\n id?: string;\r\n label: string;\r\n value: string;\r\n onChange: (newValue) => void;\r\n pattern?: string;\r\n type?: string;\r\n required?: boolean;\r\n autoComplete?: string;\r\n placeholder?: string;\r\n min?: number;\r\n max?: number;\r\n}\r\n\r\nexport default function FieldWithLabel({\r\n id,\r\n label,\r\n value,\r\n onChange,\r\n pattern,\r\n type = \"text\",\r\n required,\r\n autoComplete,\r\n placeholder,\r\n min,\r\n max\r\n}: FieldWithLabelProps) {\r\n const handleOnChange = (e: React.FormEvent) => {\r\n if (onChange) {\r\n onChange(e.currentTarget.value);\r\n }\r\n };\r\n\r\n let attr = {\r\n type: type,\r\n value: value,\r\n onChange: handleOnChange\r\n };\r\n \r\n if (id) {\r\n attr = Object.assign(attr, { id });\r\n }\r\n \r\n if (pattern) {\r\n attr = Object.assign(attr, { pattern });\r\n }\r\n \r\n if (required) {\r\n attr = Object.assign(attr, { required });\r\n }\r\n \r\n if (placeholder) {\r\n attr = Object.assign(attr, { placeholder });\r\n }\r\n \r\n if (autoComplete) {\r\n attr = Object.assign(attr, { autoComplete });\r\n }\r\n \r\n if (type === \"number\") {\r\n if (typeof min === \"number\") {\r\n attr = Object.assign(attr, {min});\r\n }\r\n if (typeof max === \"number\") {\r\n attr = Object.assign(attr, {max});\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useMemo } from \"react\";\r\nimport FieldWithLabel from \"./FieldWithLabel\";\r\nimport SelectWithLabel from \"./SelectWithLabel\";\r\nimport \"./ContactDetailsForm.scss\";\r\nimport \"./Form.scss\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport { CheckoutQuery } from \"./operations.generated\";\r\nimport { BookingRequestInput } from \"./shared/graphql-types.generated\";\r\nimport {FormFieldType} from \"./shared/types\";\r\n\r\nexport interface CountryProps {\r\n id: string;\r\n name: string;\r\n}\r\n\r\ntype ValueType = Pick<\r\n BookingRequestInput[\"customer\"],\r\n | \"firstName\"\r\n | \"lastName\"\r\n | \"address\"\r\n | \"address2\"\r\n | \"postalCode\"\r\n | \"city\"\r\n | \"country\"\r\n | \"privateTelephone\"\r\n | \"privateMobilephone\"\r\n | \"workTelephone\"\r\n | \"email\"\r\n>;\r\n\r\nexport interface ContactDetailsFormProps {\r\n value: ValueType;\r\n countries: CountryProps[];\r\n address2FormFieldType?: FormFieldType;\r\n privateTelephoneFormFieldType?: FormFieldType;\r\n privateMobilephoneFormFieldType?: FormFieldType;\r\n workTelephoneFormFieldType?: FormFieldType;\r\n onChange: (customer: BookingRequestInput[\"customer\"]) => void;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function ContactDetailsForm({\r\n value,\r\n countries,\r\n address2FormFieldType,\r\n privateTelephoneFormFieldType,\r\n privateMobilephoneFormFieldType,\r\n workTelephoneFormFieldType,\r\n onChange,\r\n translations,\r\n}: ContactDetailsFormProps) {\r\n const countryOptions = useMemo(() => countries.map((c) => ({ value: c.id, text: c.name })), [\r\n countries,\r\n ]);\r\n\r\n const postalCodeAndCityFields = translations.postalCodeAndCityLayout\r\n ? translations.postalCodeAndCityLayout.split(\",\")\r\n : ['postalcode', 'city'];\r\n \r\n return (\r\n
    \r\n

    {translations.contactDetailsFormTitle}

    \r\n
    \r\n
    \r\n
    \r\n \r\n onChange({\r\n ...value,\r\n firstName: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n onChange({\r\n ...value,\r\n lastName: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n onChange({ ...value, address: newValue } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n {address2FormFieldType !== \"hidden\" && (\r\n \r\n onChange({ ...value, address2: newValue } as BookingRequestInput[\"customer\"])\r\n }\r\n /> \r\n )}\r\n
    \r\n
    \r\n {(postalCodeAndCityFields[0] === \"city\") && (\r\n \r\n onChange({\r\n ...value,\r\n city: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n )}\r\n {(postalCodeAndCityFields[0] != \"city\") && (\r\n \r\n onChange({\r\n ...value,\r\n postalCode: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n )}\r\n
    \r\n
    \r\n {(postalCodeAndCityFields[1] === \"postalcode\") && (\r\n \r\n onChange({\r\n ...value,\r\n postalCode: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n )}\r\n {(postalCodeAndCityFields[1] != \"postalcode\") && (\r\n \r\n onChange({\r\n ...value,\r\n city: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n />\r\n )}\r\n
    \r\n
    \r\n \r\n onChange({ ...value, country: newValue } as BookingRequestInput[\"customer\"])\r\n }\r\n id=\"country\"\r\n />\r\n {privateTelephoneFormFieldType !== \"hidden\" && (\r\n \r\n onChange({\r\n ...value,\r\n privateTelephone: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n type=\"tel\"\r\n />\r\n )}\r\n {privateMobilephoneFormFieldType !== \"hidden\" && (\r\n \r\n onChange({\r\n ...value,\r\n privateMobilephone: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n type=\"tel\"\r\n />\r\n )}\r\n {workTelephoneFormFieldType !== \"hidden\" && (\r\n \r\n onChange({\r\n ...value,\r\n workTelephone: newValue,\r\n } as BookingRequestInput[\"customer\"])\r\n }\r\n type=\"tel\"\r\n />\r\n )}\r\n \r\n onChange({ ...value, email: newValue } as BookingRequestInput[\"customer\"])\r\n }\r\n type=\"email\"\r\n />\r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nimport \"./InfoBox.scss\";\r\n\r\nexport default function InfoBox({ children }: { children: React.ReactNode }) {\r\n return
    {children}
    ;\r\n}\r\n","import React from \"react\";\r\nimport \"./AlertBox.scss\";\r\n\r\nexport interface AlertBoxProps {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport default function AlertBox({ children }: AlertBoxProps) {\r\n return
    {children}
    ;\r\n}\r\n","import React from \"react\";\r\nimport FieldWithLabel from \"./FieldWithLabel\";\r\nimport \"./GuestsForm.scss\";\r\nimport \"./Form.scss\";\r\nimport Button from \"./Button\";\r\nimport AlertBox from \"./AlertBox\";\r\nimport { stringFormat } from \"./shared/helpers\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport { BookingRequestInput } from \"./shared/graphql-types.generated\";\r\n\r\nexport interface GuestsFormProps {\r\n customer: BookingRequestInput[\"customer\"];\r\n guests: BookingRequestInput[\"guests\"];\r\n onChange: (guests: BookingRequestInput[\"guests\"]) => void;\r\n translations: CheckoutTranslations;\r\n alertMessage: string;\r\n required?: boolean;\r\n}\r\n\r\nexport default function GuestsForm({\r\n customer,\r\n guests,\r\n onChange,\r\n alertMessage,\r\n translations,\r\n required\r\n}: GuestsFormProps) {\r\n const handleClick = (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n const newGuests = [...guests];\r\n newGuests[0].firstName = customer.firstName;\r\n newGuests[0].lastName = customer.lastName;\r\n\r\n onChange(newGuests);\r\n };\r\n\r\n const handleChange = (\r\n newValue: any,\r\n index: number,\r\n field: keyof BookingRequestInput[\"guests\"][0]\r\n ) => {\r\n const newGuests = [...guests];\r\n newGuests[index][field as any] = newValue;\r\n onChange(newGuests);\r\n };\r\n\r\n return (\r\n
    \r\n

    {translations.guestsFormTitle}

    \r\n {required && (\r\n

    {translations.guestsFormDescription}

    \r\n )}\r\n {!required && (\r\n

    {translations.guestsFormDescriptionOptional}

    \r\n )}\r\n \r\n {alertMessage && {alertMessage}}\r\n \r\n
    \r\n {guests.map((guest, index) => (\r\n \r\n

    {stringFormat(translations.guestNumber, (index + 1).toString())}

    \r\n
    \r\n
    \r\n \r\n handleChange(newValue, index, \"firstName\")\r\n }\r\n required={required}\r\n />\r\n
    \r\n
    \r\n \r\n handleChange(newValue, index, \"lastName\")\r\n }\r\n required={required}\r\n />\r\n
    \r\n
    \r\n \r\n handleChange(parseInt(newValue), index, \"birthYear\")\r\n }\r\n placeholder={translations.birthyearPlaceholder}\r\n required={required}\r\n type=\"number\"\r\n min={1820}\r\n max={new Date().getFullYear()}\r\n />\r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./TextAreaWithLabel.scss\";\r\n\r\nexport interface TextAreaWithLabelProps {\r\n label: string;\r\n value: string;\r\n onChange: (newValue) => void;\r\n required?: boolean;\r\n}\r\n\r\nexport default function TextAreaWithLabel({\r\n label,\r\n value,\r\n onChange,\r\n required,\r\n}: TextAreaWithLabelProps) {\r\n const handleOnChange = (e: React.FormEvent) => {\r\n if (onChange) {\r\n onChange(e.currentTarget.value);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Form.scss\";\r\nimport TextAreaWithLabel from \"./TextAreaWithLabel\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\n\r\nexport interface NotesFormProps {\r\n value: string;\r\n onChange: (newValue: string) => void;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function NotesForm({ value, onChange, translations }: NotesFormProps) {\r\n return (\r\n
    \r\n

    {translations.notesFormTitle}

    \r\n onChange(newValue)}\r\n />\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Form.scss\";\r\nimport CheckBoxWithLabel from \"./CheckBoxWithLabel\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\n\r\nexport interface NewsletterProps {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface CommunicationFormProps {\r\n catalogue: boolean;\r\n newsletters: NewsletterProps[];\r\n onCatalogueChange: (newValue: boolean) => void;\r\n onNewslettersChange: (newsletters: number[]) => void;\r\n translations: CheckoutTranslations;\r\n selectedNewsletters: number[];\r\n catalogueLabel: string;\r\n}\r\n\r\nexport default function CommunicationForm({\r\n catalogue,\r\n newsletters,\r\n onCatalogueChange,\r\n onNewslettersChange,\r\n translations,\r\n selectedNewsletters,\r\n catalogueLabel,\r\n}: CommunicationFormProps) {\r\n const handlerForNewslettersChange = (id: number) => {\r\n return (newValue: boolean) => {\r\n if (newValue == true) {\r\n onNewslettersChange([...selectedNewsletters, id]);\r\n } else {\r\n onNewslettersChange(selectedNewsletters.filter((i) => i != id));\r\n }\r\n };\r\n };\r\n\r\n if (!newsletters?.length && !catalogueLabel) {\r\n return
    ;\r\n }\r\n\r\n return (\r\n
    \r\n

    {translations.communicationFormTitle}

    \r\n {catalogueLabel && (\r\n
    \r\n

    {translations.catalogueDescription}

    \r\n \r\n
    \r\n )}\r\n {newsletters && newsletters.length > 0 && (\r\n
    \r\n

    {translations.newslettersDescription}

    \r\n
    \r\n {newsletters.map((newsletter) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./PaymentOptions.scss\";\r\nimport \"./Form.scss\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport {PayRateProps} from \"./PayRates\";\r\nimport {PaymentOption} from \"./shared/types\";\r\n\r\nexport type PaymentOptionsProps = {\r\n payRates: PayRateProps[];\r\n paymentOptions: number[];\r\n payMethod: number;\r\n onPayMethodChange: (payMethod: number) => void;\r\n allowCreditCardFullAmountWhenTwoRates: boolean;\r\n translations: CheckoutTranslations;\r\n} \r\n\r\nexport default function PaymentOptions({ payRates, payMethod, onPayMethodChange, paymentOptions, allowCreditCardFullAmountWhenTwoRates, translations }: PaymentOptionsProps) {\r\n const handleOptionClick = (value) => {\r\n onPayMethodChange(value);\r\n }\r\n\r\n const showCreditCard = paymentOptions && \r\n paymentOptions.length && \r\n (\r\n paymentOptions.indexOf(PaymentOption.CreditCardOneRate) > -1 ||\r\n paymentOptions.indexOf(PaymentOption.CreditCardTwoRates) > -1\r\n );\r\n\r\n let showBankTransfer = (\r\n !paymentOptions || \r\n paymentOptions.length === 0 || \r\n paymentOptions.indexOf(PaymentOption.BankTransfer) > -1\r\n );\r\n \r\n const numberOfPayRates = payRates.length;\r\n \r\n return (\r\n
    \r\n {translations.pleaseChoosePaymentMethod}\r\n
    \r\n {showBankTransfer && (\r\n <>\r\n

    {translations.paymentBankTransfer}

    \r\n \r\n \r\n )}\r\n {(showCreditCard && numberOfPayRates === 1) && (\r\n <>\r\n

    {translations.paymentCreditCard}

    \r\n \r\n \r\n )}\r\n {(showCreditCard && numberOfPayRates === 2) && (\r\n <>\r\n

    {translations.paymentCreditCard}

    \r\n \r\n {allowCreditCardFullAmountWhenTwoRates && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction PaymentOptionRadio({ label, value, checked, onClick })\r\n{\r\n const handleOptionClick = (e) => {\r\n onClick(value);\r\n }\r\n \r\n const handleOnChange = (e) => {\r\n onClick(value);\r\n }\r\n \r\n const classNames = checked \r\n ? [\"bwp-payment-options__item\", \"bwp-selected\"]\r\n : [\"bwp-payment-options__item\"];\r\n \r\n const id = `bwpPayMethod${value}`;\r\n \r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import {PaymentOption} from \"./types\";\r\nimport {PayRate} from \"./graphql-types.generated\";\r\nimport {isToday, parseISO} from \"date-fns\";\r\n\r\nexport function allowCreditCard(paymentOptions: PaymentOption[])\r\n{\r\n if (!paymentOptions || paymentOptions.length === 0) {\r\n return false;\r\n }\r\n\r\n return paymentOptions.indexOf(PaymentOption.CreditCardOneRate) > -1 ||\r\n paymentOptions.indexOf(PaymentOption.CreditCardTwoRates) > -1;\r\n}\r\n\r\nexport function allowBankTransfer(paymentOptions: PaymentOption[], isLastMinute: boolean, lateBookingCreditCardRequired: boolean)\r\n{\r\n /* If no payment options are defined we fallback to\r\n * bank transfer.\r\n */\r\n if (!paymentOptions || paymentOptions.length === 0) {\r\n return true;\r\n }\r\n\r\n if (allowCreditCard(paymentOptions)) {\r\n if (isLastMinute && lateBookingCreditCardRequired) {\r\n return false;\r\n }\r\n }\r\n\r\n return paymentOptions.indexOf(PaymentOption.BankTransfer) > -1;\r\n}\r\n\r\nexport function hasTwoCreditCardPaymentOptions(paymentOptions: PaymentOption[], allowCreditCardFullAmountWhenTwoRates: boolean)\r\n{\r\n if (!paymentOptions || paymentOptions.length < 2) {\r\n return false;\r\n }\r\n\r\n return (\r\n paymentOptions.indexOf(PaymentOption.CreditCardOneRate) > -1 &&\r\n paymentOptions.indexOf(PaymentOption.CreditCardTwoRates) > -1 &&\r\n allowCreditCardFullAmountWhenTwoRates\r\n );\r\n}\r\n\r\nexport function isLateMinute(payRate: PayRate | Pick)\r\n{\r\n if (!payRate?.payDate) {\r\n return false;\r\n }\r\n \r\n return isToday(parseISO(payRate.payDate));\r\n}","import React from \"react\";\r\nimport \"./PayRates.scss\";\r\nimport \"./Form.scss\";\r\nimport { stringFormat } from \"./shared/helpers\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\nimport PaymentOptions from \"./PaymentOptions\";\r\nimport {PaymentOption} from \"./shared/types\";\r\nimport {allowBankTransfer, allowCreditCard, hasTwoCreditCardPaymentOptions} from \"./shared/paymentoptions\";\r\n\r\nexport interface PayRateProps {\r\n amountDisplayValue: string;\r\n payDateDisplayValue: string;\r\n}\r\n\r\nexport interface PayRatesProps {\r\n payRates: PayRateProps[];\r\n paymentOptions: number[];\r\n isLastMinute?: boolean;\r\n allowCreditCardFullAmountWhenTwoRates: boolean;\r\n lateBookingCreditCardRequired: boolean;\r\n payMethod: PaymentOption | null;\r\n onChange: (payMethod: PaymentOption) => void;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function PayRates({ payRates, paymentOptions, isLastMinute, allowCreditCardFullAmountWhenTwoRates, lateBookingCreditCardRequired, payMethod, onChange, translations }: PayRatesProps) {\r\n\r\n const handlePayMethodChange = (value) => {\r\n onChange(value);\r\n }\r\n \r\n const hasTwoRates = () => {\r\n return payRates && Array.isArray(payRates) && payRates.length === 2;\r\n }\r\n \r\n const getDescription = () => {\r\n if (allowBankTransfer(paymentOptions, isLastMinute, lateBookingCreditCardRequired) && allowCreditCard(paymentOptions)) {\r\n if (isLastMinute) {\r\n return translations.paymentBankCreditCardLastMinute;\r\n }\r\n \r\n return hasTwoRates()\r\n ? translations.paymentBankCreditCardTwoRates\r\n : translations.paymentBankCreditCardOneRate;\r\n }\r\n \r\n if (allowCreditCard(paymentOptions)) {\r\n if (isLastMinute) {\r\n return translations.paymentCreditCardLastMinute;\r\n }\r\n \r\n return hasTwoRates()\r\n ? translations.paymentCreditCardTwoRates\r\n : translations.paymentCreditCardOneRate;\r\n }\r\n \r\n if (isLastMinute) {\r\n return translations.descriptionLastMinute;\r\n }\r\n \r\n return hasTwoRates()\r\n ? translations.descriptionWithTwoRates\r\n : translations.descriptionWithOneRate;\r\n }\r\n \r\n const filteredPaymentOptions = (\r\n (paymentOptions?.indexOf(PaymentOption.BankTransfer) > -1) && \r\n (isLastMinute && lateBookingCreditCardRequired)\r\n )\r\n ? paymentOptions.filter(po => po != PaymentOption.BankTransfer)\r\n : paymentOptions;\r\n\r\n const showPaymentOptions = (\r\n (allowBankTransfer(paymentOptions, isLastMinute, lateBookingCreditCardRequired) && allowCreditCard(paymentOptions)) ||\r\n (\r\n allowCreditCard(paymentOptions) && \r\n hasTwoRates() &&\r\n hasTwoCreditCardPaymentOptions(filteredPaymentOptions, allowCreditCardFullAmountWhenTwoRates)\r\n )\r\n );\r\n \r\n return (\r\n
    \r\n

    {translations.payRatesTitle}

    \r\n

    {getDescription()}

    \r\n
    \r\n {payRates.map((payRate, index) => (\r\n \r\n ))}\r\n {showPaymentOptions && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport interface PayRateRowProps {\r\n payRate: PayRateProps;\r\n label: string;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nfunction PayRateRow({ payRate, label, translations }: PayRateRowProps) {\r\n return (\r\n
    \r\n
    {label}
    \r\n
    {payRate.amountDisplayValue}
    \r\n
    \r\n {stringFormat(translations.isDueOn, payRate.payDateDisplayValue)}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./TermsForm.scss\";\r\nimport \"./Form.scss\";\r\nimport CheckBoxWithLabel from \"./CheckBoxWithLabel\";\r\nimport useModal from \"./shared/useModal\";\r\nimport Button from \"./Button\";\r\nimport { CheckoutTranslations } from \"./translations/CheckoutTranslations\";\r\n\r\nexport interface TermsFormProps {\r\n termsAccepted: boolean;\r\n onTermsAcceptedChange: (termsAccepted: boolean) => void;\r\n terms: React.ReactNode;\r\n translations: CheckoutTranslations;\r\n}\r\n\r\nexport default function TermsForm({\r\n termsAccepted,\r\n onTermsAcceptedChange,\r\n terms,\r\n translations,\r\n}: TermsFormProps) {\r\n const { Modal, showModal } = useModal();\r\n\r\n const handleClick = () => {\r\n showModal();\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n

    {translations.termsFormTitle}

    \r\n

    {translations.termsFormDescription}

    \r\n \r\n \r\n
    \r\n \r\n {terms}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./Spinner.scss\";\r\n\r\ninterface Props {\r\n showDelay?: number;\r\n}\r\n\r\nexport default function Spinner({ showDelay = 1000 }: Props) {\r\n const [show, setShow] = useState(showDelay == 0);\r\n\r\n useEffect(() => {\r\n const timeout = setTimeout(() => setShow(true), showDelay);\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }, [showDelay]);\r\n\r\n if (show) {\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 } else {\r\n return null;\r\n }\r\n}\r\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","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\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 ? \"\".concat(prefix, \": \").concat(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","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\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\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\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.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' 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.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, 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 function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\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 */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\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\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\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 return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // 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\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' 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.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import React, {useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport BookingSummary from \"./BookingSummary\";\r\nimport ItemsSummary from \"./ItemsSummary\";\r\nimport {BookingRequestInput, CreateBookingResultType, CustomerInput} from \"./shared/graphql-types.generated\";\r\nimport {CheckoutQuery, CreateBookingMutation, PayRatesQuery, TermsQuery,} from \"./operations.generated\";\r\nimport {CheckoutTranslations} from \"./translations/CheckoutTranslations\";\r\nimport LodgingFacilitySummary from \"./LodgingFacilitySummary\";\r\nimport ItemsSelector from \"./ItemsSelector\";\r\nimport ContactDetailsForm from \"./ContactDetailsForm\";\r\nimport Button from \"./Button\";\r\nimport InfoBox from \"./InfoBox\";\r\nimport {Step, StepName} from \"./StepVisualizer\";\r\nimport GuestsForm from \"./GuestsForm\";\r\nimport NotesForm from \"./NotesForm\";\r\nimport CommunicationForm from \"./CommunicationForm\";\r\nimport PayRates from \"./PayRates\";\r\nimport {isToday, parseISO} from \"date-fns\";\r\nimport TermsForm from \"./TermsForm\";\r\nimport \"./Checkout.scss\";\r\nimport \"./global/shared.scss\";\r\nimport Spinner from \"./Spinner\";\r\nimport {isBrowser, isSelectableItem } from \"./shared/helpers\";\r\nimport {trackDynamicUrlChange} from \"./shared/googleAnalyticsUtils\";\r\nimport {Redirect, Route, Switch, useHistory, useRouteMatch} from \"react-router\";\r\nimport {FormFieldType, PaymentOption} from \"./shared/types\";\r\nimport {isLateMinute} from \"./shared/paymentoptions\";\r\nimport {SearchBoxTranslations} from \"./translations/SearchBoxTranslations\";\r\nimport {PeopleValue} from \"./PeopleSelectWithLabel\";\r\nimport {SearchContext} from \"./shared/searchcontext\";\r\nimport {LodgingPageTranslations} from \"./translations/LodgingPageTranslations\";\r\nimport {TrackBooking, trackBooking} from \"./shared/tracking\";\r\nimport {processTemplate} from \"./shared/templates\";\r\n\r\ntype StepWithLocalizedUrl = Step & { routeParam: string };\r\n\r\ninterface Props {\r\n value: BookingRequestInput;\r\n onChange: (value: BookingRequestInput) => void;\r\n onPayMethodChange: (payMethod: PaymentOption) => void;\r\n onPeopleChange: (value: PeopleValue) => void;\r\n searchContext: SearchContext;\r\n data: CheckoutQuery;\r\n translations: CheckoutTranslations;\r\n lodgingTranslations: LodgingPageTranslations;\r\n searchBoxTranslations: SearchBoxTranslations;\r\n languageId: number;\r\n onBook: () => void;\r\n defaultCountry?: string;\r\n infoBoxContent?: string;\r\n guestsFormAlertMessage?: string;\r\n catalogueLabel?: string;\r\n payRates: PayRatesQuery;\r\n guestsRequired?: boolean;\r\n hideGuests?: boolean;\r\n terms: TermsQuery;\r\n createBookingResult: CreateBookingMutation;\r\n doneText: string;\r\n doneContactInformation: string;\r\n address2FormFieldType?: FormFieldType;\r\n privateTelephoneFormFieldType?: FormFieldType;\r\n privateMobilephoneFormFieldType?: FormFieldType;\r\n workTelephoneFormFieldType?: FormFieldType;\r\n payMethod: PaymentOption | null;\r\n paymentOptions?: PaymentOption[];\r\n allowCreditCardFullAmountWhenTwoRates: boolean;\r\n lateBookingCreditCardRequired: boolean;\r\n showInfants?: boolean;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n hideLodgingAddress?: boolean;\r\n}\r\n\r\nfunction Checkout({\r\n languageId,\r\n data,\r\n value,\r\n onChange,\r\n onPayMethodChange,\r\n onPeopleChange,\r\n translations,\r\n lodgingTranslations,\r\n searchBoxTranslations,\r\n searchContext,\r\n onBook,\r\n defaultCountry,\r\n infoBoxContent,\r\n guestsFormAlertMessage,\r\n catalogueLabel,\r\n payRates,\r\n guestsRequired,\r\n hideGuests,\r\n terms,\r\n createBookingResult,\r\n doneText,\r\n doneContactInformation,\r\n address2FormFieldType,\r\n privateTelephoneFormFieldType,\r\n privateMobilephoneFormFieldType,\r\n workTelephoneFormFieldType,\r\n payMethod,\r\n paymentOptions,\r\n allowCreditCardFullAmountWhenTwoRates,\r\n lateBookingCreditCardRequired,\r\n showInfants,\r\n showProbabilityWithPriceAsBookingOption,\r\n hideLodgingAddress\r\n}: Props) {\r\n const [termsAccepted, setTermsAccepted] = useState(false);\r\n const [firstRender, setFirstRender] = useState(true);\r\n const isProbability = showProbabilityWithPriceAsBookingOption\r\n ? data?.lodgingPresentation?.selectedBookingOption?.status === \"Probability\"\r\n : (data?.lodgingPresentation?.selectedBookingOption?.status === \"Probability\" || data?.lodgingPresentation?.selectedBookingOption?.status === \"ProbabilityAsBooking\");\r\n \r\n const [maxStep, setMaxStep] = useState(\r\n isProbability ? \"yourDetails\" : \"extras\"\r\n );\r\n const match = useRouteMatch<{ step: StepName }>();\r\n const history = useHistory();\r\n\r\n const steps: StepWithLocalizedUrl[] = useMemo(\r\n () => [\r\n isProbability === false\r\n ? {\r\n id: \"extras\" as StepName,\r\n name: translations.stepExtras,\r\n routeParam: translations.stepExtrasUrlName,\r\n }\r\n : null,\r\n {\r\n id: \"yourDetails\" as StepName,\r\n name: translations.stepYourDetails,\r\n routeParam: translations.stepYourDetailsUrlName,\r\n },\r\n {\r\n id: \"payment\" as StepName,\r\n name: \"\",\r\n routeParam: \"payment\"\r\n },\r\n {\r\n id: \"done\" as StepName,\r\n name: translations.stepDone,\r\n routeParam: translations.stepDoneUrlName,\r\n },\r\n ].filter((x) => x !== null),\r\n [isProbability, translations]\r\n );\r\n\r\n const setStep = useCallback(\r\n (stepName: StepName) => {\r\n window.scrollTo(0, 0);\r\n let step = steps.find((s) => s.id == stepName);\r\n history.push(\"/\" + step.routeParam + \"/\" + window.location.search);\r\n },\r\n [steps, history]\r\n );\r\n \r\n const noItems = data.checkoutPresentation.itemLines \r\n ? data.checkoutPresentation.itemLines.filter(isSelectableItem).length === 0\r\n : true;\r\n \r\n let step = steps.find((s) => s.routeParam == match.params.step);\r\n if (step?.id === \"extras\" && noItems) {\r\n step = steps.find(s => s.id === \"yourDetails\");\r\n // TODO: How to redirect to your details?\r\n }\r\n \r\n useEffect(() => {\r\n if (firstRender == true) {\r\n setFirstRender(false);\r\n }\r\n }, [firstRender]);\r\n\r\n useEffect(() => {\r\n if (!firstRender) {\r\n trackDynamicUrlChange();\r\n }\r\n // We disable ESLint here as we don't want to trigger on firstRender change\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [step]);\r\n\r\n useEffect(() => {\r\n if (steps.indexOf(step) > steps.findIndex((s) => s.id == maxStep)) {\r\n setStep(maxStep);\r\n }\r\n }, [step, maxStep, setStep, steps]);\r\n\r\n const blankCustomer: BookingRequestInput[\"customer\"] = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n address: \"\",\r\n postalCode: \"\",\r\n city: \"\",\r\n country: defaultCountry,\r\n privateTelephone: \"\",\r\n privateMobilephone: \"\",\r\n workTelephone: \"\",\r\n email: \"\",\r\n subscribeToCatalogue: false,\r\n customerId: null,\r\n customFieldValues: [],\r\n languageId: languageId,\r\n subscribeToNewsletters: null,\r\n };\r\n\r\n const blankGuest: BookingRequestInput[\"guests\"][0] = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n birthYear: null,\r\n };\r\n\r\n const blankGuests = [];\r\n const numberOfGuests =\r\n data.lodgingPresentation.selectedBookingOption.adults +\r\n data.lodgingPresentation.selectedBookingOption.children;\r\n for (let x = 1; x <= numberOfGuests; x++) {\r\n blankGuests.push({ ...blankGuest });\r\n }\r\n\r\n const handleItemQuantityChange = useCallback(\r\n (itemId: number, quantity: number) => {\r\n const items = [...(value.items || [])];\r\n\r\n let item = items.find((i) => i.itemId == itemId);\r\n if (item != null) {\r\n const index = items.indexOf(item);\r\n items[index] = { ...item, quantity };\r\n } else {\r\n items.push({ itemId, quantity });\r\n }\r\n\r\n onChange({\r\n ...value,\r\n items,\r\n });\r\n },\r\n [onChange, value]\r\n );\r\n\r\n const onChangeCustomer = useCallback(\r\n (customer: Partial) => {\r\n onChange({\r\n ...value,\r\n customer: { ...blankCustomer, ...value.customer, ...customer },\r\n });\r\n },\r\n [blankCustomer, onChange, value]\r\n );\r\n\r\n const handleFormSubmit = useCallback(\r\n (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n if (step.id === \"yourDetails\") {\r\n onBook();\r\n if (payMethod == PaymentOption.CreditCardOneRate || payMethod == PaymentOption.CreditCardTwoRates) {\r\n setMaxStep(\"payment\");\r\n setStep(\"payment\");\r\n } else {\r\n setMaxStep(\"done\");\r\n setStep(\"done\"); \r\n }\r\n } else if (step.id === \"extras\") {\r\n setMaxStep(\"yourDetails\");\r\n setStep(\"yourDetails\");\r\n } else {\r\n return;\r\n }\r\n },\r\n [onBook, setStep, step]\r\n );\r\n \r\n if (!step) {\r\n const firstStep = steps.find(s => s.routeParam);\r\n return ;\r\n }\r\n \r\n const showCommunicationSection = (data?.newsletters?.length) || catalogueLabel;\r\n \r\n return (\r\n \r\n \r\n {step.id === \"extras\" && (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {step.id === \"yourDetails\" && (\r\n
    \r\n onChange({ ...value, customer })}\r\n translations={translations}\r\n />\r\n {!hideGuests && (\r\n onChange({ ...value, guests })}\r\n translations={translations}\r\n alertMessage={guestsFormAlertMessage}\r\n required={guestsRequired}\r\n />\r\n )}\r\n onChange({ ...value, note: note })}\r\n translations={translations}\r\n />\r\n {showCommunicationSection && (\r\n \r\n onChangeCustomer({ subscribeToCatalogue })\r\n }\r\n onNewslettersChange={(subscribeToNewsletters) =>\r\n onChangeCustomer({\r\n subscribeToNewsletters: subscribeToNewsletters.join(\",\"),\r\n })\r\n }\r\n translations={translations}\r\n selectedNewsletters={\r\n value?.customer?.subscribeToNewsletters\r\n ?.split(\",\")\r\n .map((x) => parseInt(x)) ?? []\r\n }\r\n catalogueLabel={catalogueLabel}\r\n />\r\n )}\r\n {payRates && (\r\n p != null\r\n )}\r\n isLastMinute={isLateMinute(payRates.payRates.rate1)}\r\n translations={translations}\r\n paymentOptions={paymentOptions}\r\n allowCreditCardFullAmountWhenTwoRates={allowCreditCardFullAmountWhenTwoRates}\r\n lateBookingCreditCardRequired={lateBookingCreditCardRequired}\r\n payMethod={payMethod}\r\n onChange={onPayMethodChange}\r\n />\r\n )}\r\n {terms && (\r\n \r\n }\r\n translations={translations}\r\n />\r\n )}\r\n \r\n
    \r\n \r\n {!isProbability && !noItems && (\r\n {\r\n e.preventDefault();\r\n setStep(\"extras\");\r\n }}\r\n >\r\n {translations.backToExtras}\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n {step.id === \"payment\" && (\r\n
    \r\n {createBookingResult?.createBooking == null && (\r\n \r\n )}\r\n {createBookingResult?.createBooking && (\r\n \r\n )}\r\n
    \r\n )}\r\n {step.id === \"done\" && (\r\n
    \r\n {createBookingResult?.createBooking == null && (\r\n \r\n )}\r\n {createBookingResult?.createBooking && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nfunction WaitSpinner({ showDelay, text } : { showDelay: number, text?: string })\r\n{\r\n return (\r\n
    \r\n {text && (\r\n

    {text}

    \r\n )}\r\n \r\n
    \r\n )\r\n}\r\n\r\nfunction FormOrContainer({ isForm, onFormSubmit, className, children } : { \r\n isForm: boolean, \r\n onFormSubmit: (e: React.SyntheticEvent) => void,\r\n className: string,\r\n children: React.ReactNode\r\n}) \r\n{\r\n if (isForm) {\r\n return (\r\n
    \r\n \r\n {children}\r\n \r\n );\r\n }\r\n \r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n}\r\n\r\nfunction DoneView({\r\n doneText,\r\n createBookingResult,\r\n value,\r\n payRates,\r\n checkoutPresentation,\r\n lodgingPresentation,\r\n translations\r\n}: Pick & {\r\n value: BookingRequestInput;\r\n checkoutPresentation: CheckoutQuery[\"checkoutPresentation\"];\r\n lodgingPresentation: CheckoutQuery[\"lodgingPresentation\"];\r\n lodgingName: string;\r\n lodgingId: number;\r\n}) {\r\n\r\n useEffect(() => {\r\n if (isBrowser() && createBookingResult) {\r\n if (createBookingResult.createBooking.success) {\r\n if (createBookingResult.createBooking.result.resultType === CreateBookingResultType.OrderItem) {\r\n trackBooking(\r\n {\r\n reservationId: createBookingResult.createBooking.result.orderItem.reservationId,\r\n currency: checkoutPresentation.currency,\r\n totalPrice: checkoutPresentation.totalPrice,\r\n bookingsTotalPrice: checkoutPresentation.bookingPrice,\r\n discountBookingsTotalPrice: checkoutPresentation.discountReduction\r\n ? checkoutPresentation.discountReduction * -1 /* The discount for tracking is positive number */\r\n : 0,\r\n lodging: {\r\n id: lodgingPresentation.lodging.id,\r\n name: lodgingPresentation.lodging.name\r\n },\r\n location: {\r\n ...lodgingPresentation.lodging.location\r\n },\r\n customer: {\r\n postalCode: value.customer.postalCode,\r\n city: value.customer.city,\r\n country: value.customer.country\r\n },\r\n itemLines: checkoutPresentation.itemLines\r\n ? checkoutPresentation.itemLines.filter(il => il.showInSummary).map(il => ({\r\n itemId: il.item.id,\r\n description: il.item.name,\r\n quantity: il.quantity,\r\n unitPrice: il.itemPrice.unitPrice,\r\n lineTotalPrice: il.totalPrice\r\n }))\r\n : []\r\n } as TrackBooking,\r\n { onlyOnce: true }\r\n );\r\n }\r\n }\r\n }\r\n }, [createBookingResult]);\r\n \r\n if (createBookingResult.createBooking.success && createBookingResult.createBooking.result.resultType === CreateBookingResultType.OrderItem) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {payRates && (\r\n p != null\r\n )}\r\n isLastMinute={isToday(parseISO(payRates.payRates.rate1.payDate))}\r\n translations={translations}\r\n paymentOptions={[]}\r\n allowCreditCardFullAmountWhenTwoRates={false}\r\n lateBookingCreditCardRequired={false}\r\n payMethod={null}\r\n onChange={(v) => { return; }}\r\n />\r\n )}\r\n \r\n );\r\n } else {\r\n return
    {createBookingResult.createBooking.errorMessage}
    ;\r\n }\r\n}\r\n\r\nfunction PaymentView({\r\n createBookingResult\r\n}: Pick) {\r\n \r\n const formForGateway = createBookingResult?.createBooking?.result?.formForGateway;\r\n \r\n useEffect(() => {\r\n if (formForGateway) {\r\n const form = document.querySelector(\".bwp-payment-form-container form\");\r\n if (form) {\r\n form.submit();\r\n }\r\n }\r\n }, [formForGateway]);\r\n \r\n if (!createBookingResult?.createBooking?.success || createBookingResult.createBooking.result.resultType != CreateBookingResultType.FormForGateway) {\r\n return (\r\n
    \r\n

    \r\n An error occurred while processing the request on the server.\r\n

    \r\n

    \r\n Please contact us for further assistance.\r\n

    \r\n
    \r\n );\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n// Taken from: https://stackoverflow.com/a/51507806\r\nfunction DisableEnterSubmitOfForm() {\r\n return
    \r\n );\r\n}\r\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\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.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\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.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\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 process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!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 }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\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\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, 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 { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import React, {useCallback, useEffect, useMemo, useState} from \"react\";\r\nimport Checkout from \"@bwp/Checkout\";\r\nimport {\r\n CheckoutQueryVariables,\r\n CreateBookingMutation,\r\n useCheckoutQuery,\r\n useCreateBookingMutation,\r\n usePayRatesQuery,\r\n useTermsQuery,\r\n} from \"@bwp/operations.generated\";\r\nimport {\r\n BookingRequestInput,\r\n CreateBookingResultType,\r\n PaymentOption as GraphQLPaymentOption\r\n} from \"@bwp/shared/graphql-types.generated\";\r\nimport GraphQLErrorPanel from \"@bwp/GraphQLErrorPanel\";\r\nimport {CheckoutTranslations} from \"@bwp/translations/CheckoutTranslations\";\r\nimport {SearchBoxTranslations} from \"@bwp/translations/SearchBoxTranslations\";\r\nimport useGlobalSearchContext from \"@bwp/shared/useGlobalSearchContext\";\r\nimport Spinner from \"@bwp/Spinner\";\r\nimport {BrowserRouter} from \"react-router-dom\";\r\nimport {FormFieldType, PaymentOption} from \"@bwp/shared/types\";\r\nimport {BookingSummaryBookingOptionFragment} from \"@bwp/operations.generated\";\r\nimport {\r\n allowBankTransfer,\r\n allowCreditCard,\r\n hasTwoCreditCardPaymentOptions,\r\n isLateMinute\r\n} from \"@bwp/shared/paymentoptions\";\r\nimport {PeopleValue} from \"@bwp/PeopleSelectWithLabel\";\r\nimport {LodgingPageTranslations} from \"@bwp/translations/LodgingPageTranslations\";\r\n\r\n\r\nexport default function CheckoutWrapper({\r\n languageId,\r\n translations,\r\n lodgingTranslations,\r\n searchBoxTranslations,\r\n bathroomFacilityId,\r\n bedroomFacilityId,\r\n bookingOption,\r\n lodgingAreaFacilityId,\r\n internetFacilityId,\r\n defaultCountry,\r\n infoBoxContent,\r\n guestsFormAlertMessage,\r\n catalogueLabel,\r\n doneContactInformation,\r\n doneText,\r\n basePath,\r\n guestsRequired,\r\n hideGuests,\r\n address2FormFieldType,\r\n privateTelephoneFormFieldType,\r\n privateMobilephoneFormFieldType,\r\n workTelephoneFormFieldType,\r\n paymentOptions,\r\n allowCreditCardFullAmountWhenTwoRates,\r\n lateBookingCreditCardRequired,\r\n showInfants,\r\n showProbabilityWithPriceAsBookingOption,\r\n hideLodgingAddress\r\n}: {\r\n languageId: number;\r\n translations: CheckoutTranslations;\r\n lodgingTranslations: LodgingPageTranslations;\r\n searchBoxTranslations: SearchBoxTranslations;\r\n bathroomFacilityId: number;\r\n bedroomFacilityId: number;\r\n bookingOption: BookingSummaryBookingOptionFragment;\r\n lodgingAreaFacilityId: number;\r\n internetFacilityId: number;\r\n defaultCountry: string;\r\n infoBoxContent: string;\r\n guestsFormAlertMessage: string;\r\n catalogueLabel: string; \r\n doneText: string;\r\n doneContactInformation: string;\r\n basePath: string;\r\n guestsRequired?: boolean;\r\n hideGuests?: boolean;\r\n address2FormFieldType?: FormFieldType;\r\n privateTelephoneFormFieldType?: FormFieldType;\r\n privateMobilephoneFormFieldType?: FormFieldType;\r\n workTelephoneFormFieldType?: FormFieldType;\r\n paymentOptions: PaymentOption[];\r\n allowCreditCardFullAmountWhenTwoRates: boolean;\r\n lateBookingCreditCardRequired: boolean;\r\n showInfants?: boolean;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n hideLodgingAddress?: boolean;\r\n}) {\r\n const [searchContext, setSearchContext] = useGlobalSearchContext({ presets: {}, defaultValues: {} });\r\n \r\n const [request, setRequest] = useState({\r\n bookingOption: {\r\n adults: searchContext.adults,\r\n children: searchContext.children ?? 0,\r\n arrival: searchContext.arrival,\r\n duration: searchContext.duration,\r\n infants: searchContext.infants ?? 0,\r\n languageId: languageId,\r\n lodgingId: searchContext.lodgingId,\r\n pets: searchContext.pets ?? 0,\r\n },\r\n items: []\r\n });\r\n\r\n const handlePeopleChange = (value: PeopleValue) => {\r\n const newSearchContext = searchContext.changePersons(\r\n value.adults,\r\n value.children,\r\n value.infants,\r\n value.pets\r\n );\r\n\r\n setSearchContext(newSearchContext);\r\n const numberOfGuests = (value.adults || 0) + (value.children || 0);\r\n const guests = (request.guests && Array.isArray(request.guests))\r\n ? request.guests.length > numberOfGuests\r\n ? [...request.guests].slice(0, numberOfGuests)\r\n : [...request.guests]\r\n : [];\r\n \r\n if (guests.length < numberOfGuests) {\r\n const blankGuest: BookingRequestInput[\"guests\"][0] = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n birthYear: null,\r\n };\r\n \r\n while (guests.length < numberOfGuests) {\r\n guests.push({ ...blankGuest });\r\n }\r\n }\r\n \r\n setRequest({\r\n ...request,\r\n bookingOption: {\r\n ...request.bookingOption,\r\n adults: newSearchContext.adults,\r\n children: newSearchContext.children,\r\n infants: newSearchContext.infants,\r\n pets: newSearchContext.pets\r\n },\r\n guests\r\n });\r\n }\r\n \r\n const [createBookingResult, setCreateBookingResult] = useState(null);\r\n\r\n const checkoutQueryParameters = useMemo(() => {\r\n return {\r\n bookingOption: request.bookingOption,\r\n items: request.items,\r\n } as CheckoutQueryVariables[\"request\"];\r\n }, [request]);\r\n\r\n const { data, loading, error } = useCheckoutQuery({\r\n variables: {\r\n request: checkoutQueryParameters,\r\n displayDate: request.bookingOption.arrival,\r\n bathroomFacilityId: bathroomFacilityId,\r\n bedroomFacilityId: bedroomFacilityId,\r\n houseAreaFacilityId: lodgingAreaFacilityId,\r\n internetFacilityId: internetFacilityId,\r\n },\r\n });\r\n\r\n const isProbability = showProbabilityWithPriceAsBookingOption\r\n ? data?.lodgingPresentation?.selectedBookingOption?.status === \"Probability\"\r\n : (data?.lodgingPresentation?.selectedBookingOption?.status === \"Probability\" || data?.lodgingPresentation?.selectedBookingOption?.status === \"ProbabilityAsBooking\");\r\n\r\n const payRatesQuery = usePayRatesQuery({\r\n variables: {\r\n request: {\r\n bookingOption: request.bookingOption,\r\n items: data?.checkoutPresentation?.itemLines\r\n ? data.checkoutPresentation.itemLines.filter(il => il.quantity > 0).map(il => ({ quantity: il.quantity, itemId: il.item.id }))\r\n : []\r\n },\r\n },\r\n skip: (isProbability || data?.checkoutPresentation?.itemLines === undefined),\r\n });\r\n \r\n const [payMethod, setPayMethod] = useState(null);\r\n \r\n useEffect(() => {\r\n const payRates = payRatesQuery?.data?.payRates;\r\n if (payRates && paymentOptions && paymentOptions.length) {\r\n const hasTwoRates = payRates.rate1 && payRates.rate2;\r\n const isLastMinute = isLateMinute(payRates.rate1);\r\n \r\n const filteredPaymentOptions = allowBankTransfer(paymentOptions, isLastMinute, lateBookingCreditCardRequired)\r\n ? paymentOptions\r\n : paymentOptions.filter(po => po != PaymentOption.BankTransfer);\r\n \r\n const showPaymentOptions = (\r\n (allowBankTransfer(paymentOptions, isLastMinute, lateBookingCreditCardRequired) && allowCreditCard(paymentOptions)) ||\r\n (\r\n allowCreditCard(paymentOptions) &&\r\n hasTwoRates &&\r\n hasTwoCreditCardPaymentOptions(filteredPaymentOptions, allowCreditCardFullAmountWhenTwoRates)\r\n )\r\n );\r\n \r\n const isPayMethodSet = (\r\n payMethod === PaymentOption.BankTransfer ||\r\n payMethod === PaymentOption.CreditCardOneRate ||\r\n payMethod === PaymentOption.CreditCardTwoRates\r\n );\r\n \r\n if (!showPaymentOptions && !isPayMethodSet) {\r\n if (allowCreditCard(paymentOptions)) {\r\n setPayMethod(hasTwoRates ? PaymentOption.CreditCardTwoRates : PaymentOption.CreditCardOneRate);\r\n } else {\r\n setPayMethod(PaymentOption.BankTransfer);\r\n }\r\n }\r\n }\r\n }, [payRatesQuery, paymentOptions, lateBookingCreditCardRequired, allowCreditCardFullAmountWhenTwoRates]);\r\n \r\n const termsQuery = useTermsQuery({\r\n variables: {\r\n lodgingId: searchContext.lodgingId,\r\n arrivalDate: searchContext.arrival\r\n },\r\n });\r\n\r\n const [cachedData, setCachedData] = useState(data);\r\n\r\n useEffect(() => {\r\n if (!loading && data) {\r\n setCachedData(data);\r\n }\r\n }, [loading, data]);\r\n\r\n const [createBooking] = useCreateBookingMutation();\r\n\r\n const handleBook = useCallback(() => {\r\n setCreateBookingResult(null);\r\n if (window.location.search.includes(\"test=1\")) {\r\n setCreateBookingResult({\r\n createBooking: {\r\n success: true,\r\n result: {\r\n resultType: CreateBookingResultType.OrderItem,\r\n bookingOptionNoLongerAvailable: false,\r\n orderItem: {\r\n id: 1,\r\n reservationId: 1337,\r\n type: \"invoice\",\r\n },\r\n },\r\n },\r\n });\r\n } else {\r\n let graphQLPayMethod: GraphQLPaymentOption | null;\r\n if (payMethod === PaymentOption.CreditCardOneRate) {\r\n graphQLPayMethod = GraphQLPaymentOption.CreditCardWithOneRate;\r\n } else if (payMethod === PaymentOption.CreditCardTwoRates) {\r\n graphQLPayMethod = GraphQLPaymentOption.CreditCardWithTwoRates;\r\n } else {\r\n graphQLPayMethod = GraphQLPaymentOption.BankTransfer;\r\n }\r\n \r\n createBooking({\r\n variables: {\r\n request,\r\n payMethod: graphQLPayMethod\r\n },\r\n }).then(result => {\r\n setCreateBookingResult(result.data);\r\n });\r\n }\r\n }, [createBooking, payMethod, request]);\r\n\r\n if (loading && !cachedData) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n if (error) {\r\n return ;\r\n }\r\n\r\n if (data?.checkoutPresentation.available === false) {\r\n return
    Booking Not Avilable
    ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { LodgingCardTranslations } from \"./translations/LodgingCardTranslations\";\r\nimport { LastMinuteQuery } from \"./operations.generated\";\r\nimport LodgingCard2 from \"./LodgingCard2\";\r\nimport \"./CompactDiscountLodgingList.scss\";\r\nimport \"./LodgingList.scss\";\r\nimport useFavorites from \"./shared/useFavorites\";\r\nimport { FavouritesTranslations } from \"./translations/FavouritesTranslations\";\r\nimport {CleaningBannerType, DiscountBannerType} from \"./shared/types\";\r\n\r\nexport function registerTranslations() {\r\n return {\r\n \"lodgingCardTranslations\": \"LodgingCard\",\r\n \"favouritesTranslations\": \"Favourites\"\r\n };\r\n}\r\n\r\nexport default function CompactDiscountLodgingList({\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lastMinute: { results },\r\n lodgingUrlBuilder,\r\n extraFacilities,\r\n emptyResultHtmlContent,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: {\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingUrlBuilder: (l: LastMinuteQuery[\"lastMinute\"][\"results\"][0]) => string;\r\n extraFacilities: number[];\r\n onlyShowFavorites?: boolean;\r\n emptyResultHtmlContent?: string;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n} & LastMinuteQuery) {\r\n let [favorites, setFavorite] = useFavorites();\r\n \r\n if (results.length == 0) {\r\n return
    ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {results.map((result) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { LodgingCardTranslations } from \"@bwp/translations/LodgingCardTranslations\";\r\nimport { FavouritesTranslations } from \"@bwp/translations/FavouritesTranslations\";\r\nimport useLocalSearchContext from \"@bwp/shared/useLocalSearchContext\";\r\nimport { defaultValue } from \"@bwp/shared/helpers\";\r\nimport {formatISO, parse, parseISO} from \"date-fns\";\r\nimport useQueryString from \"@bwp/shared/useQueryString\";\r\nimport { useLastMinuteQuery } from \"@bwp/operations.generated\";\r\nimport { lodgingUrl } from \"@bwp/shared/lodgingurl\";\r\nimport {CleaningBannerType, DiscountBannerType, LodgingListSetting} from \"@bwp/shared/types\";\r\nimport SearchResultListSkeleton from \"@bwp/SearchResultListSkeleton\";\r\nimport CompactDiscountLodgingList from \"@bwp/CompactDiscountLodgingList\";\r\nimport format from \"date-fns/format\";\r\nimport {getSearchContextPropsFromBookingOption, SearchContext} from \"@bwp/shared/searchcontext\";\r\n\r\nexport interface CompactDiscountLodgingListWrapperProps {\r\n lodgingCardTranslations: LodgingCardTranslations;\r\n favouritesTranslations: FavouritesTranslations;\r\n lodgingUrlPattern: string;\r\n includeLodgingIdInUrl?: boolean;\r\n daysAhead: number;\r\n take?: number;\r\n lodgingListSetting: LodgingListSetting;\r\n tagFilter: string;\r\n emptyResultHtmlContent: string;\r\n showProbabilityWithPriceAsBookingOption?: boolean;\r\n showDepositSeparately?: boolean;\r\n showPriceWithoutMandatoryItems?: boolean;\r\n discountBanner?: DiscountBannerType;\r\n cleaningBanner?: CleaningBannerType;\r\n hideLodgingAddress?: boolean;\r\n showItems?: boolean;\r\n itemsToShow?: number[];\r\n maxItemsToShow?: number;\r\n}\r\n\r\nexport default function CompactDiscountLodgingListWrapper({\r\n lodgingCardTranslations,\r\n favouritesTranslations,\r\n lodgingUrlPattern,\r\n includeLodgingIdInUrl,\r\n lodgingListSetting,\r\n daysAhead,\r\n take,\r\n tagFilter,\r\n emptyResultHtmlContent,\r\n showProbabilityWithPriceAsBookingOption,\r\n showDepositSeparately,\r\n showPriceWithoutMandatoryItems,\r\n discountBanner,\r\n cleaningBanner,\r\n hideLodgingAddress,\r\n showItems,\r\n itemsToShow,\r\n maxItemsToShow\r\n}: CompactDiscountLodgingListWrapperProps) {\r\n const [sorting] = useQueryString(\"ord\", null);\r\n\r\n // TODO: These needs to be set somewhere\r\n const numberOfBedroomsFacilityId = 27;\r\n const numberOfBathroomsFacilityId = 35;\r\n const extraFacilities = [numberOfBedroomsFacilityId, numberOfBathroomsFacilityId];\r\n\r\n const [searchContext] = useLocalSearchContext({ defaultValue, lodgingListSetting });\r\n const query = useLastMinuteQuery({\r\n variables: {\r\n query: searchContext.toServerQuery(),\r\n onlyMasterFacilities: [],\r\n onlyFacilities: extraFacilities,\r\n displayDate: formatISO(new Date(), { representation: \"date\" }),\r\n sorting: sorting as any,\r\n take,\r\n daysAhead,\r\n tagFilter,\r\n },\r\n });\r\n\r\n const [numberOfSkeletons, setNumberOfSeletons] = useState(4);\r\n\r\n useEffect(() => {\r\n if (query.data) {\r\n setNumberOfSeletons(query.data.lastMinute.results.length);\r\n }\r\n }, [query.data]);\r\n\r\n if (query.error) {\r\n return
    {query.error}
    ;\r\n }\r\n\r\n if (query.loading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n const ignoredParams = includeLodgingIdInUrl\r\n ? []\r\n : [\"lodgingId\"];\r\n \r\n return (\r\n <>\r\n {\r\n const baseUrl = lodgingUrl(lodgingUrlPattern, result.lodging);\r\n const separator = baseUrl.indexOf('?') === -1 ? \"?\" : \"&\";\r\n const boProps = getSearchContextPropsFromBookingOption({\r\n lodgingId: result.lodging.id,\r\n arrival: parseISO(result.selectedBookingOption.arrival),\r\n duration: result.selectedBookingOption.duration,\r\n adults: result.selectedBookingOption.adults,\r\n children: result.selectedBookingOption.children,\r\n infants: result.selectedBookingOption.infants,\r\n pets: result.selectedBookingOption.pets\r\n });\r\n const qs = SearchContext.createFromSearchContextProps(boProps).toQueryString(ignoredParams);\r\n return `${baseUrl}${separator}${qs}`;\r\n }}\r\n extraFacilities={extraFacilities}\r\n emptyResultHtmlContent={emptyResultHtmlContent}\r\n showProbabilityWithPriceAsBookingOption={showProbabilityWithPriceAsBookingOption}\r\n showDepositSeparately={showDepositSeparately}\r\n showPriceWithoutMandatoryItems={showPriceWithoutMandatoryItems}\r\n discountBanner={discountBanner}\r\n cleaningBanner={cleaningBanner}\r\n hideLodgingAddress={hideLodgingAddress}\r\n showItems={showItems}\r\n itemsToShow={itemsToShow}\r\n maxItemsToShow={maxItemsToShow}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useCallback, useState } from \"react\";\r\n\r\nimport \"./NewsletterSpot.scss\";\r\nimport FieldWithLabel from \"./FieldWithLabel\";\r\nimport Button from \"./Button\";\r\nimport { NewsletterFormTranslations } from \"./translations/NewsletterFormTranslations\";\r\nimport useModal from \"./shared/useModal\";\r\nimport CheckBoxWithLabel from \"./CheckBoxWithLabel\";\r\n\r\nexport interface Props {\r\n onSubmit: (value: SubmitValue) => void;\r\n headline: React.ReactNode;\r\n intro: React.ReactNode;\r\n translations: NewsletterFormTranslations;\r\n imageUrl?: string;\r\n termsHtml: string;\r\n successMessage: string;\r\n showSuccessMessage?: boolean;\r\n}\r\n\r\nexport interface SubmitValue {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport default function NewsletterSpot({\r\n onSubmit,\r\n headline,\r\n intro,\r\n translations,\r\n imageUrl,\r\n termsHtml,\r\n showSuccessMessage,\r\n successMessage,\r\n}: Props) {\r\n const [firstName, setFirstname] = useState();\r\n const [lastName, setLastname] = useState();\r\n const [email, setEmail] = useState();\r\n const [accepted, setAccepted] = useState(false);\r\n const { Modal, showModal, hideModal } = useModal();\r\n\r\n const handleSubmit = useCallback(\r\n (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n onSubmit({\r\n firstName,\r\n lastName,\r\n email,\r\n });\r\n },\r\n [email, firstName, lastName, onSubmit]\r\n );\r\n\r\n const handleLinkClick = useCallback(\r\n (e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n showModal();\r\n },\r\n [showModal]\r\n );\r\n\r\n const handleAccept = useCallback(() => {\r\n setAccepted(true);\r\n hideModal();\r\n }, [hideModal]);\r\n\r\n const newsletterCheckboxLabel = (\r\n
    \r\n {translations.termsCheckBoxText}\r\n \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n
    {headline}
    \r\n
    \r\n

    {intro}

    \r\n {showSuccessMessage && (\r\n

    {successMessage}

    \r\n )}\r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n setAccepted(newValue)}\r\n required={true}\r\n className=\"bwp-newsletter-spot__terms-checkbox\"\r\n />\r\n \r\n \r\n {imageUrl && }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n","import React, { useCallback, useState } from \"react\";\r\nimport NewsletterSpot, { SubmitValue } from \"@bwp/NewsletterSpot\";\r\nimport { NewsletterFormTranslations } from \"@bwp/translations/NewsletterFormTranslations\";\r\nimport { useNewsletterSignupMutation } from \"@bwp/operations.generated\";\r\nimport GraphQLErrorPanel from \"@bwp/GraphQLErrorPanel\";\r\nimport { ApolloError } from \"@apollo/client\";\r\n\r\ninterface Props {\r\n translations: NewsletterFormTranslations;\r\n headline: string;\r\n intro: string;\r\n termsHtml: string;\r\n imageUrl: string;\r\n mailConfigurationId: string;\r\n successMessage: string;\r\n}\r\n\r\nexport default function NewsletterSpotWrapper({\r\n translations,\r\n headline,\r\n intro,\r\n termsHtml,\r\n imageUrl,\r\n mailConfigurationId,\r\n successMessage,\r\n}: Props) {\r\n const [newsletterSignupMutation] = useNewsletterSignupMutation();\r\n const [error, setError] = useState(null);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n const [resetKey, setResetKey] = useState(0);\r\n\r\n const handleSubmit = useCallback(({ firstName, lastName, email }: SubmitValue) => {\r\n setShowSuccessMessage(false);\r\n newsletterSignupMutation({\r\n variables: {\r\n firstName,\r\n lastName,\r\n email,\r\n mailConfigurationId,\r\n newsletterCategories: [1],\r\n },\r\n })\r\n .then(() => {\r\n setShowSuccessMessage(true);\r\n setResetKey((resetKey) => resetKey + 1);\r\n })\r\n .catch((err) => setError(err));\r\n }, []);\r\n\r\n if (error) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* 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","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","import { invariant } from 'hey-listen';\n\nvar prevTime = 0;\nvar onNextFrame = typeof window !== 'undefined' && window.requestAnimationFrame !== undefined ? function (callback) {\n return window.requestAnimationFrame(callback);\n} : function (callback) {\n var timestamp = Date.now();\n var timeToCall = Math.max(0, 16.7 - (timestamp - prevTime));\n prevTime = timestamp + timeToCall;\n setTimeout(function () {\n return callback(prevTime);\n }, timeToCall);\n};\n\nvar createStep = function (setRunNextFrame) {\n var processToRun = [];\n var processToRunNextFrame = [];\n var numThisFrame = 0;\n var isProcessing = false;\n var i = 0;\n var cancelled = new WeakSet();\n var toKeepAlive = new WeakSet();\n var renderStep = {\n cancel: function (process) {\n var indexOfCallback = processToRunNextFrame.indexOf(process);\n cancelled.add(process);\n if (indexOfCallback !== -1) {\n processToRunNextFrame.splice(indexOfCallback, 1);\n }\n },\n process: function (frame) {\n var _a;\n isProcessing = true;\n _a = [processToRunNextFrame, processToRun], processToRun = _a[0], processToRunNextFrame = _a[1];\n processToRunNextFrame.length = 0;\n numThisFrame = processToRun.length;\n if (numThisFrame) {\n var process_1;\n for (i = 0; i < numThisFrame; i++) {\n process_1 = processToRun[i];\n process_1(frame);\n if (toKeepAlive.has(process_1) === true && !cancelled.has(process_1)) {\n renderStep.schedule(process_1);\n setRunNextFrame(true);\n }\n }\n }\n isProcessing = false;\n },\n schedule: function (process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n if (immediate === void 0) {\n immediate = false;\n }\n invariant(typeof process === \"function\", \"Argument must be a function\");\n var addToCurrentBuffer = immediate && isProcessing;\n var buffer = addToCurrentBuffer ? processToRun : processToRunNextFrame;\n cancelled.delete(process);\n if (keepAlive) toKeepAlive.add(process);\n if (buffer.indexOf(process) === -1) {\n buffer.push(process);\n if (addToCurrentBuffer) numThisFrame = processToRun.length;\n }\n }\n };\n return renderStep;\n};\n\nvar maxElapsed = 40;\nvar defaultElapsed = 1 / 60 * 1000;\nvar useDefaultElapsed = true;\nvar willRunNextFrame = false;\nvar isProcessing = false;\nvar frame = {\n delta: 0,\n timestamp: 0\n};\nvar stepsOrder = [\"read\", \"update\", \"preRender\", \"render\", \"postRender\"];\nvar setWillRunNextFrame = function (willRun) {\n return willRunNextFrame = willRun;\n};\nvar steps = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = createStep(setWillRunNextFrame);\n return acc;\n}, {});\nvar sync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n var step = steps[key];\n acc[key] = function (process, keepAlive, immediate) {\n if (keepAlive === void 0) {\n keepAlive = false;\n }\n if (immediate === void 0) {\n immediate = false;\n }\n if (!willRunNextFrame) startLoop();\n step.schedule(process, keepAlive, immediate);\n return process;\n };\n return acc;\n}, {});\nvar cancelSync = /*#__PURE__*/stepsOrder.reduce(function (acc, key) {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nvar processStep = function (stepId) {\n return steps[stepId].process(frame);\n};\nvar processFrame = function (timestamp) {\n willRunNextFrame = false;\n frame.delta = useDefaultElapsed ? defaultElapsed : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n if (!useDefaultElapsed) defaultElapsed = frame.delta;\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (willRunNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nvar startLoop = function () {\n willRunNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing) onNextFrame(processFrame);\n};\nvar getFrameData = function () {\n return frame;\n};\n\nexport default sync;\nexport { cancelSync, getFrameData };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* 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","/*! *****************************************************************************\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","import { __assign } from 'tslib';\n\nvar clamp = function (min, max) { return function (v) {\r\n return Math.max(Math.min(v, max), min);\r\n}; };\r\nvar sanitize = function (v) { return (v % 1 ? Number(v.toFixed(5)) : v); };\r\nvar floatRegex = /(-)?(\\d[\\d\\.]*)/g;\r\nvar colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\r\nvar singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\n\nvar number = {\r\n test: function (v) { return typeof v === 'number'; },\r\n parse: parseFloat,\r\n transform: function (v) { return v; }\r\n};\r\nvar alpha = __assign(__assign({}, number), { transform: clamp(0, 1) });\r\nvar scale = __assign(__assign({}, number), { default: 1 });\n\nvar createUnitType = function (unit) { return ({\r\n test: function (v) {\r\n return typeof v === 'string' && v.endsWith(unit) && v.split(' ').length === 1;\r\n },\r\n parse: parseFloat,\r\n transform: function (v) { return \"\" + v + unit; }\r\n}); };\r\nvar degrees = createUnitType('deg');\r\nvar percent = createUnitType('%');\r\nvar px = createUnitType('px');\r\nvar vh = createUnitType('vh');\r\nvar vw = createUnitType('vw');\r\nvar progressPercentage = __assign(__assign({}, percent), { parse: function (v) { return percent.parse(v) / 100; }, transform: function (v) { return percent.transform(v * 100); } });\n\nvar getValueFromFunctionString = function (value) {\r\n return value.substring(value.indexOf('(') + 1, value.lastIndexOf(')'));\r\n};\r\nvar clampRgbUnit = clamp(0, 255);\r\nvar isRgba = function (v) { return v.red !== undefined; };\r\nvar isHsla = function (v) { return v.hue !== undefined; };\r\nfunction getValuesAsArray(value) {\r\n return getValueFromFunctionString(value)\r\n .replace(/(,|\\/)/g, ' ')\r\n .split(/ \\s*/);\r\n}\r\nvar splitColorValues = function (terms) {\r\n return function (v) {\r\n if (typeof v !== 'string')\r\n return v;\r\n var values = {};\r\n var valuesArray = getValuesAsArray(v);\r\n for (var i = 0; i < 4; i++) {\r\n values[terms[i]] =\r\n valuesArray[i] !== undefined ? parseFloat(valuesArray[i]) : 1;\r\n }\r\n return values;\r\n };\r\n};\r\nvar rgbaTemplate = function (_a) {\r\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha = _b === void 0 ? 1 : _b;\r\n return \"rgba(\" + red + \", \" + green + \", \" + blue + \", \" + alpha + \")\";\r\n};\r\nvar hslaTemplate = function (_a) {\r\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha = _b === void 0 ? 1 : _b;\r\n return \"hsla(\" + hue + \", \" + saturation + \", \" + lightness + \", \" + alpha + \")\";\r\n};\r\nvar rgbUnit = __assign(__assign({}, number), { transform: function (v) { return Math.round(clampRgbUnit(v)); } });\r\nfunction isColorString(color, colorType) {\r\n return color.startsWith(colorType) && singleColorRegex.test(color);\r\n}\r\nvar rgba = {\r\n test: function (v) { return (typeof v === 'string' ? isColorString(v, 'rgb') : isRgba(v)); },\r\n parse: splitColorValues(['red', 'green', 'blue', 'alpha']),\r\n transform: function (_a) {\r\n var red = _a.red, green = _a.green, blue = _a.blue, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\r\n return rgbaTemplate({\r\n red: rgbUnit.transform(red),\r\n green: rgbUnit.transform(green),\r\n blue: rgbUnit.transform(blue),\r\n alpha: sanitize(alpha.transform(alpha$1))\r\n });\r\n }\r\n};\r\nvar hsla = {\r\n test: function (v) { return (typeof v === 'string' ? isColorString(v, 'hsl') : isHsla(v)); },\r\n parse: splitColorValues(['hue', 'saturation', 'lightness', 'alpha']),\r\n transform: function (_a) {\r\n var hue = _a.hue, saturation = _a.saturation, lightness = _a.lightness, _b = _a.alpha, alpha$1 = _b === void 0 ? 1 : _b;\r\n return hslaTemplate({\r\n hue: Math.round(hue),\r\n saturation: percent.transform(sanitize(saturation)),\r\n lightness: percent.transform(sanitize(lightness)),\r\n alpha: sanitize(alpha.transform(alpha$1))\r\n });\r\n }\r\n};\r\nvar hex = __assign(__assign({}, rgba), { test: function (v) { return typeof v === 'string' && isColorString(v, '#'); }, parse: function (v) {\r\n var r = '';\r\n var g = '';\r\n var b = '';\r\n if (v.length > 4) {\r\n r = v.substr(1, 2);\r\n g = v.substr(3, 2);\r\n b = v.substr(5, 2);\r\n }\r\n else {\r\n r = v.substr(1, 1);\r\n g = v.substr(2, 1);\r\n b = v.substr(3, 1);\r\n r += r;\r\n g += g;\r\n b += b;\r\n }\r\n return {\r\n red: parseInt(r, 16),\r\n green: parseInt(g, 16),\r\n blue: parseInt(b, 16),\r\n alpha: 1\r\n };\r\n } });\r\nvar color = {\r\n test: function (v) {\r\n return (typeof v === 'string' && singleColorRegex.test(v)) ||\r\n isRgba(v) ||\r\n isHsla(v);\r\n },\r\n parse: function (v) {\r\n if (rgba.test(v)) {\r\n return rgba.parse(v);\r\n }\r\n else if (hsla.test(v)) {\r\n return hsla.parse(v);\r\n }\r\n else if (hex.test(v)) {\r\n return hex.parse(v);\r\n }\r\n return v;\r\n },\r\n transform: function (v) {\r\n if (isRgba(v)) {\r\n return rgba.transform(v);\r\n }\r\n else if (isHsla(v)) {\r\n return hsla.transform(v);\r\n }\r\n return v;\r\n }\r\n};\n\nvar COLOR_TOKEN = '${c}';\r\nvar NUMBER_TOKEN = '${n}';\r\nvar convertNumbersToZero = function (v) {\r\n return typeof v === 'number' ? 0 : v;\r\n};\r\nvar complex = {\r\n test: function (v) {\r\n if (typeof v !== 'string' || !isNaN(v))\r\n return false;\r\n var numValues = 0;\r\n var foundNumbers = v.match(floatRegex);\r\n var foundColors = v.match(colorRegex);\r\n if (foundNumbers)\r\n numValues += foundNumbers.length;\r\n if (foundColors)\r\n numValues += foundColors.length;\r\n return numValues > 0;\r\n },\r\n parse: function (v) {\r\n var input = v;\r\n var parsed = [];\r\n var foundColors = input.match(colorRegex);\r\n if (foundColors) {\r\n input = input.replace(colorRegex, COLOR_TOKEN);\r\n parsed.push.apply(parsed, foundColors.map(color.parse));\r\n }\r\n var foundNumbers = input.match(floatRegex);\r\n if (foundNumbers) {\r\n parsed.push.apply(parsed, foundNumbers.map(number.parse));\r\n }\r\n return parsed;\r\n },\r\n createTransformer: function (prop) {\r\n var template = prop;\r\n var token = 0;\r\n var foundColors = prop.match(colorRegex);\r\n var numColors = foundColors ? foundColors.length : 0;\r\n if (foundColors) {\r\n for (var i = 0; i < numColors; i++) {\r\n template = template.replace(foundColors[i], COLOR_TOKEN);\r\n token++;\r\n }\r\n }\r\n var foundNumbers = template.match(floatRegex);\r\n var numNumbers = foundNumbers ? foundNumbers.length : 0;\r\n if (foundNumbers) {\r\n for (var i = 0; i < numNumbers; i++) {\r\n template = template.replace(foundNumbers[i], NUMBER_TOKEN);\r\n token++;\r\n }\r\n }\r\n return function (v) {\r\n var output = template;\r\n for (var i = 0; i < token; i++) {\r\n output = output.replace(i < numColors ? COLOR_TOKEN : NUMBER_TOKEN, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\r\n }\r\n return output;\r\n };\r\n },\r\n getAnimatableNone: function (target) {\r\n var parsedTarget = complex.parse(target);\r\n var targetTransformer = complex.createTransformer(target);\r\n return targetTransformer(parsedTarget.map(convertNumbersToZero));\r\n }\r\n};\n\nexport { alpha, color, complex, degrees, hex, hsla, number, percent, progressPercentage, px, rgbUnit, rgba, scale, vh, vw };\n","import { __rest, __assign, __spreadArrays } from 'tslib';\nimport { warning, invariant } from 'hey-listen';\nimport { hex, rgba, hsla, complex, color } from 'style-value-types';\nimport sync, { cancelSync, getFrameData } from 'framesync';\n\nvar clamp = function (min, max, v) {\n return Math.min(Math.max(v, min), max);\n};\n\nvar safeMin = 0.001;\nvar minDuration = 0.01;\nvar maxDuration = 10.0;\nvar minDamping = 0.05;\nvar maxDamping = 1;\nfunction findSpring(_a) {\n var _b = _a.duration,\n duration = _b === void 0 ? 800 : _b,\n _c = _a.bounce,\n bounce = _c === void 0 ? 0.25 : _c,\n _d = _a.velocity,\n velocity = _d === void 0 ? 0 : _d,\n _e = _a.mass,\n mass = _e === void 0 ? 1 : _e;\n var envelope;\n var derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n var dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = function (undampedFreq) {\n var exponentialDecay = undampedFreq * dampingRatio;\n var delta = exponentialDecay * duration;\n var a = exponentialDecay - velocity;\n var b = calcAngularFreq(undampedFreq, dampingRatio);\n var c = Math.exp(-delta);\n return safeMin - a / b * c;\n };\n derivative = function (undampedFreq) {\n var exponentialDecay = undampedFreq * dampingRatio;\n var delta = exponentialDecay * duration;\n var d = delta * velocity + velocity;\n var e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n var f = Math.exp(-delta);\n var g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n var factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return factor * ((d - e) * f) / g;\n };\n } else {\n envelope = function (undampedFreq) {\n var a = Math.exp(-undampedFreq * duration);\n var b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = function (undampedFreq) {\n var a = Math.exp(-undampedFreq * duration);\n var b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n var initialGuess = 5 / duration;\n var undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10\n };\n } else {\n var stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness: stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness)\n };\n }\n}\nvar rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n var result = initialGuess;\n for (var i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some(function (key) {\n return options[key] !== undefined;\n });\n}\nfunction getSpringOptions(options) {\n var springOptions = __assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n var derived = findSpring(options);\n springOptions = __assign(__assign(__assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0.0 : _b,\n _c = _a.to,\n to = _c === void 0 ? 1.0 : _c,\n _d = _a.restSpeed,\n restSpeed = _d === void 0 ? 2 : _d,\n restDelta = _a.restDelta,\n options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n var state = { done: false, value: from };\n var _e = getSpringOptions(options),\n stiffness = _e.stiffness,\n damping = _e.damping,\n mass = _e.mass,\n velocity = _e.velocity,\n isResolvedFromDuration = _e.isResolvedFromDuration;\n var resolveSpring = zero;\n var resolveVelocity = zero;\n function createSpring() {\n var initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n var initialDelta = to - from;\n var dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n var undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n restDelta !== null && restDelta !== void 0 ? restDelta : restDelta = Math.abs(to - from) <= 1 ? 0.01 : 0.4;\n if (dampingRatio < 1) {\n var angularFreq_1 = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = function (t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 * Math.sin(angularFreq_1 * t) + initialDelta * Math.cos(angularFreq_1 * t));\n };\n resolveVelocity = function (t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return dampingRatio * undampedAngularFreq * envelope * (Math.sin(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq_1 + initialDelta * Math.cos(angularFreq_1 * t)) - envelope * (Math.cos(angularFreq_1 * t) * (initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) - angularFreq_1 * initialDelta * Math.sin(angularFreq_1 * t));\n };\n } else if (dampingRatio === 1) {\n resolveSpring = function (t) {\n return to - Math.exp(-undampedAngularFreq * t) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t);\n };\n } else {\n var dampedAngularFreq_1 = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = function (t) {\n var envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n var freqForT = Math.min(dampedAngularFreq_1 * t, 300);\n return to - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq_1 * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq_1;\n };\n }\n }\n createSpring();\n return {\n next: function (t) {\n var current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n var currentVelocity = resolveVelocity(t) * 1000;\n var isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n var isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n } else {\n state.done = t >= options.duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: function () {\n var _a;\n velocity = -velocity;\n _a = [to, from], from = _a[0], to = _a[1];\n createSpring();\n }\n };\n}\nspring.needsInterpolation = function (a, b) {\n return typeof a === \"string\" || typeof b === \"string\";\n};\nvar zero = function (_t) {\n return 0;\n};\n\nvar progress = function (from, to, value) {\n var toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nvar mix = function (from, to, progress) {\n return -progress * from + progress * to + from;\n};\n\nvar mixLinearColor = function (from, to, v) {\n var fromExpo = from * from;\n var toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nvar colorTypes = [hex, rgba, hsla];\nvar getColorType = function (v) {\n return colorTypes.find(function (type) {\n return type.test(v);\n });\n};\nvar notAnimatable = function (color) {\n return \"'\" + color + \"' is not an animatable color. Use the equivalent color code instead.\";\n};\nvar mixColor = function (from, to) {\n var fromColorType = getColorType(from);\n var toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n invariant(fromColorType.transform === toColorType.transform, 'Both colors must be hex/RGBA, OR both must be HSLA.');\n var fromColor = fromColorType.parse(from);\n var toColor = toColorType.parse(to);\n var blended = __assign({}, fromColor);\n var mixFunc = fromColorType === hsla ? mix : mixLinearColor;\n return function (v) {\n for (var key in blended) {\n if (key !== 'alpha') {\n blended[key] = mixFunc(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nvar zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nvar isNum = function (v) {\n return typeof v === 'number';\n};\n\nvar combineFunctions = function (a, b) {\n return function (v) {\n return b(a(v));\n };\n};\nvar pipe = function () {\n var transformers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n transformers[_i] = arguments[_i];\n }\n return transformers.reduce(combineFunctions);\n};\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return function (v) {\n return mix(origin, target, v);\n };\n } else if (color.test(origin)) {\n return mixColor(origin, target);\n } else {\n return mixComplex(origin, target);\n }\n}\nvar mixArray = function (from, to) {\n var output = __spreadArrays(from);\n var numValues = output.length;\n var blendValue = from.map(function (fromThis, i) {\n return getMixer(fromThis, to[i]);\n });\n return function (v) {\n for (var i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nvar mixObject = function (origin, target) {\n var output = __assign(__assign({}, origin), target);\n var blendValue = {};\n for (var key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return function (v) {\n for (var key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n var parsed = complex.parse(value);\n var numValues = parsed.length;\n var numNumbers = 0;\n var numRGB = 0;\n var numHSL = 0;\n for (var i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === 'number') {\n numNumbers++;\n } else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n } else {\n numRGB++;\n }\n }\n }\n return { parsed: parsed, numNumbers: numNumbers, numRGB: numRGB, numHSL: numHSL };\n}\nvar mixComplex = function (origin, target) {\n var template = complex.createTransformer(target);\n var originStats = analyse(origin);\n var targetStats = analyse(target);\n invariant(originStats.numHSL === targetStats.numHSL && originStats.numRGB === targetStats.numRGB && originStats.numNumbers >= targetStats.numNumbers, \"Complex values '\" + origin + \"' and '\" + target + \"' too different to mix. Ensure all colors are of the same type.\");\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n};\n\nvar mixNumber = function (from, to) {\n return function (p) {\n return mix(from, to, p);\n };\n};\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n } else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n } else {\n return mixComplex;\n }\n } else if (Array.isArray(v)) {\n return mixArray;\n } else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n var mixers = [];\n var mixerFactory = customMixer || detectMixerFactory(output[0]);\n var numMixers = output.length - 1;\n for (var i = 0; i < numMixers; i++) {\n var mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n var easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate(_a, _b) {\n var from = _a[0],\n to = _a[1];\n var mixer = _b[0];\n return function (v) {\n return mixer(progress(from, to, v));\n };\n}\nfunction slowInterpolate(input, mixers) {\n var inputLength = input.length;\n var lastInputIndex = inputLength - 1;\n return function (v) {\n var mixerIndex = 0;\n var foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n } else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n var i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n var progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.clamp,\n isClamp = _c === void 0 ? true : _c,\n ease = _b.ease,\n mixer = _b.mixer;\n var inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n var mixers = createMixers(output, ease, mixer);\n var interpolator = inputLength === 2 ? fastInterpolate(input, mixers) : slowInterpolate(input, mixers);\n return isClamp ? function (v) {\n return interpolator(clamp(input[0], input[inputLength - 1], v));\n } : interpolator;\n}\n\nvar reverseEasing = function (easing) {\n return function (p) {\n return 1 - easing(1 - p);\n };\n};\nvar mirrorEasing = function (easing) {\n return function (p) {\n return p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n };\n};\nvar createExpoIn = function (power) {\n return function (p) {\n return Math.pow(p, power);\n };\n};\nvar createBackIn = function (power) {\n return function (p) {\n return p * p * ((power + 1) * p - power);\n };\n};\nvar createAnticipate = function (power) {\n var backEasing = createBackIn(power);\n return function (p) {\n return (p *= 2) < 1 ? 0.5 * backEasing(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n };\n};\n\nvar DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nvar BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nvar BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nvar BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nvar linear = function (p) {\n return p;\n};\nvar easeIn = /*#__PURE__*/createExpoIn(2);\nvar easeOut = /*#__PURE__*/reverseEasing(easeIn);\nvar easeInOut = /*#__PURE__*/mirrorEasing(easeIn);\nvar circIn = function (p) {\n return 1 - Math.sin(Math.acos(p));\n};\nvar circOut = /*#__PURE__*/reverseEasing(circIn);\nvar circInOut = /*#__PURE__*/mirrorEasing(circOut);\nvar backIn = /*#__PURE__*/createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nvar backOut = /*#__PURE__*/reverseEasing(backIn);\nvar backInOut = /*#__PURE__*/mirrorEasing(backIn);\nvar anticipate = /*#__PURE__*/createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nvar ca = 4356.0 / 361.0;\nvar cb = 35442.0 / 1805.0;\nvar cc = 16061.0 / 1805.0;\nvar bounceOut = function (p) {\n if (p === 1 || p === 0) return p;\n var p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD ? 7.5625 * p2 : p < BOUNCE_SECOND_THRESHOLD ? 9.075 * p2 - 9.9 * p + 3.4 : p < BOUNCE_THIRD_THRESHOLD ? ca * p2 - cb * p + cc : 10.8 * p * p - 20.52 * p + 10.72;\n};\nvar bounceIn = /*#__PURE__*/reverseEasing(bounceOut);\nvar bounceInOut = function (p) {\n return p < 0.5 ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0)) : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n};\n\nfunction defaultEasing(values, easing) {\n return values.map(function () {\n return easing || easeInOut;\n }).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n var numValues = values.length;\n return values.map(function (_value, i) {\n return i !== 0 ? i / (numValues - 1) : 0;\n });\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map(function (o) {\n return o * duration;\n });\n}\nfunction keyframes(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0 : _b,\n _c = _a.to,\n to = _c === void 0 ? 1 : _c,\n ease = _a.ease,\n offset = _a.offset,\n _d = _a.duration,\n duration = _d === void 0 ? 300 : _d;\n var state = { done: false, value: from };\n var values = Array.isArray(to) ? to : [from, to];\n var times = convertOffsetToTimes(offset !== null && offset !== void 0 ? offset : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease)\n });\n }\n var interpolator = createInterpolator();\n return {\n next: function (t) {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: function () {\n values.reverse();\n interpolator = createInterpolator();\n }\n };\n}\n\nfunction decay(_a) {\n var _b = _a.velocity,\n velocity = _b === void 0 ? 0 : _b,\n _c = _a.from,\n from = _c === void 0 ? 0 : _c,\n _d = _a.power,\n power = _d === void 0 ? 0.8 : _d,\n _e = _a.timeConstant,\n timeConstant = _e === void 0 ? 350 : _e,\n _f = _a.restDelta,\n restDelta = _f === void 0 ? 0.5 : _f,\n modifyTarget = _a.modifyTarget;\n var state = { done: false, value: from };\n var amplitude = power * velocity;\n var ideal = from + amplitude;\n var target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal) amplitude = target - from;\n return {\n next: function (t) {\n var delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: function () {}\n };\n}\n\nvar types = { keyframes: keyframes, spring: spring, decay: decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n } else if (types[config.type]) {\n return types[config.type];\n }\n var keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") || keys.has(\"duration\") && !keys.has(\"dampingRatio\")) {\n return keyframes;\n } else if (keys.has(\"dampingRatio\") || keys.has(\"stiffness\") || keys.has(\"mass\") || keys.has(\"damping\") || keys.has(\"restSpeed\") || keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nfunction loopElapsed(elapsed, duration, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay, isForwardPlayback) {\n if (delay === void 0) {\n delay = 0;\n }\n if (isForwardPlayback === void 0) {\n isForwardPlayback = true;\n }\n return isForwardPlayback ? loopElapsed(duration + -elapsed, duration, delay) : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nvar framesync = function (update) {\n var passTimestamp = function (_a) {\n var delta = _a.delta;\n return update(delta);\n };\n return {\n start: function () {\n return sync.update(passTimestamp, true, true);\n },\n stop: function () {\n return cancelSync.update(passTimestamp);\n }\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var from = _a.from,\n _d = _a.autoplay,\n autoplay = _d === void 0 ? true : _d,\n _e = _a.driver,\n driver = _e === void 0 ? framesync : _e,\n _f = _a.elapsed,\n elapsed = _f === void 0 ? 0 : _f,\n _g = _a.repeat,\n repeatMax = _g === void 0 ? 0 : _g,\n _h = _a.repeatType,\n repeatType = _h === void 0 ? \"loop\" : _h,\n _j = _a.repeatDelay,\n repeatDelay = _j === void 0 ? 0 : _j,\n onPlay = _a.onPlay,\n onStop = _a.onStop,\n onComplete = _a.onComplete,\n onRepeat = _a.onRepeat,\n onUpdate = _a.onUpdate,\n options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n var to = options.to;\n var driverControls;\n var repeatCount = 0;\n var computedDuration = options.duration;\n var latest;\n var isComplete = false;\n var isForwardPlayback = true;\n var interpolateFromNumber;\n var animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false\n });\n from = 0;\n to = 100;\n }\n var animation = animator(__assign(__assign({}, options), { from: from, to: to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n } else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\") animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback) delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n var state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber) latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0) computedDuration !== null && computedDuration !== void 0 ? computedDuration : computedDuration = elapsed;\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n } else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: function () {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n }\n };\n}\n\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nfunction inertia(_a) {\n var _b = _a.from,\n from = _b === void 0 ? 0 : _b,\n _c = _a.velocity,\n velocity = _c === void 0 ? 0 : _c,\n min = _a.min,\n max = _a.max,\n _d = _a.power,\n power = _d === void 0 ? 0.8 : _d,\n _e = _a.timeConstant,\n timeConstant = _e === void 0 ? 750 : _e,\n _f = _a.bounceStiffness,\n bounceStiffness = _f === void 0 ? 500 : _f,\n _g = _a.bounceDamping,\n bounceDamping = _g === void 0 ? 10 : _g,\n _h = _a.restDelta,\n restDelta = _h === void 0 ? 1 : _h,\n modifyTarget = _a.modifyTarget,\n driver = _a.driver,\n onUpdate = _a.onUpdate,\n onComplete = _a.onComplete;\n var currentAnimation;\n function isOutOfBounds(v) {\n return min !== undefined && v < min || max !== undefined && v > max;\n }\n function boundaryNearest(v) {\n if (min === undefined) return max;\n if (max === undefined) return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(__assign(__assign({}, options), { driver: driver, onUpdate: function (v) {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete: onComplete }));\n }\n function startSpring(options) {\n startAnimation(__assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta: restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from: from, velocity: velocity, to: boundaryNearest(from) });\n } else {\n var target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\") target = modifyTarget(target);\n var boundary_1 = boundaryNearest(target);\n var heading_1 = boundary_1 === min ? -1 : 1;\n var prev_1;\n var current_1;\n var checkBoundary = function (v) {\n prev_1 = current_1;\n current_1 = v;\n velocity = velocityPerSecond(v - prev_1, getFrameData().delta);\n if (heading_1 === 1 && v > boundary_1 || heading_1 === -1 && v < boundary_1) {\n startSpring({ from: v, to: boundary_1, velocity: velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from: from,\n velocity: velocity,\n timeConstant: timeConstant,\n power: power,\n restDelta: restDelta,\n modifyTarget: modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined\n });\n }\n return {\n stop: function () {\n return currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n }\n };\n}\n\nvar radiansToDegrees = function (radians) {\n return radians * 180 / Math.PI;\n};\n\nvar angle = function (a, b) {\n if (b === void 0) {\n b = zeroPoint;\n }\n return radiansToDegrees(Math.atan2(b.y - a.y, b.x - a.x));\n};\n\nvar applyOffset = function (from, to) {\n var hasReceivedFrom = true;\n if (to === undefined) {\n to = from;\n hasReceivedFrom = false;\n }\n return function (v) {\n if (hasReceivedFrom) {\n return v - from + to;\n } else {\n from = v;\n hasReceivedFrom = true;\n return to;\n }\n };\n};\n\nvar identity = function (v) {\n return v;\n};\nvar createAttractor = function (alterDisplacement) {\n if (alterDisplacement === void 0) {\n alterDisplacement = identity;\n }\n return function (constant, origin, v) {\n var displacement = origin - v;\n var springModifiedDisplacement = -(0 - constant + 1) * (0 - alterDisplacement(Math.abs(displacement)));\n return displacement <= 0 ? origin + springModifiedDisplacement : origin - springModifiedDisplacement;\n };\n};\nvar attract = /*#__PURE__*/createAttractor();\nvar attractExpo = /*#__PURE__*/createAttractor(Math.sqrt);\n\nvar degreesToRadians = function (degrees) {\n return degrees * Math.PI / 180;\n};\n\nvar isPoint = function (point) {\n return point.hasOwnProperty('x') && point.hasOwnProperty('y');\n};\n\nvar isPoint3D = function (point) {\n return isPoint(point) && point.hasOwnProperty('z');\n};\n\nvar distance1D = function (a, b) {\n return Math.abs(a - b);\n};\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n } else if (isPoint(a) && isPoint(b)) {\n var xDelta = distance1D(a.x, b.x);\n var yDelta = distance1D(a.y, b.y);\n var zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nvar pointFromVector = function (origin, angle, distance) {\n angle = degreesToRadians(angle);\n return {\n x: distance * Math.cos(angle) + origin.x,\n y: distance * Math.sin(angle) + origin.y\n };\n};\n\nvar toDecimal = function (num, precision) {\n if (precision === void 0) {\n precision = 2;\n }\n precision = Math.pow(10, precision);\n return Math.round(num * precision) / precision;\n};\n\nvar smoothFrame = function (prevValue, nextValue, duration, smoothing) {\n if (smoothing === void 0) {\n smoothing = 0;\n }\n return toDecimal(prevValue + duration * (nextValue - prevValue) / Math.max(smoothing, duration));\n};\n\nvar smooth = function (strength) {\n if (strength === void 0) {\n strength = 50;\n }\n var previousValue = 0;\n var lastUpdated = 0;\n return function (v) {\n var currentFramestamp = getFrameData().timestamp;\n var timeDelta = currentFramestamp !== lastUpdated ? currentFramestamp - lastUpdated : 0;\n var newValue = timeDelta ? smoothFrame(previousValue, v, timeDelta, strength) : previousValue;\n lastUpdated = currentFramestamp;\n previousValue = newValue;\n return newValue;\n };\n};\n\nvar snap = function (points) {\n if (typeof points === 'number') {\n return function (v) {\n return Math.round(v / points) * points;\n };\n } else {\n var i_1 = 0;\n var numPoints_1 = points.length;\n return function (v) {\n var lastDistance = Math.abs(points[0] - v);\n for (i_1 = 1; i_1 < numPoints_1; i_1++) {\n var point = points[i_1];\n var distance = Math.abs(point - v);\n if (distance === 0) return point;\n if (distance > lastDistance) return points[i_1 - 1];\n if (i_1 === numPoints_1 - 1) return point;\n lastDistance = distance;\n }\n };\n }\n};\n\nfunction velocityPerFrame(xps, frameDuration) {\n return xps / (1000 / frameDuration);\n}\n\nvar wrap = function (min, max, v) {\n var rangeSize = max - min;\n return ((v - min) % rangeSize + rangeSize) % rangeSize + min;\n};\n\nvar a = function (a1, a2) {\n return 1.0 - 3.0 * a2 + 3.0 * a1;\n};\nvar b = function (a1, a2) {\n return 3.0 * a2 - 6.0 * a1;\n};\nvar c = function (a1) {\n return 3.0 * a1;\n};\nvar calcBezier = function (t, a1, a2) {\n return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\nvar getSlope = function (t, a1, a2) {\n return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\nvar subdivisionPrecision = 0.0000001;\nvar subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX;\n var currentT;\n var i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);\n return currentT;\n}\nvar newtonIterations = 8;\nvar newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < newtonIterations; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2) return linear;\n var sampleValues = new Float32Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function (t) {\n return t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n };\n}\n\nvar steps = function (steps, direction) {\n if (direction === void 0) {\n direction = 'end';\n }\n return function (progress) {\n progress = direction === 'end' ? Math.min(progress, 0.999) : Math.max(progress, 0.001);\n var expanded = progress * steps;\n var rounded = direction === 'end' ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n };\n};\n\nexport { angle, animate, anticipate, applyOffset, attract, attractExpo, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, clamp, createAnticipate, createAttractor, createBackIn, createExpoIn, cubicBezier, decay, degreesToRadians, distance, easeIn, easeInOut, easeOut, inertia, interpolate, isPoint, isPoint3D, keyframes, linear, mirrorEasing, mix, mixColor, mixComplex, pipe, pointFromVector, progress, radiansToDegrees, reverseEasing, smooth, smoothFrame, snap, spring, steps, toDecimal, velocityPerFrame, velocityPerSecond, wrap };\n","import { __values, __read, __assign, __rest, __spread, __extends } from 'tslib';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { velocityPerSecond, cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut, inertia, animate as animate$1, mix, clamp, distance, progress, pipe, interpolate, wrap } from 'popmotion';\nimport { invariant, warning } from 'hey-listen';\nimport { complex, number, color, px, percent, degrees, vw, vh, scale, alpha, progressPercentage } from 'style-value-types';\nimport React, { useRef, createContext, useContext, useEffect, createElement, useMemo, useLayoutEffect, forwardRef, Fragment, Component as Component$1, useCallback, useState, cloneElement, Children, isValidElement } from 'react';\n\nvar isRefObject = function (ref) {\n return typeof ref === \"object\" && ref.hasOwnProperty(\"current\");\n};\n\n/**\n * A generic subscription manager.\n */\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = new Set();\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n this.subscriptions.add(handler);\n return function () { return void _this.subscriptions.delete(handler); };\n };\n SubscriptionManager.prototype.notify = function (\n /**\n * Using ...args would be preferable but it's array creation and this\n * might be fired every frame.\n */\n a, b, c) {\n var e_1, _a;\n if (!this.subscriptions.size)\n return;\n try {\n for (var _b = __values(this.subscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n handler(a, b, c);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.clear();\n };\n return SubscriptionManager;\n}());\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n function MotionValue(init) {\n var _this = this;\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n }\n };\n this.set(init, false);\n this.canTrackVelocity = isFloat(this.current);\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * @library\n *\n * ```jsx\n * function MyComponent() {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @motion\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @internalremarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\n };\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\n return this.prev;\n };\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n };\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\n };\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\n/**\n * @internal\n */\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\" + definition + \"'\");\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nvar isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restDelta: 0.5,\n restSpeed: 10,\n}); };\nvar overDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 100 : 30,\n restDelta: 0.01,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: overDampedSpring,\n scaleY: overDampedSpring,\n scale: overDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: overDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n var when = _a.when, delay = _a.delay, delayChildren = _a.delayChildren, staggerChildren = _a.staggerChildren, staggerDirection = _a.staggerDirection, repeat = _a.repeat, repeatType = _a.repeatType, repeatDelay = _a.repeatDelay, from = _a.from, transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var yoyo = _a.yoyo, loop = _a.loop, flip = _a.flip, ease = _a.ease, times = _a.times, transition = __rest(_a, [\"yoyo\", \"loop\", \"flip\", \"ease\", \"times\"]);\n var options = __assign({}, transition);\n if (times) {\n options.offset = times;\n }\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b, _c, _d, _e;\n return ((_e = (_d = (_b = (_a = transition[key]) === null || _a === void 0 ? void 0 : _a.delay) !== null && _b !== void 0 ? _b : (_c = transition[\"default\"]) === null || _c === void 0 ? void 0 : _c.delay) !== null && _d !== void 0 ? _d : transition.delay) !== null && _e !== void 0 ? _e : 0);\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spread(options.to);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n origin = complex.getAnimatableNone(target);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \" + key + \" from \\\"\" + origin + \"\\\" to \\\"\" + target + \"\\\". \" + origin + \" is not an animatable value - to enable this animation set \" + origin + \" to a value animatable to \" + target + \" via the `style` property.\");\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate$1(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a;\n value.set(target);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\n/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n/**\n * ValueType for ints\n */\nvar int = __assign(__assign({}, number), { transform: Math.round });\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = {\n // Color props\n color: color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale: scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spread(dimensionValueTypes, [color, complex]);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\n/**\n * Decides if the supplied variable is a function that returns a variant\n */\nfunction isVariantResolver(variant) {\n return typeof variant === \"function\";\n}\n/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\n/**\n * Resovles a variant if it's a variant resolver\n */\nfunction resolveVariant(visualElement, variant, custom) {\n var resolved = {};\n if (!variant) {\n return resolved;\n }\n else if (isVariantResolver(variant)) {\n resolved = variant(custom !== null && custom !== void 0 ? custom : visualElement.getVariantPayload(), getCurrent(visualElement), getVelocity(visualElement));\n }\n else {\n resolved = variant;\n }\n return __assign({ transition: visualElement.getDefaultTransition() }, resolved);\n}\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition, _a) {\n var priority = (_a === void 0 ? {} : _a).priority;\n var _b = visualElement.makeTargetAnimatable(resolveVariant(visualElement, definition), false), _c = _b.transitionEnd, transitionEnd = _c === void 0 ? {} : _c, transition = _b.transition, target = __rest(_b, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n if (!priority)\n visualElement.baseTarget[key] = value;\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spread(variantLabels).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n setTarget(visualElement, visualElement.getVariant(key));\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n var _c;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n // If this is a keyframes value, we can attempt to use the first value in the\n // array as that's going to be the first value of the animation anyway\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n // If it isn't a keyframes or the first keyframes value was set as `null`, read the\n // value from the DOM. It might be worth investigating whether to check props (for SVG)\n // or props.style (for HTML) if the value exists there before attempting to read.\n if (value === null) {\n var readValue = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readNativeValue(key);\n value = readValue !== undefined ? readValue : target[key];\n invariant(value !== null, \"No initial value for \\\"\" + key + \"\\\" can be inferred. Ensure an initial value for \\\"\" + key + \"\\\" is defined on the component.\");\n }\n if (typeof value === \"string\" && isNumericalString(value)) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n value = complex.getAnimatableNone(targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_b = (_c = origin)[key]) !== null && _b !== void 0 ? _b : (_c[key] = value);\n visualElement.baseTarget[key] = value;\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] = (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\n/**\n * @internal\n */\nfunction startVisualElementAnimation(visualElement, definition, opts) {\n if (opts === void 0) { opts = {}; }\n if (opts.priority) {\n visualElement.activeOverrides.add(opts.priority);\n }\n visualElement.resetIsAnimating(opts.priority);\n var animation;\n if (isVariantLabels(definition)) {\n animation = animateVariantLabels(visualElement, definition, opts);\n }\n else if (isVariantLabel(definition)) {\n animation = animateVariant(visualElement, definition, opts);\n }\n else {\n animation = animateTarget(visualElement, definition, opts);\n }\n visualElement.onAnimationStart();\n return animation.then(function () { return visualElement.onAnimationComplete(); });\n}\nfunction animateVariantLabels(visualElement, variantLabels, opts) {\n var animations = __spread(variantLabels).reverse()\n .map(function (label) { return animateVariant(visualElement, label, opts); });\n return Promise.all(animations);\n}\nfunction animateVariant(visualElement, label, opts) {\n var _a;\n var priority = (opts && opts.priority) || 0;\n var variantDefinition = visualElement.getVariant(label);\n var variant = resolveVariant(visualElement, variantDefinition, opts && opts.custom);\n var transition = variant.transition || {};\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getAnimation = variantDefinition\n ? function () { return animateTarget(visualElement, variant, opts); }\n : function () { return Promise.resolve(); };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getChildrenAnimations = ((_a = visualElement.variantChildrenOrder) === null || _a === void 0 ? void 0 : _a.size) ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a;\n return animateChildren(visualElement, label, delayChildren + forwardDelay, transition.staggerChildren, transition.staggerDirection, priority, opts === null || opts === void 0 ? void 0 : opts.custom);\n }\n : function () { return Promise.resolve(); };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n var when = transition.when;\n if (when) {\n var _b = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildrenAnimations]\n : [getChildrenAnimations, getAnimation], 2), first = _b[0], last = _b[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildrenAnimations(opts === null || opts === void 0 ? void 0 : opts.delay)]);\n }\n}\nfunction animateChildren(visualElement, variantLabel, delayChildren, staggerChildren, staggerDirection, priority, custom) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n if (priority === void 0) { priority = 0; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildrenOrder.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) { return i * staggerChildren; }\n : function (i) { return maxStaggerDuration - i * staggerChildren; };\n Array.from(visualElement.variantChildrenOrder).forEach(function (child, i) {\n var animation = animateVariant(child, variantLabel, {\n priority: priority,\n delay: delayChildren + generateStaggerDuration(i),\n custom: custom,\n });\n animations.push(animation);\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction animateTarget(visualElement, definition, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.delay, delay = _c === void 0 ? 0 : _c, _d = _b.priority, priority = _d === void 0 ? 0 : _d, transitionOverride = _b.transitionOverride, custom = _b.custom;\n var targetAndTransition = resolveVariant(visualElement, definition, custom);\n if (transitionOverride)\n targetAndTransition.transition = transitionOverride;\n var _e = visualElement.makeTargetAnimatable(targetAndTransition), transitionEnd = _e.transitionEnd, transition = _e.transition, target = __rest(_e, [\"transitionEnd\", \"transition\"]);\n if (priority)\n visualElement.resolvedOverrides[priority] = target;\n var animations = [];\n for (var key in target) {\n var value = visualElement.getValue(key);\n if (!value || !target || target[key] === undefined)\n continue;\n var valueTarget = target[key];\n if (!priority) {\n visualElement.baseTarget[key] = resolveFinalValueInKeyframes(valueTarget);\n }\n if (visualElement.isAnimating.has(key))\n continue;\n visualElement.isAnimating.add(key);\n animations.push(startAnimation(key, value, valueTarget, __assign({ delay: delay }, transition)));\n }\n var allAnimations = Promise.all(animations);\n return transitionEnd\n ? allAnimations.then(function () {\n return setTarget(visualElement, transitionEnd, { priority: priority });\n })\n : allAnimations;\n}\n\nfunction setOverride(visualElement, definition, index) {\n var _a;\n visualElement.overrides[index] = definition;\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setOverride(child, definition, index);\n });\n}\nfunction startOverride(visualElement, index) {\n var override = visualElement.overrides[index];\n if (override) {\n return startVisualElementAnimation(visualElement, override, {\n priority: index,\n });\n }\n}\nfunction clearOverride(visualElement, index) {\n var _a;\n (_a = visualElement.variantChildrenOrder) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n clearOverride(child, index);\n });\n var override = visualElement.overrides[index];\n if (!override)\n return;\n visualElement.activeOverrides.delete(index);\n var highest = getHighestOverridePriortiy(visualElement);\n visualElement.resetIsAnimating();\n if (highest) {\n var highestOverride = visualElement.overrides[highest];\n highestOverride && startOverride(visualElement, highest);\n }\n // Figure out which remaining values were affected by the override and animate those\n var overrideTarget = visualElement.resolvedOverrides[index];\n if (!overrideTarget)\n return;\n var remainingValues = {};\n for (var key in visualElement.baseTarget) {\n if (overrideTarget[key] !== undefined) {\n remainingValues[key] = visualElement.baseTarget[key];\n }\n }\n visualElement.onAnimationStart();\n animateTarget(visualElement, remainingValues).then(function () {\n visualElement.onAnimationComplete();\n });\n}\nfunction getHighestOverridePriortiy(visualElement) {\n if (!visualElement.activeOverrides.size)\n return 0;\n return Math.max.apply(Math, __spread(Array.from(visualElement.activeOverrides)));\n}\n\n/**\n * VisualElement is an abstract class that provides a generic animation-optimised interface to the\n * underlying renderer.\n *\n * Currently many features interact directly with HTMLVisualElement/SVGVisualElement\n * but the idea is we can create, for instance, a ThreeVisualElement that extends\n * VisualElement and we can quickly offer all the same features.\n */\nvar VisualElement = /** @class */ (function () {\n function VisualElement(parent, ref) {\n var _this = this;\n // An iterable list of current children\n this.children = new Set();\n /**\n * A set of values that we animate back to when a value is cleared of all overrides.\n */\n this.baseTarget = {};\n /**\n * A series of target overrides that we can animate to/from when overrides are set/cleared.\n */\n this.overrides = [];\n /**\n * A series of target overrides as they were originally resolved.\n */\n this.resolvedOverrides = [];\n /**\n * A Set of currently active override indexes\n */\n this.activeOverrides = new Set();\n /**\n * A Set of value keys that are currently animating.\n */\n this.isAnimating = new Set();\n // The latest resolved MotionValues\n this.latest = {};\n // A map of MotionValues used to animate this element\n this.values = new Map();\n // Unsubscription callbacks for MotionValue subscriptions\n this.valueSubscriptions = new Map();\n // A configuration for this VisualElement, each derived class can extend this.\n this.config = {};\n this.isMounted = false;\n // A pre-bound call to the user-provided `onUpdate` callback. This won't\n // be called more than once per frame.\n this.update = function () { return _this.config.onUpdate(_this.latest); };\n // Pre-bound version of render\n this.triggerRender = function () { return _this.render(); };\n // This function gets passed to the rendered component's `ref` prop\n // and is used to mount/unmount the VisualElement\n this.ref = function (element) {\n element ? _this.mount(element) : _this.unmount();\n if (!_this.externalRef)\n return;\n if (typeof _this.externalRef === \"function\") {\n _this.externalRef(element);\n }\n else if (isRefObject(_this.externalRef)) {\n _this.externalRef.current = element;\n }\n };\n // Create a relationship with the provided parent.\n this.parent = parent;\n this.rootParent = parent ? parent.rootParent : this;\n this.treePath = parent ? __spread(parent.treePath, [parent]) : [];\n // Calculate the depth of this node in the VisualElement graph\n this.depth = parent ? parent.depth + 1 : 0;\n // A reference to any externally-defined React ref. This might live better\n // outside the VisualElement and be handled in a hook.\n this.externalRef = ref;\n }\n VisualElement.prototype.getVariantPayload = function () {\n return this.config.custom;\n };\n VisualElement.prototype.getVariant = function (label) {\n var _a;\n return (_a = this.config.variants) === null || _a === void 0 ? void 0 : _a[label];\n };\n VisualElement.prototype.addVariantChild = function (visualElement) {\n if (!this.variantChildren)\n this.variantChildren = new Set();\n this.variantChildren.add(visualElement);\n };\n VisualElement.prototype.addVariantChildOrder = function (visualElement) {\n if (!this.variantChildrenOrder)\n this.variantChildrenOrder = new Set();\n this.variantChildrenOrder.add(visualElement);\n };\n VisualElement.prototype.onAnimationStart = function () {\n var _a, _b;\n (_b = (_a = this.config).onAnimationStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n VisualElement.prototype.onAnimationComplete = function () {\n var _a, _b;\n this.isMounted && ((_b = (_a = this.config).onAnimationComplete) === null || _b === void 0 ? void 0 : _b.call(_a));\n };\n VisualElement.prototype.getDefaultTransition = function () {\n return this.config.transition;\n };\n VisualElement.prototype.resetIsAnimating = function (priority) {\n var _a;\n if (priority === void 0) { priority = 0; }\n this.isAnimating.clear();\n // If this isn't the highest priority gesture, block the animation\n // of anything that's currently being animated\n if (priority < getHighestOverridePriortiy(this)) {\n this.checkOverrideIsAnimating(priority);\n }\n (_a = this.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n return child.resetIsAnimating(priority);\n });\n };\n VisualElement.prototype.checkOverrideIsAnimating = function (priority) {\n var numOverrides = this.overrides.length;\n for (var i = priority + 1; i < numOverrides; i++) {\n var resolvedOverride = this.resolvedOverrides[i];\n if (resolvedOverride) {\n for (var key in resolvedOverride) {\n this.isAnimating.add(key);\n }\n }\n }\n };\n VisualElement.prototype.subscribe = function (child) {\n var _this = this;\n this.children.add(child);\n return function () { return _this.children.delete(child); };\n };\n // Check whether this element has a MotionValue of the provided key\n VisualElement.prototype.hasValue = function (key) {\n return this.values.has(key);\n };\n // Add a MotionValue\n VisualElement.prototype.addValue = function (key, value) {\n if (this.hasValue(key))\n this.removeValue(key);\n this.values.set(key, value);\n this.setSingleStaticValue(key, value.get());\n this.subscribeToValue(key, value);\n };\n // Remove a MotionValue\n VisualElement.prototype.removeValue = function (key) {\n var _a;\n (_a = this.valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n this.valueSubscriptions.delete(key);\n this.values.delete(key);\n delete this.latest[key];\n };\n VisualElement.prototype.getValue = function (key, defaultValue) {\n var value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = new MotionValue(defaultValue);\n this.addValue(key, value);\n }\n return value;\n };\n // Iterate over all MotionValues\n VisualElement.prototype.forEachValue = function (callback) {\n this.values.forEach(callback);\n };\n // Get the underlying rendered instance of this VisualElement. For instance in\n // HTMLVisualElement this will be a HTMLElement.\n VisualElement.prototype.getInstance = function () {\n return this.element;\n };\n VisualElement.prototype.updateConfig = function (config) {\n if (config === void 0) { config = {}; }\n this.config = __assign({}, config);\n };\n // Set a single `latest` value\n VisualElement.prototype.setSingleStaticValue = function (key, value) {\n this.latest[key] = value;\n };\n // Statically set values to `latest` without needing a MotionValue\n VisualElement.prototype.setStaticValues = function (values, value) {\n if (typeof values === \"string\") {\n this.setSingleStaticValue(values, value);\n }\n else {\n for (var key in values) {\n this.setSingleStaticValue(key, values[key]);\n }\n }\n };\n VisualElement.prototype.scheduleRender = function () {\n sync.render(this.triggerRender, false, true);\n };\n VisualElement.prototype.scheduleUpdateLayoutDelta = function () {\n sync.preRender(this.rootParent.updateLayoutDelta, false, true);\n };\n VisualElement.prototype.subscribeToValue = function (key, value) {\n var _this = this;\n var onChange = function (latest) {\n _this.setSingleStaticValue(key, latest);\n // Schedule onUpdate if we have an onUpdate listener and the component has mounted\n _this.element &&\n _this.config.onUpdate &&\n sync.update(_this.update, false, true);\n };\n var onRender = function () {\n _this.element && _this.scheduleRender();\n };\n var unsubscribeOnChange = value.onChange(onChange);\n var unsubscribeOnRender = value.onRenderRequest(onRender);\n this.valueSubscriptions.set(key, function () {\n unsubscribeOnChange();\n unsubscribeOnRender();\n });\n };\n // Mount the VisualElement with the actual DOM element\n VisualElement.prototype.mount = function (element) {\n invariant(!!element, \"No ref found. Ensure components created with motion.custom forward refs using React.forwardRef\");\n if (this.parent) {\n this.removeFromParent = this.parent.subscribe(this);\n }\n /**\n * Save the element to this.element as a semantic API, this.current to the VisualElement\n * is compatible with existing RefObject APIs.\n */\n this.element = this.current = element;\n };\n // Unmount the VisualElement and cancel any scheduled updates\n VisualElement.prototype.unmount = function () {\n var _this = this;\n this.forEachValue(function (_, key) { return _this.removeValue(key); });\n cancelSync.update(this.update);\n cancelSync.render(this.render);\n this.removeFromParent && this.removeFromParent();\n };\n return VisualElement;\n}());\n\nfunction noop(any) {\n return any;\n}\n\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToAxisBox(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertAxisBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.y;\n return {\n top: y.min,\n bottom: y.max,\n left: x.min,\n right: x.max,\n };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoundingBox(_a, transformPoint) {\n var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n if (transformPoint === void 0) { transformPoint = noop; }\n var topLeft = transformPoint({ x: left, y: top });\n var bottomRight = transformPoint({ x: right, y: bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n/**\n * Create an empty axis box of zero size\n */\nfunction axisBox() {\n return { x: { min: 0, max: 1 }, y: { min: 0, max: 1 } };\n}\nfunction copyAxisBox(box) {\n return {\n x: __assign({}, box.x),\n y: __assign({}, box.y),\n };\n}\n/**\n * Create an empty box delta\n */\nvar zeroDelta = {\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n};\nfunction delta() {\n return {\n x: __assign({}, zeroDelta),\n y: __assign({}, zeroDelta),\n };\n}\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"perspective\", \"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Used to store the keys of all transforms that will distorted a measured bounding box.\n */\nvar boxDistortingKeys = new Set();\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n var isDistorting = new Set([\"rotate\", \"skew\"]).has(operationKey);\n transformAxes.forEach(function (axesKey) {\n var key = operationKey + axesKey;\n transformProps.push(key);\n isDistorting && boxDistortingKeys.add(key);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, transformKeys, transformTemplate, transformIsDefault, enableHardwareAcceleration, allowTransformNone) {\n if (enableHardwareAcceleration === void 0) { enableHardwareAcceleration = true; }\n if (allowTransformNone === void 0) { allowTransformNone = true; }\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += (translateAlias[key] || key) + \"(\" + transform[key] + \") \";\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return originX + \" \" + originY + \" \" + originZ;\n}\n/**\n * Build a transform style that takes a calculated delta between the element's current\n * space on screen and projects it into the desired space.\n */\nfunction buildLayoutProjectionTransform(_a, treeScale) {\n var x = _a.x, y = _a.y;\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n var xTranslate = x.translate / treeScale.x;\n var yTranslate = y.translate / treeScale.y;\n return \"translate3d(\" + xTranslate + \"px, \" + yTranslate + \"px, 0) scale(\" + x.scale + \", \" + y.scale + \")\";\n}\nvar identityProjection = buildLayoutProjectionTransform(delta(), {\n x: 1,\n y: 1,\n});\n/**\n * Take the calculated delta origin and apply it as a transform string.\n */\nfunction buildLayoutProjectionTransformOrigin(_a) {\n var x = _a.x, y = _a.y;\n return x.origin * 100 + \"% \" + y.origin * 100 + \"% 0\";\n}\n/**\n * Build a transform string only from the properties that distort bounding box measurements\n * (rotate and skew)\n */\nfunction buildBoxDistortingTransforms(transform, transformKeys) {\n var transformString = \"\";\n transformKeys.sort(sortTransformProps);\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n if (boxDistortingKeys.has(key)) {\n transformString += key + \"(\" + transform[key] + \") \";\n }\n }\n return transformString;\n}\n\n/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nfunction isCSSVariable$1(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\" + current + \"\\\". This may indicate a circular fallback dependency.\");\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable$1(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof HTMLElement))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable$1(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable$1(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nfunction pixelsToPercent(pixels, axis) {\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nfunction correctBorderRadius(latest, viewportBox) {\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n var x = pixelsToPercent(latest, viewportBox.x);\n var y = pixelsToPercent(latest, viewportBox.y);\n return x + \"% \" + y + \"%\";\n}\nvar varToken = \"_$css\";\nfunction correctBoxShadow(latest, _viewportBox, delta, treeScale) {\n var original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n var containsCSSVariables = latest.includes(\"var(\");\n var cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, function (match) {\n cssVariables.push(match);\n return varToken;\n });\n }\n var shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n var template = complex.createTransformer(latest);\n var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n var xScale = delta.x.scale * treeScale.x;\n var yScale = delta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n var averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n var output = template(shadow);\n if (containsCSSVariables) {\n var i_1 = 0;\n output = output.replace(varToken, function () {\n var cssVariable = cssVariables[i_1];\n i_1++;\n return cssVariable;\n });\n }\n return output;\n}\nvar borderCorrectionDefinition = {\n process: correctBorderRadius,\n};\nvar valueScaleCorrection = {\n borderRadius: __assign(__assign({}, borderCorrectionDefinition), { applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ] }),\n borderTopLeftRadius: borderCorrectionDefinition,\n borderTopRightRadius: borderCorrectionDefinition,\n borderBottomLeftRadius: borderCorrectionDefinition,\n borderBottomRightRadius: borderCorrectionDefinition,\n boxShadow: {\n process: correctBoxShadow,\n },\n};\n/**\n * @internal\n */\nfunction addScaleCorrection(correctors) {\n for (var key in correctors) {\n valueScaleCorrection[key] = correctors[key];\n }\n}\n\n/**\n * Build style and CSS variables\n *\n * This function converts a Motion style prop:\n *\n * { x: 100, width: 100, originX: 0.5 }\n *\n * Into an object with default value types applied and default\n * transform order set:\n *\n * {\n * transform: 'translateX(100px) translateZ(0)`,\n * width: '100px',\n * transformOrigin: '50% 50%'\n * }\n *\n * Styles are saved to `style` and CSS vars to `vars`.\n *\n * This function works with mutative data structures.\n */\nfunction buildHTMLStyles(latest, style, vars, transform, transformOrigin, transformKeys, _a, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox) {\n var enableHardwareAcceleration = _a.enableHardwareAcceleration, transformTemplate = _a.transformTemplate, allowTransformNone = _a.allowTransformNone;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable. Transforms and transform origins are kept seperately\n * for further processing\n */\n for (var key in latest) {\n var value = latest[key];\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = getDefaultValueType(key);\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag and enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n if (!transformIsNone)\n continue;\n // If all the transform keys we've so far encountered are their default value\n // then check to see if this one isn't\n var defaultValue = valueType.default !== undefined ? valueType.default : 0;\n if (value !== defaultValue)\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n // If this is a transform origin, flag and enable further transform-origin processing\n transformOrigin[key] = valueAsType;\n hasTransformOrigin = true;\n }\n else if (key !== \"transform\" || typeof value !== \"function\") {\n // Handle all remaining values. Decide which map to save to depending\n // on whether this is a CSS variable\n var bucket = isCSSVariable(key) ? vars : style;\n // If we need to perform scale correction, and we have a handler for this\n // value type (ie borderRadius), perform it\n if (isLayoutProjectionEnabled && valueScaleCorrection[key]) {\n var corrected = valueScaleCorrection[key].process(value, targetBox, delta, treeScale);\n /**\n * Scale-correctable values can define a number of other values to break\n * down into. For instance borderRadius needs applying to borderBottomLeftRadius etc\n */\n var applyTo = valueScaleCorrection[key].applyTo;\n if (applyTo) {\n var num = applyTo.length;\n for (var i = 0; i < num; i++) {\n bucket[applyTo[i]] = corrected;\n }\n }\n else {\n bucket[key] = corrected;\n }\n }\n else {\n bucket[key] = valueAsType;\n }\n }\n }\n /**\n * Build transform and transformOrigin. If we're performing layout projection these need\n * to be based off the deltaFinal data. Any user-set origins will have been pre-baked\n * into the deltaFinal.\n */\n if (isLayoutProjectionEnabled) {\n style.transform = buildLayoutProjectionTransform(deltaFinal, treeScale);\n if (style.transform === identityProjection)\n style.transform = \"\";\n /**\n * If we have transform styles, build only those that distort bounding boxes (rotate/skew)\n * as translations and scales will already have been used to calculate deltaFinal.\n */\n if (hasTransform) {\n style.transform +=\n \" \" + buildBoxDistortingTransforms(transform, transformKeys);\n style.transform = style.transform.trim();\n }\n if (transformTemplate) {\n style.transform = transformTemplate(transform, style.transform);\n }\n style.transformOrigin = buildLayoutProjectionTransformOrigin(deltaFinal);\n }\n else {\n if (hasTransform) {\n style.transform = buildTransform(transform, transformKeys, transformTemplate, transformIsNone, enableHardwareAcceleration, allowTransformNone);\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n }\n}\n\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetAxis(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetBox(box, originBox) {\n resetAxis(box.x, originBox.x);\n resetAxis(box.y, originBox.y);\n}\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n var distanceFromOrigin = point - originPoint;\n var scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate, scale, originPoint, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, _a) {\n var x = _a.x, y = _a.y;\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction applyAxisTransforms(final, axis, transforms, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n // Copy the current axis to the final axis before mutation\n final.min = axis.min;\n final.max = axis.max;\n var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n var originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(final, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction applyBoxTransforms(finalBox, box, transforms) {\n applyAxisTransforms(finalBox.x, box.x, transforms, xKeys);\n applyAxisTransforms(finalBox.y, box.y, transforms, yKeys);\n}\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate, scale, origin, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n if (origin === void 0) { origin = 0.5; }\n var originPoint = mix(axis.min, axis.max, origin) - translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale);\n}\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms) {\n removeAxisTransforms(box.x, transforms, xKeys);\n removeAxisTransforms(box.y, transforms, yKeys);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within HTMLVisualElement.updateLayoutDelta\n */\nfunction applyTreeDeltas(box, treePath) {\n var treeLength = treePath.length;\n for (var i = 0; i < treeLength; i++) {\n applyBoxDelta(box, treePath[i].delta);\n }\n}\n\nvar clampProgress = function (v) { return clamp(0, 1, v); };\n/**\n * Returns true if the provided value is within maxDistance of the provided target\n */\nfunction isNear(value, target, maxDistance) {\n if (target === void 0) { target = 0; }\n if (maxDistance === void 0) { maxDistance = 0.01; }\n return distance(value, target) < maxDistance;\n}\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n var origin = 0.5;\n var sourceLength = calcLength(source);\n var targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clampProgress(origin);\n}\n/**\n * Update the AxisDelta with a transform that projects source into target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateAxisDelta(delta, source, target, origin) {\n delta.origin = origin === undefined ? calcOrigin(source, target) : origin;\n delta.originPoint = mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001))\n delta.scale = 1;\n delta.translate =\n mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate))\n delta.translate = 0;\n}\n/**\n * Update the BoxDelta with a transform that projects the source into the target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateBoxDelta(delta, source, target, origin) {\n updateAxisDelta(delta.x, source.x, target.x, origin);\n updateAxisDelta(delta.y, source.y, target.y, origin);\n}\n/**\n * Update the treeScale by incorporating the parent's latest scale into its treeScale.\n */\nfunction updateTreeScale(treeScale, parentTreeScale, parentDelta) {\n treeScale.x = parentTreeScale.x * parentDelta.x.scale;\n treeScale.y = parentTreeScale.y * parentDelta.y.scale;\n}\n\n// Call a handler once for each axis\nfunction eachAxis(handler) {\n return [handler(\"x\"), handler(\"y\")];\n}\n\n/**\n * Measure and return the element bounding box.\n *\n * We convert the box into an AxisBox2D to make it easier to work with each axis\n * individually and programmatically.\n *\n * This function optionally accepts a transformPagePoint function which allows us to compensate\n * for, for instance, measuring the element within a scaled plane like a Framer devivce preview component.\n */\nfunction getBoundingBox(element, transformPagePoint) {\n var box = element.getBoundingClientRect();\n return convertBoundingBoxToAxisBox(transformBoundingBox(box, transformPagePoint));\n}\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) { return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n}; };\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.render();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a) {\n var x = _a.x;\n return x.max - x.min;\n },\n height: function (_a) {\n var y = _a.y;\n return y.max - y.min;\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.getBoundingBox();\n var elementComputedStyle = visualElement.getComputedStyle();\n var display = elementComputedStyle.display, top = elementComputedStyle.top, left = elementComputedStyle.left, bottom = elementComputedStyle.bottom, right = elementComputedStyle.right, transform = elementComputedStyle.transform;\n var originComputedStyle = { top: top, left: left, bottom: bottom, right: right, transform: transform };\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValues(\"display\", target.display || \"block\");\n }\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.render();\n var targetBbox = visualElement.getBoundingBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, positionalValues[key](originBbox, originComputedStyle));\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var to = target[key];\n var fromType = findDimensionValueType(from);\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n for (var i = to[0] === null ? 1 : 0; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) && (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues = removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.render();\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\n/**\n * A VisualElement for HTMLElements\n */\nvar HTMLVisualElement = /** @class */ (function (_super) {\n __extends(HTMLVisualElement, _super);\n function HTMLVisualElement() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n *\n */\n _this.defaultConfig = {\n enableHardwareAcceleration: true,\n allowTransformNone: true,\n };\n /**\n * A mutable record of styles we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.style = {};\n /**\n * A record of styles we only want to apply via React. This gets set in useMotionValues\n * and applied in the render function. I'd prefer this to live somewhere else to decouple\n * VisualElement from React but works for now.\n */\n _this.reactStyle = {};\n /**\n * A mutable record of CSS variables we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.vars = {};\n /**\n * A mutable record of transforms we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.transform = {};\n /**\n * A mutable record of transform origins we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.transformOrigin = {};\n /**\n * A mutable record of transform keys we want to apply to the rendered Element. We order\n * this to order transforms in the desired order. We use a mutable data structure to reduce GC during animations.\n */\n _this.transformKeys = [];\n _this.config = _this.defaultConfig;\n /**\n * ========================================\n * Layout\n * ========================================\n */\n _this.isLayoutProjectionEnabled = false;\n /**\n * A set of layout update event handlers. These are only called once all layouts have been read,\n * making it safe to perform DOM write operations.\n */\n _this.layoutUpdateListeners = new SubscriptionManager();\n _this.layoutMeasureListeners = new SubscriptionManager();\n _this.viewportBoxUpdateListeners = new SubscriptionManager();\n /**\n * Keep track of whether the viewport box has been updated since the last render.\n * If it has, we want to fire the onViewportBoxUpdate listener.\n */\n _this.hasViewportBoxUpdated = false;\n /**\n * The visual target we want to project our component into on a given frame\n * before applying transforms defined in `animate` or `style`.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.targetBoxFinal = axisBox();\n /**\n * The overall scale of the local coordinate system as transformed by all parents\n * of this component. We use this for scale correction on our calculated layouts\n * and scale-affected values like `boxShadow`.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.treeScale = { x: 1, y: 1 };\n _this.prevTreeScale = { x: 1, y: 1 };\n /**\n * The delta between the boxCorrected and the desired\n * targetBox (before user-set transforms are applied). The calculated output will be\n * handed to the renderer and used as part of the style correction calculations, for\n * instance calculating how to display the desired border-radius correctly.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.delta = delta();\n /**\n * The delta between the boxCorrected and the desired targetBoxFinal. The calculated\n * output will be handed to the renderer and used to project the boxCorrected into\n * the targetBoxFinal.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.deltaFinal = delta();\n /**\n * The computed transform string to apply deltaFinal to the element. Currently this is only\n * being used to diff and decide whether to render on the current frame, but a minor optimisation\n * could be to provide this to the buildHTMLStyle function.\n */\n _this.deltaTransform = identityProjection;\n /**\n *\n */\n _this.stopLayoutAxisAnimation = {\n x: function () { },\n y: function () { },\n };\n _this.isTargetBoxLocked = false;\n /**\n *\n */\n _this.axisProgress = {\n x: motionValue(0),\n y: motionValue(0),\n };\n _this.updateLayoutDelta = function () {\n _this.isLayoutProjectionEnabled && _this.box && _this.updateLayoutDeltas();\n /**\n * Ensure all children layouts are also updated.\n *\n * This uses a pre-bound function executor rather than a lamda to avoid creating a new function\n * multiple times per frame (source of mid-animation GC)\n */\n _this.children.forEach(fireUpdateLayoutDelta);\n };\n return _this;\n }\n /**\n * When a value is removed, we want to make sure it's removed from all rendered data structures.\n */\n HTMLVisualElement.prototype.removeValue = function (key) {\n _super.prototype.removeValue.call(this, key);\n delete this.vars[key];\n delete this.style[key];\n };\n /**\n * Empty the mutable data structures by re-creating them. We can do this every React render\n * as the comparative workload to the rest of the render is very low and this is also when\n * we want to reflect values that might have been removed by the render.\n */\n HTMLVisualElement.prototype.clean = function () {\n this.style = {};\n this.vars = {};\n this.transform = {};\n };\n HTMLVisualElement.prototype.updateConfig = function (config) {\n if (config === void 0) { config = {}; }\n this.config = __assign(__assign({}, this.defaultConfig), config);\n };\n /**\n * Read a value directly from the HTMLElement style.\n */\n HTMLVisualElement.prototype.read = function (key) {\n return this.getComputedStyle()[key] || 0;\n };\n HTMLVisualElement.prototype.addValue = function (key, value) {\n _super.prototype.addValue.call(this, key, value);\n // If we have rotate values we want to foce the layoutOrigin used in layout projection\n // to the center of the element.\n if (key.startsWith(\"rotate\"))\n this.layoutOrigin = 0.5;\n };\n /**\n * Read a value directly from the HTMLElement in case it's not defined by a Motion\n * prop. If it's a transform, we just return a pre-defined default value as reading these\n * out of a matrix is either error-prone or can incur a big payload for little benefit.\n */\n HTMLVisualElement.prototype.readNativeValue = function (key) {\n if (isTransformProp(key)) {\n var defaultValueType = getDefaultValueType(key);\n return defaultValueType ? defaultValueType.default || 0 : 0;\n }\n else {\n return this.read(key);\n }\n };\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n HTMLVisualElement.prototype.makeTargetAnimatable = function (_a, parseDOMValues) {\n if (parseDOMValues === void 0) { parseDOMValues = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var transformValues = this.config.transformValues;\n var origin = getOrigin(target, transition || {}, this);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (parseDOMValues) {\n checkTargetForNewValues(this, target, origin);\n var parsed = parseDomVariant(this, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition,\n transitionEnd: transitionEnd }, target);\n };\n HTMLVisualElement.prototype.enableLayoutProjection = function () {\n this.isLayoutProjectionEnabled = true;\n };\n HTMLVisualElement.prototype.hide = function () {\n if (this.isVisible === false)\n return;\n this.isVisible = false;\n this.scheduleRender();\n };\n HTMLVisualElement.prototype.show = function () {\n if (this.isVisible === true)\n return;\n this.isVisible = true;\n this.scheduleRender();\n };\n /**\n * Register an event listener to fire when the layout is updated. We might want to expose support\n * for this via a `motion` prop.\n */\n HTMLVisualElement.prototype.onLayoutUpdate = function (callback) {\n return this.layoutUpdateListeners.add(callback);\n };\n HTMLVisualElement.prototype.onLayoutMeasure = function (callback) {\n return this.layoutMeasureListeners.add(callback);\n };\n HTMLVisualElement.prototype.onViewportBoxUpdate = function (callback) {\n return this.viewportBoxUpdateListeners.add(callback);\n };\n /**\n * To be called when all layouts are successfully updated. In turn we can notify layoutUpdate\n * subscribers.\n */\n HTMLVisualElement.prototype.layoutReady = function (config) {\n this.layoutUpdateListeners.notify(this.box, this.prevViewportBox || this.box, config);\n };\n /**\n * Measure and return the Element's bounding box. We convert it to a AxisBox2D\n * structure to make it easier to work on each individual axis generically.\n */\n HTMLVisualElement.prototype.getBoundingBox = function () {\n var transformPagePoint = this.config.transformPagePoint;\n return getBoundingBox(this.element, transformPagePoint);\n };\n HTMLVisualElement.prototype.getBoundingBoxWithoutTransforms = function () {\n var bbox = this.getBoundingBox();\n removeBoxTransforms(bbox, this.latest);\n return bbox;\n };\n /**\n * Return the computed style after a render.\n */\n HTMLVisualElement.prototype.getComputedStyle = function () {\n return window.getComputedStyle(this.element);\n };\n /**\n * Record the bounding box as it exists before a re-render.\n */\n HTMLVisualElement.prototype.snapshotBoundingBox = function () {\n this.prevViewportBox = this.getBoundingBoxWithoutTransforms();\n /**\n * Update targetBox to match the prevViewportBox. This is just to ensure\n * that targetBox is affected by scroll in the same way as the measured box\n */\n this.rebaseTargetBox(false, this.prevViewportBox);\n };\n HTMLVisualElement.prototype.rebaseTargetBox = function (force, box) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (box === void 0) { box = this.box; }\n var _a = this.axisProgress, x = _a.x, y = _a.y;\n var shouldRebase = this.box &&\n !this.isTargetBoxLocked &&\n !x.isAnimating() &&\n !y.isAnimating();\n if (force || shouldRebase) {\n eachAxis(function (axis) {\n var _a = box[axis], min = _a.min, max = _a.max;\n _this.setAxisTarget(axis, min, max);\n });\n }\n };\n HTMLVisualElement.prototype.measureLayout = function () {\n var _this = this;\n this.box = this.getBoundingBox();\n this.boxCorrected = copyAxisBox(this.box);\n if (!this.targetBox)\n this.targetBox = copyAxisBox(this.box);\n this.layoutMeasureListeners.notify(this.box, this.prevViewportBox || this.box);\n sync.update(function () { return _this.rebaseTargetBox(); });\n };\n HTMLVisualElement.prototype.lockTargetBox = function () {\n this.isTargetBoxLocked = true;\n };\n HTMLVisualElement.prototype.unlockTargetBox = function () {\n this.stopLayoutAnimation();\n this.isTargetBoxLocked = false;\n };\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n HTMLVisualElement.prototype.resetTransform = function () {\n var transformTemplate = this.config.transformTemplate;\n this.element.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform\n this.scheduleRender();\n };\n /**\n * Set new min/max boundaries to project an axis into\n */\n HTMLVisualElement.prototype.setAxisTarget = function (axis, min, max) {\n var targetAxis = this.targetBox[axis];\n targetAxis.min = min;\n targetAxis.max = max;\n // Flag that we want to fire the onViewportBoxUpdate event handler\n this.hasViewportBoxUpdated = true;\n this.rootParent.scheduleUpdateLayoutDelta();\n };\n /**\n *\n */\n HTMLVisualElement.prototype.startLayoutAxisAnimation = function (axis, transition) {\n var _this = this;\n var _a;\n var progress = this.axisProgress[axis];\n var _b = this.targetBox[axis], min = _b.min, max = _b.max;\n var length = max - min;\n progress.clearListeners();\n progress.set(min);\n progress.set(min); // Set twice to hard-reset velocity\n progress.onChange(function (v) { return _this.setAxisTarget(axis, v, v + length); });\n return (_a = this.animateMotionValue) === null || _a === void 0 ? void 0 : _a.call(this, axis, progress, 0, transition);\n };\n HTMLVisualElement.prototype.stopLayoutAnimation = function () {\n var _this = this;\n eachAxis(function (axis) { return _this.axisProgress[axis].stop(); });\n };\n /**\n * Update the layout deltas to reflect the relative positions of the layout\n * and the desired target box\n */\n HTMLVisualElement.prototype.updateLayoutDeltas = function () {\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n resetBox(this.boxCorrected, this.box);\n /**\n * If this component has a parent, update this treeScale by incorporating the parent's\n * delta into its treeScale.\n */\n if (this.parent) {\n this.prevTreeScale.x = this.treeScale.x;\n this.prevTreeScale.y = this.treeScale.y;\n updateTreeScale(this.treeScale, this.parent.treeScale, this.parent.delta);\n }\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.boxCorrected, this.treePath);\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n updateBoxDelta(this.delta, this.boxCorrected, this.targetBox, this.layoutOrigin);\n /**\n * If we have a listener for the viewport box, fire it.\n */\n this.hasViewportBoxUpdated &&\n this.viewportBoxUpdateListeners.notify(this.targetBox, this.delta);\n this.hasViewportBoxUpdated = false;\n /**\n * Ensure this element renders on the next frame if the projection transform has changed.\n */\n var deltaTransform = buildLayoutProjectionTransform(this.delta, this.treeScale);\n if (deltaTransform !== this.deltaTransform ||\n // Also compare calculated treeScale, for values that rely on only this for scale correction.\n this.prevTreeScale.x !== this.treeScale.x ||\n this.prevTreeScale.y !== this.treeScale.y) {\n this.scheduleRender();\n }\n this.deltaTransform = deltaTransform;\n };\n HTMLVisualElement.prototype.updateTransformDeltas = function () {\n if (!this.isLayoutProjectionEnabled || !this.box)\n return;\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n applyBoxTransforms(this.targetBoxFinal, this.targetBox, this.latest);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its actual layout\n * into the desired bounding box.\n */\n updateBoxDelta(this.deltaFinal, this.boxCorrected, this.targetBoxFinal, this.layoutOrigin);\n };\n /**\n * ========================================\n * Build & render\n * ========================================\n */\n /**\n * Build a style prop using the latest resolved MotionValues\n */\n HTMLVisualElement.prototype.build = function () {\n this.updateTransformDeltas();\n if (this.isVisible !== undefined) {\n this.style.visibility = this.isVisible ? \"visible\" : \"hidden\";\n }\n buildHTMLStyles(this.latest, this.style, this.vars, this.transform, this.transformOrigin, this.transformKeys, this.config, this.isLayoutProjectionEnabled && !!this.box, this.delta, this.deltaFinal, this.treeScale, this.targetBoxFinal);\n };\n /**\n * Render the Element by rebuilding and applying the latest styles and vars.\n */\n HTMLVisualElement.prototype.render = function () {\n // Rebuild the latest animated values into style and vars caches.\n this.build();\n // Directly assign style into the Element's style prop. In tests Object.assign is the\n // fastest way to assign styles.\n Object.assign(this.element.style, this.style);\n // Loop over any CSS variables and assign those.\n for (var key in this.vars) {\n this.element.style.setProperty(key, this.vars[key]);\n }\n };\n return HTMLVisualElement;\n}(VisualElement));\n/**\n * Pre-bound version of updateLayoutDelta so we're not creating a new function multiple\n * times per frame.\n */\nvar fireUpdateLayoutDelta = function (child) {\n return child.updateLayoutDelta();\n};\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nfunction calcOrigin$1(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin$1(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin$1(originY, dimensions.y, dimensions.height);\n return pxOriginX + \" \" + pxOriginY;\n}\n\n// Convert a progress 0-1 to a pixels value based on the provided length\nvar progressToPixels = function (progress, length) {\n return px.transform(progress * length);\n};\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, totalLength, length, spacing, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 0) { useDashCase = true; }\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = progressToPixels(-offset, totalLength);\n // Build the dash array\n var pathLength = progressToPixels(length, totalLength);\n var pathSpacing = progressToPixels(spacing, totalLength);\n attrs[keys.array] = pathLength + \" \" + pathSpacing;\n}\n\nvar unmeasured = { x: 0, y: 0, width: 0, height: 0 };\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(_a, style, vars, attrs, transform, transformOrigin, transformKeys, config, dimensions, totalPathLength, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n /**\n * With SVG we treat all animated values as attributes rather than CSS, so we build into attrs\n */\n buildHTMLStyles(latest, attrs, vars, transform, transformOrigin, transformKeys, config, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox);\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (originX !== undefined || originY !== undefined || style.transform) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions || unmeasured, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been measured\n if (totalPathLength !== undefined && pathLength !== undefined) {\n buildSVGPath(attrs, totalPathLength, pathLength, pathSpacing, pathOffset, false);\n }\n return attrs;\n}\n\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n]);\n\nvar CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\n/**\n * A VisualElement for SVGElements. Inherits from and extends HTMLVisualElement as the two\n * share data structures.\n */\nvar SVGVisualElement = /** @class */ (function (_super) {\n __extends(SVGVisualElement, _super);\n function SVGVisualElement() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * A mutable record of attributes we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.attrs = {};\n /**\n * We disable hardware acceleration for SVG transforms as they're not currently able to be accelerated.\n */\n _this.defaultConfig = {\n enableHardwareAcceleration: false,\n };\n /**\n * Without duplicating this call from HTMLVisualElement we end up with HTMLVisualElement.defaultConfig\n * being assigned to config\n */\n _this.config = _this.defaultConfig;\n return _this;\n }\n /**\n * Measure the SVG element on mount. This can affect page rendering so there might be a\n * better time to perform this - for instance dynamically only if there's a transform-origin dependent\n * transform being set (like rotate)\n */\n SVGVisualElement.prototype.mount = function (element) {\n _super.prototype.mount.call(this, element);\n this.measure();\n };\n /**\n * Update the SVG dimensions and path length\n */\n SVGVisualElement.prototype.measure = function () {\n try {\n this.dimensions =\n typeof this.element.getBBox ===\n \"function\"\n ? this.element.getBBox()\n : this.element.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n this.dimensions = { x: 0, y: 0, width: 0, height: 0 };\n }\n if (isPath(this.element)) {\n this.totalPathLength = this.element.getTotalLength();\n }\n };\n /**\n * Empty the mutable data structures in case attrs have been removed between renders.\n */\n SVGVisualElement.prototype.clean = function () {\n _super.prototype.clean.call(this);\n this.attrs = {};\n };\n /**\n * Read an attribute directly from the SVGElement\n */\n SVGVisualElement.prototype.read = function (key) {\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return this.element.getAttribute(key);\n };\n SVGVisualElement.prototype.build = function () {\n this.updateTransformDeltas();\n buildSVGAttrs(this.latest, this.style, this.vars, this.attrs, this.transform, this.transformOrigin, this.transformKeys, this.config, this.dimensions, this.totalPathLength, this.isLayoutProjectionEnabled && !!this.box, this.delta, this.deltaFinal, this.treeScale, this.targetBoxFinal);\n };\n SVGVisualElement.prototype.render = function () {\n // Update HTML styles and CSS variables\n _super.prototype.render.call(this);\n // Loop through attributes and apply them to the SVGElement\n for (var key in this.attrs) {\n this.element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, this.attrs[key]);\n }\n };\n return SVGVisualElement;\n}(HTMLVisualElement));\nfunction isPath(element) {\n return element.tagName === \"path\";\n}\n\n/**\n * @internal\n */\n/**\n * @internal\n */\nvar svgElements = [\n \"animate\",\n \"circle\",\n \"clipPath\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"foreignObject\",\n \"g\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"textPath\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nvar svgTagNames = new Set(svgElements);\n/**\n * Determine whether this is a HTML or SVG component based on if the provided\n * Component is a string and a recognised SVG tag. A potentially better way to\n * do this would be to offer a `motion.customSVG` function and determine this\n * when we generate the `motion.circle` etc components.\n */\nfunction isSVGComponent(Component) {\n return typeof Component === \"string\" && svgTagNames.has(Component);\n}\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nvar MotionContext = createContext({\n variantContext: {},\n});\nfunction useVariantContext() {\n return useContext(MotionContext).variantContext;\n}\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\n/**\n * DOM-flavoured variation of the useVisualElement hook. Used to create either a HTMLVisualElement\n * or SVGVisualElement for the component.\n *\n */\nvar useDomVisualElement = function (Component, props, isStatic, ref) {\n var parent = useVisualElementContext();\n var visualElement = useConstant(function () {\n var DOMVisualElement = isSVGComponent(Component)\n ? SVGVisualElement\n : HTMLVisualElement;\n return new DOMVisualElement(parent, ref);\n });\n visualElement.updateConfig(__assign(__assign(__assign({}, visualElement.config), { enableHardwareAcceleration: !isStatic }), props));\n visualElement.layoutId = props.layoutId;\n var presenceContext = useContext(PresenceContext);\n /**\n * Update VisualElement with presence data.\n */\n var isPresent = presenceContext === null ? true : presenceContext.isPresent;\n visualElement.isPresent =\n props.isPresent !== undefined ? props.isPresent : isPresent;\n /**\n *\n */\n var presenceId = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id;\n visualElement.isPresenceRoot = !parent || parent.presenceId !== presenceId;\n /**\n * TODO: Investigate if we need this\n */\n useEffect(function () {\n if (props.onViewportBoxUpdate) {\n return visualElement.onViewportBoxUpdate(props.onViewportBoxUpdate);\n }\n }, [props.onViewportBoxUpdate]);\n return visualElement;\n};\n\n/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"onLayoutAnimationComplete\",\n \"onViewportBoxUpdate\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"whileHover\",\n \"whileTap\",\n \"onHoverEnd\",\n \"onHoverStart\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nvar isPropValid = function (key) { return !isValidMotionProp(key); };\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n var emotionIsPropValid_1 = require(\"@emotion/is-prop-valid\").default;\n isPropValid = function (key) {\n // Handle events explicitly as Emotion validates them all as true\n if (key.startsWith(\"on\")) {\n return !isValidMotionProp(key);\n }\n else {\n return emotionIsPropValid_1(key);\n }\n };\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props) {\n var domProps = {};\n for (var key in props) {\n if (isPropValid(key))\n domProps[key] = props[key];\n }\n return domProps;\n}\n\nfunction buildHTMLProps(visualElement, _a) {\n var drag = _a.drag;\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {\n style: __assign(__assign(__assign({}, visualElement.reactStyle), visualElement.style), visualElement.vars),\n };\n if (!!drag) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n htmlProps.style.userSelect = \"none\";\n // Disable scrolling on the draggable direction\n htmlProps.style.touchAction =\n drag === true ? \"none\" : \"pan-\" + (drag === \"x\" ? \"y\" : \"x\");\n }\n return htmlProps;\n}\n\n/**\n * Build React props for SVG elements\n */\nfunction buildSVGProps(visualElement) {\n return __assign(__assign({}, visualElement.attrs), { style: __assign({}, visualElement.reactStyle) });\n}\n\nfunction render(Component, props, visualElement) {\n // Only filter props from components we control, ie `motion.div`. If this\n // is a custom component pass along everything provided to it.\n var forwardedProps = typeof Component === \"string\" ? filterProps(props) : props;\n /**\n * Every render, empty and rebuild the animated values to be applied to our Element.\n * During animation these data structures are used in a mutable fashion to reduce\n * garbage collection, but between renders we can flush them to remove values\n * that might have been taken out of the provided props.\n */\n visualElement.clean();\n visualElement.build();\n // Generate props to visually render this component\n var visualProps = isSVGComponent(Component)\n ? buildSVGProps(visualElement)\n : buildHTMLProps(visualElement, props);\n return createElement(Component, __assign(__assign(__assign({}, forwardedProps), { ref: visualElement.ref }), visualProps));\n}\n\nvar isMotionValue = function (value) {\n return value instanceof MotionValue;\n};\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) && !!valueScaleCorrection[key]));\n}\n/**\n * Scrape props for MotionValues and add/remove them to this component's\n * VisualElement\n */\nfunction useMotionValues(visualElement, props) {\n var prev = useConstant(empty);\n /**\n * Remove MotionValues that are no longer present\n */\n for (var key in prev) {\n var isForced = isForcedMotionValue(key, props);\n var existsAsProp = props[key] !== undefined;\n var existsAsStyle = props.style && props.style[key] !== undefined;\n var propIsMotionValue = existsAsProp && isMotionValue(props[key]);\n var styleIsMotionValue = existsAsStyle && isMotionValue(props.style[key]);\n var transformRemoved = isForced && !existsAsProp && !existsAsStyle;\n var motionValueRemoved = !isForced && !propIsMotionValue && !styleIsMotionValue;\n if (transformRemoved || motionValueRemoved) {\n visualElement.removeValue(key);\n delete prev[key];\n }\n }\n /**\n * Add incoming MotionValues\n */\n addMotionValues(visualElement, prev, props, false, props);\n if (props.style)\n addMotionValues(visualElement, prev, props.style, true, props);\n /**\n * Transform custom values if provided a handler, ie size -> width/height\n * Ideally we'd ditch this by removing support for size and other custom values from Framer.\n */\n if (props.transformValues) {\n visualElement.reactStyle = props.transformValues(visualElement.reactStyle);\n }\n}\n/**\n * Add incoming MotionValues\n *\n * TODO: Type the VisualElements properly\n */\nfunction addMotionValues(visualElement, prev, source, isStyle, props) {\n if (isStyle === void 0) { isStyle = false; }\n if (isStyle)\n visualElement.reactStyle = {};\n for (var key in source) {\n var value = source[key];\n var foundMotionValue = false;\n if (isMotionValue(value)) {\n // If this is a MotionValue, add it if it isn't a reserved key\n if (!reservedNames.has(key)) {\n visualElement.addValue(key, value);\n foundMotionValue = true;\n }\n }\n else if (isForcedMotionValue(key, props)) {\n // If this is a transform prop, always create a MotionValue\n // to ensure we can reconcile them all together.\n if (!visualElement.hasValue(key)) {\n visualElement.addValue(key, motionValue(value));\n }\n else if (value !== prev[key]) {\n if (isMotionValue(prev[key])) {\n /**\n * If the previous value was a MotionValue, and this value isn't,\n * we want to create a new MotionValue rather than update one that's been removed.\n */\n visualElement.addValue(key, motionValue(value));\n }\n else {\n /**\n * Otherwise, we just want to ensure the MotionValue is of the latest value.\n */\n var motion = visualElement.getValue(key);\n motion.set(value);\n }\n }\n foundMotionValue = true;\n }\n else if (isStyle) {\n visualElement.reactStyle[key] = value;\n }\n if (foundMotionValue)\n prev[key] = value;\n }\n}\n/**\n * These are props we accept as MotionValues but don't want to add\n * to the VisualElement\n */\nvar reservedNames = new Set([]);\nvar empty = function () { return ({}); };\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n features: [],\n isStatic: false,\n});\n/**\n * MotionConfig can be used in combination with the `m` component to cut bundle size\n * and dynamically load only the features you use.\n *\n * ```jsx\n * import {\n * m as motion,\n * AnimationFeature,\n * MotionConfig\n * } from \"framer-motion\"\n *\n * export function App() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction MotionConfig(_a) {\n var children = _a.children, _b = _a.features, features = _b === void 0 ? [] : _b, props = __rest(_a, [\"children\", \"features\"]);\n var pluginContext = useContext(MotionConfigContext);\n var loadedFeatures = __spread(pluginContext.features, features);\n // We do want to rerender children when the number of loaded features changes\n var value = useMemo(function () { return ({ features: loadedFeatures }); }, [\n loadedFeatures.length,\n ]);\n // Mutative to prevent triggering rerenders in all listening\n // components every time this component renders\n for (var key in props) {\n value[key] = props[key];\n }\n return (createElement(MotionConfigContext.Provider, { value: value }, children));\n}\n\nfunction checkShouldInheritVariant(_a) {\n var animate = _a.animate, variants = _a.variants, inherit = _a.inherit;\n return inherit === undefined ? !!variants && !animate : inherit;\n}\n\n/**\n * Load features via renderless components based on the provided MotionProps\n */\nfunction useFeatures(defaultFeatures, isStatic, visualElement, props) {\n var plugins = useContext(MotionConfigContext);\n // If this is a static component, or we're rendering on the server, we don't load\n // any feature components\n if (isStatic || typeof window === \"undefined\")\n return null;\n var allFeatures = __spread(defaultFeatures, plugins.features);\n var numFeatures = allFeatures.length;\n var features = [];\n // Decide which features we should render and add them to the returned array\n for (var i = 0; i < numFeatures; i++) {\n var _a = allFeatures[i], shouldRender = _a.shouldRender, key = _a.key, getComponent = _a.getComponent;\n if (shouldRender(props)) {\n var Component = getComponent(props);\n Component &&\n features.push(createElement(Component, __assign({ key: key }, props, { visualElement: visualElement, inherit: checkShouldInheritVariant(props) })));\n }\n }\n return features;\n}\n\nvar Presence;\n(function (Presence) {\n Presence[Presence[\"Entering\"] = 0] = \"Entering\";\n Presence[Presence[\"Present\"] = 1] = \"Present\";\n Presence[Presence[\"Exiting\"] = 2] = \"Exiting\";\n})(Presence || (Presence = {}));\nvar VisibilityAction;\n(function (VisibilityAction) {\n VisibilityAction[VisibilityAction[\"Hide\"] = 0] = \"Hide\";\n VisibilityAction[VisibilityAction[\"Show\"] = 1] = \"Show\";\n})(VisibilityAction || (VisibilityAction = {}));\n\n/**\n * Default handlers for batching VisualElements\n */\nvar defaultHandler = {\n measureLayout: function (child) { return child.measureLayout(); },\n layoutReady: function (child) { return child.layoutReady(); },\n};\n/**\n * Sort VisualElements by tree depth, so we process the highest elements first.\n */\nvar sortByDepth = function (a, b) {\n return a.depth - b.depth;\n};\n/**\n * Create a batcher to process VisualElements\n */\nfunction createBatcher() {\n var queue = new Set();\n var add = function (child) { return queue.add(child); };\n var flush = function (_a) {\n var _b = _a === void 0 ? defaultHandler : _a, measureLayout = _b.measureLayout, layoutReady = _b.layoutReady;\n var order = Array.from(queue).sort(sortByDepth);\n /**\n * Write: Reset any transforms on children elements so we can read their actual layout\n */\n order.forEach(function (child) { return child.resetTransform(); });\n /**\n * Read: Measure the actual layout\n */\n order.forEach(measureLayout);\n /**\n * Write: Notify the VisualElements they're ready for further write operations.\n */\n order.forEach(layoutReady);\n /**\n * After all children have started animating, ensure any Entering components are set to Present.\n * If we add deferred animations (set up all animations and then start them in two loops) this\n * could be moved to the start loop. But it needs to happen after all the animations configs\n * are generated in AnimateSharedLayout as this relies on presence data\n */\n order.forEach(function (child) {\n if (child.isPresent)\n child.presence = Presence.Present;\n });\n queue.clear();\n };\n return { add: add, flush: flush };\n}\nfunction isSharedLayout(context) {\n return !!context.forceUpdate;\n}\nvar SharedLayoutContext = createContext(createBatcher());\n/**\n * @internal\n */\nvar FramerTreeLayoutContext = createContext(createBatcher());\n\nvar isBrowser = typeof window !== \"undefined\";\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nfunction useSnapshotOnUnmount(visualElement) {\n var syncLayout = useContext(SharedLayoutContext);\n var framerSyncLayout = useContext(FramerTreeLayoutContext);\n useIsomorphicLayoutEffect(function () { return function () {\n if (isSharedLayout(syncLayout)) {\n syncLayout.remove(visualElement);\n }\n if (isSharedLayout(framerSyncLayout)) {\n framerSyncLayout.remove(visualElement);\n }\n }; }, []);\n}\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
    \n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useOpaqueId when released in React\n var id = useUniqueId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
    \n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useUniqueId = function () { return useConstant(incrementId); };\n\n/**\n * Use callback either only on the initial render or on all renders. In concurrent mode\n * the \"initial\" render might run multiple times\n *\n * @param callback - Callback to run\n * @param isInitialOnly - Set to `true` to only run on initial render, or `false` for all renders. Defaults to `false`.\n *\n * @public\n */\nfunction useInitialOrEveryRender(callback, isInitialOnly) {\n if (isInitialOnly === void 0) { isInitialOnly = false; }\n var isInitialRender = useRef(true);\n if (!isInitialOnly || (isInitialOnly && isInitialRender.current)) {\n callback();\n }\n isInitialRender.current = false;\n}\n\n/**\n * This hook is resonsible for creating the variant-propagation tree\n * relationship between VisualElements.\n */\nfunction useVariants(visualElement, _a, isStatic) {\n var _b, _c;\n var variants = _a.variants, initial = _a.initial, animate = _a.animate, whileTap = _a.whileTap, whileHover = _a.whileHover;\n var _d = useVariantContext(), parent = _d.parent, parentInitial = _d.initial, parentAnimate = _d.animate;\n var presenceContext = useContext(PresenceContext);\n /**\n * We only add this VisualElement to the variant tree *if* we're:\n * 1. Being provided a variants prop\n * 2. Being used to control variants (ie animate, whileHover etc)\n * 3. Or being passed animation controls, which we have to assume may control variants\n * Otherwise this component should be \"invisible\" to variant propagation. This is a concession\n * to Framer which uses a `motion` component in every `Frame` and it might be if we change that\n * in the future that this restriction is removed.\n */\n var controlsVariants = isVariantLabel$1(animate) ||\n isVariantLabel$1(whileTap) ||\n isVariantLabel$1(whileHover) ||\n isAnimationControls(animate);\n var isVariantNode = variants || controlsVariants;\n /**\n * Override initial with one from a parent `AnimatePresence`, if present\n */\n initial = (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) !== null && _b !== void 0 ? _b : initial;\n /**\n * If initial is false, and animate isn't animation controls, we assign animate\n * to initial and set our values to that for the initial render.\n */\n if (initial === false && !isAnimationControls(animate)) {\n initial = animate;\n }\n var context = useMemo(function () { return ({\n parent: isVariantNode ? visualElement : parent,\n initial: isVariantLabel$1(initial) ? initial : parentInitial,\n animate: isVariantLabel$1(animate) ? animate : parentAnimate,\n }); }, \n /**\n * Only create a new context value (thereby re-rendering children) if this\n * is a static component and `initial` changes.\n */\n [isStatic ? initial : null]);\n // Set initial state. If this is a static component (ie in Framer canvas), respond to updates\n // in `initial`.\n useInitialOrEveryRender(function () {\n var initialToApply = initial || parentInitial;\n initialToApply && setValues(visualElement, initialToApply);\n }, !isStatic);\n /**\n * Subscribe to the parent visualElement if this is a participant in the variant tree\n */\n isVariantNode && !controlsVariants && (parent === null || parent === void 0 ? void 0 : parent.addVariantChild(visualElement));\n /**\n * If this component isn't exiting the tree, clear all the children in the render phase.\n * This will allow children to resubscribe in the correct order to ensure the correct stagger order.\n */\n isPresent(presenceContext) && ((_c = visualElement.variantChildrenOrder) === null || _c === void 0 ? void 0 : _c.clear());\n /**\n * Subscribe to the propagated parent.\n */\n useEffect(function () {\n isVariantNode && (parent === null || parent === void 0 ? void 0 : parent.addVariantChildOrder(visualElement));\n });\n /**\n * Track mount status so children can detect whether they were present during the\n * component's initial mount.\n */\n useEffect(function () {\n visualElement.isMounted = true;\n return function () {\n var _a;\n visualElement.isMounted = false;\n (_a = parent === null || parent === void 0 ? void 0 : parent.variantChildren) === null || _a === void 0 ? void 0 : _a.delete(visualElement);\n };\n }, []);\n /**\n * We want to update the \"base\" (or fallback) value on the initial render.\n */\n useInitialOrEveryRender(function () {\n visualElement.forEachValue(function (value, key) {\n visualElement.baseTarget[key] = value.get();\n });\n }, true);\n return context;\n}\nfunction isVariantLabel$1(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\nfunction isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n *\n * @internal\n */\nfunction createMotionComponent(Component, _a) {\n var defaultFeatures = _a.defaultFeatures, useVisualElement = _a.useVisualElement, render = _a.render;\n function MotionComponent(props, externalRef) {\n /**\n * If a component is static, we only visually update it as a\n * result of a React re-render, rather than any interactions or animations.\n * If this component or any ancestor is static, we disable hardware acceleration\n * and don't load any additional functionality.\n */\n var isStatic = useContext(MotionConfigContext).isStatic;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n var visualElement = useVisualElement(Component, props, isStatic, externalRef);\n /**\n * Scrape MotionValues from props and add/remove them to/from the VisualElement.\n */\n useMotionValues(visualElement, props);\n /**\n * Add the visualElement as a node in the variant tree.\n */\n var variantContext = useVariants(visualElement, props, isStatic);\n /**\n * Load features as renderless components unless the component isStatic\n */\n var features = useFeatures(defaultFeatures, isStatic, visualElement, props);\n /**\n * Only create a new context value when the sub-contexts change.\n */\n var context = useMemo(function () { return ({ visualElement: visualElement, variantContext: variantContext }); }, [\n visualElement,\n variantContext,\n ]);\n var component = render(Component, props, visualElement);\n /**\n * If this component is a child of AnimateSharedLayout, we need to snapshot the component\n * before it's unmounted. This lives here rather than in features/layout/Measure because\n * as a child component its unmount effect runs after this component has been unmounted.\n */\n useSnapshotOnUnmount(visualElement);\n // The mount order and hierarchy is specific to ensure our element ref is hydrated by the time\n // all plugins and features has to execute.\n return (createElement(Fragment, null,\n createElement(MotionContext.Provider, { value: context }, component),\n features));\n }\n return forwardRef(MotionComponent);\n}\n\nfunction createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\n\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler, options); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
    \n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nfunction isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nfunction getViewportPointFromEvent(event) {\n return extractEventInfo(event, \"client\");\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nvar isBrowser$1 = typeof window !== \"undefined\";\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser$1 && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser$1 && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser$1 && window.onmousedown === null;\n};\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var transformPagePoint = (_a === void 0 ? {} : _a).transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `