{"version":3,"file":"639.00911183.js","mappings":"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iBAA6D,cAC7D,aACA,OACA,I,+ECdAA,EAAA,sBACA,OACA,kBACA,oBACA,gBACA,W,mFCJA,4DACA,kEACA,sEAEAA,EAAA,wBACA,WACA,uBACA,S,mFCPA,sDACA,uEACA,mEACA,mEACA,6DACA,gDACA,oDACA,6DACA,mDACA,qDACA,0DAEA,sBACA,2BACA,gBACA,SACA,WACA,YAEA,aAA8B,aAE9BA,EAAA,gCACA,SAEA,IAkBA,MAlBA,cACA,qBACA,0BACA,UACA,OACA,OACA,yBAA+C,sBAC1C,kBAAqB,qBAG1B,gBACA,KACA,cACA,QACA,iBACA,QACA,cACA,2BAiCA,GA7BA,IACA,mBACA,+BACA,cACA,EACA,OACS,yBACT,UAIA,aACA,cAKA,sBACA,KACA,aAAyC,sBAIzC,iBACA,SAEA,OAGA,EAMA,GALA,GACA,YACA,cACA,cAEA,cACA,kBACA,iBAEK,GAAS,+BAAqF,GAGnG,W,kECxFA,qDAGAA,EAAA,uBACA,OAA0E,GAA1E,yBAAiC,KAAQ,eAAmB,YAAc,M,8ECJ1E,sDACA,qDAEA,aAEA,2BAEAA,EAAA,oBACA,iC,kECPAA,EAAA,SACA,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,6DCRA,sDACA,gFACA,gDACA,oDACA,sDACA,uEACA,qDAgBAA,EAAA,sBACA,IAGA,UAHA,WACA,WACA,SASA,GANA,EADA,EACA,EACG,EACH,eAEA,UAAkC,UAElC,YAQA,GAPA,OAGA,EAFA,eACA,WACA,QACK,MACL,sCAEA,OACA,wBACA,QAGA,oBACA,eAGA,c,0DCnDAA,EAAA,oBACA,IACA,YACG,SACH,Y,yECJA,sDAEAA,EAAA,0D,0ECFA,uDACA,qDAGA,EAFA,0DAEA,aAEAA,EAAA,oBACA,wBACA,iBACA,U,8DCTA,2BACA,cACA,2BAIAA,EAAA,QAEA,8EACA,yBACA,4DACA,eAEA,4BAbA,0D,wDCAA,SAAuB,eAEvBA,EAAA,sBACA,qB,gECHAA,EAAA,Y,2DAAA,2DCCA,kEACA,sEAEAA,EAAA,0BACA,wBACC,gBAED,OADA,OACA,I,2DCRA,IAEA,EAFA,gDAEA,SAEAA,EAAA,8B,qECJA,2DACA,iDACA,mEAGAA,EAAA,2BACA,OAEG,GAFH,oCACA,eAAsB,YACnB,M,qECPH,qDACA,uDAEA,WAEAA,EAAA,sBAGA,8CACC,YACD,6CACC,Q,qECZD,IASA,MATA,2DACA,kDACA,qDACA,gDACA,+CACA,sDACA,uDAEA,YAgBA,MACA,YACA,QACA,QACA,QACA,gBAEA,OADA,cACA,GAEA,cACA,wBAEA,cACA,wBAEC,CACD,iBACA,QACA,gBAEA,OADA,SACA,GAEA,cACA,uBAEA,cACA,eAIAA,EAAA,SACA,MACA,MACA,MACA,QA/CA,YACA,0BA+CA,UA5CA,YACA,mBACA,MACA,4BACA,yDACK,a,+ECpBL,iEACA,qDAEA,gBACA,kBAGAA,EAAA,oBACA,6C,gECRA,qDAEA,oBAEA,gBACA,cACA,aACA,OACA,4BACA,IAGA,0BACA,+CAGA,YACA,eACA,iBAEAA,EAAA,W,8DCpBAA,EAAA,oBACA,sD,4DCDAA,EAAA,Y,kFCCA,IAaA,MAbA,mEACA,gDACA,+CACA,6DACA,mDAEA,gBACA,KAQA,UAGA,SAFA,cAIA,aACA,wBAHA,MAOA,gBAGA,kBAnBA,WAA8B,eAqB9BA,EAAA,SACA,oBACA,2B,8DCjCAA,EAAA,Y,oEAAA,qDCEAA,EAAA,uDAGA,4B,sECLA,sDACA,8DAEA,YAEAA,EAAA,6D,oECLA,yDACA,oEACA,yDACA,uDACA,gDACA,mEAEA,EADA,mDACA,aAGA,eAGA,aAEA,IAMA,EANA,cACA,WAcA,IARA,uBACA,iBACA,aAJA,gBAKA,4BACA,OACA,+CACA,UACA,MACA,8BACA,YAIAA,EAAA,qCACA,MAQA,OAPA,UACA,iBACA,QACA,iBAEA,QACG,WACH,gBAGAojB,EAAA,O,+EC/CA,2DACA,kEACA,qDACA,uDAEApjB,EAAA,gDACA,KAKA,IAJA,IAGA,EAHA,OACA,WACA,IAEA,0BACA,W,6ECZA,2DACA,0DACA,qDACA,wDAEA,wBAEAC,EAAA,sBAIA,GAHA,KACA,UACA,KACA,MACA,gBACG,UACH,mEAEA,MADA,4BACA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","sources":["webpack:///index.marko","webpack:///feather-icon.marko","webpack:///ui-icon.marko","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///../../node_modules/@popperjs/core/lib/utils/math.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///../../node_modules/@popperjs/core/lib/enums.js","webpack:///../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///../../node_modules/@popperjs/core/lib/createPopper.js","webpack:///../../node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///../../node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///../../node_modules/@popperjs/core/lib/utils/within.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///../../node_modules/@popperjs/core/lib/popper.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///../../node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///ui-popover.marko","webpack:///ui-button.marko","webpack:///ui-card.marko","webpack:///ui-color-select.marko","webpack:///ui-combobox.marko","webpack:///ui-container.marko","webpack:///ui-select.marko","webpack:///ui-date-select.marko","webpack:///ui-date.marko","webpack:///ui-duration.marko","webpack:///ui-element.marko","webpack:///ui-emphasis.marko","webpack:///ui-form.marko","webpack:///ui-heading.marko","webpack:///ui-label.marko","webpack:///ui-linear-layout.marko","webpack:///ui-list.marko","webpack:///ui-sidebar.marko","webpack:///ui-spacer.marko","webpack:///ui-submit.marko","webpack:///ui-text.marko","webpack:///ui-textbox.marko","webpack:///ui-timer.marko","webpack:///../../node_modules/@use-gesture/core/dist/maths-b2a210f4.esm.js","webpack:///../../node_modules/@use-gesture/core/dist/actions-8e8e64ea.esm.js","webpack:///../../node_modules/@use-gesture/core/dist/use-gesture-core.esm.js","webpack:///../../node_modules/@use-gesture/vanilla/dist/use-gesture-vanilla.esm.js","webpack:///../../node_modules/axios/index.js","webpack:///../../node_modules/axios/lib/adapters/xhr.js","webpack:///../../node_modules/axios/lib/axios.js","webpack:///../../node_modules/axios/lib/cancel/Cancel.js","webpack:///../../node_modules/axios/lib/cancel/CancelToken.js","webpack:///../../node_modules/axios/lib/cancel/isCancel.js","webpack:///../../node_modules/axios/lib/core/Axios.js","webpack:///../../node_modules/axios/lib/core/InterceptorManager.js","webpack:///../../node_modules/axios/lib/core/buildFullPath.js","webpack:///../../node_modules/axios/lib/core/createError.js","webpack:///../../node_modules/axios/lib/core/dispatchRequest.js","webpack:///../../node_modules/axios/lib/core/enhanceError.js","webpack:///../../node_modules/axios/lib/core/mergeConfig.js","webpack:///../../node_modules/axios/lib/core/settle.js","webpack:///../../node_modules/axios/lib/core/transformData.js","webpack:///../../node_modules/axios/lib/defaults.js","webpack:///../../node_modules/axios/lib/helpers/bind.js","webpack:///../../node_modules/axios/lib/helpers/buildURL.js","webpack:///../../node_modules/axios/lib/helpers/combineURLs.js","webpack:///../../node_modules/axios/lib/helpers/cookies.js","webpack:///../../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///../../node_modules/axios/lib/helpers/isAxiosError.js","webpack:///../../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///../../node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///../../node_modules/axios/lib/helpers/parseHeaders.js","webpack:///../../node_modules/axios/lib/helpers/spread.js","webpack:///../../node_modules/axios/lib/helpers/validator.js","webpack:///../../node_modules/axios/lib/utils.js","webpack:///../../node_modules/date-fns/_lib/addLeadingZeros/index.js","webpack:///../../node_modules/date-fns/_lib/assign/index.js","webpack:///../../node_modules/date-fns/_lib/cloneObject/index.js","webpack:///../../node_modules/date-fns/_lib/format/formatters/index.js","webpack:///../../node_modules/date-fns/_lib/format/lightFormatters/index.js","webpack:///../../node_modules/date-fns/_lib/format/longFormatters/index.js","webpack:///../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///../../node_modules/date-fns/_lib/getUTCDayOfYear/index.js","webpack:///../../node_modules/date-fns/_lib/getUTCISOWeek/index.js","webpack:///../../node_modules/date-fns/_lib/getUTCISOWeekYear/index.js","webpack:///../../node_modules/date-fns/_lib/getUTCWeek/index.js","webpack:///../../node_modules/date-fns/_lib/getUTCWeekYear/index.js","webpack:///../../node_modules/date-fns/_lib/protectedTokens/index.js","webpack:///../../node_modules/date-fns/_lib/requiredArgs/index.js","webpack:///../../node_modules/date-fns/_lib/roundingMethods/index.js","webpack:///../../node_modules/date-fns/_lib/startOfUTCISOWeek/index.js","webpack:///../../node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js","webpack:///../../node_modules/date-fns/_lib/startOfUTCWeek/index.js","webpack:///../../node_modules/date-fns/_lib/startOfUTCWeekYear/index.js","webpack:///../../node_modules/date-fns/_lib/toInteger/index.js","webpack:///../../node_modules/date-fns/addDays/index.js","webpack:///../../node_modules/date-fns/addMilliseconds/index.js","webpack:///../../node_modules/date-fns/addMonths/index.js","webpack:///../../node_modules/date-fns/compareAsc/index.js","webpack:///../../node_modules/date-fns/constants/index.js","webpack:///../../node_modules/date-fns/differenceInCalendarDays/index.js","webpack:///../../node_modules/date-fns/differenceInCalendarMonths/index.js","webpack:///../../node_modules/date-fns/differenceInCalendarYears/index.js","webpack:///../../node_modules/date-fns/differenceInDays/index.js","webpack:///../../node_modules/date-fns/differenceInHours/index.js","webpack:///../../node_modules/date-fns/differenceInMilliseconds/index.js","webpack:///../../node_modules/date-fns/differenceInMinutes/index.js","webpack:///../../node_modules/date-fns/differenceInMonths/index.js","webpack:///../../node_modules/date-fns/differenceInSeconds/index.js","webpack:///../../node_modules/date-fns/differenceInYears/index.js","webpack:///../../node_modules/date-fns/endOfDay/index.js","webpack:///../../node_modules/date-fns/endOfMonth/index.js","webpack:///../../node_modules/date-fns/format/index.js","webpack:///../../node_modules/date-fns/formatDistance/index.js","webpack:///../../node_modules/date-fns/formatDistanceStrict/index.js","webpack:///../../node_modules/date-fns/getDaysInMonth/index.js","webpack:///../../node_modules/date-fns/intervalToDuration/index.js","webpack:///../../node_modules/date-fns/isDate/index.js","webpack:///../../node_modules/date-fns/isLastDayOfMonth/index.js","webpack:///../../node_modules/date-fns/isValid/index.js","webpack:///../../node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","webpack:///../../node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","webpack:///../../node_modules/date-fns/locale/_lib/buildMatchFn/index.js","webpack:///../../node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","webpack:///../../node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","webpack:///../../node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","webpack:///../../node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","webpack:///../../node_modules/date-fns/locale/en-US/_lib/localize/index.js","webpack:///../../node_modules/date-fns/locale/en-US/_lib/match/index.js","webpack:///../../node_modules/date-fns/locale/en-US/index.js","webpack:///../../node_modules/date-fns/setHours/index.js","webpack:///../../node_modules/date-fns/setMinutes/index.js","webpack:///../../node_modules/date-fns/setMonth/index.js","webpack:///../../node_modules/date-fns/setYear/index.js","webpack:///../../node_modules/date-fns/startOfDay/index.js","webpack:///../../node_modules/date-fns/sub/index.js","webpack:///../../node_modules/date-fns/subDays/index.js","webpack:///../../node_modules/date-fns/subMilliseconds/index.js","webpack:///../../node_modules/date-fns/subMonths/index.js","webpack:///../../node_modules/date-fns/toDate/index.js","webpack:///../../node_modules/events-light/src/index.js","webpack:///feather/webpack/universalModuleDefinition","webpack:///feather/webpack/bootstrap","webpack:///feather/node_modules/classnames/dedupe.js","webpack:///feather/node_modules/core-js/es/array/from.js","webpack:///feather/node_modules/core-js/internals/a-function.js","webpack:///feather/node_modules/core-js/internals/an-object.js","webpack:///feather/node_modules/core-js/internals/array-from.js","webpack:///feather/node_modules/core-js/internals/array-includes.js","webpack:///feather/node_modules/core-js/internals/bind-context.js","webpack:///feather/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///feather/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///feather/node_modules/core-js/internals/classof-raw.js","webpack:///feather/node_modules/core-js/internals/classof.js","webpack:///feather/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///feather/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///feather/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///feather/node_modules/core-js/internals/create-property-descriptor.js","webpack:///feather/node_modules/core-js/internals/create-property.js","webpack:///feather/node_modules/core-js/internals/define-iterator.js","webpack:///feather/node_modules/core-js/internals/descriptors.js","webpack:///feather/node_modules/core-js/internals/document-create-element.js","webpack:///feather/node_modules/core-js/internals/enum-bug-keys.js","webpack:///feather/node_modules/core-js/internals/export.js","webpack:///feather/node_modules/core-js/internals/fails.js","webpack:///feather/node_modules/core-js/internals/function-to-string.js","webpack:///feather/node_modules/core-js/internals/get-iterator-method.js","webpack:///feather/node_modules/core-js/internals/global.js","webpack:///feather/node_modules/core-js/internals/has.js","webpack:///feather/node_modules/core-js/internals/hidden-keys.js","webpack:///feather/node_modules/core-js/internals/hide.js","webpack:///feather/node_modules/core-js/internals/html.js","webpack:///feather/node_modules/core-js/internals/ie8-dom-define.js","webpack:///feather/node_modules/core-js/internals/indexed-object.js","webpack:///feather/node_modules/core-js/internals/internal-state.js","webpack:///feather/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///feather/node_modules/core-js/internals/is-forced.js","webpack:///feather/node_modules/core-js/internals/is-object.js","webpack:///feather/node_modules/core-js/internals/is-pure.js","webpack:///feather/node_modules/core-js/internals/iterators-core.js","webpack:///feather/node_modules/core-js/internals/iterators.js","webpack:///feather/node_modules/core-js/internals/native-symbol.js","webpack:///feather/node_modules/core-js/internals/native-weak-map.js","webpack:///feather/node_modules/core-js/internals/object-create.js","webpack:///feather/node_modules/core-js/internals/object-define-properties.js","webpack:///feather/node_modules/core-js/internals/object-define-property.js","webpack:///feather/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///feather/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///feather/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///feather/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///feather/node_modules/core-js/internals/object-keys-internal.js","webpack:///feather/node_modules/core-js/internals/object-keys.js","webpack:///feather/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///feather/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///feather/node_modules/core-js/internals/own-keys.js","webpack:///feather/node_modules/core-js/internals/path.js","webpack:///feather/node_modules/core-js/internals/redefine.js","webpack:///feather/node_modules/core-js/internals/require-object-coercible.js","webpack:///feather/node_modules/core-js/internals/set-global.js","webpack:///feather/node_modules/core-js/internals/set-to-string-tag.js","webpack:///feather/node_modules/core-js/internals/shared-key.js","webpack:///feather/node_modules/core-js/internals/shared.js","webpack:///feather/node_modules/core-js/internals/string-at.js","webpack:///feather/node_modules/core-js/internals/to-absolute-index.js","webpack:///feather/node_modules/core-js/internals/to-indexed-object.js","webpack:///feather/node_modules/core-js/internals/to-integer.js","webpack:///feather/node_modules/core-js/internals/to-length.js","webpack:///feather/node_modules/core-js/internals/to-object.js","webpack:///feather/node_modules/core-js/internals/to-primitive.js","webpack:///feather/node_modules/core-js/internals/uid.js","webpack:///feather/node_modules/core-js/internals/validate-set-prototype-of-arguments.js","webpack:///feather/node_modules/core-js/internals/well-known-symbol.js","webpack:///feather/node_modules/core-js/modules/es.array.from.js","webpack:///feather/node_modules/core-js/modules/es.string.iterator.js","webpack:///feather/(webpack)/buildin/global.js","webpack:///feather/src/icon.js","webpack:///feather/src/icons.js","webpack:///feather/src/index.js","webpack:///feather/src/replace.js","webpack:///feather/src/to-svg.js","webpack:///../../node_modules/listener-tracker/lib/listener-tracker.js","webpack:///../../../../src/core-tags/components/preserve-tag/index-browser.js","webpack:///../runtime/RenderResult.js","webpack:///../../../src/runtime/components/Component.js","webpack:///../../../src/runtime/components/ComponentDef.js","webpack:///../../../src/runtime/components/ComponentsContext.js","webpack:///../../../src/runtime/components/GlobalComponentsContext.js","webpack:///../../../src/runtime/components/KeySequence.js","webpack:///../../../src/runtime/components/State.js","webpack:///../../../../src/runtime/components/beginComponent/index-browser.js","webpack:///../../../src/runtime/components/defineComponent.js","webpack:///../../../src/runtime/components/dom-data.js","webpack:///../../../../src/runtime/components/endComponent/index-browser.js","webpack:///../../../../src/runtime/components/entry/index-browser.js","webpack:///../../../src/runtime/components/event-delegation.js","webpack:///../../../src/runtime/components/index.js","webpack:///../../../../src/runtime/components/init-components/index-browser.js","webpack:///../../../../src/runtime/components/registry/index-browser.js","webpack:///../../../src/runtime/components/renderer.js","webpack:///../../../src/runtime/components/update-manager.js","webpack:///../../../../src/runtime/components/util/index-browser.js","webpack:///../runtime/createOut.js","webpack:///../runtime/dom-insert.js","webpack:///../../../src/runtime/helpers/_change-case.js","webpack:///../../../src/runtime/helpers/class-value.js","webpack:///../../../src/runtime/helpers/dynamic-tag.js","webpack:///../../../src/runtime/helpers/render-tag.js","webpack:///../../../src/runtime/helpers/style-value.js","webpack:///../runtime/queueMicrotask.js","webpack:///../runtime/renderable.js","webpack:///../../../src/runtime/setImmediate/index-browser.js","webpack:///../../../src/runtime/vdom/AsyncVDOMBuilder.js","webpack:///../../../src/runtime/vdom/VComponent.js","webpack:///../../../src/runtime/vdom/VDocumentFragment.js","webpack:///../../../src/runtime/vdom/VElement.js","webpack:///../../../src/runtime/vdom/VFragment.js","webpack:///../../../src/runtime/vdom/VNode.js","webpack:///../../../src/runtime/vdom/VText.js","webpack:///../../../../src/runtime/vdom/helpers/attrs.js","webpack:///../../../../src/runtime/vdom/helpers/v-element.js","webpack:///../../../src/runtime/vdom/index.js","webpack:///../../../../src/runtime/vdom/morphdom/fragment.js","webpack:///../../../../src/runtime/vdom/morphdom/helpers.js","webpack:///../../../../src/runtime/vdom/morphdom/index.js","webpack:///../../../../src/runtime/vdom/morphdom/specialElHandlers.js","webpack:///../../../src/runtime/vdom/parse-html.js","webpack:///../../../src/runtime/vdom/vdom.js","webpack:///../../node_modules/raptor-util/copyProps.js","webpack:///../../node_modules/raptor-util/extend.js","webpack:///../../node_modules/raptor-util/inherit.js","webpack:///../../node_modules/regenerator-runtime/runtime.js","webpack:///../../node_modules/simple-marko-router/router.js","webpack:///../../node_modules/simple-marko-ui/components/base.mixin.js","webpack:///../../node_modules/simple-marko-ui/components/ui-button.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-card.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-color-select.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-combobox.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-container.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-date-select.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-date.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-duration.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-element.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-linear-layout.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-list.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-select.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-submit.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-textbox.component.js","webpack:///../../node_modules/simple-marko-ui/components/ui-timer.component.js","webpack:///../../node_modules/timezones-list/dist/index.js","webpack:///../../node_modules/warp10/constants.js","webpack:///../../node_modules/warp10/finalize.js","webpack:///../../node_modules/warp10/src/constants.js","webpack:///../../node_modules/warp10/src/finalize.js"],"sourcesContent":["import {navigate} from \"../../router.js\";\n\nclass {\n handleClick(event) {\n navigate(this.input.path);\n }\n}\n\nstyle {\n .router-link {\n display: contents;\n }\n}\n\ndiv.router-link on-click('handleClick')\n <${input.renderBody}/>","import feather from 'feather-icons'\n\nclass {\n handleClick(event) {\n this.emit(\"click\", event);\n }\n}\n\nstyle {\n .feather-icon {\n --feather-icon-color: inherit;\n --feather-icon-stroke: currentColor;\n --feather-icon-size: 1em;\n --feather-icon-fill: none;\n --feather-icon-stroke-width: 2px;\n --feather-icon-linecap: round;\n --feather-icon-linejoin: round;\n\n display: flex;\n }\n}\n\n$ let width = input.width||input.size||'var(--feather-icon-size)';\n$ let height = input.height||input.size||'var(--feather-icon-size)';\n\n$ let attrs = {\n color: input.color||'var(--feather-icon-color)',\n class: 'feather-icon-svg',\n 'style': \"width:\"+width + \"; height:\"+height+\";\", //Set the width and height using a style so that CSS vars work.\n fill: input.fill||'var(--feather-icon-fill)',\n stroke: input.stroke||'var(--feather-icon-stroke)',\n 'stroke-width': input.strokewidth||'var(--feather-icon-stroke-width)',\n 'stroke-linecap': input.strokelinecap||'var(--feather-icon-linecap)',\n 'stroke-linejoin': input.strokelinejoin||'var(--feather-icon-linejoin)'\n}\n\n$ let icon = feather.icons[input.icon||\"image\"]||feather.icons[\"image\"];\n$ let svg = icon!==null?icon.toSvg(attrs):\"ICON ERROR\";\n\ndiv.feather-icon class=input.class id=input.id on-click(\"handleClick\") -- $!{svg}","feather-icon.ui-icon ...input class=input.class id=input.id","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } 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(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function 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};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n\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' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_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 variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\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)) : isElement(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' && (canEscapeClipping ? getComputedStyle(clippingParent).position !== 'static' : true);\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 getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { createPopper } from '@popperjs/core'\n\nclass {\n onCreate() {\n this.state = {\n popper: null\n };\n }\n onMount() {\n this.state.popper = createPopper(this.el.previousElementSibling, this.getComponent(\"popover\").el, {\n placement: \"bottom\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 5]\n }\n },\n {\n name: 'arrow',\n options: {\n padding: 8,\n element: this.getEl(\"arrow\")\n }\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: true,\n padding: 8\n },\n }\n ]\n });\n\n this.state.popper.update();\n\n this.update();\n }\n\n async onUpdate() {\n await this.state.popper.update();\n }\n}\n\nstyle {\n .ui-popover {\n visibility: hidden;\n pointer-events: none;\n font-size: initial !important;\n background-color: var(--oc-gray-7) !important;\n color: white !important;\n position: absolute;\n }\n\n *:hover + .ui-popover {\n pointer-events: auto;\n visibility: visible;\n z-index: 2;\n }\n\n .ui-popover-arrow {\n display: block;\n position: absolute;\n bottom: calc(100% - 5px);\n background-color: var(--oc-gray-7);\n width: 10px;\n height: 10px;\n border-radius: 10px;\n }\n}\n\nui-container.ui-popover ...input filled rounded raised padded key=\"popover\"\n div.ui-popover-arrow key=\"arrow\"\n <${input.renderBody}/>\n\n","style {\n .ui-button {\n cursor: pointer;\n transition: background-color 0.15s, color 0.15s;\n user-select: none;\n font-family: var(--button-font);\n }\n\n .ui-button a {\n text-decoration: none;\n }\n\n .ui-button:hover {\n background-color: var(--secondary-dark);\n color: var(--text-light);\n }\n\n .ui-button-content {\n display: flex;\n align-items: center;\n color: inherit;\n }\n\n .ui-button-content > .ui-icon:not(:last-child) {\n margin-right: 8px;\n }\n\n .ui-button-content > .ui-icon:last-child:not(:first-child) {\n margin-left: 8px;\n }\n\n .ui-button.disabled {\n background-color: var(--primary-dark);\n cursor: default;\n }\n\n .ui-button.disabled:hover {\n color: var(--text-dark);\n }\n}\n\nui-element.ui-button ...input title=null on-click(input.disabled?()=>{}:\"handleClick\") class=input.class id=input.id\n ui-element.ui-button-content tag=\"a\" padded href=input.href||input.src||null\n if(input.icon)\n ui-icon icon=input.icon\n if(input.text)\n ui-text -- ${input.text}\n <${input.renderBody}/>\n if(input.trailingicon)\n ui-icon icon=input.trailingicon\nif(input.title!=null)\n ui-popover\n ui-text -- ${input.title}","style {\n .ui-card {\n\n }\n}\n\nui-linear-layout.ui-card vertical ...input class=input.class id=input.id on-click(\"handleClick\") gutter=\"0px\"\n if(input.header)\n @element ...input.header fillspace fullwidth\n ui-linear-layout vertical gutter=\"0px\" fillspace fullwidth\n if(input.header.title)\n @element fillspace fullwidth\n ui-heading heading=input.header.heading||2 -- ${input.header.title}\n if(input.header.subtitle)\n @element fillspace fullwidth\n ui-heading heading=input.header.subheading||5 -- ${input.header.subtitle}\n if(input.header.renderBody)\n @element fillspace fullwidth\n <${input.header.renderBody}/>\n if(input.renderBody)\n @element fillspace\n <${input.renderBody}/>","style {\n .ui-color-select-wrapper {\n position: relative;\n }\n\n .ui-color-preview {\n position: relative;\n cursor: pointer;\n border-radius: 50%;\n background-color: transparent;\n }\n\n .ui-color-preview::before {\n padding: var(--padding-wide);\n transition: border 0.5s, margin 0.5s;\n border-radius: 50%;\n background-color: inherit;\n position: absolute;\n top: -5px;\n left: -5px;\n content: \"\";\n display: block;\n border: 5px solid transparent;\n }\n\n .active-color::before, .ui-color-preview-wrapper:hover > .ui-color-preview::before {\n /*transform: scale(1.2);*/\n border: 5px solid #ffffffee;\n }\n\n .ui-color-select {\n position: fixed;\n width: 200px;\n margin: 5% auto; /* Will not center vertically and won't work in IE6/7. */\n left: 0;\n right: 0;\n background-color: #fff;\n }\n\n .ui-color-select-inner {\n transition: background-color 0.25s;\n padding-bottom: calc(var(--padding) + 8px) !important;\n padding-top: calc(var(--padding-wide) + 10px) !important;\n }\n\n .ui-color-select-wrapper .ui-label-small {\n transform: translateY(calc((var(--padding-wide) + 3.25em) * -1)) scale(var(--label-small-scale));\n }\n}\n\n$ let colorsLists = input.colors||[['#fff', '#aaa', '#888', '#444', '#000']]\n\ndiv.ui-color-select-wrapper\n if(input.popup)\n ui-element.ui-color-preview ...input padded outlined filled theme={'--primary': state.color, '--primary': state.color} on-click(\"toggleDialogue\")\n ui-container fullscreen hidden=!state.showDialogue on-click(\"toggleDialogue\")\n ui-card.ui-color-select ...input raised hidden=!state.showDialogue\n @header title=\"Color Select\" heading=5\n ui-linear-layout vertical centered padded\n for|colors| of=colorsLists\n @element\n ui-linear-layout centered\n for|color| of=colors\n @element\n ui-element.ui-color-preview padded outlined filled theme={'--primary': color} on-click(\"selectColor\", color)\n else\n ui-linear-layout.ui-color-select-inner.ui-input wrap theme={'--primary': state.color.color+\"44\"} filled paddedwide ...input\n for|color| of=input.colors||colorsLists[0]\n @element.ui-color-preview-wrapper\n ui-element.ui-color-preview class={\"active-color\": state.color.value===color.value} paddedwide filled theme={'--primary': color.color} raised on-click(\"selectColor\", color)\n ui-label label=input.label small=true","style {\n .ui-combobox-wrapper {\n position: relative;\n }\n\n .ui-combobox-options {\n position: absolute;\n top: 100%;\n left: 0px;\n width: 100%;\n font-size: var(--font-size);\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);\n transition: opacity 0.25s;\n z-index: 300;\n overflow-x: hidden;\n overflow-y: auto;\n max-height: 33vh;\n }\n\n .ui-comobox-toggle-button {\n flex: 1;\n place-content: center;\n align-items: center;\n }\n\n .ui-combobox-option {\n font-size: initial !important;\n }\n\n .ui-combobox-option > .ui-button:hover {\n background-color: var(--secondary-light);\n color: var(--text-dark);\n }\n\n .ui-combobox-clear-button-wrapper {\n position: absolute;\n right: var(--padding);\n }\n\n}\n\nstatic function escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nui-element.ui-combobox-wrapper\n ui-linear-layout.ui-combobox-controls gutter=\"0px\" aligncenter\n @element fillspace\n ui-textbox key=\"comboboxinput\" value=state.value ...input on-input(\"pushInput\") on-click(\"preHandleClick\")\n if(state.value != null && state.value.length>0)\n @element.ui-combobox-clear-button-wrapper\n ui-button.ui-combobox-clear-button rounded icon='x' on-click(\"clearInput\")\n /*@element\n ui-button.ui-comobox-toggle-button icon=state.displayOptions?\"x\":\"chevron-down\" on-click(\"toggleDropDown\")*/\n ui-linear-layout.ui-combobox-options vertical filled hidden=!state.displayOptions rounded gutter=\"0px\"\n if(input.first && input.first.renderBody)\n @element.ui-combobox-option ...input.first\n <${input.first.renderBody}/>\n for|option| of=(input.options||[]).filter((el) => {return ((el.search||el.name||el.text||el.value||el).toLowerCase().search(escapeRegExp(state.value||\"\").toLowerCase()) >= 0)})||[]\n @element.ui-combobox-option\n if(input.option != null && input.option.renderBody != null)\n ui-button key=option value=option on-click(\"onOptionSelect\", (option.name||option.text||option.value||option), option)\n <${input.option.renderBody} option=option/>\n else\n ui-button key=option value=option on-click(\"onOptionSelect\", (option.name||option.text||option.value||option), option) -- ${(option.name||option.text||option.value||option)}\n if(input.last && input.last.renderBody)\n @element.ui-combobox-option ...input.last\n <${input.last.renderBody}/>","style {\n .ui-container {\n display: flex;\n flex-direction: column;\n }\n\n .ui-container.centered {\n align-items: center;\n place-content: center;\n }\n\n .ui-container.placecenter {\n place-content: center;\n }\n\n .ui-container.aligncenter {\n align-items: center;\n }\n\n .ui-container.fillspace {\n flex: 1;\n }\n}\n\n// Check for these keywords in the input and add them to the class list if present\n$ const keywords = [\"centered\", \"placecenter\", \"aligncenter\", \"fillspace\"];\n$ let classes = [input.class||null];\n$ for(let word of keywords) {\n if(input[word]||false === true) {\n classes.push(word);\n }\n}\n\nui-element.ui-container ...input class=classes id=input.id on-click(\"handleClick\")\n <${input.renderBody}/>","style {\n .ui-select {\n padding-right: 16px;\n appearance: none;\n }\n\n .ui-select-default {\n opacity: 0.5;\n }\n}\n\nui-element.ui-select tag=\"select\" class=input.class id=input.id ...input padded on-input('selectOption') value=state.value\n if(input.includeblank)\n option.ui-select-default label=input.default||\" \" -- ${input.default||''}\n for|option| of=input.options||[]\n ui-element.ui-select-option selected=state.value==option.value tag=\"option\" ...input key=option.value value=option.value -- ${option.text||option.name||option.value}\nui-label small=true text=input.label\n","style {\n .ui-date-select-wrapper {\n transition: background 0.25s;\n }\n\n .ui-date-select-wrapper:hover {\n background-color: var(--secondary);\n }\n\n .ui-date-preview {\n cursor: pointer;\n }\n\n .ui-date-select {\n position: fixed;\n margin: 20% auto; /* Will not center vertically and won't work in IE6/7. */\n left: 0;\n right: 0;\n top: 0px;\n background-color: #fff;\n z-index: 100;\n max-width: 325px;\n overflow: hidden;\n }\n\n .day, .day-header {\n width: 2em;\n transition: background-color 0.25s;\n color: var(--text-dark);\n }\n\n .day:hover {\n cursor: pointer;\n background-color: var(--secondary-light);\n }\n\n .clock-wrapper {\n margin-top: 25px;\n margin-bottom: 25px;\n position: relative;\n width: 250px;\n min-height: 250px;\n padding: 25px;\n }\n\n .clock-minute {\n top: calc(1em - 6px);\n left: calc(50% - 6px);\n position: absolute;\n transform-origin: 50% calc(125px - 1em + 6px);\n width: 6px;\n height: 6px;\n border-radius: 10px !important;\n text-align: center;\n }\n\n .clock-minute::before {\n content: \" \";\n width: 1px;\n position: absolute;\n height: 1px;\n left: 50%;\n top: 50%;\n display: block;\n background-color: #444;\n }\n\n .clock-number {\n top:0px;\n left:calc(50% - 1em);\n position: absolute;\n transform-origin: 50% 125px;\n width: 2em;\n height: 2em;\n border-radius: 1em !important;\n text-align: center;\n }\n\n .clock-number > a {\n place-content: center;\n }\n\n .clock-number-inner {\n top:2em;\n transform-origin: 50% calc(125px - 2em);\n }\n\n .clock-center {\n width: 14px;\n height: 14px;\n border-radius: 7px;\n background-color: var(--secondary);\n position: absolute;\n top: calc(50% - 7px);\n left: calc(50% - 7px);\n }\n\n .clock-hand {\n width: 4px;\n height: calc(124px - 2em);\n border-radius: 2px;\n position: absolute;\n top: 2em;\n left: calc(50% - 2px);\n transform-origin: 50% calc(125px - 2em);\n background-color: var( --secondary);\n transition: transform 0.25s;\n }\n\n .ui-date-fullscreen-overlay {\n z-index: 100;\n }\n\n .clock-toggle-hour-select {\n position: absolute;\n top: calc(-25px + 8px);\n left: 8px;\n }\n}\n\n$ const days = [\"S\", \"M\", \"T\", \"W\", \"Th\", \"F\", \"Sa\"];\n$ const months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\n$ let firstDate = new Date(state.curDate.getFullYear(),state.curDate.getMonth(),1);\n$ let firstOffset = firstDate.getDay();\n$ let lastDate = new Date(state.curDate.getFullYear(),state.curDate.getMonth()+1,0);\n$ let numDays = lastDate.getDate();\n\nui-element.ui-date-select-wrapper ...input\n ui-button on-click(\"togglePopup\") labeled=input.label!=null rounded trailingicon=\"calendar\"\n ui-date.ui-date-preview time=state.includeTime date=state.includeDate milliseconds=state.value\n ui-label text=input.label small=true\n ui-container.ui-date-fullscreen-overlay fullscreen hidden=!state.popup on-click(\"togglePopup\")\n ui-card.ui-date-select ...input raised hidden=!state.popup\n @header title=\"Date Select\" heading=5 padded secondary alignleft\n ui-heading padded\n ui-linear-layout\n if(state.includeDate)\n @element\n ui-date time=false milliseconds=state.value on-click(\"changeTab\", \"date\")\n if(state.includeTime)\n @element\n ui-date date=false milliseconds=state.value on-click(\"changeTab\", \"time\")\n if(state.includeDate && state.includeTime)\n ui-linear-layout.tab-buttons filled fillspace fullwidth\n @element fillspace\n ui-button.tab-button icon=\"calendar\" filled secondary=state.tab!==\"date\" on-click(\"changeTab\", \"date\")\n @element fillspace\n ui-button.tab-button icon=\"clock\" filled secondary=state.tab!==\"time\" on-click(\"changeTab\", \"time\")\n if(state.tab===\"date\")\n ui-linear-layout vertical centered padded\n @element\n ui-linear-layout\n @element\n ui-button icon=\"chevron-left\" rounded on-click(\"changeMonth\",false)\n @element\n ui-select value=state.curDate.getMonth().toString() options=months.map((m, i)=>{return {value:i, text:m};}) on-input(\"setMonth\")\n @element\n ui-select value=state.curDate.getFullYear() options=Array.from({length: new Date().getFullYear()-1970+1}, (_, i) => {return {value: i + 1970 + 1}}).reverse() on-input(\"changeYear\")\n @element\n ui-button icon=\"chevron-right\" rounded on-click(\"changeMonth\",true)\n @element fillspace\n ui-linear-layout fillspace\n for|day| of=days\n @element class=\"day-header\" aligncenter\n ui-heading heading=3 -- ${day}\n for|week| from=0 to=5\n ui-spacer padding=\"4px\"\n ui-linear-layout fillspace\n for|d| from=1 to=7\n $ let day = week * 7 + d - firstOffset;\n if(day <= numDays && day > 0)\n @element class=\"day\" aligncenter rounded secondary=(state.curDate.getDate()===day&&state.curDate.getFullYear()===state.date.getFullYear()&&state.curDate.getMonth()===state.date.getMonth())\n ui-element on-click(\"setDate\", state.curDate.getMonth(), day, state.curDate.getFullYear())\n ui-text padded -- ${day}\n else\n @element class=\"day-header\"\n ui-text padded\n else-if(state.tab===\"time\")\n ui-element.clock-wrapper padded fullwidth fillspace centered\n ui-button.clock-toggle-hour-select rounded title=(state.setHour?\"Set minutes\":\"Set hours\") icon=\"refresh-cw\" on-click(\"toggleSetHours\")\n div.clock-center\n $ let r = (state.setHour?state.curDate.getHours():state.curDate.getMinutes()) * (state.setHour?360/12:360/60);\n div.clock-hand style={transform: 'rotate('+r+'deg)'}\n if(state.setHour)\n for|i| from=-1 to=23\n ui-button.clock-number class={\"clock-number-inner\": i>11} text=i.toString() secondary=state.curDate.getHours()===i rounded style={transform: 'rotate('+(i * 360/12)+'deg)'} on-click(\"changeHour\", i)\n else\n for|i| from=-1 to=59\n ui-button.clock-minute class={\"clock-number\": i%5===0} text=(i%5===0?i.toString():\"\") secondary=state.curDate.getMinutes()===i rounded style={transform: 'rotate('+(i * 360/60)+'deg)'} on-click(\"changeMinute\", i)\n","ui-element.ui-date on-click(\"handleClick\")\n ui-text -- ${state.dateString}","ui-text.ui-duration ...input -- ${state.durationString}","style {\n :root {\n --primary: #fff;\n --primary-light: #fff;\n --primary-dark: #f1f3f5;\n --secondary: #a5d8ff;\n --secondary-light: #e7f5ff;\n --secondary-dark: #4dabf7;\n --tertiary: #ffd8a8;\n --tertiary-light: #fff4e6;\n --tertiary-dark: #ffa94d;\n --background-1: #fff;\n --background-2: #444;\n --accent-1: #f1f1f1;\n --accent-2: #aaa;\n --text-dark: #444;\n --text-light: #fff;\n --border: #444;\n --rounded-radius: 4px;\n --padding: 8px;\n --padding-narrow: 4px;\n --padding-wide: 32px;\n --font-size: 1em;\n --font-size-small: 0.75em;\n --font-size-h1: 2em;\n --font-size-h2: 1.5em;\n --font-size-h3: 1.1em;\n --font-size-h4: 1em;\n --font-size-h5: 1em;\n --font-size-h6: 0.9em;\n --text-font: sans-serif;\n --header-font: sans-serif;\n --button-font: sans-serif;\n }\n\n body {\n display: flex;\n min-height: 100vh;\n width: 100%;\n background-color: var(--primary);\n color: var(--text-dark);\n }\n\n * {\n padding: 0px;\n margin: 0px;\n box-sizing: border-box;\n font-size: var(--font-size);\n }\n\n h1 {\n font-size: var(--font-size-h1);\n font-family: var(--header-font);\n }\n\n h2 {\n font-size: var(--font-size-h2);\n font-family: var(--header-font);\n }\n\n h3 {\n font-size: var(--font-size-h3);\n font-family: var(--header-font);\n }\n\n h4 {\n font-size: var(--font-size-h4);\n font-family: var(--header-font);\n }\n\n h5 {\n font-size: var(--font-size-h5);\n font-family: var(--header-font);\n }\n\n h6 {\n font-size: var(--font-size-h6);\n font-family: var(--header-font);\n }\n\n .ui-element.light {\n color: var(--text-light);\n }\n\n .ui-element.dark {\n color: var(--text-dark);\n }\n\n .ui-element.filled {\n background-color: var(--primary);\n color: var(--text-dark);\n }\n\n .ui-element.accent, .ui-element.secondary {\n background-color: var(--secondary);\n color: var(--text-light);\n }\n\n .ui-element.rounded {\n border-radius: var(--rounded-radius);\n }\n\n .ui-element.padded {\n padding: var(--padding);\n }\n\n .ui-element.paddedwide {\n padding: var(--padding-wide);\n }\n\n .ui-element.paddednarrow {\n padding: var(--padding-narrow);\n }\n\n .ui-element.centered {\n text-align: center;\n }\n\n .ui-element.alignleft {\n text-align: left;\n }\n\n .ui-element.alignright {\n text-align: right;\n }\n\n .ui-element.fullwidth {\n width: 100%;\n }\n\n .ui-element.hidden {\n display: none;\n }\n\n .ui-element.raised {\n box-shadow: 0px 0px 15px rgba(0,0,0,0.1);\n }\n\n .ui-element.outlined {\n border: 1px solid var(--border);\n }\n\n .ui-element.labeled {\n padding-top: calc(var(--padding-wide) + 0.25em) !important;\n padding-left: var(--padding-wide) !important;\n }\n\n .ui-element.fullscreen {\n width: max(100vw, 100%);\n height: max(100vh, 100%);\n position: fixed;\n top: 0px;\n left: 0px;\n background-color: rgba(0,0,0,0.25);\n z-index: 100;\n }\n}\n\n$ let style = [input.style, input.theme]\n\n<${input.tag ? input.tag : 'div'} ...input class=state.classes id=input.id style=style on-click(\"handleClick\") on-input(\"handleInput\")>\n <${input.renderBody}/>\n","style {\n .ui-emphasis {\n font-family: var(--text-font);\n font-size: var(--font-size-small);\n }\n}\n\nui-element.ui-emphasis tag=\"em\"||input.tag ...input class=input.class\n <${input.renderBody}/>","form.ui-form\n ui-linear-layout ...input\n for|element| of=input.elements||[]\n @element\n <${element.renderBody}/>","style {\n .ui-heading {\n font-family: var(--header-font) !important;\n }\n}\n\nui-text.ui-heading class=input.class id=input.id tag=\"h\"+(input.heading||2) ...input\n <${input.renderBody}/>","style {\n .ui-label {\n height: 0px;\n white-space: nowrap;\n width: 0px;\n transform: translateY(calc((var(--padding-wide) + 1.25em) * -1));\n margin-left: var(--padding-wide) !important;\n transition: transform 0.5s, color 0.15s;\n opacity: 0.8;\n pointer-events: none;\n --label-small-scale: 0.75;\n display: block;\n }\n\n .ui-label-small, .ui-textbox:focus + .ui-label {\n transform: translateY(calc((var(--padding-wide) + 1.6em) * -1)) scale(var(--label-small-scale));\n }\n\n .ui-button:hover + .ui-label {\n color: var(--text-light);\n opacity: 1;\n }\n}\n\nif(input.label||input.text)\n label.ui-label class={\"ui-label-small\": input.small||false}\n ui-text -- ${input.label||input.text}","style {\n .ui-container > *:first-child {\n margin-top: 0px !important;\n margin-left: 0px !important;\n } \n \n .ui-linear-layout {\n }\n\n .ui-linear-layout-child {\n display: flex;\n flex-direction: column;\n }\n}\n\n$ let gutter = input.gutter||\"8px\";\n\nui-container.ui-linear-layout ...input on-click(\"handleClick\") class=input.class id=input.id style={...input.style,\n flexDirection: input.vertical?'column':'row', \n alignItems: input.centered?\"center\":null,\n flexFlow: input.wrap?\"wrap\":null,\n gap: gutter\n}\n for|element| of=input.elements||[]\n ui-container.ui-linear-layout-child ...element class=element.class id=element.id /*style={\n marginLeft: input.vertical?null:gutter,\n marginTop: input.vertical?gutter:null\n }*/\n <${element.renderBody}/>\n","style {\n .ui-list-item.selected {\n background-color: var(--secondary);\n }\n}\n\ndiv.ui-list\n ui-linear-layout ...input vertical on-click(\"handleClick\") gutter=input.gutter||input.spacing||\"0px\"\n for|item, index| of=input.items||[]\n @element ...item\n ui-element.ui-list-item tag=\"div\" class={'selected': input.selected===index} on-click(\"handleItemClick\", item, index)\n <${item.renderBody}/>","class {\n onCreate(input) {\n this.state = {\n collapsed: input.collapsed\n }\n }\n\n onInput(input) {\n this.state.collapsed = input.collapsed;\n }\n\n handleItemClick(event) {\n this.emit(\"itemclick\", event);\n }\n\n toggleCollapsed(event) {\n this.state.collapsed = !this.state.collapsed;\n }\n}\n\nstyle {\n .ui-sidebar {\n background-color: var(--primary);\n min-width: 300px;\n position: relative;\n min-height: max(100%, 100vh);\n }\n\n .ui-sidebar-inner {\n flex: 1;\n position: sticky;\n top: 0px;\n left: 0px;\n }\n\n .ui-sidebar.collapsed {\n min-width: unset;\n }\n\n .ui-sidebar.sidebar-overlay {\n position: fixed;\n top: 0px;\n left: 0px;\n z-index: 500;\n transition: 0.25s left;\n }\n\n .ui-sidebar.sidebar-hidden {\n left: -100%;\n }\n\n .sidebar-collapse-button {\n height: 100%;\n padding: var(--padding-narrow) !important;\n }\n}\n\nui-container.ui-sidebar class={'collapsed': state.collapsed, \"sidebar-overlay\": input.overlay, \"sidebar-hidden\": input.hidden} \n ui-linear-layout.ui-sidebar-inner gutter=\"0px\"\n @element fillspace\n ui-list selected=null||input.selected on-itemclick(\"handleItemClick\")\n for|item, index| of=input.items||[]\n @item class=item.class id=item.id ...item\n ui-button class=item.innerclass padded text=!state.collapsed?item.text||null:(item.icon?'':(item.text&&item.text.length>0?item.text[0]:'')) icon=item.icon\n @element\n if(input.collapsible)\n ui-button.sidebar-collapse-button icon=state.collapsed?'chevron-right':'chevron-left' on-click(\"toggleCollapsed\")","ui-element.ui-spacer ...input padded style={paddingTop: input.padding||input.space, paddingBottom: input.padding||input.space}","style {\n .ui-submit {\n outline: none;\n border:1px solid #444;\n border-radius: var(--rounded-radius);\n background-color: var(--secondary-light);\n cursor: pointer;\n transition: background-color 0.25s, color 0.25s;\n }\n\n .ui-submit:hover {\n background-color: var(--secondary-dark);\n color: var(--text-light);\n }\n}\n\nui-element.ui-button.ui-submit tag=\"button\" type=\"submit\" ...input padded fullwidth on-click(input.preventdefault?\"preventHandleClick\":\"handleClick\")\n <${input.renderBody}/>","style {\n .ui-text {\n font-family: var(--text-font);\n }\n}\n\nui-element.ui-text tag=\"p\"||input.tag ...input class=input.class\n <${input.renderBody}/>","style {\n .ui-textbox {\n outline: none;\n border: solid var(--border) 1px;\n border-radius: var(--rounded-radius);\n padding-left: var(--padding-wide) !important;\n padding-right: var(--padding-wide) !important;\n padding-bottom: var(--padding) !important;\n font-family: var(--text-font);\n }\n}\n\nui-element.ui-textbox ...input tag=\"input\" labeled=input.label!=null class=input.class id=input.id type=input.password?\"password\":\"textbox\" value=state.value padded fullwidth on-input(\"pushInput\") on-click(\"handleClick\")\nui-label text=input.label small=state.value?true:false","$ function pad(number) {\n return (number < 10 ? '0' : '') + number\n}\n\nui-linear-layout.ui-timer ...input class=input.class id=input.id on-click('handleClick')\n @element\n ui-text -- ${pad(state.hours)}${state.hoursSuffix}\n @element\n ui-text -- ${state.divider}\n @element\n ui-text -- ${pad(state.minutes)}${state.minutesSuffix}\n @element\n ui-text -- ${state.divider}\n @element\n ui-text -- ${pad(state.seconds)}${state.secondsSuffix}","function clamp(v, min, max) {\n return Math.max(min, Math.min(v, max));\n}\nconst V = {\n toVector(v, fallback) {\n if (v === undefined) v = fallback;\n return Array.isArray(v) ? v : [v, v];\n },\n\n add(v1, v2) {\n return [v1[0] + v2[0], v1[1] + v2[1]];\n },\n\n sub(v1, v2) {\n return [v1[0] - v2[0], v1[1] - v2[1]];\n },\n\n addTo(v1, v2) {\n v1[0] += v2[0];\n v1[1] += v2[1];\n },\n\n subTo(v1, v2) {\n v1[0] -= v2[0];\n v1[1] -= v2[1];\n }\n\n};\n\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return Math.pow(distance, constant * 5);\n return distance * dimension * constant / (dimension + constant * distance);\n}\n\nfunction rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {\n if (constant === 0) return clamp(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\nfunction computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {\n const [[X0, X1], [Y0, Y1]] = bounds;\n return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];\n}\n\nexport { V, computeRubberband as c, rubberbandIfOutOfBounds as r };\n","import { V, c as computeRubberband } from './maths-b2a210f4.esm.js';\n\nfunction _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nconst EVENT_TYPE_MAP = {\n pointer: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n mouse: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n touch: {\n start: 'start',\n change: 'move',\n end: 'end'\n },\n gesture: {\n start: 'start',\n change: 'change',\n end: 'end'\n }\n};\n\nfunction capitalize(string) {\n if (!string) return '';\n return string[0].toUpperCase() + string.slice(1);\n}\n\nfunction toHandlerProp(device, action = '', capture = false) {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return 'on' + capitalize(device) + capitalize(actionKey) + (capture ? 'Capture' : '');\n}\nfunction toDomEventType(device, action = '') {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return device + actionKey;\n}\nfunction isTouch(event) {\n return 'touches' in event;\n}\n\nfunction getCurrentTargetTouchList(event) {\n return Array.from(event.touches).filter(e => {\n var _event$currentTarget, _event$currentTarget$;\n\n return e.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e.target));\n });\n}\n\nfunction getTouchList(event) {\n return event.type === 'touchend' ? event.changedTouches : event.targetTouches;\n}\n\nfunction getValueEvent(event) {\n return isTouch(event) ? getTouchList(event)[0] : event;\n}\n\nfunction distanceAngle(P1, P2) {\n const dx = P2.clientX - P1.clientX;\n const dy = P2.clientY - P1.clientY;\n const cx = (P2.clientX + P1.clientX) / 2;\n const cy = (P2.clientY + P1.clientY) / 2;\n const distance = Math.hypot(dx, dy);\n const angle = -(Math.atan2(dx, dy) * 180) / Math.PI;\n const origin = [cx, cy];\n return {\n angle,\n distance,\n origin\n };\n}\nfunction touchIds(event) {\n return getCurrentTargetTouchList(event).map(touch => touch.identifier);\n}\nfunction touchDistanceAngle(event, ids) {\n const [P1, P2] = Array.from(event.touches).filter(touch => ids.includes(touch.identifier));\n return distanceAngle(P1, P2);\n}\nfunction pointerId(event) {\n const valueEvent = getValueEvent(event);\n return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;\n}\nfunction pointerValues(event) {\n const valueEvent = getValueEvent(event);\n return [valueEvent.clientX, valueEvent.clientY];\n}\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\nfunction wheelValues(event) {\n let {\n deltaX,\n deltaY,\n deltaMode\n } = event;\n\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n return [deltaX, deltaY];\n}\nfunction scrollValues(event) {\n var _ref, _ref2;\n\n const {\n scrollX,\n scrollY,\n scrollLeft,\n scrollTop\n } = event.currentTarget;\n return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];\n}\nfunction getEventDetails(event) {\n const payload = {};\n if ('buttons' in event) payload.buttons = event.buttons;\n\n if ('shiftKey' in event) {\n const {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n } = event;\n Object.assign(payload, {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n });\n }\n\n return payload;\n}\n\nfunction call(v, ...args) {\n if (typeof v === 'function') {\n return v(...args);\n } else {\n return v;\n }\n}\nfunction noop() {}\nfunction chain(...fns) {\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n let result;\n\n for (const fn of fns) {\n result = fn.apply(this, arguments) || result;\n }\n\n return result;\n };\n}\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n\nconst BEFORE_LAST_KINEMATICS_DELAY = 32;\nclass Engine {\n constructor(ctrl, args, key) {\n this.ctrl = ctrl;\n this.args = args;\n this.key = key;\n\n if (!this.state) {\n this.state = {};\n this.computeValues([0, 0]);\n this.computeInitial();\n if (this.init) this.init();\n this.reset();\n }\n }\n\n get state() {\n return this.ctrl.state[this.key];\n }\n\n set state(state) {\n this.ctrl.state[this.key] = state;\n }\n\n get shared() {\n return this.ctrl.state.shared;\n }\n\n get eventStore() {\n return this.ctrl.gestureEventStores[this.key];\n }\n\n get timeoutStore() {\n return this.ctrl.gestureTimeoutStores[this.key];\n }\n\n get config() {\n return this.ctrl.config[this.key];\n }\n\n get sharedConfig() {\n return this.ctrl.config.shared;\n }\n\n get handler() {\n return this.ctrl.handlers[this.key];\n }\n\n reset() {\n const {\n state,\n shared,\n ingKey,\n args\n } = this;\n shared[ingKey] = state._active = state.active = state._blocked = state._force = false;\n state._step = [false, false];\n state.intentional = false;\n state._movement = [0, 0];\n state._distance = [0, 0];\n state._delta = [0, 0];\n state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];\n state.args = args;\n state.axis = undefined;\n state.memo = undefined;\n state.elapsedTime = 0;\n state.direction = [0, 0];\n state.distance = [0, 0];\n state.velocity = [0, 0];\n state.movement = [0, 0];\n state.delta = [0, 0];\n state.timeStamp = 0;\n }\n\n start(event) {\n const state = this.state;\n const config = this.config;\n\n if (!state._active) {\n this.reset();\n this.computeInitial();\n state._active = true;\n state.target = event.target;\n state.currentTarget = event.currentTarget;\n state.lastOffset = config.from ? call(config.from, state) : state.offset;\n state.offset = state.lastOffset;\n }\n\n state.startTime = state.timeStamp = event.timeStamp;\n }\n\n computeValues(values) {\n const state = this.state;\n state._values = values;\n state.values = this.config.transform(values);\n }\n\n computeInitial() {\n const state = this.state;\n state._initial = state._values;\n state.initial = state.values;\n }\n\n compute(event) {\n const {\n state,\n config,\n shared\n } = this;\n state.args = this.args;\n let dt = 0;\n\n if (event) {\n state.event = event;\n if (config.preventDefault && event.cancelable) state.event.preventDefault();\n state.type = event.type;\n shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;\n shared.locked = !!document.pointerLockElement;\n Object.assign(shared, getEventDetails(event));\n shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;\n dt = event.timeStamp - state.timeStamp;\n state.timeStamp = event.timeStamp;\n state.elapsedTime = state.timeStamp - state.startTime;\n }\n\n if (state._active) {\n const _absoluteDelta = state._delta.map(Math.abs);\n\n V.addTo(state._distance, _absoluteDelta);\n }\n\n const [_m0, _m1] = state._movement;\n const [t0, t1] = config.threshold;\n const {\n _step,\n values\n } = state;\n\n if (config.hasCustomTransform) {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && values[0];\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && values[1];\n } else {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;\n }\n\n state.intentional = _step[0] !== false || _step[1] !== false;\n if (!state.intentional) return;\n const movement = [0, 0];\n\n if (config.hasCustomTransform) {\n const [v0, v1] = values;\n movement[0] = _step[0] !== false ? v0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? v1 - _step[1] : 0;\n } else {\n movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;\n }\n\n if (this.intent) this.intent(movement);\n\n if (state._active && !state._blocked || state.active) {\n state.first = state._active && !state.active;\n state.last = !state._active && state.active;\n state.active = shared[this.ingKey] = state._active;\n\n if (event) {\n if (state.first) {\n if ('bounds' in config) state._bounds = call(config.bounds, state);\n if (this.setup) this.setup();\n }\n\n state.movement = movement;\n const previousOffset = state.offset;\n this.computeOffset();\n\n if (!state.last || dt > BEFORE_LAST_KINEMATICS_DELAY) {\n state.delta = V.sub(state.offset, previousOffset);\n const absoluteDelta = state.delta.map(Math.abs);\n V.addTo(state.distance, absoluteDelta);\n state.direction = state.delta.map(Math.sign);\n\n if (!state.first && dt > 0) {\n state.velocity = [absoluteDelta[0] / dt, absoluteDelta[1] / dt];\n }\n }\n }\n }\n\n const rubberband = state._active ? config.rubberband || [0, 0] : [0, 0];\n state.offset = computeRubberband(state._bounds, state.offset, rubberband);\n this.computeMovement();\n }\n\n emit() {\n const state = this.state;\n const shared = this.shared;\n const config = this.config;\n if (!state._active) this.clean();\n if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents) return;\n const memo = this.handler(_objectSpread2(_objectSpread2(_objectSpread2({}, shared), state), {}, {\n [this.aliasKey]: state.values\n }));\n if (memo !== undefined) state.memo = memo;\n }\n\n clean() {\n this.eventStore.clean();\n this.timeoutStore.clean();\n }\n\n}\n\nfunction selectAxis([dx, dy]) {\n const d = Math.abs(dx) - Math.abs(dy);\n if (d > 0) return 'x';\n if (d < 0) return 'y';\n return undefined;\n}\n\nfunction restrictVectorToAxis(v, axis) {\n switch (axis) {\n case 'x':\n v[1] = 0;\n break;\n\n case 'y':\n v[0] = 0;\n break;\n }\n}\n\nclass CoordinatesEngine extends Engine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"aliasKey\", 'xy');\n }\n\n reset() {\n super.reset();\n this.state.axis = undefined;\n }\n\n init() {\n this.state.offset = [0, 0];\n this.state.lastOffset = [0, 0];\n }\n\n computeOffset() {\n this.state.offset = V.add(this.state.lastOffset, this.state.movement);\n }\n\n computeMovement() {\n this.state.movement = V.sub(this.state.offset, this.state.lastOffset);\n }\n\n intent(v) {\n this.state.axis = this.state.axis || selectAxis(v);\n this.state._blocked = (this.config.lockDirection || !!this.config.axis) && !this.state.axis || !!this.config.axis && this.config.axis !== this.state.axis;\n if (this.state._blocked) return;\n\n if (this.config.axis || this.config.lockDirection) {\n restrictVectorToAxis(v, this.state.axis);\n }\n }\n\n}\n\nconst identity = v => v;\nconst DEFAULT_RUBBERBAND = 0.15;\nconst commonConfigResolver = {\n enabled(value = true) {\n return value;\n },\n\n preventDefault(value = false) {\n return value;\n },\n\n triggerAllEvents(value = false) {\n return value;\n },\n\n rubberband(value = 0) {\n switch (value) {\n case true:\n return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];\n\n case false:\n return [0, 0];\n\n default:\n return V.toVector(value);\n }\n },\n\n from(value) {\n if (typeof value === 'function') return value;\n if (value != null) return V.toVector(value);\n },\n\n transform(value, _k, config) {\n const transform = value || config.shared.transform;\n this.hasCustomTransform = !!transform;\n\n if (process.env.NODE_ENV === 'development') {\n const originalTransform = transform || identity;\n return v => {\n const r = originalTransform(v);\n\n if (!isFinite(r[0]) || !isFinite(r[1])) {\n console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${r[0]},${[1]}]`);\n }\n\n return r;\n };\n }\n\n return transform || identity;\n },\n\n threshold(value) {\n return V.toVector(value, 0);\n }\n\n};\n\nif (process.env.NODE_ENV === 'development') {\n Object.assign(commonConfigResolver, {\n domTarget(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n },\n\n lockDirection(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`lockDirection\\` option has been merged with \\`axis\\`. Use it as in \\`{ axis: 'lock' }\\``);\n }\n },\n\n initial(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`initial\\` option has been renamed to \\`from\\`.`);\n }\n }\n\n });\n}\n\nconst coordinatesConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n axis(_v, _k, {\n axis\n }) {\n this.lockDirection = axis === 'lock';\n if (!this.lockDirection) return axis;\n },\n\n bounds(value = {}) {\n if (typeof value === 'function') {\n return state => coordinatesConfigResolver.bounds(value(state));\n }\n\n if ('current' in value) {\n return () => value.current;\n }\n\n if (typeof HTMLElement === 'function' && value instanceof HTMLElement) {\n return value;\n }\n\n const {\n left = -Infinity,\n right = Infinity,\n top = -Infinity,\n bottom = Infinity\n } = value;\n return [[left, right], [top, bottom]];\n }\n\n});\n\nconst DISPLACEMENT = 10;\nconst KEYS_DELTA_MAP = {\n ArrowRight: (factor = 1) => [DISPLACEMENT * factor, 0],\n ArrowLeft: (factor = 1) => [-DISPLACEMENT * factor, 0],\n ArrowUp: (factor = 1) => [0, -DISPLACEMENT * factor],\n ArrowDown: (factor = 1) => [0, DISPLACEMENT * factor]\n};\nclass DragEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'dragging');\n }\n\n reset() {\n super.reset();\n const state = this.state;\n state._pointerId = undefined;\n state._pointerActive = false;\n state._keyboardActive = false;\n state._preventScroll = false;\n state._delayed = false;\n state.swipe = [0, 0];\n state.tap = false;\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n }\n\n setup() {\n const state = this.state;\n\n if (state._bounds instanceof HTMLElement) {\n const boundRect = state._bounds.getBoundingClientRect();\n\n const targetRect = state.currentTarget.getBoundingClientRect();\n const _bounds = {\n left: boundRect.left - targetRect.left + state.offset[0],\n right: boundRect.right - targetRect.right + state.offset[0],\n top: boundRect.top - targetRect.top + state.offset[1],\n bottom: boundRect.bottom - targetRect.bottom + state.offset[1]\n };\n state._bounds = coordinatesConfigResolver.bounds(_bounds);\n }\n }\n\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n state.canceled = true;\n state._active = false;\n setTimeout(() => {\n this.compute();\n this.emit();\n }, 0);\n }\n\n setActive() {\n this.state._active = this.state._pointerActive || this.state._keyboardActive;\n }\n\n clean() {\n this.pointerClean();\n this.state._pointerActive = false;\n this.state._keyboardActive = false;\n super.clean();\n }\n\n pointerDown(event) {\n const config = this.config;\n const state = this.state;\n if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons)) return;\n this.ctrl.setEventIds(event);\n\n if (config.pointerCapture) {\n event.target.setPointerCapture(event.pointerId);\n }\n\n if (state._pointerActive) return;\n this.start(event);\n this.setupPointer(event);\n state._pointerId = pointerId(event);\n state._pointerActive = true;\n this.computeValues(pointerValues(event));\n this.computeInitial();\n\n if (config.preventScroll) {\n this.setupScrollPrevention(event);\n } else if (config.delay > 0) {\n this.setupDelayTrigger(event);\n } else {\n this.startPointerDrag(event);\n }\n }\n\n startPointerDrag(event) {\n const state = this.state;\n state._active = true;\n state._preventScroll = true;\n state._delayed = false;\n this.compute(event);\n this.emit();\n }\n\n pointerMove(event) {\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive) return;\n if (state.type === event.type && event.timeStamp === state.timeStamp) return;\n const id = pointerId(event);\n if (state._pointerId && id !== state._pointerId) return;\n\n const _values = pointerValues(event);\n\n if (document.pointerLockElement === event.target) {\n state._delta = [event.movementX, event.movementY];\n } else {\n state._delta = V.sub(_values, state._values);\n this.computeValues(_values);\n }\n\n V.addTo(state._movement, state._delta);\n this.compute(event);\n\n if (state._delayed) {\n this.timeoutStore.remove('dragDelay');\n state.active = false;\n this.startPointerDrag(event);\n return;\n }\n\n if (config.preventScroll && !state._preventScroll) {\n if (state.axis) {\n if (state.axis === config.preventScrollAxis || config.preventScrollAxis === 'xy') {\n state._active = false;\n this.clean();\n return;\n } else {\n this.timeoutStore.remove('startPointerDrag');\n this.startPointerDrag(event);\n return;\n }\n } else {\n return;\n }\n }\n\n this.emit();\n }\n\n pointerUp(event) {\n this.ctrl.setEventIds(event);\n\n try {\n if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {\n ;\n event.target.releasePointerCapture(event.pointerId);\n }\n } catch (_unused) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \\`@react-three/fiber\\`. \\n\\nPlease upgrade to the latest version.`);\n }\n }\n\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive) return;\n const id = pointerId(event);\n if (state._pointerId && id !== state._pointerId) return;\n this.state._pointerActive = false;\n this.setActive();\n this.compute(event);\n const [dx, dy] = state._distance;\n state.tap = dx <= 3 && dy <= 3;\n\n if (state.tap && config.filterTaps) {\n state._force = true;\n } else {\n const [dirx, diry] = state.direction;\n const [vx, vy] = state.velocity;\n const [mx, my] = state.movement;\n const [svx, svy] = config.swipe.velocity;\n const [sx, sy] = config.swipe.distance;\n const sdt = config.swipe.duration;\n\n if (state.elapsedTime < sdt) {\n if (Math.abs(vx) > svx && Math.abs(mx) > sx) state.swipe[0] = dirx;\n if (Math.abs(vy) > svy && Math.abs(my) > sy) state.swipe[1] = diry;\n }\n }\n\n this.emit();\n }\n\n pointerClick(event) {\n if (!this.state.tap) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n setupPointer(event) {\n const config = this.config;\n let device = config.device;\n\n if (process.env.NODE_ENV === 'development') {\n try {\n if (device === 'pointer') {\n const currentTarget = 'uv' in event ? event.sourceEvent.currentTarget : event.currentTarget;\n const style = window.getComputedStyle(currentTarget);\n\n if (style.touchAction === 'auto') {\n console.warn(`[@use-gesture]: The drag target has its \\`touch-action\\` style property set to \\`auto\\`. It is recommended to add \\`touch-action: 'none'\\` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https://use-gesture.netlify.app/docs/extras/#touch-action.\\n\\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.`, currentTarget);\n }\n }\n } catch (_unused2) {}\n }\n\n if (config.pointerLock) {\n event.currentTarget.requestPointerLock();\n }\n\n if (!config.pointerCapture) {\n this.eventStore.add(this.sharedConfig.window, device, 'change', this.pointerMove.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, 'end', this.pointerUp.bind(this));\n }\n }\n\n pointerClean() {\n if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {\n document.exitPointerLock();\n }\n }\n\n preventScroll(event) {\n if (this.state._preventScroll && event.cancelable) {\n event.preventDefault();\n }\n }\n\n setupScrollPrevention(event) {\n persistEvent(event);\n this.eventStore.add(this.sharedConfig.window, 'touch', 'change', this.preventScroll.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, 'touch', 'end', this.clean.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, 'touch', 'cancel', this.clean.bind(this), {\n passive: false\n });\n this.timeoutStore.add('startPointerDrag', this.startPointerDrag.bind(this), this.config.preventScroll, event);\n }\n\n setupDelayTrigger(event) {\n this.state._delayed = true;\n this.timeoutStore.add('dragDelay', this.startPointerDrag.bind(this), this.config.delay, event);\n }\n\n keyDown(event) {\n const deltaFn = KEYS_DELTA_MAP[event.key];\n\n if (deltaFn) {\n const state = this.state;\n const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;\n state._delta = deltaFn(factor);\n this.start(event);\n state._keyboardActive = true;\n V.addTo(state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n }\n\n keyUp(event) {\n if (!(event.key in KEYS_DELTA_MAP)) return;\n this.state._keyboardActive = false;\n this.setActive();\n this.compute(event);\n this.emit();\n }\n\n bind(bindFunction) {\n const device = this.config.device;\n bindFunction(device, 'start', this.pointerDown.bind(this));\n\n if (this.config.pointerCapture) {\n bindFunction(device, 'change', this.pointerMove.bind(this));\n bindFunction(device, 'end', this.pointerUp.bind(this));\n bindFunction(device, 'cancel', this.pointerUp.bind(this));\n }\n\n bindFunction('key', 'down', this.keyDown.bind(this));\n bindFunction('key', 'up', this.keyUp.bind(this));\n\n if (this.config.filterTaps) {\n bindFunction('click', '', this.pointerClick.bind(this), {\n capture: true\n });\n }\n }\n\n}\n\nfunction persistEvent(event) {\n 'persist' in event && typeof event.persist === 'function' && event.persist();\n}\n\nconst isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\n\nfunction supportsTouchEvents() {\n return isBrowser && 'ontouchstart' in window;\n}\n\nfunction isTouchScreen() {\n return supportsTouchEvents() || isBrowser && window.navigator.maxTouchPoints > 1;\n}\n\nfunction supportsPointerEvents() {\n return isBrowser && 'onpointerdown' in window;\n}\n\nfunction supportsPointerLock() {\n return isBrowser && 'exitPointerLock' in window.document;\n}\n\nfunction supportsGestureEvents() {\n try {\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\n\nconst SUPPORT = {\n isBrowser,\n gesture: supportsGestureEvents(),\n touch: supportsTouchEvents(),\n touchscreen: isTouchScreen(),\n pointer: supportsPointerEvents(),\n pointerLock: supportsPointerLock()\n};\n\nconst DEFAULT_PREVENT_SCROLL_DELAY = 250;\nconst DEFAULT_DRAG_DELAY = 180;\nconst DEFAULT_SWIPE_VELOCITY = 0.5;\nconst DEFAULT_SWIPE_DISTANCE = 50;\nconst DEFAULT_SWIPE_DURATION = 250;\nconst dragConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n pointerLock(_v, _k, {\n pointer: {\n lock = false,\n touch = false\n } = {}\n }) {\n this.useTouch = SUPPORT.touch && touch;\n return SUPPORT.pointerLock && lock;\n },\n\n device(_v, _k) {\n if (this.useTouch) return 'touch';\n if (this.pointerLock) return 'mouse';\n if (SUPPORT.pointer) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n return 'mouse';\n },\n\n preventScroll(value = false, _k, {\n preventScrollAxis = 'y'\n }) {\n if (preventScrollAxis) this.preventScrollAxis = preventScrollAxis;\n if (!SUPPORT.touchscreen) return false;\n if (typeof value === 'number') return value;\n return value ? DEFAULT_PREVENT_SCROLL_DELAY : false;\n },\n\n pointerCapture(_v, _k, {\n pointer: {\n capture = true,\n buttons = 1\n } = {}\n }) {\n this.pointerButtons = buttons;\n return !this.pointerLock && this.device === 'pointer' && capture;\n },\n\n threshold(value, _k, {\n filterTaps = false,\n axis = undefined\n }) {\n const threshold = V.toVector(value, filterTaps ? 3 : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n return threshold;\n },\n\n swipe({\n velocity = DEFAULT_SWIPE_VELOCITY,\n distance = DEFAULT_SWIPE_DISTANCE,\n duration = DEFAULT_SWIPE_DURATION\n } = {}) {\n return {\n velocity: this.transform(V.toVector(velocity)),\n distance: this.transform(V.toVector(distance)),\n duration\n };\n },\n\n delay(value = 0) {\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n\n case false:\n return 0;\n\n default:\n return value;\n }\n }\n\n});\n\nif (process.env.NODE_ENV === 'development') {\n Object.assign(dragConfigResolver, {\n useTouch(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`useTouch\\` option has been renamed to \\`pointer.touch\\`. Use it as in \\`{ pointer: { touch: true } }\\`.`);\n }\n },\n\n experimental_preventWindowScrollY(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`experimental_preventWindowScrollY\\` option has been renamed to \\`preventScroll\\`.`);\n }\n },\n\n swipeVelocity(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeVelocity\\` option has been renamed to \\`swipe.velocity\\`. Use it as in \\`{ swipe: { velocity: 0.5 } }\\`.`);\n }\n },\n\n swipeDistance(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDistance\\` option has been renamed to \\`swipe.distance\\`. Use it as in \\`{ swipe: { distance: 50 } }\\`.`);\n }\n },\n\n swipeDuration(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDuration\\` option has been renamed to \\`swipe.duration\\`. Use it as in \\`{ swipe: { duration: 250 } }\\`.`);\n }\n }\n\n });\n}\n\nconst SCALE_ANGLE_RATIO_INTENT_DEG = 30;\nconst PINCH_WHEEL_RATIO = 36;\nclass PinchEngine extends Engine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'pinching');\n\n _defineProperty(this, \"aliasKey\", 'da');\n }\n\n init() {\n this.state.offset = [1, 0];\n this.state.lastOffset = [1, 0];\n this.state._pointerEvents = new Map();\n }\n\n reset() {\n super.reset();\n const state = this.state;\n state._touchIds = [];\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n state.turns = 0;\n }\n\n computeOffset() {\n const {\n type,\n movement,\n lastOffset\n } = this.state;\n\n if (type === 'wheel') {\n this.state.offset = V.add(movement, lastOffset);\n } else {\n this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];\n }\n }\n\n computeMovement() {\n const {\n offset,\n lastOffset\n } = this.state;\n this.state.movement = [offset[0] / lastOffset[0], offset[1] - lastOffset[1]];\n }\n\n intent(v) {\n const state = this.state;\n\n if (!state.axis) {\n const axisMovementDifference = Math.abs(v[0]) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(v[1]);\n if (axisMovementDifference < 0) state.axis = 'angle';else if (axisMovementDifference > 0) state.axis = 'scale';\n }\n\n if (this.config.lockDirection) {\n if (state.axis === 'scale') v[1] = 0;else if (state.axis === 'angle') v[0] = 0;\n }\n }\n\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n setTimeout(() => {\n state.canceled = true;\n state._active = false;\n this.compute();\n this.emit();\n }, 0);\n }\n\n touchStart(event) {\n this.ctrl.setEventIds(event);\n const state = this.state;\n const ctrlTouchIds = this.ctrl.touchIds;\n\n if (state._active) {\n if (state._touchIds.every(id => ctrlTouchIds.has(id))) return;\n }\n\n if (ctrlTouchIds.size < 2) return;\n this.start(event);\n state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);\n const payload = touchDistanceAngle(event, state._touchIds);\n this.pinchStart(event, payload);\n }\n\n pointerStart(event) {\n if (event.buttons != null && event.buttons % 2 !== 1) return;\n this.ctrl.setEventIds(event);\n event.target.setPointerCapture(event.pointerId);\n const state = this.state;\n const _pointerEvents = state._pointerEvents;\n const ctrlPointerIds = this.ctrl.pointerIds;\n\n if (state._active) {\n if (Array.from(_pointerEvents.keys()).every(id => ctrlPointerIds.has(id))) return;\n }\n\n if (_pointerEvents.size < 2) {\n _pointerEvents.set(event.pointerId, event);\n }\n\n if (state._pointerEvents.size < 2) return;\n this.start(event);\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchStart(event, payload);\n }\n\n pinchStart(event, payload) {\n const state = this.state;\n state.origin = payload.origin;\n this.computeValues([payload.distance, payload.angle]);\n this.computeInitial();\n this.compute(event);\n this.emit();\n }\n\n touchMove(event) {\n if (!this.state._active) return;\n const payload = touchDistanceAngle(event, this.state._touchIds);\n this.pinchMove(event, payload);\n }\n\n pointerMove(event) {\n const _pointerEvents = this.state._pointerEvents;\n\n if (_pointerEvents.has(event.pointerId)) {\n _pointerEvents.set(event.pointerId, event);\n }\n\n if (!this.state._active) return;\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n this.pinchMove(event, payload);\n }\n\n pinchMove(event, payload) {\n const state = this.state;\n const prev_a = state._values[1];\n const delta_a = payload.angle - prev_a;\n let delta_turns = 0;\n if (Math.abs(delta_a) > 270) delta_turns += Math.sign(delta_a);\n this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);\n state.origin = payload.origin;\n state.turns = delta_turns;\n state._movement = [state._values[0] / state._initial[0] - 1, state._values[1] - state._initial[1]];\n this.compute(event);\n this.emit();\n }\n\n touchEnd(event) {\n this.ctrl.setEventIds(event);\n if (!this.state._active) return;\n\n if (this.state._touchIds.some(id => !this.ctrl.touchIds.has(id))) {\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n\n pointerEnd(event) {\n const state = this.state;\n this.ctrl.setEventIds(event);\n\n try {\n event.target.releasePointerCapture(event.pointerId);\n } catch (_unused) {}\n\n if (state._pointerEvents.has(event.pointerId)) {\n state._pointerEvents.delete(event.pointerId);\n }\n\n if (!state._active) return;\n\n if (state._pointerEvents.size < 2) {\n state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n\n gestureStart(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n if (state._active) return;\n this.start(event);\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n\n gestureMove(event) {\n if (event.cancelable) event.preventDefault();\n if (!this.state._active) return;\n const state = this.state;\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n const _previousMovement = state._movement;\n state._movement = [event.scale - 1, event.rotation];\n state._delta = V.sub(state._movement, _previousMovement);\n this.compute(event);\n this.emit();\n }\n\n gestureEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n\n wheel(event) {\n if (!event.ctrlKey) return;\n if (!this.state._active) this.wheelStart(event);else this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n\n wheelStart(event) {\n this.start(event);\n this.wheelChange(event);\n }\n\n wheelChange(event) {\n const isR3f = ('uv' in event);\n\n if (!isR3f) {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n if (process.env.NODE_ENV === 'development' && !event.defaultPrevented) {\n console.warn(`[@use-gesture]: To properly support zoom on trackpads, try using the \\`target\\` option.\\n\\nThis message will only appear in development mode.`);\n }\n }\n\n const state = this.state;\n state._delta = [-wheelValues(event)[1] / PINCH_WHEEL_RATIO * state.offset[0], 0];\n V.addTo(state._movement, state._delta);\n this.state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n\n bind(bindFunction) {\n const device = this.config.device;\n\n if (!!device) {\n bindFunction(device, 'start', this[device + 'Start'].bind(this));\n bindFunction(device, 'change', this[device + 'Move'].bind(this));\n bindFunction(device, 'end', this[device + 'End'].bind(this));\n bindFunction(device, 'cancel', this[device + 'End'].bind(this));\n } else {\n bindFunction('wheel', '', this.wheel.bind(this), {\n passive: false\n });\n }\n }\n\n}\n\nconst pinchConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n useTouch(_v, _k, {\n pointer: {\n touch = false\n } = {}\n }) {\n return SUPPORT.touch && touch;\n },\n\n device(_v, _k, config) {\n const sharedConfig = config.shared;\n if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture) return 'gesture';\n if (this.useTouch) return 'touch';\n\n if (SUPPORT.touchscreen) {\n if (SUPPORT.pointer) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n }\n },\n\n bounds(_v, _k, {\n scaleBounds = {},\n angleBounds = {}\n }) {\n const _scaleBounds = state => {\n const D = assignDefault(call(scaleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n\n const _angleBounds = state => {\n const A = assignDefault(call(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n\n if (typeof scaleBounds !== 'function' && typeof angleBounds !== 'function') return [_scaleBounds(), _angleBounds()];\n return state => [_scaleBounds(state), _angleBounds(state)];\n },\n\n threshold(value, _k, config) {\n this.lockDirection = config.axis === 'lock';\n const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);\n return threshold;\n }\n\n});\n\nclass MoveEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'moving');\n }\n\n move(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n if (!this.state._active) this.moveStart(event);else this.moveChange(event);\n this.timeoutStore.add('moveEnd', this.moveEnd.bind(this));\n }\n\n moveStart(event) {\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.computeInitial();\n this.emit();\n }\n\n moveChange(event) {\n if (!this.state._active) return;\n const values = pointerValues(event);\n const state = this.state;\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n\n moveEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n\n bind(bindFunction) {\n bindFunction('pointer', 'change', this.move.bind(this));\n bindFunction('pointer', 'leave', this.moveEnd.bind(this));\n }\n\n}\n\nconst moveConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nclass ScrollEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'scrolling');\n }\n\n scroll(event) {\n if (!this.state._active) this.start(event);\n this.scrollChange(event);\n this.timeoutStore.add('scrollEnd', this.scrollEnd.bind(this));\n }\n\n scrollChange(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n const values = scrollValues(event);\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n\n scrollEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n\n bind(bindFunction) {\n bindFunction('scroll', '', this.scroll.bind(this));\n }\n\n}\n\nconst scrollConfigResolver = coordinatesConfigResolver;\n\nclass WheelEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'wheeling');\n }\n\n wheel(event) {\n if (!this.state._active) this.start(event);\n this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n\n wheelChange(event) {\n const state = this.state;\n state._delta = wheelValues(event);\n V.addTo(this.state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n\n bind(bindFunction) {\n bindFunction('wheel', '', this.wheel.bind(this));\n }\n\n}\n\nconst wheelConfigResolver = coordinatesConfigResolver;\n\nclass HoverEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"ingKey\", 'hovering');\n }\n\n enter(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.emit();\n }\n\n leave(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n const state = this.state;\n if (!state._active) return;\n state._active = false;\n const values = pointerValues(event);\n state._movement = state._delta = V.sub(values, state._values);\n this.computeValues(values);\n this.compute(event);\n state.delta = state.movement;\n this.emit();\n }\n\n bind(bindFunction) {\n bindFunction('pointer', 'enter', this.enter.bind(this));\n bindFunction('pointer', 'leave', this.leave.bind(this));\n }\n\n}\n\nconst hoverConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nconst EngineMap = new Map();\nconst ConfigResolverMap = new Map();\nfunction registerAction(action) {\n EngineMap.set(action.key, action.engine);\n ConfigResolverMap.set(action.key, action.resolver);\n}\nconst dragAction = {\n key: 'drag',\n engine: DragEngine,\n resolver: dragConfigResolver\n};\nconst hoverAction = {\n key: 'hover',\n engine: HoverEngine,\n resolver: hoverConfigResolver\n};\nconst moveAction = {\n key: 'move',\n engine: MoveEngine,\n resolver: moveConfigResolver\n};\nconst pinchAction = {\n key: 'pinch',\n engine: PinchEngine,\n resolver: pinchConfigResolver\n};\nconst scrollAction = {\n key: 'scroll',\n engine: ScrollEngine,\n resolver: scrollConfigResolver\n};\nconst wheelAction = {\n key: 'wheel',\n engine: WheelEngine,\n resolver: wheelConfigResolver\n};\n\nexport { ConfigResolverMap as C, EngineMap as E, SUPPORT as S, _objectSpread2 as _, _defineProperty as a, touchIds as b, chain as c, toHandlerProp as d, dragAction as e, hoverAction as h, isTouch as i, moveAction as m, pinchAction as p, registerAction as r, scrollAction as s, toDomEventType as t, wheelAction as w };\n","import { S as SUPPORT, C as ConfigResolverMap, _ as _objectSpread2, a as _defineProperty, t as toDomEventType, i as isTouch, b as touchIds, E as EngineMap, c as chain, d as toHandlerProp } from './actions-8e8e64ea.esm.js';\nimport './maths-b2a210f4.esm.js';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst sharedConfigResolver = {\n target(value) {\n if (value) {\n return () => 'current' in value ? value.current : value;\n }\n\n return undefined;\n },\n\n enabled(value = true) {\n return value;\n },\n\n window(value = SUPPORT.isBrowser ? window : undefined) {\n return value;\n },\n\n eventOptions({\n passive = true,\n capture = false\n } = {}) {\n return {\n passive,\n capture\n };\n },\n\n transform(value) {\n return value;\n }\n\n};\n\nconst _excluded = [\"target\", \"eventOptions\", \"window\", \"enabled\", \"transform\"];\nfunction resolveWith(config = {}, resolvers) {\n const result = {};\n\n for (const [key, resolver] of Object.entries(resolvers)) switch (typeof resolver) {\n case 'function':\n result[key] = resolver.call(result, config[key], key, config);\n break;\n\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n\n return result;\n}\nfunction parse(config, gestureKey) {\n const _ref = config,\n {\n target,\n eventOptions,\n window,\n enabled,\n transform\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const _config = {\n shared: resolveWith({\n target,\n eventOptions,\n window,\n enabled,\n transform\n }, sharedConfigResolver)\n };\n\n if (gestureKey) {\n const resolver = ConfigResolverMap.get(gestureKey);\n _config[gestureKey] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest), resolver);\n } else {\n for (const key in rest) {\n const resolver = ConfigResolverMap.get(key);\n\n if (resolver) {\n _config[key] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest[key]), resolver);\n } else if (process.env.NODE_ENV === 'development') {\n if (!['drag', 'pinch', 'scroll', 'wheel', 'move', 'hover'].includes(key)) {\n if (key === 'domTarget') {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n\n console.warn(`[@use-gesture]: Unknown config key \\`${key}\\` was used. Please read the documentation for further information.`);\n }\n }\n }\n }\n\n return _config;\n}\n\nclass EventStore {\n constructor(ctrl) {\n _defineProperty(this, \"_listeners\", []);\n\n this._ctrl = ctrl;\n }\n\n add(element, device, action, handler, options) {\n const type = toDomEventType(device, action);\n\n const eventOptions = _objectSpread2(_objectSpread2({}, this._ctrl.config.shared.eventOptions), options);\n\n element.addEventListener(type, handler, eventOptions);\n\n this._listeners.push(() => element.removeEventListener(type, handler, eventOptions));\n }\n\n clean() {\n this._listeners.forEach(remove => remove());\n\n this._listeners = [];\n }\n\n}\n\nclass TimeoutStore {\n constructor() {\n _defineProperty(this, \"_timeouts\", new Map());\n }\n\n add(key, callback, ms = 140, ...args) {\n this.remove(key);\n\n this._timeouts.set(key, window.setTimeout(callback, ms, ...args));\n }\n\n remove(key) {\n const timeout = this._timeouts.get(key);\n\n if (timeout) window.clearTimeout(timeout);\n }\n\n clean() {\n this._timeouts.forEach(timeout => void window.clearTimeout(timeout));\n\n this._timeouts.clear();\n }\n\n}\n\nclass Controller {\n constructor(handlers) {\n _defineProperty(this, \"gestures\", new Set());\n\n _defineProperty(this, \"_targetEventStore\", new EventStore(this));\n\n _defineProperty(this, \"gestureEventStores\", {});\n\n _defineProperty(this, \"gestureTimeoutStores\", {});\n\n _defineProperty(this, \"handlers\", {});\n\n _defineProperty(this, \"config\", {});\n\n _defineProperty(this, \"pointerIds\", new Set());\n\n _defineProperty(this, \"touchIds\", new Set());\n\n _defineProperty(this, \"state\", {\n shared: {\n shiftKey: false,\n metaKey: false,\n ctrlKey: false,\n altKey: false\n }\n });\n\n resolveGestures(this, handlers);\n }\n\n setEventIds(event) {\n if (isTouch(event)) {\n this.touchIds = new Set(touchIds(event));\n } else if ('pointerId' in event) {\n if (event.type === 'pointerup' || event.type === 'pointercancel') this.pointerIds.delete(event.pointerId);else if (event.type === 'pointerdown') this.pointerIds.add(event.pointerId);\n }\n }\n\n applyHandlers(handlers, nativeHandlers) {\n this.handlers = handlers;\n this.nativeHandlers = nativeHandlers;\n }\n\n applyConfig(config, gestureKey) {\n this.config = parse(config, gestureKey);\n }\n\n clean() {\n this._targetEventStore.clean();\n\n for (const key of this.gestures) {\n this.gestureEventStores[key].clean();\n this.gestureTimeoutStores[key].clean();\n }\n }\n\n effect() {\n if (this.config.shared.target) this.bind();\n return () => this._targetEventStore.clean();\n }\n\n bind(...args) {\n const sharedConfig = this.config.shared;\n const eventOptions = sharedConfig.eventOptions;\n const props = {};\n let target;\n\n if (sharedConfig.target) {\n target = sharedConfig.target();\n if (!target) return;\n }\n\n const bindFunction = bindToProps(props, eventOptions, !!target);\n\n if (sharedConfig.enabled) {\n for (const gestureKey of this.gestures) {\n if (this.config[gestureKey].enabled) {\n const Engine = EngineMap.get(gestureKey);\n new Engine(this, args, gestureKey).bind(bindFunction);\n }\n }\n\n for (const eventKey in this.nativeHandlers) {\n bindFunction(eventKey, '', event => this.nativeHandlers[eventKey](_objectSpread2(_objectSpread2({}, this.state.shared), {}, {\n event,\n args\n })), undefined, true);\n }\n }\n\n for (const handlerProp in props) {\n props[handlerProp] = chain(...props[handlerProp]);\n }\n\n if (!target) return props;\n\n for (const handlerProp in props) {\n let eventKey = handlerProp.substr(2).toLowerCase();\n const capture = !!~eventKey.indexOf('capture');\n const passive = !!~eventKey.indexOf('passive');\n if (capture || passive) eventKey = eventKey.replace(/capture|passive/g, '');\n\n this._targetEventStore.add(target, eventKey, '', props[handlerProp], {\n capture,\n passive\n });\n }\n }\n\n}\n\nfunction setupGesture(ctrl, gestureKey) {\n ctrl.gestures.add(gestureKey);\n ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl);\n ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();\n}\n\nfunction resolveGestures(ctrl, internalHandlers) {\n if (internalHandlers.drag) setupGesture(ctrl, 'drag');\n if (internalHandlers.wheel) setupGesture(ctrl, 'wheel');\n if (internalHandlers.scroll) setupGesture(ctrl, 'scroll');\n if (internalHandlers.move) setupGesture(ctrl, 'move');\n if (internalHandlers.pinch) setupGesture(ctrl, 'pinch');\n if (internalHandlers.hover) setupGesture(ctrl, 'hover');\n}\n\nconst bindToProps = (props, eventOptions, withPassiveOption) => (device, action, handler, options = {}, isNative = false) => {\n var _options$capture, _options$passive;\n\n const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;\n const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;\n let handlerProp = isNative ? device : toHandlerProp(device, action, capture);\n if (withPassiveOption && passive) handlerProp += 'Passive';\n props[handlerProp] = props[handlerProp] || [];\n props[handlerProp].push(handler);\n};\n\nconst RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\n\nfunction sortHandlers(_handlers) {\n const native = {};\n const handlers = {};\n const actions = new Set();\n\n for (let key in _handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handlers[key] = _handlers[key];\n } else {\n native[key] = _handlers[key];\n }\n }\n\n return [handlers, native, actions];\n}\n\nfunction registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {\n if (!actions.has(handlerKey)) return;\n\n if (!EngineMap.has(key)) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: You've created a custom handler that that uses the \\`${key}\\` gesture but isn't properly configured.\\n\\nPlease add \\`${key}Action\\` when creating your handler.`);\n }\n\n return;\n }\n\n const startKey = handlerKey + 'Start';\n const endKey = handlerKey + 'End';\n\n const fn = state => {\n let memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n\n internalHandlers[key] = fn;\n config[key] = config[key] || {};\n}\n\nfunction parseMergedHandlers(mergedHandlers, mergedConfig) {\n const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);\n const internalHandlers = {};\n registerGesture(actions, handlers, 'onDrag', 'drag', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onWheel', 'wheel', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onScroll', 'scroll', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onPinch', 'pinch', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onMove', 'move', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onHover', 'hover', internalHandlers, mergedConfig);\n return {\n handlers: internalHandlers,\n config: mergedConfig,\n nativeHandlers\n };\n}\n\nexport { Controller, parseMergedHandlers };\n","import { registerAction, dragAction, pinchAction, wheelAction, scrollAction, moveAction, hoverAction } from '@use-gesture/core/actions';\nexport * from '@use-gesture/core/actions';\nimport { Controller, parseMergedHandlers } from '@use-gesture/core';\nexport * from '@use-gesture/core/utils';\nexport * from '@use-gesture/core/types';\n\nfunction _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nconst Recognizer = function Recognizer(target, handlers, config, gestureKey, nativeHandlers) {\n this._gestureKey = gestureKey;\n this._ctrl = new Controller(handlers);\n\n this._ctrl.applyHandlers(handlers, nativeHandlers);\n\n this._ctrl.applyConfig(_objectSpread2(_objectSpread2({}, config), {}, {\n target\n }), this._gestureKey);\n\n this._ctrl.effect();\n};\n\nRecognizer.prototype.destroy = function () {\n this._ctrl.clean();\n};\n\nconst DragGesture = function DragGesture(target, handler, config = {}) {\n registerAction(dragAction);\n return new Recognizer(target, {\n drag: handler\n }, config, 'drag');\n};\n\nconst PinchGesture = function PinchGesture(target, handler, config = {}) {\n registerAction(pinchAction);\n return new Recognizer(target, {\n pinch: handler\n }, config, 'pinch');\n};\n\nconst WheelGesture = function WheelGesture(target, handler, config = {}) {\n registerAction(wheelAction);\n return new Recognizer(target, {\n wheel: handler\n }, config, 'wheel');\n};\n\nconst ScrollGesture = function ScrollGesture(target, handler, config = {}) {\n registerAction(scrollAction);\n return new Recognizer(target, {\n scroll: handler\n }, config, 'scroll');\n};\n\nconst MoveGesture = function MoveGesture(target, handler, config = {}) {\n registerAction(moveAction);\n return new Recognizer(target, {\n move: handler\n }, config, 'move');\n};\n\nconst HoverGesture = function HoverGesture(target, handler, config = {}) {\n registerAction(hoverAction);\n return new Recognizer(target, {\n hover: handler\n }, config, 'hover');\n};\n\nfunction createGesture(actions) {\n actions.forEach(registerAction);\n return function (target, _handlers, _config = {}) {\n const {\n handlers,\n nativeHandlers,\n config\n } = parseMergedHandlers(_handlers, _config);\n return new Recognizer(target, handlers, config, undefined, nativeHandlers);\n };\n}\n\nconst Gesture = function Gesture(target, handlers, config = {}) {\n const gestureFunction = createGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);\n return gestureFunction(target, handlers, config);\n};\n\nexport { DragGesture, Gesture, HoverGesture, MoveGesture, PinchGesture, ScrollGesture, WheelGesture };\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addLeadingZeros;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assign;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cloneObject;\n\nvar _index = _interopRequireDefault(require(\"../assign/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction cloneObject(dirtyObject) {\n return (0, _index.default)({}, dirtyObject);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../lightFormatters/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/getUTCDayOfYear/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeek/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeekYear/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../../../_lib/getUTCWeek/index.js\"));\n\nvar _index6 = _interopRequireDefault(require(\"../../../_lib/getUTCWeekYear/index.js\"));\n\nvar _index7 = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 _index.default.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = (0, _index6.default)(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 (0, _index7.default)(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 (0, _index7.default)(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = (0, _index4.default)(date); // Padding\n\n return (0, _index7.default)(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 (0, _index7.default)(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 (0, _index7.default)(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 (0, _index7.default)(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 _index.default.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 (0, _index7.default)(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 = (0, _index5.default)(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return (0, _index7.default)(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = (0, _index3.default)(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return (0, _index7.default)(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 _index.default.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = (0, _index2.default)(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return (0, _index7.default)(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 (0, _index7.default)(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 (0, _index7.default)(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 (0, _index7.default)(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 _index.default.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 _index.default.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 (0, _index7.default)(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 (0, _index7.default)(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 _index.default.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 _index.default.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return _index.default.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 (0, _index7.default)(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 (0, _index7.default)(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, delimiter) {\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 return sign + String(hours) + delimiter + (0, _index7.default)(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + (0, _index7.default)(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 = (0, _index7.default)(Math.floor(absOffset / 60), 2);\n var minutes = (0, _index7.default)(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\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 (0, _index.default)(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) : (0, _index.default)(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return (0, _index.default)(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 (0, _index.default)(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return (0, _index.default)(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return (0, _index.default)(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return (0, _index.default)(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 (0, _index.default)(fractionalSeconds, token.length);\n }\n};\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction 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};\nvar _default = longFormatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTimezoneOffsetInMilliseconds;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCDayOfYear;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\nfunction getUTCDayOfYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeek;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeekYear/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\nfunction getUTCISOWeek(dirtyDate) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date).getTime() - (0, _index3.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeekYear;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction getUTCISOWeekYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(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 = (0, _index3.default)(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeek;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeekYear/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\nfunction getUTCWeek(dirtyDate, options) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date, options).getTime() - (0, _index3.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeekYear;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction getUTCWeekYear(dirtyDate, dirtyOptions) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(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 : (0, _index4.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index4.default)(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 = (0, _index3.default)(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;\nexports.isProtectedWeekYearToken = isProtectedWeekYearToken;\nexports.throwProtectedError = throwProtectedError;\nvar protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\n\nfunction isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\n\nfunction isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\n\nfunction 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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRoundingMethod = getRoundingMethod;\nvar roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\n\nfunction getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeek;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction startOfUTCISOWeek(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var weekStartsOn = 1;\n var date = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeekYear;\n\nvar _index = _interopRequireDefault(require(\"../getUTCISOWeekYear/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction startOfUTCISOWeekYear(dirtyDate) {\n (0, _index3.default)(1, arguments);\n var year = (0, _index.default)(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = (0, _index2.default)(fourthOfJanuary);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\n\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../toInteger/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction startOfUTCWeek(dirtyDate, dirtyOptions) {\n (0, _index2.default)(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 : (0, _index3.default)(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : (0, _index3.default)(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 = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeekYear;\n\nvar _index = _interopRequireDefault(require(\"../getUTCWeekYear/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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\nfunction startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n (0, _index2.default)(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 : (0, _index4.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index4.default)(options.firstWeekContainsDate);\n var year = (0, _index.default)(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = (0, _index3.default)(firstWeek, dirtyOptions);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addDays;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### 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 */\nfunction addDays(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var amount = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addMilliseconds;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var timestamp = (0, _index2.default)(dirtyDate).getTime();\n var amount = (0, _index.default)(dirtyAmount);\n return new Date(timestamp + amount);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addMonths;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction addMonths(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var amount = (0, _index.default)(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\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = compareAsc;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction compareAsc(dirtyDateLeft, dirtyDateRight) {\n (0, _index2.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.secondsInMinute = exports.secondsInHour = exports.quartersInYear = exports.monthsInYear = exports.monthsInQuarter = exports.minutesInHour = exports.minTime = exports.millisecondsInSecond = exports.millisecondsInHour = exports.millisecondsInMinute = exports.maxTime = exports.daysInWeek = void 0;\n\n/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nvar daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexports.daysInWeek = daysInWeek;\nvar 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\nexports.maxTime = maxTime;\nvar millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexports.millisecondsInMinute = millisecondsInMinute;\nvar millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexports.millisecondsInHour = millisecondsInHour;\nvar millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexports.millisecondsInSecond = millisecondsInSecond;\nvar minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexports.minTime = minTime;\nvar minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexports.minutesInHour = minutesInHour;\nvar monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexports.monthsInQuarter = monthsInQuarter;\nvar monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexports.monthsInYear = monthsInYear;\nvar quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexports.quartersInYear = quartersInYear;\nvar secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexports.secondsInHour = secondsInHour;\nvar secondsInMinute = 60;\nexports.secondsInMinute = secondsInMinute;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInCalendarDays;\n\nvar _index = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../startOfDay/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\nfunction differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n (0, _index3.default)(2, arguments);\n var startOfDayLeft = (0, _index2.default)(dirtyDateLeft);\n var startOfDayRight = (0, _index2.default)(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - (0, _index.default)(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInCalendarMonths;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### 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 months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n (0, _index2.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInCalendarYears;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### 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 years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n (0, _index2.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInDays;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInCalendarDays/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\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}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\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 full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nfunction differenceInDays(dirtyDateLeft, dirtyDateRight) {\n (0, _index3.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs((0, _index2.default)(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInHours;\n\nvar _index = require(\"../constants/index.js\");\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInMilliseconds/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index4 = require(\"../_lib/roundingMethods/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\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 * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours(dateLeft, dateRight, options) {\n (0, _index3.default)(2, arguments);\n\n var diff = (0, _index2.default)(dateLeft, dateRight) / _index.millisecondsInHour;\n\n return (0, _index4.getRoundingMethod)(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInMilliseconds;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\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 milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds(dateLeft, dateRight) {\n (0, _index2.default)(2, arguments);\n return (0, _index.default)(dateLeft).getTime() - (0, _index.default)(dateRight).getTime();\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInMinutes;\n\nvar _index = require(\"../constants/index.js\");\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInMilliseconds/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index4 = require(\"../_lib/roundingMethods/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\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 * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nfunction differenceInMinutes(dateLeft, dateRight, options) {\n (0, _index3.default)(2, arguments);\n\n var diff = (0, _index2.default)(dateLeft, dateRight) / _index.millisecondsInMinute;\n\n return (0, _index4.getRoundingMethod)(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInMonths;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInCalendarMonths/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../compareAsc/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../isLastDayOfMonth/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\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 full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nfunction differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n (0, _index4.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n var sign = (0, _index3.default)(dateLeft, dateRight);\n var difference = Math.abs((0, _index2.default)(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = (0, _index3.default)(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if ((0, _index5.default)((0, _index.default)(dirtyDateLeft)) && difference === 1 && (0, _index3.default)(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInSeconds;\n\nvar _index = _interopRequireDefault(require(\"../differenceInMilliseconds/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index3 = require(\"../_lib/roundingMethods/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\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 * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds(dateLeft, dateRight, options) {\n (0, _index2.default)(2, arguments);\n var diff = (0, _index.default)(dateLeft, dateRight) / 1000;\n return (0, _index3.getRoundingMethod)(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = differenceInYears;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInCalendarYears/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../compareAsc/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\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 full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nfunction differenceInYears(dirtyDateLeft, dirtyDateRight) {\n (0, _index4.default)(2, arguments);\n var dateLeft = (0, _index.default)(dirtyDateLeft);\n var dateRight = (0, _index.default)(dirtyDateRight);\n var sign = (0, _index3.default)(dateLeft, dateRight);\n var difference = Math.abs((0, _index2.default)(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = (0, _index3.default)(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull)); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = endOfDay;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### 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 end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = endOfMonth;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### 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 end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = format;\n\nvar _index = _interopRequireDefault(require(\"../isValid/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../locale/en-US/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../subMilliseconds/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../_lib/format/formatters/index.js\"));\n\nvar _index6 = _interopRequireDefault(require(\"../_lib/format/longFormatters/index.js\"));\n\nvar _index7 = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\n\nvar _index8 = require(\"../_lib/protectedTokens/index.js\");\n\nvar _index9 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index10 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\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 ofthen 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\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n (0, _index10.default)(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || _index2.default;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : (0, _index9.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index9.default)(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 : (0, _index9.default)(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : (0, _index9.default)(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 = (0, _index4.default)(dirtyDate);\n\n if (!(0, _index.default)(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 = (0, _index7.default)(originalDate);\n var utcDate = (0, _index3.default)(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 = _index6.default[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 = _index5.default[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && (0, _index8.isProtectedWeekYearToken)(substring)) {\n (0, _index8.throwProtectedError)(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && (0, _index8.isProtectedDayOfYearToken)(substring)) {\n (0, _index8.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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\n\nvar _index = _interopRequireDefault(require(\"../compareAsc/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInMonths/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../differenceInSeconds/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../locale/en-US/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index6 = _interopRequireDefault(require(\"../_lib/cloneObject/index.js\"));\n\nvar _index7 = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\n\nvar _index8 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\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 `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nfunction formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _index8.default)(2, arguments);\n var locale = options.locale || _index4.default;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = (0, _index.default)(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = (0, _index6.default)(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = (0, _index5.default)(dirtyBaseDate);\n dateRight = (0, _index5.default)(dirtyDate);\n } else {\n dateLeft = (0, _index5.default)(dirtyDate);\n dateRight = (0, _index5.default)(dirtyBaseDate);\n }\n\n var seconds = (0, _index3.default)(dateRight, dateLeft);\n var offsetInSeconds = ((0, _index7.default)(dateRight) - (0, _index7.default)(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = (0, _index2.default)(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistanceStrict;\n\nvar _index = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../compareAsc/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/cloneObject/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../locale/en-US/index.js\"));\n\nvar _index6 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\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 `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nfunction formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _index6.default)(2, arguments);\n var locale = options.locale || _index5.default;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = (0, _index2.default)(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = (0, _index4.default)(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = (0, _index3.default)(dirtyBaseDate);\n dateRight = (0, _index3.default)(dirtyDate);\n } else {\n dateLeft = (0, _index3.default)(dirtyDate);\n dateRight = (0, _index3.default)(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = (0, _index.default)(dateRight) - (0, _index.default)(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getDaysInMonth;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction getDaysInMonth(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = intervalToDuration;\n\nvar _index = _interopRequireDefault(require(\"../compareAsc/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../differenceInYears/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../differenceInMonths/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../differenceInDays/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"../differenceInHours/index.js\"));\n\nvar _index6 = _interopRequireDefault(require(\"../differenceInMinutes/index.js\"));\n\nvar _index7 = _interopRequireDefault(require(\"../differenceInSeconds/index.js\"));\n\nvar _index8 = _interopRequireDefault(require(\"../isValid/index.js\"));\n\nvar _index9 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index10 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index11 = _interopRequireDefault(require(\"../sub/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\nfunction intervalToDuration(_ref) {\n var start = _ref.start,\n end = _ref.end;\n (0, _index9.default)(1, arguments);\n var dateLeft = (0, _index10.default)(start);\n var dateRight = (0, _index10.default)(end);\n\n if (!(0, _index8.default)(dateLeft)) {\n throw new RangeError('Start Date is invalid');\n }\n\n if (!(0, _index8.default)(dateRight)) {\n throw new RangeError('End Date is invalid');\n }\n\n var duration = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n var sign = (0, _index.default)(dateLeft, dateRight);\n duration.years = Math.abs((0, _index2.default)(dateLeft, dateRight));\n var remainingMonths = (0, _index11.default)(dateLeft, {\n years: sign * duration.years\n });\n duration.months = Math.abs((0, _index3.default)(remainingMonths, dateRight));\n var remainingDays = (0, _index11.default)(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs((0, _index4.default)(remainingDays, dateRight));\n var remainingHours = (0, _index11.default)(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs((0, _index5.default)(remainingHours, dateRight));\n var remainingMinutes = (0, _index11.default)(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs((0, _index6.default)(remainingMinutes, dateRight));\n var remainingSeconds = (0, _index11.default)(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs((0, _index7.default)(remainingSeconds, dateRight));\n return duration;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\n\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### 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 */\nfunction isDate(value) {\n (0, _index.default)(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLastDayOfMonth;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../endOfDay/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../endOfMonth/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a 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} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth(dirtyDate) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n return (0, _index2.default)(date).getTime() === (0, _index3.default)(date).getTime();\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValid;\n\nvar _index = _interopRequireDefault(require(\"../isDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@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 */\nfunction isValid(dirtyDate) {\n (0, _index3.default)(1, arguments);\n\n if (!(0, _index.default)(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = (0, _index2.default)(dirtyDate);\n return !isNaN(Number(date));\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\n\nfunction 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}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar 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\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar 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\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setHours;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### 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} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nfunction setHours(dirtyDate, dirtyHours) {\n (0, _index3.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var hours = (0, _index.default)(dirtyHours);\n date.setHours(hours);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setMinutes;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### 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} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nfunction setMinutes(dirtyDate, dirtyMinutes) {\n (0, _index3.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var minutes = (0, _index.default)(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setMonth;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../getDaysInMonth/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### 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} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth(dirtyDate, dirtyMonth) {\n (0, _index4.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var month = (0, _index.default)(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = (0, _index3.default)(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setYear;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### 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} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nfunction setYear(dirtyDate, dirtyYear) {\n (0, _index3.default)(2, arguments);\n var date = (0, _index2.default)(dirtyDate);\n var year = (0, _index.default)(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfDay;\n\nvar _index = _interopRequireDefault(require(\"../toDate/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### 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 */\nfunction startOfDay(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sub;\n\nvar _index = _interopRequireDefault(require(\"../subDays/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../subMonths/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nvar _index4 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nfunction sub(date, duration) {\n (0, _index3.default)(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? (0, _index4.default)(duration.years) : 0;\n var months = duration.months ? (0, _index4.default)(duration.months) : 0;\n var weeks = duration.weeks ? (0, _index4.default)(duration.weeks) : 0;\n var days = duration.days ? (0, _index4.default)(duration.days) : 0;\n var hours = duration.hours ? (0, _index4.default)(duration.hours) : 0;\n var minutes = duration.minutes ? (0, _index4.default)(duration.minutes) : 0;\n var seconds = duration.seconds ? (0, _index4.default)(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = (0, _index2.default)(date, months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = (0, _index.default)(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subDays;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../addDays/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction subDays(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var amount = (0, _index.default)(dirtyAmount);\n return (0, _index2.default)(dirtyDate, -amount);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subMilliseconds;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../addMilliseconds/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 */\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var amount = (0, _index.default)(dirtyAmount);\n return (0, _index2.default)(dirtyDate, -amount);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subMonths;\n\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n\nvar _index2 = _interopRequireDefault(require(\"../addMonths/index.js\"));\n\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### 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 subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction subMonths(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var amount = (0, _index.default)(dirtyAmount);\n return (0, _index2.default)(dirtyDate, -amount);\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **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 */\nfunction toDate(argument) {\n (0, _index.default)(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}\n\nmodule.exports = exports.default;","/* jshint newcap:false */\nvar slice = Array.prototype.slice;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction checkListener(listener) {\n if (!isFunction(listener)) {\n throw TypeError('Invalid listener');\n }\n}\n\nfunction invokeListener(ee, listener, args) {\n switch (args.length) {\n // fast cases\n case 1:\n listener.call(ee);\n break;\n case 2:\n listener.call(ee, args[1]);\n break;\n case 3:\n listener.call(ee, args[1], args[2]);\n break;\n // slower\n default:\n listener.apply(ee, slice.call(args, 1));\n }\n}\n\nfunction addListener(eventEmitter, type, listener, prepend) {\n checkListener(listener);\n\n var events = eventEmitter.$e || (eventEmitter.$e = {});\n\n var listeners = events[type];\n if (listeners) {\n if (isFunction(listeners)) {\n events[type] = prepend ? [listener, listeners] : [listeners, listener];\n } else {\n if (prepend) {\n listeners.unshift(listener);\n } else {\n listeners.push(listener);\n }\n }\n\n } else {\n events[type] = listener;\n }\n return eventEmitter;\n}\n\nfunction EventEmitter() {\n this.$e = this.$e || {};\n}\n\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype = {\n $e: null,\n\n emit: function(type) {\n var args = arguments;\n\n var events = this.$e;\n if (!events) {\n return;\n }\n\n var listeners = events && events[type];\n if (!listeners) {\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n var error = args[1];\n if (!(error instanceof Error)) {\n var context = error;\n error = new Error('Error: ' + context);\n error.context = context;\n }\n\n throw error; // Unhandled 'error' event\n }\n\n return false;\n }\n\n if (isFunction(listeners)) {\n invokeListener(this, listeners, args);\n } else {\n listeners = slice.call(listeners);\n\n for (var i=0, len=listeners.length; i=0; i--) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n }\n }\n }\n }\n\n return this;\n },\n\n removeAllListeners: function(type) {\n var events = this.$e;\n if (events) {\n delete events[type];\n }\n },\n\n listenerCount: function(type) {\n var events = this.$e;\n var listeners = events && events[type];\n return listeners ? (isFunction(listeners) ? 1 : listeners.length) : 0;\n }\n};\n\nmodule.exports = EventEmitter;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"feather\"] = factory();\n\telse\n\t\troot[\"feather\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar classNames = (function () {\n\t\t// don't inherit from Object so we can skip hasOwnProperty check later\n\t\t// http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232\n\t\tfunction StorageObject() {}\n\t\tStorageObject.prototype = Object.create(null);\n\n\t\tfunction _parseArray (resultSet, array) {\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t_parse(resultSet, array[i]);\n\t\t\t}\n\t\t}\n\n\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\tfunction _parseNumber (resultSet, num) {\n\t\t\tresultSet[num] = true;\n\t\t}\n\n\t\tfunction _parseObject (resultSet, object) {\n\t\t\tfor (var k in object) {\n\t\t\t\tif (hasOwn.call(object, k)) {\n\t\t\t\t\t// set value to false instead of deleting it to avoid changing object structure\n\t\t\t\t\t// https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions\n\t\t\t\t\tresultSet[k] = !!object[k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar SPACE = /\\s+/;\n\t\tfunction _parseString (resultSet, str) {\n\t\t\tvar array = str.split(SPACE);\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\tresultSet[array[i]] = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction _parse (resultSet, arg) {\n\t\t\tif (!arg) return;\n\t\t\tvar argType = typeof arg;\n\n\t\t\t// 'foo bar'\n\t\t\tif (argType === 'string') {\n\t\t\t\t_parseString(resultSet, arg);\n\n\t\t\t// ['foo', 'bar', ...]\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t_parseArray(resultSet, arg);\n\n\t\t\t// { 'foo': true, ... }\n\t\t\t} else if (argType === 'object') {\n\t\t\t\t_parseObject(resultSet, arg);\n\n\t\t\t// '130'\n\t\t\t} else if (argType === 'number') {\n\t\t\t\t_parseNumber(resultSet, arg);\n\t\t\t}\n\t\t}\n\n\t\tfunction _classNames () {\n\t\t\t// don't leak arguments\n\t\t\t// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n\t\t\tvar len = arguments.length;\n\t\t\tvar args = Array(len);\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\targs[i] = arguments[i];\n\t\t\t}\n\n\t\t\tvar classSet = new StorageObject();\n\t\t\t_parseArray(classSet, args);\n\n\t\t\tvar list = [];\n\n\t\t\tfor (var k in classSet) {\n\t\t\t\tif (classSet[k]) {\n\t\t\t\t\tlist.push(k)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list.join(' ');\n\t\t}\n\n\t\treturn _classNames;\n\t})();\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iteratorMethod = getIteratorMethod(O);\n var length, result, step, iterator;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n result = new C();\n for (;!(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping\n ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n : step.value\n );\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\n// false -> Array#indexOf\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n// true -> Array#includes\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n hide(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar exist = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return exist ? document.createElement(it) : {};\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n hide(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var O = 'object';\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == O && globalThis) ||\n check(typeof window == O && window) ||\n check(typeof self == O && self) ||\n check(typeof global == O && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\n\nvar document = global.document;\n\nmodule.exports = document && document.documentElement;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n hide(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var i = 0;\n var key;\n while (length > i) definePropertyModule.f(O, key = keys[i++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayIncludes = require('../internals/array-includes');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar arrayIndexOf = arrayIncludes(false);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var validateSetPrototypeOfArguments = require('../internals/validate-set-prototype-of-arguments');\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var correctSetter = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n correctSetter = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n validateSetPrototypeOfArguments(O, proto);\n if (correctSetter) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar Reflect = global.Reflect;\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = require('../internals/global');\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n try {\n hide(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.1.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// CONVERT_TO_STRING: true -> String#at\n// CONVERT_TO_STRING: false -> String#codePointAt\nmodule.exports = function (that, pos, CONVERT_TO_STRING) {\n var S = String(requireObjectCoercible(that));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));\n};\n","var isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) {\n throw TypeError(\"Can't set \" + String(proto) + ' as a prototype');\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar codePointAt = require('../internals/string-at');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = codePointAt(string, index, true);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","import classnames from 'classnames/dedupe';\n\nimport DEFAULT_ATTRS from './default-attrs.json';\n\nclass Icon {\n constructor(name, contents, tags = []) {\n this.name = name;\n this.contents = contents;\n this.tags = tags;\n this.attrs = {\n ...DEFAULT_ATTRS,\n ...{ class: `feather feather-${name}` },\n };\n }\n\n /**\n * Create an SVG string.\n * @param {Object} attrs\n * @returns {string}\n */\n toSvg(attrs = {}) {\n const combinedAttrs = {\n ...this.attrs,\n ...attrs,\n ...{ class: classnames(this.attrs.class, attrs.class) },\n };\n\n return `${this.contents}`;\n }\n\n /**\n * Return string representation of an `Icon`.\n *\n * Added for backward compatibility. If old code expects `feather.icons.`\n * to be a string, `toString()` will get implicitly called.\n *\n * @returns {string}\n */\n toString() {\n return this.contents;\n }\n}\n\n/**\n * Convert attributes object to string of HTML attributes.\n * @param {Object} attrs\n * @returns {string}\n */\nfunction attrsToString(attrs) {\n return Object.keys(attrs)\n .map(key => `${key}=\"${attrs[key]}\"`)\n .join(' ');\n}\n\nexport default Icon;\n","import Icon from './icon';\nimport icons from '../dist/icons.json';\nimport tags from './tags.json';\n\nexport default Object.keys(icons)\n .map(key => new Icon(key, icons[key], tags[key]))\n .reduce((object, icon) => {\n object[icon.name] = icon;\n return object;\n }, {});\n","import icons from './icons';\nimport toSvg from './to-svg';\nimport replace from './replace';\n\nmodule.exports = { icons, toSvg, replace };\n","/* eslint-env browser */\nimport classnames from 'classnames/dedupe';\n\nimport icons from './icons';\n\n/**\n * Replace all HTML elements that have a `data-feather` attribute with SVG markup\n * corresponding to the element's `data-feather` attribute value.\n * @param {Object} attrs\n */\nfunction replace(attrs = {}) {\n if (typeof document === 'undefined') {\n throw new Error('`feather.replace()` only works in a browser environment.');\n }\n\n const elementsToReplace = document.querySelectorAll('[data-feather]');\n\n Array.from(elementsToReplace).forEach(element =>\n replaceElement(element, attrs),\n );\n}\n\n/**\n * Replace a single HTML element with SVG markup\n * corresponding to the element's `data-feather` attribute value.\n * @param {HTMLElement} element\n * @param {Object} attrs\n */\nfunction replaceElement(element, attrs = {}) {\n const elementAttrs = getAttrs(element);\n const name = elementAttrs['data-feather'];\n delete elementAttrs['data-feather'];\n\n const svgString = icons[name].toSvg({\n ...attrs,\n ...elementAttrs,\n ...{ class: classnames(attrs.class, elementAttrs.class) },\n });\n const svgDocument = new DOMParser().parseFromString(\n svgString,\n 'image/svg+xml',\n );\n const svgElement = svgDocument.querySelector('svg');\n\n element.parentNode.replaceChild(svgElement, element);\n}\n\n/**\n * Get the attributes of an HTML element.\n * @param {HTMLElement} element\n * @returns {Object}\n */\nfunction getAttrs(element) {\n return Array.from(element.attributes).reduce((attrs, attr) => {\n attrs[attr.name] = attr.value;\n return attrs;\n }, {});\n}\n\nexport default replace;\n","import icons from './icons';\n\n/**\n * Create an SVG string.\n * @deprecated\n * @param {string} name\n * @param {Object} attrs\n * @returns {string}\n */\nfunction toSvg(name, attrs = {}) {\n console.warn(\n 'feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead.',\n );\n\n if (!name) {\n throw new Error('The required `key` (icon name) parameter is missing.');\n }\n\n if (!icons[name]) {\n throw new Error(\n `No icon matching '${\n name\n }'. See the complete list of icons at https://feathericons.com`,\n );\n }\n\n return icons[name].toSvg(attrs);\n}\n\nexport default toSvg;\n","var INDEX_EVENT = 0;\nvar INDEX_USER_LISTENER = 1;\nvar INDEX_WRAPPED_LISTENER = 2;\nvar DESTROY = \"destroy\";\n\nfunction isNonEventEmitter(target) {\n return !target.once;\n}\n\nfunction EventEmitterWrapper(target) {\n this.$__target = target;\n this.$__listeners = [];\n this.$__subscribeTo = null;\n}\n\nEventEmitterWrapper.prototype = {\n $__remove: function(test, testWrapped) {\n var target = this.$__target;\n var listeners = this.$__listeners;\n\n this.$__listeners = listeners.filter(function(curListener) {\n var curEvent = curListener[INDEX_EVENT];\n var curListenerFunc = curListener[INDEX_USER_LISTENER];\n var curWrappedListenerFunc = curListener[INDEX_WRAPPED_LISTENER];\n\n if (testWrapped) {\n // If the user used `once` to attach an event listener then we had to\n // wrap their listener function with a new function that does some extra\n // cleanup to avoid a memory leak. If the `testWrapped` flag is set to true\n // then we are attempting to remove based on a function that we had to\n // wrap (not the user listener function)\n if (curWrappedListenerFunc && test(curEvent, curWrappedListenerFunc)) {\n target.removeListener(curEvent, curWrappedListenerFunc);\n\n return false;\n }\n } else if (test(curEvent, curListenerFunc)) {\n // If the listener function was wrapped due to it being a `once` listener\n // then we should remove from the target EventEmitter using wrapped\n // listener function. Otherwise, we remove the listener using the user-provided\n // listener function.\n target.removeListener(curEvent, curWrappedListenerFunc || curListenerFunc);\n\n return false;\n }\n\n return true;\n });\n\n // Fixes https://github.com/raptorjs/listener-tracker/issues/2\n // If all of the listeners stored with a wrapped EventEmitter\n // have been removed then we should unregister the wrapped\n // EventEmitter in the parent SubscriptionTracker\n var subscribeTo = this.$__subscribeTo;\n\n if (!this.$__listeners.length && subscribeTo) {\n var self = this;\n var subscribeToList = subscribeTo.$__subscribeToList;\n subscribeTo.$__subscribeToList = subscribeToList.filter(function(cur) {\n return cur !== self;\n });\n }\n },\n\n on: function(event, listener) {\n this.$__target.on(event, listener);\n this.$__listeners.push([event, listener]);\n return this;\n },\n\n once: function(event, listener) {\n var self = this;\n\n // Handling a `once` event listener is a little tricky since we need to also\n // do our own cleanup if the `once` event is emitted. Therefore, we need\n // to wrap the user's listener function with our own listener function.\n var wrappedListener = function() {\n self.$__remove(function(event, listenerFunc) {\n return wrappedListener === listenerFunc;\n }, true /* We are removing the wrapped listener */);\n\n listener.apply(this, arguments);\n };\n\n this.$__target.once(event, wrappedListener);\n this.$__listeners.push([event, listener, wrappedListener]);\n return this;\n },\n\n removeListener: function(event, listener) {\n if (typeof event === 'function') {\n listener = event;\n event = null;\n }\n\n if (listener && event) {\n this.$__remove(function(curEvent, curListener) {\n return event === curEvent && listener === curListener;\n });\n } else if (listener) {\n this.$__remove(function(curEvent, curListener) {\n return listener === curListener;\n });\n } else if (event) {\n this.removeAllListeners(event);\n }\n\n return this;\n },\n\n removeAllListeners: function(event) {\n\n var listeners = this.$__listeners;\n var target = this.$__target;\n\n if (event) {\n this.$__remove(function(curEvent, curListener) {\n return event === curEvent;\n });\n } else {\n for (var i = listeners.length - 1; i >= 0; i--) {\n var cur = listeners[i];\n target.removeListener(cur[INDEX_EVENT], cur[INDEX_USER_LISTENER]);\n }\n this.$__listeners.length = 0;\n }\n\n return this;\n }\n};\n\nfunction EventEmitterAdapter(target) {\n this.$__target = target;\n}\n\nEventEmitterAdapter.prototype = {\n on: function(event, listener) {\n this.$__target.addEventListener(event, listener);\n return this;\n },\n\n once: function(event, listener) {\n var self = this;\n\n // need to save this so we can remove it below\n var onceListener = function() {\n self.$__target.removeEventListener(event, onceListener);\n listener();\n };\n this.$__target.addEventListener(event, onceListener);\n return this;\n },\n\n removeListener: function(event, listener) {\n this.$__target.removeEventListener(event, listener);\n return this;\n }\n};\n\nfunction SubscriptionTracker() {\n this.$__subscribeToList = [];\n}\n\nSubscriptionTracker.prototype = {\n\n subscribeTo: function(target, options) {\n var addDestroyListener = !options || options.addDestroyListener !== false;\n var wrapper;\n var nonEE;\n var subscribeToList = this.$__subscribeToList;\n\n for (var i=0, len=subscribeToList.length; i= 0; i--) {\n if (subscribeToList[i].$__target === target) {\n subscribeToList.splice(i, 1);\n break;\n }\n }\n });\n }\n\n // Store a reference to the parent SubscriptionTracker so that we can do cleanup\n // if the EventEmitterWrapper instance becomes empty (i.e., no active listeners)\n wrapper.$__subscribeTo = this;\n subscribeToList.push(wrapper);\n }\n\n return wrapper;\n },\n\n removeAllListeners: function(target, event) {\n var subscribeToList = this.$__subscribeToList;\n var i;\n\n if (target) {\n for (i = subscribeToList.length - 1; i >= 0; i--) {\n var cur = subscribeToList[i];\n if (cur.$__target === target) {\n cur.removeAllListeners(event);\n\n if (!cur.$__listeners.length) {\n // Do some cleanup if we removed all\n // listeners for the target event emitter\n subscribeToList.splice(i, 1);\n }\n\n break;\n }\n }\n } else {\n for (i = subscribeToList.length - 1; i >= 0; i--) {\n subscribeToList[i].removeAllListeners();\n }\n subscribeToList.length = 0;\n }\n }\n};\n\nexports = module.exports = SubscriptionTracker;\n\nexports.wrap = function(targetEventEmitter) {\n var nonEE;\n var wrapper;\n\n if (isNonEventEmitter(targetEventEmitter)) {\n nonEE = new EventEmitterAdapter(targetEventEmitter);\n }\n\n wrapper = new EventEmitterWrapper(nonEE || targetEventEmitter);\n if (!nonEE) {\n // we don't set this for non EE types\n targetEventEmitter.once(DESTROY, function() {\n wrapper.$__listeners.length = 0;\n });\n }\n\n return wrapper;\n};\n\nexports.createTracker = function() {\n return new SubscriptionTracker();\n};\n","module.exports = function render(input, out) {\n var componentsContext = out.___components;\n var isHydrate =\n componentsContext && componentsContext.___globalContext.___isHydrate;\n var ownerComponent = out.___assignedComponentDef.___component;\n var shouldPreserve = !(\"i\" in input) || input.i;\n var referenceComponent = ownerComponent;\n var key = out.___assignedKey;\n var checkKey = key;\n\n if (key[0] !== \"@\") {\n var parentComponent = componentsContext.___componentDef.___component;\n if (ownerComponent !== parentComponent) {\n referenceComponent = parentComponent;\n checkKey += \":\" + ownerComponent.id;\n }\n }\n\n var isPreserved = Boolean(\n shouldPreserve &&\n (isHydrate || referenceComponent.___keyedElements[checkKey])\n );\n\n if (input.n) {\n if (isPreserved) {\n if (input.b) {\n out.___parent.___preserveBody = true;\n } else {\n out.beginElement(\"\", null, key, ownerComponent);\n out.___parent.___preserve = true;\n out.endElement();\n }\n } else if (input.renderBody) {\n input.renderBody(out);\n }\n } else {\n out.bf(key, ownerComponent, shouldPreserve);\n\n if (!isPreserved && input.renderBody) {\n input.renderBody(out);\n }\n\n out.ef();\n }\n};\n","var domInsert = require(\"./dom-insert\");\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\n\nfunction getRootNode(el) {\n var cur = el;\n while (cur.parentNode) cur = cur.parentNode;\n return cur;\n}\n\nfunction getComponentDefs(result) {\n var componentDefs = result.___components;\n\n if (!componentDefs) {\n throw Error(\"No component\");\n }\n return componentDefs;\n}\n\nfunction RenderResult(out) {\n this.out = this.___out = out;\n this.___components = undefined;\n}\n\nmodule.exports = RenderResult;\n\nvar proto = (RenderResult.prototype = {\n getComponent: function () {\n return this.getComponents()[0];\n },\n getComponents: function (selector) {\n if (this.___components === undefined) {\n throw Error(\"Not added to DOM\");\n }\n\n var componentDefs = getComponentDefs(this);\n\n var components = [];\n\n componentDefs.forEach(function (componentDef) {\n var component = componentDef.___component;\n if (!selector || selector(component)) {\n components.push(component);\n }\n });\n\n return components;\n },\n\n afterInsert: function (host) {\n var out = this.___out;\n var componentsContext = out.___components;\n if (componentsContext) {\n this.___components = componentsContext.___initComponents(host);\n } else {\n this.___components = null;\n }\n\n return this;\n },\n getNode: function (host) {\n return this.___out.___getNode(host);\n },\n getOutput: function () {\n return this.___out.___getOutput();\n },\n toString: function () {\n return this.___out.toString();\n },\n document: typeof window === \"object\" && document\n});\n\nObject.defineProperty(proto, \"html\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"html\" property is deprecated. Please use \"toString\" instead.'\n );\n }\n return this.toString();\n }\n});\n\nObject.defineProperty(proto, \"context\", {\n get: function () {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"context\" property is deprecated. Please use \"out\" instead.'\n );\n }\n return this.___out;\n }\n});\n\n// Add all of the following DOM methods to Component.prototype:\n// - appendTo(referenceEl)\n// - replace(referenceEl)\n// - replaceChildrenOf(referenceEl)\n// - insertBefore(referenceEl)\n// - insertAfter(referenceEl)\n// - prependTo(referenceEl)\ndomInsert(\n proto,\n function getEl(renderResult, referenceEl) {\n return renderResult.getNode(getRootNode(referenceEl));\n },\n function afterInsert(renderResult, referenceEl) {\n return renderResult.afterInsert(getRootNode(referenceEl));\n }\n);\n","\"use strict\";\n/* jshint newcap:false */\n\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\n\nvar domInsert = require(\"../dom-insert\");\nvar defaultCreateOut = require(\"../createOut\");\nvar getComponentsContext =\n require(\"./ComponentsContext\").___getComponentsContext;\nvar componentsUtil = require(\"./util\");\nvar componentLookup = componentsUtil.___componentLookup;\nvar destroyNodeRecursive = componentsUtil.___destroyNodeRecursive;\nvar EventEmitter = require(\"events-light\");\nvar RenderResult = require(\"../RenderResult\");\nvar SubscriptionTracker = require(\"listener-tracker\");\nvar inherit = require(\"raptor-util/inherit\");\nvar updateManager = require(\"./update-manager\");\nvar morphdom = require(\"../vdom/morphdom\");\nvar eventDelegation = require(\"./event-delegation\");\nvar domData = require(\"./dom-data\");\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;\nvar CONTEXT_KEY = \"__subtree_context__\";\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar slice = Array.prototype.slice;\n\nvar COMPONENT_SUBSCRIBE_TO_OPTIONS;\nvar NON_COMPONENT_SUBSCRIBE_TO_OPTIONS = {\n addDestroyListener: false\n};\n\nvar emit = EventEmitter.prototype.emit;\nvar ELEMENT_NODE = 1;\n\nfunction removeListener(removeEventListenerHandle) {\n removeEventListenerHandle();\n}\n\nfunction walkFragments(fragment) {\n var node;\n\n while (fragment) {\n node = fragment.firstChild;\n\n if (!node) {\n break;\n }\n\n fragment = node.fragment;\n }\n\n return node;\n}\n\nfunction handleCustomEventWithMethodListener(\n component,\n targetMethodName,\n args,\n extraArgs\n) {\n // Remove the \"eventType\" argument\n args.push(component);\n\n if (extraArgs) {\n args = extraArgs.concat(args);\n }\n\n var targetComponent = componentLookup[component.___scope];\n var targetMethod =\n typeof targetMethodName === \"function\"\n ? targetMethodName\n : targetComponent[targetMethodName];\n if (!targetMethod) {\n throw Error(\"Method not found: \" + targetMethodName);\n }\n\n targetMethod.apply(targetComponent, args);\n}\n\nfunction resolveKeyHelper(key, index) {\n return index ? key + \"_\" + index : key;\n}\n\nfunction resolveComponentIdHelper(component, key, index) {\n return component.id + \"-\" + resolveKeyHelper(key, index);\n}\n\n/**\n * This method is used to process \"update_\" handler functions.\n * If all of the modified state properties have a user provided update handler\n * then a rerender will be bypassed and, instead, the DOM will be updated\n * looping over and invoking the custom update handlers.\n * @return {boolean} Returns true if if the DOM was updated. False, otherwise.\n */\nfunction processUpdateHandlers(component, stateChanges, oldState) {\n var handlerMethod;\n var handlers;\n\n for (var propName in stateChanges) {\n if (hasOwnProperty.call(stateChanges, propName)) {\n var handlerMethodName = \"update_\" + propName;\n\n handlerMethod = component[handlerMethodName];\n if (handlerMethod) {\n (handlers || (handlers = [])).push([propName, handlerMethod]);\n } else {\n // This state change does not have a state handler so return false\n // to force a rerender\n return;\n }\n }\n }\n\n // If we got here then all of the changed state properties have\n // an update handler or there are no state properties that actually\n // changed.\n if (handlers) {\n // Otherwise, there are handlers for all of the changed properties\n // so apply the updates using those handlers\n\n handlers.forEach(function (handler) {\n var propertyName = handler[0];\n handlerMethod = handler[1];\n\n var newValue = stateChanges[propertyName];\n var oldValue = oldState[propertyName];\n handlerMethod.call(component, newValue, oldValue);\n });\n\n component.___emitUpdate();\n component.___reset();\n }\n\n return true;\n}\n\nfunction checkInputChanged(existingComponent, oldInput, newInput) {\n if (oldInput != newInput) {\n if (oldInput == null || newInput == null) {\n return true;\n }\n\n var oldKeys = Object.keys(oldInput);\n var newKeys = Object.keys(newInput);\n var len = oldKeys.length;\n if (len !== newKeys.length) {\n return true;\n }\n\n for (var i = len; i--; ) {\n var key = oldKeys[i];\n if (!(key in newInput && oldInput[key] === newInput[key])) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nvar componentProto;\n\n/**\n * Base component type.\n *\n * NOTE: Any methods that are prefixed with an underscore should be considered private!\n */\nfunction Component(id) {\n EventEmitter.call(this);\n this.id = id;\n this.___state = null;\n this.___rootNode = null;\n this.___subscriptions = null;\n this.___domEventListenerHandles = null;\n this.___bubblingDomEvents = null; // Used to keep track of bubbling DOM events for components rendered on the server\n this.___customEvents = null;\n this.___scope = null;\n this.___renderInput = null;\n this.___input = undefined;\n this.___mounted = false;\n this.___global = undefined;\n this.___destroyed = false;\n this.___updateQueued = false;\n this.___dirty = false;\n this.___settingInput = false;\n this.___host = undefined;\n\n var ssrKeyedElements = keyedElementsByComponentId[id];\n\n if (ssrKeyedElements) {\n this.___keyedElements = ssrKeyedElements;\n delete keyedElementsByComponentId[id];\n } else {\n this.___keyedElements = {};\n }\n}\n\nComponent.prototype = componentProto = {\n ___isComponent: true,\n\n subscribeTo: function (target) {\n if (!target) {\n throw TypeError();\n }\n\n var subscriptions =\n this.___subscriptions ||\n (this.___subscriptions = new SubscriptionTracker());\n\n var subscribeToOptions = target.___isComponent\n ? COMPONENT_SUBSCRIBE_TO_OPTIONS\n : NON_COMPONENT_SUBSCRIBE_TO_OPTIONS;\n\n return subscriptions.subscribeTo(target, subscribeToOptions);\n },\n\n emit: function (eventType) {\n var customEvents = this.___customEvents;\n var target;\n\n if (customEvents && (target = customEvents[eventType])) {\n var targetMethodName = target[0];\n var isOnce = target[1];\n var extraArgs = target[2];\n var args = slice.call(arguments, 1);\n\n handleCustomEventWithMethodListener(\n this,\n targetMethodName,\n args,\n extraArgs\n );\n\n if (isOnce) {\n delete customEvents[eventType];\n }\n }\n\n return emit.apply(this, arguments);\n },\n getElId: function (key, index) {\n if (!key) {\n return this.id;\n }\n return resolveComponentIdHelper(this, key, index);\n },\n getEl: function (key, index) {\n if (key) {\n var keyedElement =\n this.___keyedElements[\"@\" + resolveKeyHelper(key, index)];\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (\n keyedElement &&\n keyedElement.nodeType !== 1 /* Node.ELEMENT_NODE */\n ) {\n throw new Error(\n \"Using 'getEl(key)' to get a component instance is not supported, did you mean 'getComponent(key)'?\"\n );\n }\n }\n\n return keyedElement;\n } else {\n return this.el;\n }\n },\n getEls: function (key) {\n key = key + \"[]\";\n\n var els = [];\n var i = 0;\n var el;\n while ((el = this.getEl(key, i))) {\n els.push(el);\n i++;\n }\n return els;\n },\n getComponent: function (key, index) {\n var rootNode = this.___keyedElements[\"@\" + resolveKeyHelper(key, index)];\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (/\\[\\]$/.test(key)) {\n throw new Error(\n \"A repeated key[] was passed to getComponent. Use a non-repeating key if there is only one of these components.\"\n );\n }\n }\n\n return rootNode && componentsByDOMNode.get(rootNode);\n },\n getComponents: function (key) {\n var lookup = this.___keyedElements[\"@\" + key + \"[]\"];\n return lookup\n ? Object.keys(lookup)\n .map(function (key) {\n return componentsByDOMNode.get(lookup[key]);\n })\n .filter(Boolean)\n : [];\n },\n destroy: function () {\n if (this.___destroyed) {\n return;\n }\n\n var root = this.___rootNode;\n\n this.___destroyShallow();\n\n var nodes = root.nodes;\n\n nodes.forEach(function (node) {\n destroyNodeRecursive(node);\n\n if (eventDelegation.___handleNodeDetach(node) !== false) {\n node.parentNode.removeChild(node);\n }\n });\n\n root.detached = true;\n\n delete componentLookup[this.id];\n this.___keyedElements = {};\n },\n\n ___destroyShallow: function () {\n if (this.___destroyed) {\n return;\n }\n\n this.___emitDestroy();\n this.___destroyed = true;\n\n componentsByDOMNode.set(this.___rootNode, undefined);\n\n this.___rootNode = null;\n\n // Unsubscribe from all DOM events\n this.___removeDOMEventListeners();\n\n var subscriptions = this.___subscriptions;\n if (subscriptions) {\n subscriptions.removeAllListeners();\n this.___subscriptions = null;\n }\n },\n\n isDestroyed: function () {\n return this.___destroyed;\n },\n get state() {\n return this.___state;\n },\n set state(newState) {\n var state = this.___state;\n if (!state && !newState) {\n return;\n }\n\n if (!state) {\n state = this.___state = new this.___State(this);\n }\n\n state.___replace(newState || {});\n\n if (state.___dirty) {\n this.___queueUpdate();\n }\n\n if (!newState) {\n this.___state = null;\n }\n },\n setState: function (name, value) {\n var state = this.___state;\n\n if (!state) {\n state = this.___state = new this.___State(this);\n }\n if (typeof name == \"object\") {\n // Merge in the new state with the old state\n var newState = name;\n for (var k in newState) {\n if (hasOwnProperty.call(newState, k)) {\n state.___set(k, newState[k], true /* ensure:true */);\n }\n }\n } else {\n state.___set(name, value, true /* ensure:true */);\n }\n },\n\n setStateDirty: function (name, value) {\n var state = this.___state;\n\n if (arguments.length == 1) {\n value = state[name];\n }\n\n state.___set(\n name,\n value,\n true /* ensure:true */,\n true /* forceDirty:true */\n );\n },\n\n replaceState: function (newState) {\n this.___state.___replace(newState);\n },\n\n get input() {\n return this.___input;\n },\n set input(newInput) {\n if (this.___settingInput) {\n this.___input = newInput;\n } else {\n this.___setInput(newInput);\n }\n },\n\n ___setInput: function (newInput, onInput, out) {\n onInput = onInput || this.onInput;\n var updatedInput;\n\n var oldInput = this.___input;\n this.___input = undefined;\n this.___context = (out && out[CONTEXT_KEY]) || this.___context;\n\n if (onInput) {\n // We need to set a flag to preview `this.input = foo` inside\n // onInput causing infinite recursion\n this.___settingInput = true;\n updatedInput = onInput.call(this, newInput || {}, out);\n this.___settingInput = false;\n }\n\n newInput = this.___renderInput = updatedInput || newInput;\n\n if ((this.___dirty = checkInputChanged(this, oldInput, newInput))) {\n this.___queueUpdate();\n }\n\n if (this.___input === undefined) {\n this.___input = newInput;\n if (newInput && newInput.$global) {\n this.___global = newInput.$global;\n }\n }\n\n return newInput;\n },\n\n forceUpdate: function () {\n this.___dirty = true;\n this.___queueUpdate();\n },\n\n ___queueUpdate: function () {\n if (!this.___updateQueued) {\n this.___updateQueued = true;\n updateManager.___queueComponentUpdate(this);\n }\n },\n\n update: function () {\n if (this.___destroyed === true || this.___isDirty === false) {\n return;\n }\n\n var input = this.___input;\n var state = this.___state;\n\n if (this.___dirty === false && state !== null && state.___dirty === true) {\n if (processUpdateHandlers(this, state.___changes, state.___old, state)) {\n state.___dirty = false;\n }\n }\n\n if (this.___isDirty === true) {\n // The UI component is still dirty after process state handlers\n // then we should rerender\n\n if (this.shouldUpdate(input, state) !== false) {\n this.___scheduleRerender();\n }\n }\n\n this.___reset();\n },\n\n get ___isDirty() {\n return (\n this.___dirty === true ||\n (this.___state !== null && this.___state.___dirty === true)\n );\n },\n\n ___reset: function () {\n this.___dirty = false;\n this.___updateQueued = false;\n this.___renderInput = null;\n var state = this.___state;\n if (state) {\n state.___reset();\n }\n },\n\n shouldUpdate: function () {\n return true;\n },\n\n ___scheduleRerender: function () {\n var self = this;\n var renderer = self.___renderer;\n\n if (!renderer) {\n throw TypeError();\n }\n\n var input = this.___renderInput || this.___input;\n\n updateManager.___batchUpdate(function () {\n self.___rerender(input, false).afterInsert(self.___host);\n });\n\n this.___reset();\n },\n\n ___rerender: function (input, isHydrate) {\n var host = this.___host;\n var globalData = this.___global;\n var rootNode = this.___rootNode;\n var renderer = this.___renderer;\n var createOut = renderer.createOut || defaultCreateOut;\n var out = createOut(globalData);\n out.sync();\n out.___host = this.___host;\n out[CONTEXT_KEY] = this.___context;\n\n var componentsContext = getComponentsContext(out);\n var globalComponentsContext = componentsContext.___globalContext;\n globalComponentsContext.___rerenderComponent = this;\n globalComponentsContext.___isHydrate = isHydrate;\n\n renderer(input, out);\n\n var result = new RenderResult(out);\n\n var targetNode = out.___getOutput().___firstChild;\n\n morphdom(rootNode, targetNode, host, componentsContext);\n\n return result;\n },\n\n ___detach: function () {\n var root = this.___rootNode;\n root.remove();\n return root;\n },\n\n ___removeDOMEventListeners: function () {\n var eventListenerHandles = this.___domEventListenerHandles;\n if (eventListenerHandles) {\n eventListenerHandles.forEach(removeListener);\n this.___domEventListenerHandles = null;\n }\n },\n\n get ___rawState() {\n var state = this.___state;\n return state && state.___raw;\n },\n\n ___setCustomEvents: function (customEvents, scope) {\n var finalCustomEvents = (this.___customEvents = {});\n this.___scope = scope;\n\n customEvents.forEach(function (customEvent) {\n var eventType = customEvent[0];\n var targetMethodName = customEvent[1];\n var isOnce = customEvent[2];\n var extraArgs = customEvent[3];\n\n if (targetMethodName) {\n finalCustomEvents[eventType] = [targetMethodName, isOnce, extraArgs];\n }\n });\n },\n\n get el() {\n return walkFragments(this.___rootNode);\n },\n\n get els() {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n 'The \"this.els\" attribute is deprecated. Please use \"this.getEls(key)\" instead.'\n );\n }\n return (this.___rootNode ? this.___rootNode.nodes : []).filter(function (\n el\n ) {\n return el.nodeType === ELEMENT_NODE;\n });\n },\n\n ___emit: emit,\n ___emitCreate(input, out) {\n this.onCreate && this.onCreate(input, out);\n this.___emit(\"create\", input, out);\n },\n\n ___emitRender(out) {\n this.onRender && this.onRender(out);\n this.___emit(\"render\", out);\n },\n\n ___emitUpdate() {\n this.onUpdate && this.onUpdate();\n this.___emit(\"update\");\n },\n\n ___emitMount() {\n this.onMount && this.onMount();\n this.___emit(\"mount\");\n },\n\n ___emitDestroy() {\n this.onDestroy && this.onDestroy();\n this.___emit(\"destroy\");\n }\n};\n\ncomponentProto.elId = componentProto.getElId;\ncomponentProto.___update = componentProto.update;\ncomponentProto.___destroy = componentProto.destroy;\n\n// Add all of the following DOM methods to Component.prototype:\n// - appendTo(referenceEl)\n// - replace(referenceEl)\n// - replaceChildrenOf(referenceEl)\n// - insertBefore(referenceEl)\n// - insertAfter(referenceEl)\n// - prependTo(referenceEl)\ndomInsert(\n componentProto,\n function getEl(component) {\n return component.___detach();\n },\n function afterInsert(component) {\n return component;\n }\n);\n\ninherit(Component, EventEmitter);\n\nmodule.exports = Component;\n","\"use strict\";\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar w10Noop = require(\"warp10/constants\").NOOP;\nvar componentUtil = require(\"./util\");\nvar attachBubblingEvent = componentUtil.___attachBubblingEvent;\nvar addDelegatedEventHandler =\n require(\"./event-delegation\").___addDelegatedEventHandler;\nvar extend = require(\"raptor-util/extend\");\nvar KeySequence = require(\"./KeySequence\");\nvar EMPTY_OBJECT = {};\n\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\nvar FLAG_HAS_RENDER_BODY = 2;\n\n/**\n * A ComponentDef is used to hold the metadata collected at runtime for\n * a single component and this information is used to instantiate the component\n * later (after the rendered HTML has been added to the DOM)\n */\nfunction ComponentDef(component, componentId, componentsContext) {\n this.___componentsContext = componentsContext; // The AsyncWriter that this component is associated with\n this.___component = component;\n this.id = componentId;\n\n this.___domEvents = undefined; // An array of DOM events that need to be added (in sets of three)\n\n this.___isExisting = false;\n\n this.___renderBoundary = false;\n this.___flags = 0;\n\n this.___nextIdIndex = 0; // The unique integer to use for the next scoped ID\n this.___keySequence = null;\n}\n\nComponentDef.prototype = {\n ___nextKey: function (key) {\n return (\n this.___keySequence || (this.___keySequence = new KeySequence())\n ).___nextKey(key);\n },\n\n /**\n * This helper method generates a unique and fully qualified DOM element ID\n * that is unique within the scope of the current component.\n */\n elId: function (nestedId) {\n var id = this.id;\n\n if (nestedId == null) {\n return id;\n } else {\n if (typeof nestedId !== \"string\") {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\"Using non strings as keys is deprecated.\");\n }\n\n nestedId = String(nestedId);\n }\n\n if (nestedId.indexOf(\"#\") === 0) {\n id = \"#\" + id;\n nestedId = nestedId.substring(1);\n }\n\n return id + \"-\" + nestedId;\n }\n },\n /**\n * Returns the next auto generated unique ID for a nested DOM element or nested DOM component\n */\n ___nextComponentId: function () {\n return this.id + \"-c\" + this.___nextIdIndex++;\n },\n\n d: function (eventName, handlerMethodName, isOnce, extraArgs) {\n addDelegatedEventHandler(eventName);\n return attachBubblingEvent(this, handlerMethodName, isOnce, extraArgs);\n },\n\n get ___type() {\n return this.___component.___type;\n }\n};\n\nComponentDef.prototype.nk = ComponentDef.prototype.___nextKey;\n\nComponentDef.___deserialize = function (o, types, global, registry) {\n var id = o[0];\n var typeName = types[o[1]];\n var input = o[2] || null;\n var extra = o[3] || EMPTY_OBJECT;\n\n var state = extra.s;\n var componentProps = extra.w;\n var flags = extra.f;\n var component = registry.___createComponent(typeName, id);\n\n // Prevent newly created component from being queued for update since we area\n // just building it from the server info\n component.___updateQueued = true;\n\n if (flags & FLAG_HAS_RENDER_BODY) {\n (input || (input = {})).renderBody = w10Noop;\n }\n\n if (flags & FLAG_WILL_RERENDER_IN_BROWSER) {\n if (component.onCreate) {\n component.onCreate(input, { global: global });\n }\n if (component.onInput) {\n input = component.onInput(input, { global: global }) || input;\n }\n } else {\n if (state) {\n var undefinedPropNames = extra.u;\n if (undefinedPropNames) {\n undefinedPropNames.forEach(function (undefinedPropName) {\n state[undefinedPropName] = undefined;\n });\n }\n // We go through the setter here so that we convert the state object\n // to an instance of `State`\n component.state = state;\n }\n\n if (componentProps) {\n extend(component, componentProps);\n }\n }\n\n component.___input = input;\n\n if (extra.b) {\n component.___bubblingDomEvents = extra.b;\n }\n\n var scope = extra.p;\n var customEvents = extra.e;\n if (customEvents) {\n component.___setCustomEvents(customEvents, scope);\n }\n\n component.___global = global;\n\n return {\n id: id,\n ___component: component,\n ___domEvents: extra.d,\n ___flags: extra.f || 0\n };\n};\n\nmodule.exports = ComponentDef;\n","\"use strict\";\nvar GlobalComponentsContext = require(\"./GlobalComponentsContext\");\n\nfunction ComponentsContext(out, parentComponentsContext) {\n var globalComponentsContext;\n var componentDef;\n\n if (parentComponentsContext) {\n globalComponentsContext = parentComponentsContext.___globalContext;\n componentDef = parentComponentsContext.___componentDef;\n\n var nestedContextsForParent;\n if (\n !(nestedContextsForParent = parentComponentsContext.___nestedContexts)\n ) {\n nestedContextsForParent = parentComponentsContext.___nestedContexts = [];\n }\n\n nestedContextsForParent.push(this);\n } else {\n globalComponentsContext = out.global.___components;\n if (globalComponentsContext === undefined) {\n out.global.___components = globalComponentsContext =\n new GlobalComponentsContext(out);\n }\n }\n\n this.___globalContext = globalComponentsContext;\n this.___components = [];\n this.___out = out;\n this.___componentDef = componentDef;\n this.___nestedContexts = undefined;\n this.___isPreserved =\n parentComponentsContext && parentComponentsContext.___isPreserved;\n}\n\nComponentsContext.prototype = {\n ___initComponents: function (host) {\n var componentDefs = this.___components;\n\n ComponentsContext.___initClientRendered(componentDefs, host);\n\n this.___out.emit(\"___componentsInitialized\");\n\n // Reset things stored in global since global is retained for\n // future renders\n this.___out.global.___components = undefined;\n\n return componentDefs;\n }\n};\n\nfunction getComponentsContext(out) {\n return out.___components || (out.___components = new ComponentsContext(out));\n}\n\nmodule.exports = exports = ComponentsContext;\n\nexports.___getComponentsContext = getComponentsContext;\n","var nextComponentIdProvider = require(\"./util\").___nextComponentIdProvider;\n\nfunction GlobalComponentsContext(out) {\n this.___renderedComponentsById = {};\n this.___rerenderComponent = undefined;\n this.___nextComponentId = nextComponentIdProvider(out);\n}\n\nmodule.exports = GlobalComponentsContext;\n","function KeySequence() {\n this.___lookup = Object.create(null);\n}\n\nKeySequence.prototype.___nextKey = function (key) {\n var lookup = this.___lookup;\n\n if (lookup[key]) {\n return key + \"_\" + lookup[key]++;\n }\n\n lookup[key] = 1;\n return key;\n};\n\nmodule.exports = KeySequence;\n","var extend = require(\"raptor-util/extend\");\n\nfunction ensure(state, propertyName) {\n var proto = state.constructor.prototype;\n if (!(propertyName in proto)) {\n Object.defineProperty(proto, propertyName, {\n get: function () {\n return this.___raw[propertyName];\n },\n set: function (value) {\n this.___set(propertyName, value, false /* ensure:false */);\n }\n });\n }\n}\n\nfunction State(component) {\n this.___component = component;\n this.___raw = {};\n\n this.___dirty = false;\n this.___old = null;\n this.___changes = null;\n this.___forced = null; // An object that we use to keep tracking of state properties that were forced to be dirty\n\n Object.seal(this);\n}\n\nState.prototype = {\n ___reset: function () {\n var self = this;\n\n self.___dirty = false;\n self.___old = null;\n self.___changes = null;\n self.___forced = null;\n },\n\n ___replace: function (newState) {\n var state = this;\n var key;\n\n var rawState = this.___raw;\n\n for (key in rawState) {\n if (!(key in newState)) {\n state.___set(\n key,\n undefined,\n false /* ensure:false */,\n false /* forceDirty:false */\n );\n }\n }\n\n for (key in newState) {\n state.___set(\n key,\n newState[key],\n true /* ensure:true */,\n false /* forceDirty:false */\n );\n }\n },\n ___set: function (name, value, shouldEnsure, forceDirty) {\n var rawState = this.___raw;\n\n if (shouldEnsure) {\n ensure(this, name);\n }\n\n if (forceDirty) {\n var forcedDirtyState = this.___forced || (this.___forced = {});\n forcedDirtyState[name] = true;\n } else if (rawState[name] === value) {\n return;\n }\n\n if (!this.___dirty) {\n // This is the first time we are modifying the component state\n // so introduce some properties to do some tracking of\n // changes to the state\n this.___dirty = true; // Mark the component state as dirty (i.e. modified)\n this.___old = rawState;\n this.___raw = rawState = extend({}, rawState);\n this.___changes = {};\n this.___component.___queueUpdate();\n }\n\n this.___changes[name] = value;\n\n if (value === undefined) {\n // Don't store state properties with an undefined or null value\n delete rawState[name];\n } else {\n // Otherwise, store the new value in the component state\n rawState[name] = value;\n }\n },\n toJSON: function () {\n return this.___raw;\n }\n};\n\nmodule.exports = State;\n","var ComponentDef = require(\"../ComponentDef\");\n\nmodule.exports = function beginComponent(\n componentsContext,\n component,\n key,\n ownerComponentDef\n) {\n var componentId = component.id;\n var componentDef = (componentsContext.___componentDef = new ComponentDef(\n component,\n componentId,\n componentsContext\n ));\n componentsContext.___globalContext.___renderedComponentsById[\n componentId\n ] = true;\n componentsContext.___components.push(componentDef);\n\n var out = componentsContext.___out;\n out.bc(component, key, ownerComponentDef && ownerComponentDef.___component);\n return componentDef;\n};\n","\"use strict\";\n/* jshint newcap:false */\n\nvar BaseState = require(\"./State\");\nvar BaseComponent = require(\"./Component\");\nvar inherit = require(\"raptor-util/inherit\");\n\nmodule.exports = function defineComponent(def, renderer) {\n if (def.___isComponent) {\n return def;\n }\n\n var ComponentClass = function () {};\n var proto;\n\n var type = typeof def;\n\n if (type == \"function\") {\n proto = def.prototype;\n } else if (type == \"object\") {\n proto = def;\n } else {\n throw TypeError();\n }\n\n ComponentClass.prototype = proto;\n\n // We don't use the constructor provided by the user\n // since we don't invoke their constructor until\n // we have had a chance to do our own initialization.\n // Instead, we store their constructor in the \"initComponent\"\n // property and that method gets called later inside\n // init-components-browser.js\n function Component(id) {\n BaseComponent.call(this, id);\n }\n\n if (!proto.___isComponent) {\n // Inherit from Component if they didn't already\n inherit(ComponentClass, BaseComponent);\n }\n\n // The same prototype will be used by our constructor after\n // we he have set up the prototype chain using the inherit function\n proto = Component.prototype = ComponentClass.prototype;\n\n // proto.constructor = def.constructor = Component;\n\n // Set a flag on the constructor function to make it clear this is\n // a component so that we can short-circuit this work later\n Component.___isComponent = true;\n\n function State(component) {\n BaseState.call(this, component);\n }\n inherit(State, BaseState);\n proto.___State = State;\n proto.___renderer = renderer;\n\n return Component;\n};\n","module.exports = {\n ___vPropsByDOMNode: new WeakMap(),\n ___vElementByDOMNode: new WeakMap(),\n ___componentByDOMNode: new WeakMap(),\n ___detachedByDOMNode: new WeakMap(),\n ___keyByDOMNode: new WeakMap(),\n ___ssrKeyedElementsByComponentId: {}\n};\n","\"use strict\";\n\nmodule.exports = function endComponent(out) {\n out.ee(); // endElement() (also works for VComponent nodes pushed on to the stack)\n};\n","var initComponents = require(\"../init-components\");\nrequire(\"../ComponentsContext\").___initClientRendered =\n initComponents.___initClientRendered;\n\nexports.getComponentForEl = require(\"../util\").___getComponentForEl;\nexports.init = window.$initComponents = initComponents.___initServerRendered;\n\nvar registry = require(\"../registry\");\nexports.register = function (id, component) {\n registry.r(id, function () {\n return component;\n });\n};\n","var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on(\"|\")\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n","module.exports = require(\"./entry\");\n","\"use strict\";\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar warp10Finalize = require(\"warp10/finalize\");\nvar eventDelegation = require(\"../event-delegation\");\nvar win = window;\nvar createFragmentNode =\n require(\"../../vdom/morphdom/fragment\").___createFragmentNode;\nvar componentsUtil = require(\"../util\");\nvar componentLookup = componentsUtil.___componentLookup;\nvar addComponentRootToKeyedElements =\n componentsUtil.___addComponentRootToKeyedElements;\nvar ComponentDef = require(\"../ComponentDef\");\nvar registry = require(\"../registry\");\nvar domData = require(\"../dom-data\");\nvar keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar serverComponentRootNodes = {};\nvar serverRenderedMeta = {};\n\nvar DEFAULT_RUNTIME_ID = \"M\";\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\n\nvar deferredDefs;\n\nfunction indexServerComponentBoundaries(node, runtimeId, stack) {\n var componentId;\n var ownerId;\n var ownerComponent;\n var keyedElements;\n var nextSibling;\n var runtimeLength = runtimeId.length;\n stack = stack || [];\n\n node = node.firstChild;\n while (node) {\n nextSibling = node.nextSibling;\n if (node.nodeType === 8) {\n // Comment node\n var commentValue = node.nodeValue;\n if (commentValue.slice(0, runtimeLength) === runtimeId) {\n var firstChar = commentValue[runtimeLength];\n\n if (firstChar === \"^\" || firstChar === \"#\") {\n stack.push(node);\n } else if (firstChar === \"/\") {\n var endNode = node;\n var startNode = stack.pop();\n var rootNode;\n\n if (startNode.parentNode === endNode.parentNode) {\n rootNode = createFragmentNode(startNode.nextSibling, endNode);\n } else {\n rootNode = createFragmentNode(\n endNode.parentNode.firstChild,\n endNode\n );\n }\n\n componentId = startNode.nodeValue.substring(runtimeLength + 1);\n firstChar = startNode.nodeValue[runtimeLength];\n\n if (firstChar === \"^\") {\n var parts = componentId.split(/ /g);\n var key = parts[2];\n ownerId = parts[1];\n componentId = parts[0];\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n );\n }\n\n serverComponentRootNodes[componentId] = rootNode;\n\n startNode.parentNode.removeChild(startNode);\n endNode.parentNode.removeChild(endNode);\n }\n }\n } else if (node.nodeType === 1) {\n // HTML element node\n var markoKey = node.getAttribute(\"data-marko-key\");\n var markoProps = componentsUtil.___getMarkoPropsFromEl(node);\n if (markoKey) {\n var separatorIndex = markoKey.indexOf(\" \");\n ownerId = markoKey.substring(separatorIndex + 1);\n markoKey = markoKey.substring(0, separatorIndex);\n if ((ownerComponent = componentLookup[ownerId])) {\n keyedElements = ownerComponent.___keyedElements;\n } else {\n keyedElements =\n keyedElementsByComponentId[ownerId] ||\n (keyedElementsByComponentId[ownerId] = {});\n }\n keyedElements[markoKey] = node;\n }\n if (markoProps) {\n Object.keys(markoProps).forEach(function (key) {\n if (key.slice(0, 2) === \"on\") {\n eventDelegation.___addDelegatedEventHandler(key.slice(2));\n }\n });\n }\n indexServerComponentBoundaries(node, runtimeId, stack);\n }\n\n node = nextSibling;\n }\n}\n\nfunction invokeComponentEventHandler(component, targetMethodName, args) {\n var method = component[targetMethodName];\n if (!method) {\n throw Error(\"Method not found: \" + targetMethodName);\n }\n\n method.apply(component, args);\n}\n\nfunction addEventListenerHelper(el, eventType, isOnce, listener) {\n var eventListener = listener;\n if (isOnce) {\n eventListener = function (event) {\n listener(event);\n el.removeEventListener(eventType, eventListener);\n };\n }\n\n el.addEventListener(eventType, eventListener, false);\n\n return function remove() {\n el.removeEventListener(eventType, eventListener);\n };\n}\n\nfunction addDOMEventListeners(\n component,\n el,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n handles\n) {\n var removeListener = addEventListenerHelper(\n el,\n eventType,\n isOnce,\n function (event) {\n var args = [event, el];\n if (extraArgs) {\n args = extraArgs.concat(args);\n }\n\n invokeComponentEventHandler(component, targetMethodName, args);\n }\n );\n handles.push(removeListener);\n}\n\nfunction initComponent(componentDef, host) {\n var component = componentDef.___component;\n\n component.___reset();\n component.___host = host;\n\n var isExisting = componentDef.___isExisting;\n\n if (isExisting) {\n component.___removeDOMEventListeners();\n }\n\n var domEvents = componentDef.___domEvents;\n if (domEvents) {\n var eventListenerHandles = [];\n\n domEvents.forEach(function (domEventArgs) {\n // The event mapping is for a direct DOM event (not a custom event and not for bubblign dom events)\n\n var eventType = domEventArgs[0];\n var targetMethodName = domEventArgs[1];\n var eventEl = component.___keyedElements[domEventArgs[2]];\n var isOnce = domEventArgs[3];\n var extraArgs = domEventArgs[4];\n\n addDOMEventListeners(\n component,\n eventEl,\n eventType,\n targetMethodName,\n isOnce,\n extraArgs,\n eventListenerHandles\n );\n });\n\n if (eventListenerHandles.length) {\n component.___domEventListenerHandles = eventListenerHandles;\n }\n }\n\n if (component.___mounted) {\n component.___emitUpdate();\n } else {\n component.___mounted = true;\n component.___emitMount();\n }\n}\n\n/**\n * This method is used to initialized components associated with UI components\n * rendered in the browser. While rendering UI components a \"components context\"\n * is added to the rendering context to keep up with which components are rendered.\n * When ready, the components can then be initialized by walking the component tree\n * in the components context (nested components are initialized before ancestor components).\n * @param {Array} componentDefs An array of ComponentDef instances\n */\nfunction initClientRendered(componentDefs, host) {\n if (!host) host = document;\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n eventDelegation.___init(host);\n var len = componentDefs.length;\n var componentDef;\n var i;\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n trackComponent(componentDef);\n }\n\n for (i = len; i--; ) {\n componentDef = componentDefs[i];\n initComponent(componentDef, host);\n }\n}\n\n/**\n * This method initializes all components that were rendered on the server by iterating over all\n * of the component IDs.\n */\nfunction initServerRendered(renderedComponents, host) {\n var type = typeof renderedComponents;\n var globalKey = \"$\";\n var runtimeId;\n\n if (type !== \"object\") {\n if (type === \"string\") {\n runtimeId = renderedComponents;\n globalKey += runtimeId + \"_C\";\n } else {\n globalKey += (runtimeId = DEFAULT_RUNTIME_ID) + \"C\";\n }\n\n renderedComponents = win[globalKey];\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (\n renderedComponents &&\n renderedComponents.i !== undefined &&\n renderedComponents.i !== componentsUtil.___runtimeId\n ) {\n console.warn(\n \"Multiple instances of Marko have attached to the same runtime id. This could mean that more than one copy of Marko is loaded on the page, or that the script containing Marko has executed more than once.\"\n );\n }\n }\n\n var fakeArray = (win[globalKey] = {\n r: runtimeId,\n concat: initServerRendered\n });\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n fakeArray.i = componentsUtil.___runtimeId;\n }\n\n if (renderedComponents && renderedComponents.forEach) {\n renderedComponents.forEach(function (renderedComponent) {\n fakeArray.concat(renderedComponent);\n });\n }\n\n return fakeArray;\n }\n\n var isFromSerializedGlobals = this.concat === initServerRendered;\n renderedComponents = warp10Finalize(renderedComponents);\n\n if (isFromSerializedGlobals) {\n runtimeId = this.r;\n host = document;\n } else {\n runtimeId = renderedComponents.r || DEFAULT_RUNTIME_ID;\n if (!host) host = document;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n complain(\n \"Passing serialized data to `require('marko/components).init` is deprecated. Instead set '$global.runtimeId' and provide the 'runtimeId' option to your Marko bundler plugin.\"\n );\n }\n }\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (host !== document) {\n complain(\n \"Passing a document other than the current document to `require('marko/components).init` is deprecated.\"\n );\n }\n }\n\n var prefix = renderedComponents.p || \"\";\n var meta = serverRenderedMeta[prefix];\n var isLast = renderedComponents.l;\n\n if (meta) {\n if (isLast) {\n delete serverRenderedMeta[prefix];\n }\n } else {\n meta = {};\n\n if (!isLast) {\n serverRenderedMeta[prefix] = meta;\n }\n }\n\n // Ensure that event handlers to handle delegating events are\n // always attached before initializing any components\n indexServerComponentBoundaries(host, runtimeId);\n eventDelegation.___init(host);\n\n if (renderedComponents.g) {\n meta.___globals = renderedComponents.g;\n }\n\n if (renderedComponents.t) {\n meta.___types = meta.___types\n ? meta.___types.concat(renderedComponents.t)\n : renderedComponents.t;\n }\n\n // hydrate components top down (leaf nodes last)\n // and return an array of functions to mount these components\n (renderedComponents.w || [])\n .map(function (componentDef) {\n var typeName = meta.___types[componentDef[1]];\n\n return registry.___isRegistered(typeName)\n ? tryHydrateComponent(componentDef, meta, host, runtimeId)\n : registry.___addPendingDef(\n componentDef,\n typeName,\n meta,\n host,\n runtimeId\n );\n })\n .reverse()\n .forEach(tryInvoke);\n\n return this;\n}\n\nfunction tryHydrateComponent(rawDef, meta, host, runtimeId) {\n var componentDef = ComponentDef.___deserialize(\n rawDef,\n meta.___types,\n meta.___globals,\n registry\n );\n var mount = hydrateComponentAndGetMount(componentDef, host);\n\n if (!mount) {\n // hydrateComponentAndGetMount will return false if there is not rootNode\n // for the component. If this is the case, we'll wait until the\n // DOM has fully loaded to attempt to init the component again.\n if (deferredDefs) {\n deferredDefs.push(componentDef);\n } else {\n deferredDefs = [componentDef];\n document.addEventListener(\"DOMContentLoaded\", function () {\n indexServerComponentBoundaries(host, runtimeId);\n deferredDefs\n .map(function (componentDef) {\n return hydrateComponentAndGetMount(componentDef, host);\n })\n .reverse()\n .forEach(tryInvoke);\n deferredDefs = undefined;\n });\n }\n }\n\n return mount;\n}\n\nfunction hydrateComponentAndGetMount(componentDef, host) {\n var componentId = componentDef.id;\n var component = componentDef.___component;\n var rootNode = serverComponentRootNodes[componentId];\n var renderResult;\n\n if (rootNode) {\n delete serverComponentRootNodes[componentId];\n\n component.___rootNode = rootNode;\n componentsByDOMNode.set(rootNode, component);\n\n if (componentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER) {\n component.___host = host;\n renderResult = component.___rerender(component.___input, true);\n trackComponent(componentDef);\n return function mount() {\n renderResult.afterInsert(host);\n };\n } else {\n trackComponent(componentDef);\n }\n\n return function mount() {\n initComponent(componentDef, host);\n };\n }\n}\n\nfunction trackComponent(componentDef) {\n var component = componentDef.___component;\n if (component) {\n componentLookup[component.id] = component;\n }\n}\n\nfunction tryInvoke(fn) {\n if (fn) fn();\n}\n\nexports.___initClientRendered = initClientRendered;\nexports.___initServerRendered = initServerRendered;\nexports.___tryHydrateComponent = tryHydrateComponent;\n","var complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar queueMicrotask = require(\"../../queueMicrotask\");\nvar defineComponent = require(\"../defineComponent\");\nvar initComponents = require(\"../init-components\");\nrequire(\"../entry\");\n\nvar registered = {};\nvar loaded = {};\nvar componentTypes = {};\nvar pendingDefs;\n\nfunction register(type, def) {\n var pendingForType;\n if (pendingDefs) {\n pendingForType = pendingDefs[type];\n }\n registered[type] = def;\n delete loaded[type];\n delete componentTypes[type];\n\n if (pendingForType) {\n delete pendingDefs[type];\n queueMicrotask(function () {\n pendingForType.forEach(function (args) {\n initComponents.___tryHydrateComponent(\n args[0],\n args[1],\n args[2],\n args[3]\n )();\n });\n });\n }\n\n return type;\n}\n\nfunction addPendingDef(def, type, meta, host, runtimeId) {\n if (!pendingDefs) {\n pendingDefs = {};\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n document.addEventListener(\"load\", function () {\n var pendingComponentIds = Object.keys(pendingDefs);\n if (pendingComponentIds.length) {\n complain(\n \"Marko templates were never loaded for: \" + pendingComponentIds\n );\n }\n });\n }\n }\n (pendingDefs[type] = pendingDefs[type] || []).push([\n def,\n meta,\n host,\n runtimeId\n ]);\n}\n\nfunction isRegistered(type) {\n return Boolean(registered[type]);\n}\n\nfunction load(typeName) {\n var target = loaded[typeName];\n if (!target) {\n target = registered[typeName];\n\n if (target) {\n target = target();\n }\n\n if (!target) {\n throw Error(\"Component not found: \" + typeName);\n }\n\n loaded[typeName] = target;\n }\n\n return target;\n}\n\nfunction getComponentClass(typeName) {\n var ComponentClass = componentTypes[typeName];\n\n if (ComponentClass) {\n return ComponentClass;\n }\n\n ComponentClass = load(typeName);\n\n ComponentClass = ComponentClass.Component || ComponentClass;\n\n if (!ComponentClass.___isComponent) {\n ComponentClass = defineComponent(ComponentClass, ComponentClass.renderer);\n }\n\n // Make the component \"type\" accessible on each component instance\n ComponentClass.prototype.___type = typeName;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n var classNameMatch =\n /\\/([^/]+?)(?:\\/index|\\/template|)(?:\\.marko|\\.component(?:-browser)?|)$/.exec(\n typeName\n );\n var className = classNameMatch ? classNameMatch[1] : \"AnonymousComponent\";\n className = className.replace(/-(.)/g, function (g) {\n return g[1].toUpperCase();\n });\n className = className\n .replace(/\\$\\d+\\.\\d+\\.\\d+$/, \"\")\n .replace(/^[^a-z$_]/i, \"_$&\")\n .replace(/[^0-9a-z$_]+/gi, \"_\");\n className = className[0].toUpperCase() + className.slice(1);\n // eslint-disable-next-line no-unused-vars\n try {\n var OldComponentClass = ComponentClass;\n eval(\n \"ComponentClass = function \" +\n className +\n \"(id, doc) { OldComponentClass.call(this, id, doc); }\"\n );\n ComponentClass.prototype = OldComponentClass.prototype;\n } catch (e) {\n /** ignore error */\n }\n }\n\n componentTypes[typeName] = ComponentClass;\n\n return ComponentClass;\n}\n\nfunction createComponent(typeName, id) {\n var ComponentClass = getComponentClass(typeName);\n return new ComponentClass(id);\n}\n\nexports.r = register;\nexports.___getComponentClass = getComponentClass;\nexports.___createComponent = createComponent;\nexports.___isRegistered = isRegistered;\nexports.___addPendingDef = addPendingDef;\n","var componentsUtil = require(\"./util\");\nvar componentLookup = componentsUtil.___componentLookup;\n\nvar ComponentsContext = require(\"./ComponentsContext\");\nvar getComponentsContext = ComponentsContext.___getComponentsContext;\nvar registry = require(\"./registry\");\nvar copyProps = require(\"raptor-util/copyProps\");\nvar isServer = componentsUtil.___isServer === true;\nvar beginComponent = require(\"./beginComponent\");\nvar endComponent = require(\"./endComponent\");\n\nvar COMPONENT_BEGIN_ASYNC_ADDED_KEY = \"$wa\";\n\nfunction resolveComponentKey(key, parentComponentDef) {\n if (key[0] === \"#\") {\n return key.substring(1);\n } else {\n return parentComponentDef.id + \"-\" + parentComponentDef.___nextKey(key);\n }\n}\n\nfunction trackAsyncComponents(out) {\n if (out.isSync() || out.global[COMPONENT_BEGIN_ASYNC_ADDED_KEY]) {\n return;\n }\n\n out.on(\"beginAsync\", handleBeginAsync);\n out.on(\"beginDetachedAsync\", handleBeginDetachedAsync);\n out.global[COMPONENT_BEGIN_ASYNC_ADDED_KEY] = true;\n}\n\nfunction handleBeginAsync(event) {\n var parentOut = event.parentOut;\n var asyncOut = event.out;\n var componentsContext = parentOut.___components;\n\n if (componentsContext !== undefined) {\n // We are going to start a nested ComponentsContext\n asyncOut.___components = new ComponentsContext(asyncOut, componentsContext);\n }\n // Carry along the component arguments\n asyncOut.c(\n parentOut.___assignedComponentDef,\n parentOut.___assignedKey,\n parentOut.___assignedCustomEvents\n );\n}\n\nfunction handleBeginDetachedAsync(event) {\n var asyncOut = event.out;\n handleBeginAsync(event);\n asyncOut.on(\"beginAsync\", handleBeginAsync);\n asyncOut.on(\"beginDetachedAsync\", handleBeginDetachedAsync);\n}\n\nfunction createRendererFunc(\n templateRenderFunc,\n componentProps,\n renderingLogic\n) {\n var onInput = renderingLogic && renderingLogic.onInput;\n var typeName = componentProps.t;\n var isSplit = componentProps.s === true;\n var isImplicitComponent = componentProps.i === true;\n\n var shouldApplySplitMixins = renderingLogic && isSplit;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (!componentProps.d) {\n throw new Error(\n \"Component was compiled in a different NODE_ENV than the Marko runtime is using.\"\n );\n }\n } else if (componentProps.d) {\n throw new Error(\"Runtime/NODE_ENV Mismatch\");\n }\n\n return function renderer(input, out) {\n trackAsyncComponents(out);\n\n var componentsContext = getComponentsContext(out);\n var globalComponentsContext = componentsContext.___globalContext;\n\n var component = globalComponentsContext.___rerenderComponent;\n var isRerender = component !== undefined;\n var id;\n var isExisting;\n var customEvents;\n var parentComponentDef = componentsContext.___componentDef;\n var ownerComponentDef = out.___assignedComponentDef;\n var ownerComponentId = ownerComponentDef && ownerComponentDef.id;\n var key = out.___assignedKey;\n\n if (component) {\n // If component is provided then we are currently rendering\n // the top-level UI component as part of a re-render\n id = component.id; // We will use the ID of the component being re-rendered\n isExisting = true; // This is a re-render so we know the component is already in the DOM\n globalComponentsContext.___rerenderComponent = null;\n } else {\n // Otherwise, we are rendering a nested UI component. We will need\n // to match up the UI component with the component already in the\n // DOM (if any) so we will need to resolve the component ID from\n // the assigned key. We also need to handle any custom event bindings\n // that were provided.\n if (parentComponentDef) {\n // console.log('componentArgs:', componentArgs);\n customEvents = out.___assignedCustomEvents;\n\n if (key != null) {\n id = resolveComponentKey(key.toString(), parentComponentDef);\n } else {\n id = parentComponentDef.___nextComponentId();\n }\n } else {\n id = globalComponentsContext.___nextComponentId();\n }\n }\n\n if (isServer) {\n // If we are rendering on the server then things are simplier since\n // we don't need to match up the UI component with a previously\n // rendered component already mounted to the DOM. We also create\n // a lightweight ServerComponent\n component = registry.___createComponent(\n renderingLogic,\n id,\n input,\n out,\n typeName,\n customEvents,\n ownerComponentId\n );\n\n // This is the final input after running the lifecycle methods.\n // We will be passing the input to the template for the `input` param\n input = component.___updatedInput;\n } else {\n if (!component) {\n if (\n isRerender &&\n (component = componentLookup[id]) &&\n component.___type !== typeName\n ) {\n // Destroy the existing component since\n component.destroy();\n component = undefined;\n }\n\n if (component) {\n isExisting = true;\n } else {\n isExisting = false;\n // We need to create a new instance of the component\n component = registry.___createComponent(typeName, id);\n\n if (shouldApplySplitMixins === true) {\n shouldApplySplitMixins = false;\n\n var renderingLogicProps =\n typeof renderingLogic == \"function\"\n ? renderingLogic.prototype\n : renderingLogic;\n\n copyProps(renderingLogicProps, component.constructor.prototype);\n }\n }\n\n // Set this flag to prevent the component from being queued for update\n // based on the new input. The component is about to be rerendered\n // so we don't want to queue it up as a result of calling `setInput()`\n component.___updateQueued = true;\n\n if (customEvents !== undefined) {\n component.___setCustomEvents(customEvents, ownerComponentId);\n }\n\n if (isExisting === false) {\n component.___emitCreate(input, out);\n }\n\n input = component.___setInput(input, onInput, out);\n\n if (isExisting === true) {\n if (\n component.___isDirty === false ||\n component.shouldUpdate(input, component.___state) === false\n ) {\n // We put a placeholder element in the output stream to ensure that the existing\n // DOM node is matched up correctly when using morphdom. We flag the VElement\n // node to track that it is a preserve marker\n out.___preserveComponent(component);\n globalComponentsContext.___renderedComponentsById[id] = true;\n component.___reset(); // The component is no longer dirty so reset internal flags\n return;\n }\n }\n }\n\n component.___global = out.global;\n component.___emitRender(out);\n }\n\n var componentDef = beginComponent(\n componentsContext,\n component,\n key,\n ownerComponentDef,\n isSplit,\n isImplicitComponent\n );\n\n componentDef.___isExisting = isExisting;\n\n // Render the template associated with the component using the final template\n // data that we constructed\n templateRenderFunc(\n input,\n out,\n componentDef,\n component,\n component.___rawState\n );\n\n endComponent(out, componentDef);\n componentsContext.___componentDef = parentComponentDef;\n };\n}\n\nmodule.exports = createRendererFunc;\n","\"use strict\";\n\nvar updatesScheduled = false;\nvar batchStack = []; // A stack of batched updates\nvar unbatchedQueue = []; // Used for scheduled batched updates\n\nvar setImmediate = require(\"../setImmediate\");\n\n/**\n * This function is called when we schedule the update of \"unbatched\"\n * updates to components.\n */\nfunction updateUnbatchedComponents() {\n if (unbatchedQueue.length) {\n try {\n updateComponents(unbatchedQueue);\n } finally {\n // Reset the flag now that this scheduled batch update\n // is complete so that we can later schedule another\n // batched update if needed\n updatesScheduled = false;\n }\n }\n}\n\nfunction scheduleUpdates() {\n if (updatesScheduled) {\n // We have already scheduled a batched update for the\n // nextTick so nothing to do\n return;\n }\n\n updatesScheduled = true;\n\n setImmediate(updateUnbatchedComponents);\n}\n\nfunction updateComponents(queue) {\n // Loop over the components in the queue and update them.\n // NOTE: It is okay if the queue grows during the iteration\n // since we will still get to them at the end\n for (var i = 0; i < queue.length; i++) {\n var component = queue[i];\n component.___update(); // Do the actual component update\n }\n\n // Clear out the queue by setting the length to zero\n queue.length = 0;\n}\n\nfunction batchUpdate(func) {\n // If the batched update stack is empty then this\n // is the outer batched update. After the outer\n // batched update completes we invoke the \"afterUpdate\"\n // event listeners.\n var batch = {\n ___queue: null\n };\n\n batchStack.push(batch);\n\n try {\n func();\n } finally {\n try {\n // Update all of the components that where queued up\n // in this batch (if any)\n if (batch.___queue) {\n updateComponents(batch.___queue);\n }\n } finally {\n // Now that we have completed the update of all the components\n // in this batch we need to remove it off the top of the stack\n batchStack.length--;\n }\n }\n}\n\nfunction queueComponentUpdate(component) {\n var batchStackLen = batchStack.length;\n\n if (batchStackLen) {\n // When a batch update is started we push a new batch on to a stack.\n // If the stack has a non-zero length then we know that a batch has\n // been started so we can just queue the component on the top batch. When\n // the batch is ended this component will be updated.\n var batch = batchStack[batchStackLen - 1];\n\n // We default the batch queue to null to avoid creating an Array instance\n // unnecessarily. If it is null then we create a new Array, otherwise\n // we push it onto the existing Array queue\n if (batch.___queue) {\n batch.___queue.push(component);\n } else {\n batch.___queue = [component];\n }\n } else {\n // We are not within a batched update. We need to schedule a batch update\n // for the nextTick (if that hasn't been done already) and we will\n // add the component to the unbatched queued\n scheduleUpdates();\n unbatchedQueue.push(component);\n }\n}\n\nexports.___queueComponentUpdate = queueComponentUpdate;\nexports.___batchUpdate = batchUpdate;\n","var domData = require(\"../dom-data\");\nvar componentsByDOMNode = domData.___componentByDOMNode;\nvar keysByDOMNode = domData.___keyByDOMNode;\nvar vElementsByDOMNode = domData.___vElementByDOMNode;\nvar vPropsByDOMNode = domData.___vPropsByDOMNode;\nvar markoUID = window.$MUID || (window.$MUID = { i: 0 });\nvar runtimeId = markoUID.i++;\n\nvar componentLookup = {};\n\nvar EMPTY_OBJECT = {};\n\nfunction getComponentForEl(el, host) {\n var node =\n typeof el == \"string\"\n ? ((host ? host.ownerDocument : host) || document).getElementById(el)\n : el;\n var component;\n var vElement;\n\n while (node) {\n if (node.fragment) {\n if (node.fragment.endNode === node) {\n node = node.fragment.startNode;\n } else {\n node = node.fragment;\n component = componentsByDOMNode.get(node);\n }\n } else if ((vElement = vElementsByDOMNode.get(node))) {\n component = vElement.___ownerComponent;\n }\n\n if (component) {\n return component;\n }\n\n node = node.previousSibling || node.parentNode;\n }\n}\n\nfunction destroyComponentForNode(node) {\n var componentToDestroy = componentsByDOMNode.get(node.fragment || node);\n if (componentToDestroy) {\n componentToDestroy.___destroyShallow();\n delete componentLookup[componentToDestroy.id];\n }\n}\nfunction destroyNodeRecursive(node, component) {\n destroyComponentForNode(node);\n if (node.nodeType === 1 || node.nodeType === 12) {\n var key;\n\n if (component && (key = keysByDOMNode.get(node))) {\n if (node === component.___keyedElements[key]) {\n if (componentsByDOMNode.get(node) && /\\[\\]$/.test(key)) {\n delete component.___keyedElements[key][\n componentsByDOMNode.get(node).id\n ];\n } else {\n delete component.___keyedElements[key];\n }\n }\n }\n\n var curChild = node.firstChild;\n while (curChild && curChild !== node.endNode) {\n destroyNodeRecursive(curChild, component);\n curChild = curChild.nextSibling;\n }\n }\n}\n\nfunction nextComponentId() {\n // Each component will get an ID that is unique across all loaded\n // marko runtimes. This allows multiple instances of marko to be\n // loaded in the same window and they should all place nice\n // together\n return \"c\" + markoUID.i++;\n}\n\nfunction nextComponentIdProvider() {\n return nextComponentId;\n}\n\nfunction attachBubblingEvent(\n componentDef,\n handlerMethodName,\n isOnce,\n extraArgs\n) {\n if (handlerMethodName) {\n var componentId = componentDef.id;\n if (extraArgs) {\n return [handlerMethodName, componentId, isOnce, extraArgs];\n } else {\n return [handlerMethodName, componentId, isOnce];\n }\n }\n}\n\nfunction getMarkoPropsFromEl(el) {\n var vElement = vElementsByDOMNode.get(el);\n var virtualProps;\n\n if (vElement) {\n virtualProps = vElement.___properties;\n } else {\n virtualProps = vPropsByDOMNode.get(el);\n if (!virtualProps) {\n virtualProps = el.getAttribute(\"data-marko\");\n vPropsByDOMNode.set(\n el,\n (virtualProps = virtualProps ? JSON.parse(virtualProps) : EMPTY_OBJECT)\n );\n }\n }\n\n return virtualProps;\n}\n\nfunction normalizeComponentKey(key, parentId) {\n if (key[0] === \"#\") {\n key = key.replace(\"#\" + parentId + \"-\", \"\");\n }\n return key;\n}\n\nfunction addComponentRootToKeyedElements(\n keyedElements,\n key,\n rootNode,\n componentId\n) {\n if (/\\[\\]$/.test(key)) {\n var repeatedElementsForKey = (keyedElements[key] =\n keyedElements[key] || {});\n repeatedElementsForKey[componentId] = rootNode;\n } else {\n keyedElements[key] = rootNode;\n }\n}\n\n// eslint-disable-next-line no-constant-condition\nif (\"MARKO_DEBUG\") {\n var warnNodeRemoved = function (event) {\n var fragment = event.target.fragment;\n if (fragment) {\n var baseError = new Error(\n \"Fragment boundary marker removed. This will cause an error when the fragment is updated.\"\n );\n fragment.___markersRemovedError = function (message) {\n var error = new Error(message + \" Boundary markers missing.\");\n\n baseError.stack = baseError.stack.replace(/.*warnNodeRemoved.*\\n/, \"\");\n\n // eslint-disable-next-line no-console\n console.warn(baseError);\n return error;\n };\n }\n };\n exports.___startDOMManipulationWarning = function (host) {\n host.addEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n exports.___stopDOMManipulationWarning = function (host) {\n host.removeEventListener(\"DOMNodeRemoved\", warnNodeRemoved);\n };\n}\n\nexports.___runtimeId = runtimeId;\nexports.___componentLookup = componentLookup;\nexports.___getComponentForEl = getComponentForEl;\nexports.___destroyComponentForNode = destroyComponentForNode;\nexports.___destroyNodeRecursive = destroyNodeRecursive;\nexports.___nextComponentIdProvider = nextComponentIdProvider;\nexports.___attachBubblingEvent = attachBubblingEvent;\nexports.___getMarkoPropsFromEl = getMarkoPropsFromEl;\nexports.___addComponentRootToKeyedElements = addComponentRootToKeyedElements;\nexports.___normalizeComponentKey = normalizeComponentKey;\n","var actualCreateOut;\n\nfunction setCreateOut(createOutFunc) {\n actualCreateOut = createOutFunc;\n}\n\nfunction createOut(globalData) {\n return actualCreateOut(globalData);\n}\n\ncreateOut.___setCreateOut = setCreateOut;\n\nmodule.exports = createOut;\n","var extend = require(\"raptor-util/extend\");\nvar componentsUtil = require(\"./components/util\");\nvar destroyComponentForNode = componentsUtil.___destroyComponentForNode;\nvar destroyNodeRecursive = componentsUtil.___destroyNodeRecursive;\nvar helpers = require(\"./vdom/morphdom/helpers\");\n\nvar insertBefore = helpers.___insertBefore;\nvar insertAfter = helpers.___insertAfter;\nvar removeChild = helpers.___removeChild;\n\nfunction resolveEl(el) {\n if (typeof el == \"string\") {\n var elId = el;\n el = document.getElementById(elId);\n if (!el) {\n throw Error(\"Not found: \" + elId);\n }\n }\n return el;\n}\n\nfunction beforeRemove(referenceEl) {\n destroyNodeRecursive(referenceEl);\n destroyComponentForNode(referenceEl);\n}\n\nmodule.exports = function (target, getEl, afterInsert) {\n extend(target, {\n appendTo: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n insertBefore(el, null, referenceEl);\n return afterInsert(this, referenceEl);\n },\n prependTo: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n insertBefore(el, referenceEl.firstChild || null, referenceEl);\n return afterInsert(this, referenceEl);\n },\n replace: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n beforeRemove(referenceEl);\n insertBefore(el, referenceEl, referenceEl.parentNode);\n removeChild(referenceEl);\n return afterInsert(this, referenceEl);\n },\n replaceChildrenOf: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n\n var curChild = referenceEl.firstChild;\n while (curChild) {\n var nextSibling = curChild.nextSibling; // Just in case the DOM changes while removing\n beforeRemove(curChild);\n curChild = nextSibling;\n }\n\n referenceEl.innerHTML = \"\";\n insertBefore(el, null, referenceEl);\n return afterInsert(this, referenceEl);\n },\n insertBefore: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n insertBefore(el, referenceEl, referenceEl.parentNode);\n return afterInsert(this, referenceEl);\n },\n insertAfter: function (referenceEl) {\n referenceEl = resolveEl(referenceEl);\n var el = getEl(this, referenceEl);\n insertAfter(el, referenceEl, referenceEl.parentNode);\n return afterInsert(this, referenceEl);\n }\n });\n};\n","\"use strict\";\n\nvar camelToDashLookup = Object.create(null);\nvar dashToCamelLookup = Object.create(null);\n\n/**\n * Helper for converting camelCase to dash-case.\n */\nexports.___camelToDashCase = function camelToDashCase(name) {\n var nameDashed = camelToDashLookup[name];\n if (!nameDashed) {\n nameDashed = camelToDashLookup[name] = name\n .replace(/([A-Z])/g, \"-$1\")\n .toLowerCase();\n\n if (nameDashed !== name) {\n dashToCamelLookup[nameDashed] = name;\n }\n }\n\n return nameDashed;\n};\n\n/**\n * Helper for converting dash-case to camelCase.\n */\nexports.___dashToCamelCase = function dashToCamelCase(name) {\n var nameCamel = dashToCamelLookup[name];\n if (!nameCamel) {\n nameCamel = dashToCamelLookup[name] = name.replace(\n /-([a-z])/g,\n matchToUpperCase\n );\n\n if (nameCamel !== name) {\n camelToDashLookup[nameCamel] = name;\n }\n }\n\n return nameCamel;\n};\n\nfunction matchToUpperCase(_, char) {\n return char.toUpperCase();\n}\n","\"use strict\";\n\nmodule.exports = function classHelper(arg) {\n switch (typeof arg) {\n case \"string\":\n return arg || null;\n case \"object\":\n var result = \"\";\n var sep = \"\";\n\n if (Array.isArray(arg)) {\n for (var i = 0, len = arg.length; i < len; i++) {\n var value = classHelper(arg[i]);\n if (value) {\n result += sep + value;\n sep = \" \";\n }\n }\n } else {\n for (var key in arg) {\n if (arg[key]) {\n result += sep + key;\n sep = \" \";\n }\n }\n }\n\n return result || null;\n\n default:\n return null;\n }\n};\n","\"use strict\";\n\nvar complain = \"MARKO_DEBUG\" && require(\"complain\");\nvar changeCase = require(\"./_change-case\");\nvar ComponentsContext = require(\"../components/ComponentsContext\");\nvar getComponentsContext = ComponentsContext.___getComponentsContext;\nvar ComponentDef = require(\"../components/ComponentDef\");\nvar w10NOOP = require(\"warp10/constants\").NOOP;\nvar RENDER_BODY_TO_JSON = function () {\n return w10NOOP;\n};\n\nvar FLAG_WILL_RERENDER_IN_BROWSER = 1;\n// var FLAG_HAS_RENDER_BODY = 2;\nvar IS_SERVER = typeof window === \"undefined\";\n\n/**\n * Helper to render a dynamic tag\n */\nmodule.exports = function dynamicTag(\n out,\n tag,\n getAttrs,\n renderBody,\n args,\n props,\n componentDef,\n key,\n customEvents\n) {\n if (tag) {\n if (tag.default) {\n tag = tag.default;\n }\n\n var attrs = getAttrs && getAttrs();\n var component = componentDef && componentDef.___component;\n if (typeof tag === \"string\") {\n if (renderBody) {\n out.___beginElementDynamic(\n tag,\n attrs,\n key,\n componentDef,\n addEvents(componentDef, customEvents, props)\n );\n renderBody(out);\n out.___endElement();\n } else {\n out.___elementDynamic(\n tag,\n attrs,\n key,\n componentDef,\n addEvents(componentDef, customEvents, props)\n );\n }\n } else {\n if (attrs == null) {\n attrs = { renderBody: renderBody };\n } else if (typeof attrs === \"object\") {\n attrs = attrsToCamelCase(attrs);\n if (renderBody) {\n attrs.renderBody = renderBody;\n }\n }\n\n var renderer =\n tag._ ||\n tag.render ||\n (tag.renderer && tag.renderer.renderer) ||\n tag.renderer;\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (tag.renderer && tag.renderer.renderer === renderer) {\n complain(\n \"An object with a 'renderer' was passed to the dynamic tag, but renderer was another template.\"\n );\n }\n }\n\n if (renderer) {\n out.c(componentDef, key, customEvents);\n renderer(attrs, out);\n out.___assignedComponentDef = null;\n } else {\n var render = (tag && tag.renderBody) || tag;\n var isFn = typeof render === \"function\";\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (render.safeHTML || render.toHTML) {\n throw new Error(\n \"Using `` or the `<${dynamic}/>` tags with a `{ safeHTML: ... }` object is no longer supported. Use the unescaped text placeholder syntax instead.\"\n );\n }\n }\n if (isFn) {\n var flags = componentDef ? componentDef.___flags : 0;\n var willRerender = flags & FLAG_WILL_RERENDER_IN_BROWSER;\n var isW10NOOP = render === w10NOOP;\n var preserve = IS_SERVER ? willRerender : isW10NOOP;\n out.bf(key, component, preserve);\n if (!isW10NOOP && isFn) {\n var componentsContext = getComponentsContext(out);\n var parentComponentDef = componentsContext.___componentDef;\n var globalContext = componentsContext.___globalContext;\n componentsContext.___componentDef = new ComponentDef(\n component,\n parentComponentDef.id + \"-\" + parentComponentDef.___nextKey(key),\n globalContext\n );\n render.toJSON = RENDER_BODY_TO_JSON;\n\n if (args) {\n render.apply(null, [out].concat(args, attrs));\n } else {\n render(out, attrs);\n }\n\n componentsContext.___componentDef = parentComponentDef;\n }\n out.ef();\n } else {\n out.error(\"Invalid dynamic tag value\");\n }\n }\n }\n } else if (renderBody) {\n out.bf(\n key,\n component,\n IS_SERVER &&\n componentDef &&\n componentDef.___flags & FLAG_WILL_RERENDER_IN_BROWSER\n );\n renderBody(out);\n out.ef();\n }\n};\n\nfunction attrsToCamelCase(attrs) {\n var result = {};\n\n for (var key in attrs) {\n result[changeCase.___dashToCamelCase(key)] = attrs[key];\n }\n\n return result;\n}\n\nfunction addEvents(componentDef, customEvents, props) {\n var len = customEvents ? customEvents.length : 0;\n\n if (len === 0) {\n return props;\n }\n\n var result = props || {};\n var event;\n\n for (var i = len; i--; ) {\n event = customEvents[i];\n result[\"on\" + event[0]] = componentDef.d(\n event[0],\n event[1],\n event[2],\n event[3]\n );\n }\n\n return result;\n}\n","\"use strict\";\n\n/**\n * Helper to render a custom tag\n */\nmodule.exports = function renderTagHelper(\n handler,\n input,\n out,\n componentDef,\n key,\n customEvents\n) {\n out.c(componentDef, key, customEvents);\n (handler._ || (handler._ = handler.render || handler.renderer || handler))(\n input,\n out\n );\n out.___assignedComponentDef = null;\n};\n","\"use strict\";\n\nvar changeCase = require(\"./_change-case\");\n\n/**\n * Helper for generating the string for a style attribute\n */\nmodule.exports = function styleHelper(style) {\n if (!style) {\n return null;\n }\n\n var type = typeof style;\n\n if (type !== \"string\") {\n var styles = \"\";\n\n if (Array.isArray(style)) {\n for (var i = 0, len = style.length; i < len; i++) {\n var next = styleHelper(style[i]);\n if (next) styles += next + (next[next.length - 1] !== \";\" ? \";\" : \"\");\n }\n } else if (type === \"object\") {\n for (var name in style) {\n var value = style[name];\n if (value != null && value !== false) {\n if (typeof value === \"number\" && value) {\n value += \"px\";\n }\n\n styles += changeCase.___camelToDashCase(name) + \":\" + value + \";\";\n }\n }\n }\n\n return styles || null;\n }\n\n return style;\n};\n","var promise;\nmodule.exports =\n typeof queueMicrotask === \"function\"\n ? queueMicrotask\n : typeof Promise === \"function\" && (promise = Promise.resolve())\n ? function (cb) {\n promise.then(cb).catch(rethrow);\n }\n : setTimeout;\nfunction rethrow(err) {\n setTimeout(function () {\n throw err;\n });\n}\n","var defaultCreateOut = require(\"./createOut\");\nvar setImmediate = require(\"./setImmediate\");\nvar extend = require(\"raptor-util/extend\");\n\nfunction safeRender(renderFunc, finalData, finalOut, shouldEnd) {\n try {\n renderFunc(finalData, finalOut);\n\n if (shouldEnd) {\n finalOut.end();\n }\n } catch (err) {\n var actualEnd = finalOut.end;\n finalOut.end = function () {};\n\n setImmediate(function () {\n finalOut.end = actualEnd;\n finalOut.error(err);\n });\n }\n return finalOut;\n}\n\nmodule.exports = function (target, renderer) {\n var renderFunc =\n renderer && (renderer.renderer || renderer.render || renderer);\n var createOut = target.createOut || renderer.createOut || defaultCreateOut;\n\n return extend(target, {\n createOut: createOut,\n\n renderToString: function (data, callback) {\n var localData = data || {};\n var render = renderFunc || this._;\n var globalData = localData.$global;\n var out = createOut(globalData);\n\n out.global.template = this;\n\n if (globalData) {\n localData.$global = undefined;\n }\n\n if (callback) {\n out\n .on(\"finish\", function () {\n callback(null, out.toString(), out);\n })\n .once(\"error\", callback);\n\n return safeRender(render, localData, out, true);\n } else {\n out.sync();\n render(localData, out);\n return out.toString();\n }\n },\n\n renderSync: function (data) {\n var localData = data || {};\n var render = renderFunc || this._;\n var globalData = localData.$global;\n var out = createOut(globalData);\n out.sync();\n\n out.global.template = this;\n\n if (globalData) {\n localData.$global = undefined;\n }\n\n render(localData, out);\n return out.___getResult();\n },\n\n /**\n * Renders a template to either a stream (if the last\n * argument is a Stream instance) or\n * provides the output to a callback function (if the last\n * argument is a Function).\n *\n * Supported signatures:\n *\n * render(data)\n * render(data, out)\n * render(data, stream)\n * render(data, callback)\n *\n * @param {Object} data The view model data for the template\n * @param {AsyncStream/AsyncVDOMBuilder} out A Stream, an AsyncStream/AsyncVDOMBuilder instance, or a callback function\n * @return {AsyncStream/AsyncVDOMBuilder} Returns the AsyncStream/AsyncVDOMBuilder instance that the template is rendered to\n */\n render: function (data, out) {\n var callback;\n var finalOut;\n var finalData;\n var globalData;\n var render = renderFunc || this._;\n var shouldBuffer = this.___shouldBuffer;\n var shouldEnd = true;\n\n if (data) {\n finalData = data;\n if ((globalData = data.$global)) {\n finalData.$global = undefined;\n }\n } else {\n finalData = {};\n }\n\n if (out && out.___isOut) {\n finalOut = out;\n shouldEnd = false;\n extend(out.global, globalData);\n } else if (typeof out == \"function\") {\n finalOut = createOut(globalData);\n callback = out;\n } else {\n finalOut = createOut(\n globalData, // global\n out, // writer(AsyncStream) or parentNode(AsyncVDOMBuilder)\n undefined, // parentOut\n shouldBuffer // ignored by AsyncVDOMBuilder\n );\n }\n\n if (callback) {\n finalOut\n .on(\"finish\", function () {\n callback(null, finalOut.___getResult());\n })\n .once(\"error\", callback);\n }\n\n globalData = finalOut.global;\n\n globalData.template = globalData.template || this;\n\n return safeRender(render, finalData, finalOut, shouldEnd);\n }\n });\n};\n","var queue = [];\nvar msg = \"\" + Math.random();\nwindow.addEventListener(\"message\", function (ev) {\n if (ev.data === msg) {\n var callbacks = queue;\n queue = [];\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i]();\n }\n }\n});\n\nmodule.exports = function (callback) {\n if (queue.push(callback) === 1) {\n window.postMessage(msg, \"*\");\n }\n};\n","var EventEmitter = require(\"events-light\");\nvar vdom = require(\"./vdom\");\nvar VElement = vdom.___VElement;\nvar VDocumentFragment = vdom.___VDocumentFragment;\nvar VText = vdom.___VText;\nvar VComponent = vdom.___VComponent;\nvar VFragment = vdom.___VFragment;\nvar virtualizeHTML = vdom.___virtualizeHTML;\nvar RenderResult = require(\"../RenderResult\");\nvar morphdom = require(\"./morphdom\");\nvar attrsHelper = require(\"./helpers/attrs\");\n\nvar EVENT_UPDATE = \"update\";\nvar EVENT_FINISH = \"finish\";\n\nfunction State(tree) {\n this.___events = new EventEmitter();\n this.___tree = tree;\n this.___finished = false;\n}\n\nfunction AsyncVDOMBuilder(globalData, parentNode, parentOut) {\n if (!parentNode) {\n parentNode = new VDocumentFragment();\n }\n\n var state;\n\n if (parentOut) {\n state = parentOut.___state;\n } else {\n state = new State(parentNode);\n }\n\n this.___remaining = 1;\n this.___lastCount = 0;\n this.___last = null;\n this.___parentOut = parentOut;\n\n this.data = {};\n this.___state = state;\n this.___parent = parentNode;\n this.global = globalData || {};\n this.___stack = [parentNode];\n this.___sync = false;\n this.___vnode = undefined;\n this.___components = null;\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n}\n\nvar proto = (AsyncVDOMBuilder.prototype = {\n ___isOut: true,\n ___host: typeof window === \"object\" && document,\n\n bc: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent);\n return this.___beginNode(vComponent, 0, true);\n },\n\n ___preserveComponent: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent, true);\n this.___beginNode(vComponent, 0);\n },\n\n ___beginNode: function (child, childCount, pushToStack) {\n this.___parent.___appendChild(child);\n if (pushToStack === true) {\n this.___stack.push(child);\n this.___parent = child;\n }\n return childCount === 0 ? this : child;\n },\n\n element: function (tagName, attrs, key, component, childCount, flags, props) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n return this.___beginNode(element, childCount);\n },\n\n ___elementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.element(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n n: function (node, component) {\n // NOTE: We do a shallow clone since we assume the node is being reused\n // and a node can only have one parent node.\n var clone = node.___cloneNode();\n this.node(clone);\n clone.___ownerComponent = component;\n\n return this;\n },\n\n node: function (node) {\n this.___parent.___appendChild(node);\n return this;\n },\n\n text: function (text, ownerComponent) {\n var type = typeof text;\n\n if (type != \"string\") {\n if (text == null) {\n return;\n } else if (type === \"object\") {\n if (text.toHTML) {\n return this.h(text.toHTML(), ownerComponent);\n }\n }\n\n text = text.toString();\n }\n\n this.___parent.___appendChild(new VText(text, ownerComponent));\n return this;\n },\n\n html: function (html, ownerComponent) {\n if (html != null) {\n var vdomNode = virtualizeHTML(html, ownerComponent);\n this.node(vdomNode);\n }\n\n return this;\n },\n\n beginElement: function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n ) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n this.___beginNode(element, childCount, true);\n return this;\n },\n\n ___beginElementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.beginElement(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n bf: function (key, component, preserve) {\n var fragment = new VFragment(key, component, preserve);\n this.___beginNode(fragment, null, true);\n return this;\n },\n\n ef: function () {\n this.endElement();\n },\n\n endElement: function () {\n var stack = this.___stack;\n stack.pop();\n this.___parent = stack[stack.length - 1];\n },\n\n end: function () {\n this.___parent = undefined;\n\n var remaining = --this.___remaining;\n var parentOut = this.___parentOut;\n\n if (remaining === 0) {\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n\n return this;\n },\n\n ___handleChildDone: function () {\n var remaining = --this.___remaining;\n\n if (remaining === 0) {\n var parentOut = this.___parentOut;\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n },\n\n ___doFinish: function () {\n var state = this.___state;\n state.___finished = true;\n state.___events.emit(EVENT_FINISH, this.___getResult());\n },\n\n ___emitLast: function () {\n var lastArray = this._last;\n\n var i = 0;\n\n function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (!lastCallback.length) {\n next();\n }\n }\n\n next();\n },\n\n error: function (e) {\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new Error here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n beginAsync: function (options) {\n if (this.___sync) {\n throw Error(\n \"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).\"\n );\n }\n\n var state = this.___state;\n\n if (options) {\n if (options.last) {\n this.___lastCount++;\n }\n }\n\n this.___remaining++;\n\n var documentFragment = this.___parent.___appendDocumentFragment();\n var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);\n\n state.___events.emit(\"beginAsync\", {\n out: asyncOut,\n parentOut: this\n });\n\n return asyncOut;\n },\n\n createOut: function () {\n return new AsyncVDOMBuilder(this.global);\n },\n\n flush: function () {\n var events = this.___state.___events;\n\n if (events.listenerCount(EVENT_UPDATE)) {\n events.emit(EVENT_UPDATE, new RenderResult(this));\n }\n },\n\n ___getOutput: function () {\n return this.___state.___tree;\n },\n\n ___getResult: function () {\n return this.___result || (this.___result = new RenderResult(this));\n },\n\n on: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.once(event, callback);\n }\n\n return this;\n },\n\n emit: function (type, arg) {\n var events = this.___state.___events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this.___state.___events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n sync: function () {\n this.___sync = true;\n },\n\n isSync: function () {\n return this.___sync;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n ___getNode: function (host) {\n var node = this.___vnode;\n if (!node) {\n var vdomTree = this.___getOutput();\n\n if (!host) host = this.___host;\n this.___vnode = node = vdomTree.___actualize(host, null);\n morphdom(node, vdomTree, host, this.___components);\n }\n return node;\n },\n\n toString: function (host) {\n var docFragment = this.___getNode(host);\n var html = \"\";\n\n var child = docFragment.firstChild;\n while (child) {\n var nextSibling = child.nextSibling;\n if (child.nodeType != 1) {\n var container = docFragment.ownerDocument.createElement(\"div\");\n container.appendChild(child.cloneNode());\n html += container.innerHTML;\n } else {\n html += child.outerHTML;\n }\n\n child = nextSibling;\n }\n\n return html;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject).on(EVENT_FINISH, function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n isVDOM: true,\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\nproto.e = proto.element;\nproto.be = proto.beginElement;\nproto.ee = proto.___endElement = proto.endElement;\nproto.t = proto.text;\nproto.h = proto.w = proto.write = proto.html;\n\nmodule.exports = AsyncVDOMBuilder;\n","var VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\n\nfunction VComponent(component, key, ownerComponent, preserve) {\n this.___VNode(null /* childCount */, ownerComponent);\n this.___key = key;\n this.___component = component;\n this.___preserve = preserve;\n}\n\nVComponent.prototype = {\n ___nodeType: 2\n};\n\ninherit(VComponent, VNode);\n\nmodule.exports = VComponent;\n","var VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\nvar extend = require(\"raptor-util/extend\");\n\nfunction VDocumentFragmentClone(other) {\n extend(this, other);\n this.___parentNode = null;\n this.___nextSiblingInternal = null;\n}\n\nfunction VDocumentFragment(out) {\n this.___VNode(null /* childCount */);\n this.___out = out;\n}\n\nVDocumentFragment.prototype = {\n ___nodeType: 11,\n\n ___DocumentFragment: true,\n\n ___cloneNode: function () {\n return new VDocumentFragmentClone(this);\n },\n\n ___actualize: function (host) {\n return (host.ownerDocument || host).createDocumentFragment();\n }\n};\n\ninherit(VDocumentFragment, VNode);\n\nVDocumentFragmentClone.prototype = VDocumentFragment.prototype;\n\nmodule.exports = VDocumentFragment;\n","/* jshint newcap:false */\n\nvar domData = require(\"../components/dom-data\");\nvar componentsUtil = require(\"../components/util\");\nvar vElementByDOMNode = domData.___vElementByDOMNode;\nvar VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\nvar ATTR_XLINK_HREF = \"xlink:href\";\nvar xmlnsRegExp = /^xmlns(:|$)/;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar NS_XLINK = \"http://www.w3.org/1999/xlink\";\nvar NS_HTML = \"http://www.w3.org/1999/xhtml\";\nvar NS_MATH = \"http://www.w3.org/1998/Math/MathML\";\nvar NS_SVG = \"http://www.w3.org/2000/svg\";\nvar DEFAULT_NS = {\n svg: NS_SVG,\n math: NS_MATH\n};\n\nvar FLAG_SIMPLE_ATTRS = 1;\nvar FLAG_CUSTOM_ELEMENT = 2;\nvar FLAG_SPREAD_ATTRS = 4;\n\nvar defineProperty = Object.defineProperty;\n\nvar ATTR_HREF = \"href\";\nvar EMPTY_OBJECT = Object.freeze({});\n\nfunction convertAttrValue(type, value) {\n if (value === true) {\n return \"\";\n } else if (type == \"object\") {\n if (value instanceof RegExp) {\n return value.source;\n }\n }\n\n return value + \"\";\n}\n\nfunction assign(a, b) {\n for (var key in b) {\n if (hasOwnProperty.call(b, key)) {\n a[key] = b[key];\n }\n }\n}\n\nfunction setAttribute(el, namespaceURI, name, value) {\n if (namespaceURI === null) {\n el.setAttribute(name, value);\n } else {\n el.setAttributeNS(namespaceURI, name, value);\n }\n}\n\nfunction removeAttribute(el, namespaceURI, name) {\n if (namespaceURI === null) {\n el.removeAttribute(name);\n } else {\n el.removeAttributeNS(namespaceURI, name);\n }\n}\n\nfunction VElementClone(other) {\n this.___firstChildInternal = other.___firstChildInternal;\n this.___parentNode = null;\n this.___nextSiblingInternal = null;\n\n this.___key = other.___key;\n this.___attributes = other.___attributes;\n this.___properties = other.___properties;\n this.___nodeName = other.___nodeName;\n this.___flags = other.___flags;\n this.___valueInternal = other.___valueInternal;\n this.___constId = other.___constId;\n}\n\nfunction VElement(\n tagName,\n attrs,\n key,\n ownerComponent,\n childCount,\n flags,\n props\n) {\n this.___VNode(childCount, ownerComponent);\n\n var constId;\n\n if (props) {\n constId = props.i;\n }\n\n this.___key = key;\n this.___flags = flags || 0;\n this.___attributes = attrs || EMPTY_OBJECT;\n this.___properties = props || EMPTY_OBJECT;\n this.___nodeName = tagName;\n this.___valueInternal = null;\n this.___constId = constId;\n this.___preserve = false;\n this.___preserveBody = false;\n}\n\nVElement.prototype = {\n ___nodeType: 1,\n\n ___cloneNode: function () {\n return new VElementClone(this);\n },\n\n /**\n * Shorthand method for creating and appending an HTML element\n *\n * @param {String} tagName The tag name (e.g. \"div\")\n * @param {int|null} attrCount The number of attributes (or `null` if not known)\n * @param {int|null} childCount The number of child nodes (or `null` if not known)\n */\n e: function (tagName, attrs, key, ownerComponent, childCount, flags, props) {\n var child = this.___appendChild(\n new VElement(\n tagName,\n attrs,\n key,\n ownerComponent,\n childCount,\n flags,\n props\n )\n );\n\n if (childCount === 0) {\n return this.___finishChild();\n } else {\n return child;\n }\n },\n\n /**\n * Shorthand method for creating and appending a static node. The provided node is automatically cloned\n * using a shallow clone since it will be mutated as a result of setting `nextSibling` and `parentNode`.\n *\n * @param {String} value The value for the new Comment node\n */\n n: function (node, ownerComponent) {\n node = node.___cloneNode();\n node.___ownerComponent = ownerComponent;\n this.___appendChild(node);\n return this.___finishChild();\n },\n\n ___actualize: function (host, parentNamespaceURI) {\n var tagName = this.___nodeName;\n var attributes = this.___attributes;\n var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML;\n\n var flags = this.___flags;\n var el = (host.ownerDocument || host).createElementNS(\n namespaceURI,\n tagName\n );\n\n if (flags & FLAG_CUSTOM_ELEMENT) {\n assign(el, attributes);\n } else {\n for (var attrName in attributes) {\n var attrValue = attributes[attrName];\n\n if (attrValue !== false && attrValue != null) {\n var type = typeof attrValue;\n\n if (type !== \"string\") {\n // Special attributes aren't copied to the real DOM. They are only\n // kept in the virtual attributes map\n attrValue = convertAttrValue(type, attrValue);\n }\n\n if (attrName == ATTR_XLINK_HREF) {\n setAttribute(el, NS_XLINK, ATTR_HREF, attrValue);\n } else {\n el.setAttribute(attrName, attrValue);\n }\n }\n }\n\n if (tagName === \"textarea\") {\n el.defaultValue = el.value = this.___value;\n }\n }\n\n vElementByDOMNode.set(el, this);\n\n return el;\n },\n\n ___hasAttribute: function (name) {\n // We don't care about the namespaces since the there\n // is no chance that attributes with the same name will have\n // different namespaces\n var value = this.___attributes[name];\n return value != null && value !== false;\n }\n};\n\ninherit(VElement, VNode);\n\nvar proto = (VElementClone.prototype = VElement.prototype);\n\n[\"checked\", \"selected\", \"disabled\"].forEach(function (name) {\n defineProperty(proto, name, {\n get: function () {\n var value = this.___attributes[name];\n return value !== false && value != null;\n }\n });\n});\n\ndefineProperty(proto, \"___value\", {\n get: function () {\n var value = this.___valueInternal;\n if (value == null) {\n value = this.___attributes.value;\n }\n return value != null && value !== false\n ? value + \"\"\n : this.___attributes.type === \"checkbox\" ||\n this.___attributes.type === \"radio\"\n ? \"on\"\n : \"\";\n }\n});\n\nVElement.___removePreservedAttributes = function (attrs) {\n // By default this static method is a no-op, but if there are any\n // compiled components that have \"no-update\" attributes then\n // `preserve-attrs.js` will be imported and this method will be replaced\n // with a method that actually does something\n return attrs;\n};\n\nfunction virtualizeElement(node, virtualizeChildNodes, ownerComponent) {\n var attributes = node.attributes;\n var attrCount = attributes.length;\n\n var attrs = null;\n var props = null;\n\n if (attrCount) {\n attrs = {};\n for (var i = 0; i < attrCount; i++) {\n var attr = attributes[i];\n var attrName = attr.name;\n if (!xmlnsRegExp.test(attrName)) {\n if (attrName === \"data-marko\") {\n props = componentsUtil.___getMarkoPropsFromEl(node);\n } else if (attr.namespaceURI === NS_XLINK) {\n attrs[ATTR_XLINK_HREF] = attr.value;\n } else {\n attrs[attrName] = attr.value;\n }\n }\n }\n }\n\n var tagName = node.nodeName;\n\n if (node.namespaceURI === NS_HTML) {\n tagName = tagName.toLowerCase();\n }\n\n var vdomEl = new VElement(\n tagName,\n attrs,\n null /*key*/,\n ownerComponent,\n 0 /*child count*/,\n 0 /*flags*/,\n props\n );\n\n if (vdomEl.___nodeName === \"textarea\") {\n vdomEl.___valueInternal = node.value;\n } else if (virtualizeChildNodes) {\n virtualizeChildNodes(node, vdomEl, ownerComponent);\n }\n\n return vdomEl;\n}\n\nVElement.___virtualize = virtualizeElement;\n\nVElement.___morphAttrs = function (fromEl, vFromEl, toEl) {\n var removePreservedAttributes = VElement.___removePreservedAttributes;\n\n var fromFlags = vFromEl.___flags;\n var toFlags = toEl.___flags;\n\n vElementByDOMNode.set(fromEl, toEl);\n\n var attrs = toEl.___attributes;\n var props = toEl.___properties;\n\n if (toFlags & FLAG_CUSTOM_ELEMENT) {\n return assign(fromEl, attrs);\n }\n\n var attrName;\n\n // We use expando properties to associate the previous HTML\n // attributes provided as part of the VDOM node with the\n // real VElement DOM node. When diffing attributes,\n // we only use our internal representation of the attributes.\n // When diffing for the first time it's possible that the\n // real VElement node will not have the expando property\n // so we build the attribute map from the expando property\n\n var oldAttrs = vFromEl.___attributes;\n\n if (oldAttrs) {\n if (oldAttrs === attrs) {\n // For constant attributes the same object will be provided\n // every render and we can use that to our advantage to\n // not waste time diffing a constant, immutable attribute\n // map.\n return;\n } else {\n oldAttrs = removePreservedAttributes(oldAttrs, props);\n }\n }\n\n var attrValue;\n\n if (toFlags & FLAG_SIMPLE_ATTRS && fromFlags & FLAG_SIMPLE_ATTRS) {\n if (oldAttrs[\"class\"] !== (attrValue = attrs[\"class\"])) {\n fromEl.className = attrValue;\n }\n if (oldAttrs.id !== (attrValue = attrs.id)) {\n fromEl.id = attrValue;\n }\n if (oldAttrs.style !== (attrValue = attrs.style)) {\n fromEl.style.cssText = attrValue;\n }\n return;\n }\n\n // In some cases we only want to set an attribute value for the first\n // render or we don't want certain attributes to be touched. To support\n // that use case we delete out all of the preserved attributes\n // so it's as if they never existed.\n attrs = removePreservedAttributes(attrs, props, true);\n\n var namespaceURI;\n\n // Loop over all of the attributes in the attribute map and compare\n // them to the value in the old map. However, if the value is\n // null/undefined/false then we want to remove the attribute\n for (attrName in attrs) {\n attrValue = attrs[attrName];\n namespaceURI = null;\n\n if (attrName === ATTR_XLINK_HREF) {\n namespaceURI = NS_XLINK;\n attrName = ATTR_HREF;\n }\n\n if (attrValue == null || attrValue === false) {\n removeAttribute(fromEl, namespaceURI, attrName);\n } else if (oldAttrs[attrName] !== attrValue) {\n var type = typeof attrValue;\n\n if (type !== \"string\") {\n attrValue = convertAttrValue(type, attrValue);\n }\n\n setAttribute(fromEl, namespaceURI, attrName, attrValue);\n }\n }\n\n // If there are any old attributes that are not in the new set of attributes\n // then we need to remove those attributes from the target node\n //\n // NOTE: We can skip this if the the element is keyed and didn't have spread attributes\n // because we know we already processed all of the attributes for\n // both the target and original element since target VElement nodes will\n // have all attributes declared. However, we can only skip if the node\n // was not a virtualized node (i.e., a node that was not rendered by a\n // Marko template, but rather a node that was created from an HTML\n // string or a real DOM node).\n if (toEl.___key === null || fromFlags & FLAG_SPREAD_ATTRS) {\n for (attrName in oldAttrs) {\n if (!(attrName in attrs)) {\n if (attrName === ATTR_XLINK_HREF) {\n fromEl.removeAttributeNS(ATTR_XLINK_HREF, ATTR_HREF);\n } else {\n fromEl.removeAttribute(attrName);\n }\n }\n }\n }\n};\n\nmodule.exports = VElement;\n","var domData = require(\"../components/dom-data\");\nvar keysByDOMNode = domData.___keyByDOMNode;\nvar vElementByDOMNode = domData.___vElementByDOMNode;\nvar VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\nvar createFragmentNode = require(\"./morphdom/fragment\").___createFragmentNode;\n\nfunction VFragment(key, ownerComponent, preserve) {\n this.___VNode(null /* childCount */, ownerComponent);\n this.___key = key;\n this.___preserve = preserve;\n}\n\nVFragment.prototype = {\n ___nodeType: 12,\n ___actualize: function () {\n var fragment = createFragmentNode();\n keysByDOMNode.set(fragment, this.___key);\n vElementByDOMNode.set(fragment, this);\n return fragment;\n }\n};\n\ninherit(VFragment, VNode);\n\nmodule.exports = VFragment;\n","/* jshint newcap:false */\nfunction VNode() {}\n\nVNode.prototype = {\n ___VNode: function (finalChildCount, ownerComponent) {\n this.___finalChildCount = finalChildCount;\n this.___childCount = 0;\n this.___firstChildInternal = null;\n this.___lastChild = null;\n this.___parentNode = null;\n this.___nextSiblingInternal = null;\n this.___ownerComponent = ownerComponent;\n },\n\n get ___firstChild() {\n var firstChild = this.___firstChildInternal;\n\n if (firstChild && firstChild.___DocumentFragment) {\n var nestedFirstChild = firstChild.___firstChild;\n // The first child is a DocumentFragment node.\n // If the DocumentFragment node has a first child then we will return that.\n // Otherwise, the DocumentFragment node is not *really* the first child and\n // we need to skip to its next sibling\n return nestedFirstChild || firstChild.___nextSibling;\n }\n\n return firstChild;\n },\n\n get ___nextSibling() {\n var nextSibling = this.___nextSiblingInternal;\n\n if (nextSibling) {\n if (nextSibling.___DocumentFragment) {\n var firstChild = nextSibling.___firstChild;\n return firstChild || nextSibling.___nextSibling;\n }\n } else {\n var parentNode = this.___parentNode;\n if (parentNode && parentNode.___DocumentFragment) {\n return parentNode.___nextSibling;\n }\n }\n\n return nextSibling;\n },\n\n ___appendChild: function (child) {\n this.___childCount++;\n\n if (this.___nodeName === \"textarea\") {\n if (child.___Text) {\n var childValue = child.___nodeValue;\n this.___valueInternal = (this.___valueInternal || \"\") + childValue;\n } else if (child.___preserve || child.___preserveBody) {\n this.___preserveTextAreaValue = true;\n } else {\n throw TypeError();\n }\n } else {\n var lastChild = this.___lastChild;\n\n child.___parentNode = this;\n\n if (lastChild) {\n lastChild.___nextSiblingInternal = child;\n } else {\n this.___firstChildInternal = child;\n }\n\n this.___lastChild = child;\n }\n\n return child;\n },\n\n ___finishChild: function finishChild() {\n if (this.___childCount === this.___finalChildCount && this.___parentNode) {\n return this.___parentNode.___finishChild();\n } else {\n return this;\n }\n }\n\n // ,toJSON: function() {\n // var clone = Object.assign({\n // nodeType: this.nodeType\n // }, this);\n //\n // for (var k in clone) {\n // if (k.startsWith('_')) {\n // delete clone[k];\n // }\n // }\n // delete clone._nextSibling;\n // delete clone._lastChild;\n // delete clone.parentNode;\n // return clone;\n // }\n};\n\nmodule.exports = VNode;\n","var VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\n\nfunction VText(value, ownerComponent) {\n this.___VNode(-1 /* no children */, ownerComponent);\n this.___nodeValue = value;\n}\n\nVText.prototype = {\n ___Text: true,\n\n ___nodeType: 3,\n\n ___actualize: function (host) {\n return (host.ownerDocument || host).createTextNode(this.___nodeValue);\n },\n\n ___cloneNode: function () {\n return new VText(this.___nodeValue);\n }\n};\n\ninherit(VText, VNode);\n\nmodule.exports = VText;\n","\"use strict\";\n\nvar classHelper = require(\"../../helpers/class-value\");\nvar styleHelper = require(\"../../helpers/style-value\");\n\n/**\n * Helper for processing dynamic attributes\n */\nmodule.exports = function (attributes) {\n if (attributes != null) {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (typeof attributes !== \"object\") {\n throw new Error(\n \"A non object was passed as a dynamic attributes value.\"\n );\n }\n }\n\n var newAttributes = {};\n\n for (var attrName in attributes) {\n var val = attributes[attrName];\n if (attrName === \"renderBody\") {\n continue;\n }\n\n if (attrName === \"class\") {\n val = classHelper(val);\n } else if (attrName === \"style\") {\n val = styleHelper(val);\n }\n\n newAttributes[attrName] = val;\n }\n\n return newAttributes;\n }\n\n return attributes;\n};\n","\"use strict\";\n\nvar VElement = require(\"../vdom\").___VElement;\n\nmodule.exports = function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n) {\n return new VElement(tagName, attrs, key, component, childCount, flags, props);\n};\n","\"use strict\";\n\n/**\n * Method is for internal usage only. This method\n * is invoked by code in a compiled Marko template and\n * it is used to create a new Template instance.\n * @private\n */\nexports.t = function createTemplate(typeName) {\n return new Template(typeName);\n};\n\nfunction Template(typeName) {\n this.___typeName = typeName;\n}\n\nvar AsyncVDOMBuilder = require(\"./AsyncVDOMBuilder\");\nrequire(\"../createOut\").___setCreateOut(\n (Template.prototype.createOut = function createOut(\n globalData,\n parent,\n parentOut\n ) {\n return new AsyncVDOMBuilder(globalData, parent, parentOut);\n })\n);\n\nrequire(\"../renderable\")(Template.prototype);\n","var helpers = require(\"./helpers\");\nvar insertBefore = helpers.___insertBefore;\n\nvar fragmentPrototype = {\n nodeType: 12,\n get firstChild() {\n var firstChild = this.startNode.nextSibling;\n return firstChild === this.endNode ? undefined : firstChild;\n },\n get lastChild() {\n var lastChild = this.endNode.previousSibling;\n return lastChild === this.startNode ? undefined : lastChild;\n },\n get parentNode() {\n var parentNode = this.startNode.parentNode;\n return parentNode === this.detachedContainer ? undefined : parentNode;\n },\n get namespaceURI() {\n return this.startNode.parentNode.namespaceURI;\n },\n get nextSibling() {\n return this.endNode.nextSibling;\n },\n get nodes() {\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n if (this.___markersRemovedError) {\n throw this.___markersRemovedError(\"Cannot get fragment nodes.\");\n }\n }\n var nodes = [];\n var current = this.startNode;\n while (current !== this.endNode) {\n nodes.push(current);\n current = current.nextSibling;\n }\n nodes.push(current);\n return nodes;\n },\n insertBefore: function (newChildNode, referenceNode) {\n var actualReference = referenceNode == null ? this.endNode : referenceNode;\n return insertBefore(\n newChildNode,\n actualReference,\n this.startNode.parentNode\n );\n },\n insertInto: function (newParentNode, referenceNode) {\n this.nodes.forEach(function (node) {\n insertBefore(node, referenceNode, newParentNode);\n }, this);\n return this;\n },\n remove: function () {\n this.nodes.forEach(function (node) {\n this.detachedContainer.appendChild(node);\n }, this);\n }\n};\n\nfunction createFragmentNode(startNode, nextNode, parentNode) {\n var fragment = Object.create(fragmentPrototype);\n var isRoot = startNode && startNode.ownerDocument === startNode.parentNode;\n fragment.startNode = isRoot\n ? document.createComment(\"\")\n : document.createTextNode(\"\");\n fragment.endNode = isRoot\n ? document.createComment(\"\")\n : document.createTextNode(\"\");\n fragment.startNode.fragment = fragment;\n fragment.endNode.fragment = fragment;\n var detachedContainer = (fragment.detachedContainer =\n document.createDocumentFragment());\n parentNode =\n parentNode || (startNode && startNode.parentNode) || detachedContainer;\n insertBefore(fragment.startNode, startNode, parentNode);\n insertBefore(fragment.endNode, nextNode, parentNode);\n return fragment;\n}\n\nfunction beginFragmentNode(startNode, parentNode) {\n var fragment = createFragmentNode(startNode, null, parentNode);\n fragment.___finishFragment = function (nextNode) {\n fragment.___finishFragment = null;\n insertBefore(\n fragment.endNode,\n nextNode,\n parentNode || startNode.parentNode\n );\n };\n return fragment;\n}\n\nexports.___createFragmentNode = createFragmentNode;\nexports.___beginFragmentNode = beginFragmentNode;\n","function insertBefore(node, referenceNode, parentNode) {\n if (node.insertInto) {\n return node.insertInto(parentNode, referenceNode);\n }\n return parentNode.insertBefore(\n node,\n (referenceNode && referenceNode.startNode) || referenceNode\n );\n}\n\nfunction insertAfter(node, referenceNode, parentNode) {\n return insertBefore(\n node,\n referenceNode && referenceNode.nextSibling,\n parentNode\n );\n}\n\nfunction nextSibling(node) {\n var next = node.nextSibling;\n var fragment = next && next.fragment;\n if (fragment) {\n return next === fragment.startNode ? fragment : null;\n }\n return next;\n}\n\nfunction firstChild(node) {\n var next = node.firstChild;\n return (next && next.fragment) || next;\n}\n\nfunction removeChild(node) {\n if (node.remove) node.remove();\n else node.parentNode.removeChild(node);\n}\n\nexports.___insertBefore = insertBefore;\nexports.___insertAfter = insertAfter;\nexports.___nextSibling = nextSibling;\nexports.___firstChild = firstChild;\nexports.___removeChild = removeChild;\n","\"use strict\";\nvar specialElHandlers = require(\"./specialElHandlers\");\nvar KeySequence = require(\"../../components/KeySequence\");\nvar componentsUtil = require(\"../../components/util\");\nvar existingComponentLookup = componentsUtil.___componentLookup;\nvar destroyNodeRecursive = componentsUtil.___destroyNodeRecursive;\nvar addComponentRootToKeyedElements =\n componentsUtil.___addComponentRootToKeyedElements;\nvar normalizeComponentKey = componentsUtil.___normalizeComponentKey;\nvar VElement = require(\"../vdom\").___VElement;\nvar virtualizeElement = VElement.___virtualize;\nvar morphAttrs = VElement.___morphAttrs;\nvar eventDelegation = require(\"../../components/event-delegation\");\nvar fragment = require(\"./fragment\");\nvar helpers = require(\"./helpers\");\nvar domData = require(\"../../components/dom-data\");\nvar keysByDOMNode = domData.___keyByDOMNode;\nvar componentByDOMNode = domData.___componentByDOMNode;\nvar vElementByDOMNode = domData.___vElementByDOMNode;\nvar detachedByDOMNode = domData.___detachedByDOMNode;\n\nvar insertBefore = helpers.___insertBefore;\nvar insertAfter = helpers.___insertAfter;\nvar nextSibling = helpers.___nextSibling;\nvar firstChild = helpers.___firstChild;\nvar removeChild = helpers.___removeChild;\nvar createFragmentNode = fragment.___createFragmentNode;\nvar beginFragmentNode = fragment.___beginFragmentNode;\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar COMPONENT_NODE = 2;\nvar FRAGMENT_NODE = 12;\nvar DOCTYPE_NODE = 10;\n\n// var FLAG_SIMPLE_ATTRS = 1;\n// var FLAG_CUSTOM_ELEMENT = 2;\n// var FLAG_SPREAD_ATTRS = 4;\n\nfunction isAutoKey(key) {\n return key[0] !== \"@\";\n}\n\nfunction compareNodeNames(fromEl, toEl) {\n return fromEl.___nodeName === toEl.___nodeName;\n}\n\nfunction caseInsensitiveCompare(a, b) {\n return a.toLowerCase() === b.toLowerCase();\n}\n\nfunction onNodeAdded(node, componentsContext) {\n if (node.nodeType === ELEMENT_NODE) {\n eventDelegation.___handleNodeAttach(node, componentsContext);\n }\n}\n\nfunction morphdom(fromNode, toNode, host, componentsContext) {\n var globalComponentsContext;\n var isHydrate = false;\n var keySequences = Object.create(null);\n\n if (componentsContext) {\n globalComponentsContext = componentsContext.___globalContext;\n isHydrate = globalComponentsContext.___isHydrate;\n }\n\n function insertVirtualNodeBefore(\n vNode,\n key,\n referenceEl,\n parentEl,\n ownerComponent,\n parentComponent\n ) {\n var realNode = vNode.___actualize(host, parentEl.namespaceURI);\n insertBefore(realNode, referenceEl, parentEl);\n\n if (\n vNode.___nodeType === ELEMENT_NODE ||\n vNode.___nodeType === FRAGMENT_NODE\n ) {\n if (key) {\n keysByDOMNode.set(realNode, key);\n (isAutoKey(key) ? parentComponent : ownerComponent).___keyedElements[\n key\n ] = realNode;\n }\n\n if (vNode.___nodeName !== \"textarea\") {\n morphChildren(realNode, vNode, parentComponent);\n }\n\n onNodeAdded(realNode, componentsContext);\n }\n }\n\n function insertVirtualComponentBefore(\n vComponent,\n referenceNode,\n referenceNodeParentEl,\n component,\n key,\n ownerComponent,\n parentComponent\n ) {\n var rootNode = (component.___rootNode = insertBefore(\n createFragmentNode(),\n referenceNode,\n referenceNodeParentEl\n ));\n componentByDOMNode.set(rootNode, component);\n\n if (key && ownerComponent) {\n key = normalizeComponentKey(key, parentComponent.id);\n addComponentRootToKeyedElements(\n ownerComponent.___keyedElements,\n key,\n rootNode,\n component.id\n );\n keysByDOMNode.set(rootNode, key);\n }\n\n morphComponent(component, vComponent);\n }\n\n function morphComponent(component, vComponent) {\n morphChildren(component.___rootNode, vComponent, component);\n }\n\n var detachedNodes = [];\n\n function detachNode(node, parentNode, ownerComponent) {\n if (node.nodeType === ELEMENT_NODE || node.nodeType === FRAGMENT_NODE) {\n detachedNodes.push(node);\n detachedByDOMNode.set(node, ownerComponent || true);\n } else {\n destroyNodeRecursive(node);\n removeChild(node);\n }\n }\n\n function destroyComponent(component) {\n component.destroy();\n }\n\n function morphChildren(fromNode, toNode, parentComponent) {\n var curFromNodeChild = firstChild(fromNode);\n var curToNodeChild = toNode.___firstChild;\n\n var curToNodeKey;\n var curFromNodeKey;\n var curToNodeType;\n\n var fromNextSibling;\n var toNextSibling;\n var matchingFromEl;\n var matchingFromComponent;\n var curVFromNodeChild;\n var fromComponent;\n\n outer: while (curToNodeChild) {\n toNextSibling = curToNodeChild.___nextSibling;\n curToNodeType = curToNodeChild.___nodeType;\n curToNodeKey = curToNodeChild.___key;\n\n // Skip \n if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) {\n curFromNodeChild = nextSibling(curFromNodeChild);\n }\n\n var ownerComponent = curToNodeChild.___ownerComponent || parentComponent;\n var referenceComponent;\n\n if (curToNodeType === COMPONENT_NODE) {\n var component = curToNodeChild.___component;\n if (\n (matchingFromComponent = existingComponentLookup[component.id]) ===\n undefined\n ) {\n if (isHydrate === true) {\n var rootNode = beginFragmentNode(curFromNodeChild, fromNode);\n component.___rootNode = rootNode;\n componentByDOMNode.set(rootNode, component);\n\n if (ownerComponent && curToNodeKey) {\n curToNodeKey = normalizeComponentKey(\n curToNodeKey,\n parentComponent.id\n );\n addComponentRootToKeyedElements(\n ownerComponent.___keyedElements,\n curToNodeKey,\n rootNode,\n component.id\n );\n\n keysByDOMNode.set(rootNode, curToNodeKey);\n }\n\n morphComponent(component, curToNodeChild);\n\n curFromNodeChild = nextSibling(rootNode);\n } else {\n insertVirtualComponentBefore(\n curToNodeChild,\n curFromNodeChild,\n fromNode,\n component,\n curToNodeKey,\n ownerComponent,\n parentComponent\n );\n }\n } else {\n if (matchingFromComponent.___rootNode !== curFromNodeChild) {\n if (\n curFromNodeChild &&\n (fromComponent = componentByDOMNode.get(curFromNodeChild)) &&\n globalComponentsContext.___renderedComponentsById[\n fromComponent.id\n ] === undefined\n ) {\n // The component associated with the current real DOM node was not rendered\n // so we should just remove it out of the real DOM by destroying it\n curFromNodeChild = nextSibling(fromComponent.___rootNode);\n destroyComponent(fromComponent);\n continue;\n }\n\n // We need to move the existing component into\n // the correct location\n insertBefore(\n matchingFromComponent.___rootNode,\n curFromNodeChild,\n fromNode\n );\n } else {\n curFromNodeChild =\n curFromNodeChild && nextSibling(curFromNodeChild);\n }\n\n if (!curToNodeChild.___preserve) {\n morphComponent(component, curToNodeChild);\n }\n }\n\n curToNodeChild = toNextSibling;\n continue;\n } else if (curToNodeKey) {\n curVFromNodeChild = undefined;\n curFromNodeKey = undefined;\n var curToNodeKeyOriginal = curToNodeKey;\n\n if (isAutoKey(curToNodeKey)) {\n if (ownerComponent !== parentComponent) {\n curToNodeKey += \":\" + ownerComponent.id;\n }\n referenceComponent = parentComponent;\n } else {\n referenceComponent = ownerComponent;\n }\n\n // We have a keyed element. This is the fast path for matching\n // up elements\n curToNodeKey = (\n keySequences[referenceComponent.id] ||\n (keySequences[referenceComponent.id] = new KeySequence())\n ).___nextKey(curToNodeKey);\n\n if (curFromNodeChild) {\n curFromNodeKey = keysByDOMNode.get(curFromNodeChild);\n curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);\n fromNextSibling = nextSibling(curFromNodeChild);\n }\n\n if (curFromNodeKey === curToNodeKey) {\n // Elements line up. Now we just have to make sure they are compatible\n if (!curToNodeChild.___preserve) {\n // We just skip over the fromNode if it is preserved\n\n if (compareNodeNames(curToNodeChild, curVFromNodeChild)) {\n morphEl(\n curFromNodeChild,\n curVFromNodeChild,\n curToNodeChild,\n parentComponent\n );\n } else {\n // Remove the old node\n detachNode(curFromNodeChild, fromNode, ownerComponent);\n\n // Incompatible nodes. Just move the target VNode into the DOM at this position\n insertVirtualNodeBefore(\n curToNodeChild,\n curToNodeKey,\n curFromNodeChild,\n fromNode,\n ownerComponent,\n parentComponent\n );\n }\n }\n } else {\n matchingFromEl = referenceComponent.___keyedElements[curToNodeKey];\n if (\n matchingFromEl === undefined ||\n matchingFromEl === curFromNodeChild\n ) {\n if (isHydrate === true && curFromNodeChild) {\n if (\n curFromNodeChild.nodeType === ELEMENT_NODE &&\n (curToNodeChild.___preserve ||\n caseInsensitiveCompare(\n curFromNodeChild.nodeName,\n curToNodeChild.___nodeName || \"\"\n ))\n ) {\n curVFromNodeChild = virtualizeElement(curFromNodeChild);\n curVFromNodeChild.___nodeName = curToNodeChild.___nodeName;\n keysByDOMNode.set(curFromNodeChild, curToNodeKey);\n referenceComponent.___keyedElements[curToNodeKey] =\n curFromNodeChild;\n\n if (curToNodeChild.___preserve) {\n vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild);\n } else {\n morphEl(\n curFromNodeChild,\n curVFromNodeChild,\n curToNodeChild,\n parentComponent\n );\n }\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue;\n } else if (\n curToNodeChild.___nodeType === FRAGMENT_NODE &&\n curFromNodeChild.nodeType === COMMENT_NODE\n ) {\n var content = curFromNodeChild.nodeValue;\n if (content == \"F#\" + curToNodeKeyOriginal) {\n var endNode = curFromNodeChild.nextSibling;\n var depth = 0;\n var nodeValue;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (endNode.nodeType === COMMENT_NODE) {\n nodeValue = endNode.nodeValue;\n if (nodeValue === \"F/\") {\n if (depth === 0) {\n break;\n } else {\n depth--;\n }\n } else if (nodeValue.indexOf(\"F#\") === 0) {\n depth++;\n }\n }\n endNode = endNode.nextSibling;\n }\n\n var fragment = createFragmentNode(\n curFromNodeChild,\n endNode.nextSibling,\n fromNode\n );\n keysByDOMNode.set(fragment, curToNodeKey);\n vElementByDOMNode.set(fragment, curToNodeChild);\n referenceComponent.___keyedElements[curToNodeKey] = fragment;\n removeChild(curFromNodeChild);\n removeChild(endNode);\n\n if (!curToNodeChild.___preserve) {\n morphChildren(fragment, curToNodeChild, parentComponent);\n }\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fragment.nextSibling;\n continue;\n }\n }\n }\n\n insertVirtualNodeBefore(\n curToNodeChild,\n curToNodeKey,\n curFromNodeChild,\n fromNode,\n ownerComponent,\n parentComponent\n );\n fromNextSibling = curFromNodeChild;\n } else {\n if (detachedByDOMNode.get(matchingFromEl) !== undefined) {\n detachedByDOMNode.set(matchingFromEl, undefined);\n }\n\n if (!curToNodeChild.___preserve) {\n curVFromNodeChild = vElementByDOMNode.get(matchingFromEl);\n\n if (compareNodeNames(curVFromNodeChild, curToNodeChild)) {\n if (fromNextSibling === matchingFromEl) {\n // Single element removal:\n // A <-> A\n // B <-> C <-- We are here\n // C D\n // D\n //\n // Single element swap:\n // A <-> A\n // B <-> C <-- We are here\n // C B\n\n if (\n toNextSibling &&\n toNextSibling.___key === curFromNodeKey\n ) {\n // Single element swap\n\n // We want to stay on the current real DOM node\n fromNextSibling = curFromNodeChild;\n\n // But move the matching element into place\n insertBefore(matchingFromEl, curFromNodeChild, fromNode);\n } else {\n // Single element removal\n\n // We need to remove the current real DOM node\n // and the matching real DOM node will fall into\n // place. We will continue diffing with next sibling\n // after the real DOM node that just fell into place\n fromNextSibling = nextSibling(fromNextSibling);\n\n if (curFromNodeChild) {\n detachNode(curFromNodeChild, fromNode, ownerComponent);\n }\n }\n } else {\n // A <-> A\n // B <-> D <-- We are here\n // C\n // D\n\n // We need to move the matching node into place\n insertAfter(matchingFromEl, curFromNodeChild, fromNode);\n\n if (curFromNodeChild) {\n detachNode(curFromNodeChild, fromNode, ownerComponent);\n }\n }\n\n morphEl(\n matchingFromEl,\n curVFromNodeChild,\n curToNodeChild,\n parentComponent\n );\n } else {\n insertVirtualNodeBefore(\n curToNodeChild,\n curToNodeKey,\n curFromNodeChild,\n fromNode,\n ownerComponent,\n parentComponent\n );\n detachNode(matchingFromEl, fromNode, ownerComponent);\n }\n } else {\n // preserve the node\n // but still we need to diff the current from node\n insertBefore(matchingFromEl, curFromNodeChild, fromNode);\n fromNextSibling = curFromNodeChild;\n }\n }\n }\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue;\n }\n\n // The know the target node is not a VComponent node and we know\n // it is also not a preserve node. Let's now match up the HTML\n // element, text node, comment, etc.\n while (curFromNodeChild) {\n fromNextSibling = nextSibling(curFromNodeChild);\n\n if ((fromComponent = componentByDOMNode.get(curFromNodeChild))) {\n // The current \"to\" element is not associated with a component,\n // but the current \"from\" element is associated with a component\n\n // Even if we destroy the current component in the original\n // DOM or not, we still need to skip over it since it is\n // not compatible with the current \"to\" node\n curFromNodeChild = fromNextSibling;\n\n if (\n !globalComponentsContext.___renderedComponentsById[fromComponent.id]\n ) {\n destroyComponent(fromComponent);\n }\n\n continue; // Move to the next \"from\" node\n }\n\n var curFromNodeType = curFromNodeChild.nodeType;\n\n var isCompatible = undefined;\n\n if (curFromNodeType === curToNodeType) {\n if (curFromNodeType === ELEMENT_NODE) {\n // Both nodes being compared are Element nodes\n curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);\n if (curVFromNodeChild === undefined) {\n if (isHydrate === true) {\n curVFromNodeChild = virtualizeElement(curFromNodeChild);\n\n if (\n caseInsensitiveCompare(\n curVFromNodeChild.___nodeName,\n curToNodeChild.___nodeName\n )\n ) {\n curVFromNodeChild.___nodeName = curToNodeChild.___nodeName;\n }\n } else {\n // Skip over nodes that don't look like ours...\n curFromNodeChild = fromNextSibling;\n continue;\n }\n } else if ((curFromNodeKey = curVFromNodeChild.___key)) {\n // We have a keyed element here but our target VDOM node\n // is not keyed so this not doesn't belong\n isCompatible = false;\n }\n\n isCompatible =\n isCompatible !== false &&\n compareNodeNames(curVFromNodeChild, curToNodeChild) === true;\n\n if (isCompatible === true) {\n // We found compatible DOM elements so transform\n // the current \"from\" node to match the current\n // target DOM node.\n morphEl(\n curFromNodeChild,\n curVFromNodeChild,\n curToNodeChild,\n parentComponent\n );\n }\n } else if (\n curFromNodeType === TEXT_NODE ||\n curFromNodeType === COMMENT_NODE\n ) {\n // Both nodes being compared are Text or Comment nodes\n isCompatible = true;\n // Simply update nodeValue on the original node to\n // change the text value\n\n if (\n isHydrate === true &&\n toNextSibling &&\n curFromNodeType === TEXT_NODE &&\n toNextSibling.___nodeType === TEXT_NODE\n ) {\n fromNextSibling = curFromNodeChild.splitText(\n curToNodeChild.___nodeValue.length\n );\n }\n if (curFromNodeChild.nodeValue !== curToNodeChild.___nodeValue) {\n curFromNodeChild.nodeValue = curToNodeChild.___nodeValue;\n }\n }\n }\n\n if (isCompatible === true) {\n // Advance both the \"to\" child and the \"from\" child since we found a match\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n continue outer;\n }\n\n detachNode(curFromNodeChild, fromNode, ownerComponent);\n curFromNodeChild = fromNextSibling;\n } // END: while (curFromNodeChild)\n\n // If we got this far then we did not find a candidate match for\n // our \"to node\" and we exhausted all of the children \"from\"\n // nodes. Therefore, we will just append the current \"to\" node\n // to the end\n insertVirtualNodeBefore(\n curToNodeChild,\n curToNodeKey,\n curFromNodeChild,\n fromNode,\n ownerComponent,\n parentComponent\n );\n\n curToNodeChild = toNextSibling;\n curFromNodeChild = fromNextSibling;\n }\n\n // We have processed all of the \"to nodes\".\n if (fromNode.___finishFragment) {\n // If we are in an unfinished fragment, we have reached the end of the nodes\n // we were matching up and need to end the fragment\n fromNode.___finishFragment(curFromNodeChild);\n } else {\n // If curFromNodeChild is non-null then we still have some from nodes\n // left over that need to be removed\n var fragmentBoundary =\n fromNode.nodeType === FRAGMENT_NODE ? fromNode.endNode : null;\n\n while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) {\n fromNextSibling = nextSibling(curFromNodeChild);\n\n if ((fromComponent = componentByDOMNode.get(curFromNodeChild))) {\n curFromNodeChild = fromNextSibling;\n if (\n !globalComponentsContext.___renderedComponentsById[fromComponent.id]\n ) {\n destroyComponent(fromComponent);\n }\n continue;\n }\n\n curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);\n curFromNodeKey = keysByDOMNode.get(fromNode);\n\n // For transcluded content, we need to check if the element belongs to a different component\n // context than the current component and ensure it gets removed from its key index.\n if (!curFromNodeKey || isAutoKey(curFromNodeKey)) {\n referenceComponent = parentComponent;\n } else {\n referenceComponent =\n curVFromNodeChild && curVFromNodeChild.___ownerComponent;\n }\n\n detachNode(curFromNodeChild, fromNode, referenceComponent);\n\n curFromNodeChild = fromNextSibling;\n }\n }\n }\n\n function morphEl(fromEl, vFromEl, toEl, parentComponent) {\n var nodeName = toEl.___nodeName;\n\n var constId = toEl.___constId;\n if (constId !== undefined && vFromEl.___constId === constId) {\n return;\n }\n\n morphAttrs(fromEl, vFromEl, toEl);\n\n if (toEl.___preserveBody) {\n return;\n }\n\n if (nodeName !== \"textarea\") {\n morphChildren(fromEl, toEl, parentComponent);\n }\n\n var specialElHandler = specialElHandlers[nodeName];\n if (specialElHandler !== undefined) {\n specialElHandler(fromEl, toEl);\n }\n } // END: morphEl(...)\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n componentsUtil.___stopDOMManipulationWarning(host);\n }\n\n morphChildren(fromNode, toNode, toNode.___component);\n\n detachedNodes.forEach(function (node) {\n var detachedFromComponent = detachedByDOMNode.get(node);\n\n if (detachedFromComponent !== undefined) {\n detachedByDOMNode.set(node, undefined);\n\n var componentToDestroy = componentByDOMNode.get(node);\n if (componentToDestroy) {\n componentToDestroy.destroy();\n } else if (node.parentNode) {\n destroyNodeRecursive(\n node,\n detachedFromComponent !== true && detachedFromComponent\n );\n\n if (eventDelegation.___handleNodeDetach(node) != false) {\n removeChild(node);\n }\n }\n }\n });\n\n // eslint-disable-next-line no-constant-condition\n if (\"MARKO_DEBUG\") {\n componentsUtil.___startDOMManipulationWarning(host);\n }\n}\n\nmodule.exports = morphdom;\n","function syncBooleanAttrProp(fromEl, toEl, name) {\n if (fromEl[name] !== toEl[name]) {\n fromEl[name] = toEl[name];\n if (fromEl[name]) {\n fromEl.setAttribute(name, \"\");\n } else {\n fromEl.removeAttribute(name, \"\");\n }\n }\n}\n\nfunction forEachOption(el, fn, i) {\n var curChild = el.___firstChild;\n\n while (curChild) {\n if (curChild.___nodeName === \"option\") {\n fn(curChild, ++i);\n } else {\n i = forEachOption(curChild, fn, i);\n }\n\n curChild = curChild.___nextSibling;\n }\n\n return i;\n}\n\n// We use a JavaScript class to benefit from fast property lookup\nfunction SpecialElHandlers() {}\nSpecialElHandlers.prototype = {\n /**\n * Needed for IE. Apparently IE doesn't think that \"selected\" is an\n * attribute when reading over the attributes using selectEl.attributes\n */\n option: function (fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, \"selected\");\n },\n button: function (fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, \"disabled\");\n },\n /**\n * The \"value\" attribute is special for the element since it sets\n * the initial value. Changing the \"value\" attribute without changing the\n * \"value\" property will have no effect since it is only used to the set the\n * initial value. Similar for the \"checked\" attribute, and \"disabled\".\n */\n input: function (fromEl, toEl) {\n syncBooleanAttrProp(fromEl, toEl, \"checked\");\n syncBooleanAttrProp(fromEl, toEl, \"disabled\");\n\n if (fromEl.value != toEl.___value) {\n fromEl.value = toEl.___value;\n }\n\n if (fromEl.hasAttribute(\"value\") && !toEl.___hasAttribute(\"value\")) {\n fromEl.removeAttribute(\"value\");\n }\n },\n\n textarea: function (fromEl, toEl) {\n if (toEl.___preserveTextAreaValue) {\n return;\n }\n\n var newValue = toEl.___value;\n if (fromEl.value != newValue) {\n fromEl.value = newValue;\n }\n\n var firstChild = fromEl.firstChild;\n if (firstChild) {\n // Needed for IE. Apparently IE sets the placeholder as the\n // node value and vise versa. This ignores an empty update.\n var oldValue = firstChild.nodeValue;\n\n if (\n oldValue == newValue ||\n (!newValue && oldValue == fromEl.placeholder)\n ) {\n return;\n }\n\n firstChild.nodeValue = newValue;\n }\n },\n select: function (fromEl, toEl) {\n if (!toEl.___hasAttribute(\"multiple\")) {\n var selected = 0;\n forEachOption(\n toEl,\n function (option, i) {\n if (option.___hasAttribute(\"selected\")) {\n selected = i;\n }\n },\n -1\n );\n\n if (fromEl.selectedIndex !== selected) {\n fromEl.selectedIndex = selected;\n }\n }\n }\n};\n\nmodule.exports = new SpecialElHandlers();\n","var parseHTML = function (html) {\n var container = document.createElement(\"template\");\n parseHTML = container.content\n ? function (html) {\n container.innerHTML = html;\n return container.content;\n }\n : function (html) {\n container.innerHTML = html;\n return container;\n };\n\n return parseHTML(html);\n};\n\nmodule.exports = function (html) {\n return parseHTML(html).firstChild;\n};\n","var VNode = require(\"./VNode\");\nvar VDocumentFragment = require(\"./VDocumentFragment\");\nvar VElement = require(\"./VElement\");\nvar VText = require(\"./VText\");\nvar VComponent = require(\"./VComponent\");\nvar VFragment = require(\"./VFragment\");\nvar parseHTML = require(\"./parse-html\");\n\nvar specialHtmlRegexp = /[&<]/;\n\nfunction virtualizeChildNodes(node, vdomParent, ownerComponent) {\n var curChild = node.firstChild;\n while (curChild) {\n vdomParent.___appendChild(virtualize(curChild, ownerComponent));\n curChild = curChild.nextSibling;\n }\n}\n\nfunction virtualize(node, ownerComponent) {\n switch (node.nodeType) {\n case 1:\n return VElement.___virtualize(node, virtualizeChildNodes, ownerComponent);\n case 3:\n return new VText(node.nodeValue, ownerComponent);\n case 11:\n var vdomDocFragment = new VDocumentFragment();\n virtualizeChildNodes(node, vdomDocFragment, ownerComponent);\n return vdomDocFragment;\n }\n}\n\nfunction virtualizeHTML(html, ownerComponent) {\n if (!specialHtmlRegexp.test(html)) {\n return new VText(html, ownerComponent);\n }\n\n var vdomFragment = new VDocumentFragment();\n var curChild = parseHTML(html);\n\n while (curChild) {\n vdomFragment.___appendChild(virtualize(curChild, ownerComponent));\n curChild = curChild.nextSibling;\n }\n\n return vdomFragment;\n}\n\nvar Node_prototype = VNode.prototype;\n\n/**\n * Shorthand method for creating and appending a Text node with a given value\n * @param {String} value The text value for the new Text node\n */\nNode_prototype.t = function (value) {\n var type = typeof value;\n var vdomNode;\n\n if (type !== \"string\") {\n if (value == null) {\n value = \"\";\n } else if (type === \"object\") {\n if (value.toHTML) {\n vdomNode = virtualizeHTML(value.toHTML());\n }\n }\n }\n\n this.___appendChild(vdomNode || new VText(value.toString()));\n return this.___finishChild();\n};\n\nNode_prototype.___appendDocumentFragment = function () {\n return this.___appendChild(new VDocumentFragment());\n};\n\nexports.___VDocumentFragment = VDocumentFragment;\nexports.___VElement = VElement;\nexports.___VText = VText;\nexports.___VComponent = VComponent;\nexports.___VFragment = VFragment;\nexports.___virtualize = virtualize;\nexports.___virtualizeHTML = virtualizeHTML;\n","module.exports = function copyProps(from, to) {\n Object.getOwnPropertyNames(from).forEach(function(name) {\n var descriptor = Object.getOwnPropertyDescriptor(from, name);\n Object.defineProperty(to, name, descriptor);\n });\n};","module.exports = function extend(target, source) { //A simple function to copy properties from one object to another\n if (!target) { //Check if a target was provided, otherwise create a new empty object to return\n target = {};\n }\n\n if (source) {\n for (var propName in source) {\n if (source.hasOwnProperty(propName)) { //Only look at source properties that are not inherited\n target[propName] = source[propName]; //Copy the property\n }\n }\n }\n\n return target;\n};","var copyProps = require('./copyProps');\n\nfunction inherit(ctor, superCtor, shouldCopyProps) {\n var oldProto = ctor.prototype;\n var newProto = ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n writable: true,\n configurable: true\n }\n });\n if (oldProto && shouldCopyProps !== false) {\n copyProps(oldProto, newProto);\n }\n ctor.$super = superCtor;\n ctor.prototype = newProto;\n return ctor;\n}\n\n\nmodule.exports = inherit;\ninherit._inherit = inherit;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","class Router {\n constructor() {\n this.routes = [];\n this.listeners = {};\n this.baseRoute = \"\";\n }\n\n /**\n * Initialize the router.\n * @param {Array} routes A list of available routes as strings.\n * @param {String} baseRoute The base route or path, prepended before all paths.\n */\n initialize(routes, baseRoute) {\n if(baseRoute instanceof String || typeof baseRoute === 'string') {\n this.baseRoute = baseRoute;\n }\n else if(baseRoute != null) {\n console.error('baseRoute must be of type string.');\n }\n\n if(!(routes instanceof Array)){\n console.error('routes must be of type array.');\n return;\n }\n\n if(routes.length === 0) {\n console.warn('No routes are defined.');\n }\n\n //Build regex search strings and params ids for each route.\n for(let route of routes) {\n // Find param ids of the form /:id\n let routeParams = route.match(/:[^\\/]*(\\/|$)/gi);\n\n let p = route.replaceAll('/', '\\\\/');\n\n // Replace all params with wildcards to allow for matching.\n p = route.replaceAll(/:[^\\/]*(\\/|$)/gi, '([^\\\\\\/]+)(?:\\\\\\/|$)');\n\n // All route matches should end with the end of the string.\n p += '$';\n\n let search = new RegExp(p, 'i');\n\n this.routes.push({\n path: route,\n search: search,\n params: routeParams\n });\n }\n\n window.addEventListener('popstate', (event) => {\n this.navigate(event.state.path);\n\n if(this.listeners['popstate']) {\n for(let cb of this.listeners['popstate']) {\n cb(event);\n }\n }\n })\n }\n \n navigate(path) {\n if(path.startsWith(this.baseRoute)) {\n path = path.replace(this.baseRoute, '');\n }\n\n history.pushState({path: path}, \"\", this.baseRoute + path);\n\n let matchData = this.match(path);\n \n if(this.listeners['navigate']) {\n for(let cb of this.listeners['navigate']) {\n if(matchData === false)\n {\n cb(-1, null, null, null);\n }\n else {\n cb(matchData.index, this.routes[matchData.index], path, matchData.params);\n }\n }\n }\n }\n\n /**\n * Find the first matching route for a path.\n * @param {String} path \n * @returns The index, and param values. False for no route found.\n */\n match(path) {\n let paramValues = {};\n let routeIndex = 0;\n let foundMatch = false;\n\n for(let route of this.routes) {\n let matches = path.match(route.search);\n if(matches !== null && matches.index === 0) {\n // We found a matching route!\n // Now gather the param values so we can return them.\n for(let i = 0; i + 1 < matches.length && i < route.params.length; i++) {\n paramValues[route.params[i].replaceAll(/[\\/:]/g, '')] = matches[i + 1]; \n }\n\n foundMatch = true;\n break;\n }\n\n routeIndex += 1;\n }\n\n if(foundMatch) {\n return {index: routeIndex, params: paramValues};\n }\n\n return false;\n }\n \n listen(event, callback) {\n if(!this.listeners[event]) {\n this.listeners[event] = [];\n }\n \n this.listeners[event].push(callback);\n }\n\n}\n\nconst _router = new Router();\nexport default _router;\nexport const navigate = _router.navigate.bind(_router);\nexport const listen = _router.listen.bind(_router);\n","module.exports = {\n handleClick(event) {\n this.emit(\"click\", event);\n },\n preventHandleClick(event) {\n event.preventDefault();\n this.handleClick(event);\n },\n handleInput(event) {\n this.emit(\"input\", event);\n }\n}","const Base = require(\"./base.mixin\");\n\nclass Component {\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n onCreate(input) {\n this.state = {\n color: input.value||input.color||\"#fff\",\n showDialogue: false\n };\n }\n\n toggleDialogue() {\n if(input.popup) {\n this.state.showDialogue = !this.state.showDialogue;\n }\n }\n\n selectColor(color) {\n this.state.color = color;\n this.state.showDialogue = false;\n this.emit('input', {color: this.state.color.color, value: this.state.color.value})\n }\n\n setValue(color) {\n this.state.color = color;\n }\n\n getValue() {\n return this.state.color;\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n onCreate(input) {\n this.state = {\n value: input.value || null,\n option: null,\n displayOptions: false\n };\n }\n\n preHandleClick(event) {\n this.showDropDown();\n this.handleClick(event);\n }\n\n toggleDropDown(event) {\n if(this.state.displayOptions) {\n this.removeDropDown();\n }\n else {\n this.showDropDown();\n }\n }\n \n showDropDown() {\n document.body.addEventListener('click', this, true);\n this.state.displayOptions = true;\n }\n\n removeDropDown() {\n document.body.removeEventListener('click', this, true);\n this.state.displayOptions = false;\n }\n\n handleEvent(e) {\n switch (e.type) {\n case 'click': {\n this.removeDropDown();\n }\n }\n }\n\n onOptionSelect(value, option, event) {\n this.state.value = option.search||option.value;\n this.state.option = option;\n event.value = option.value;\n event.option = option;\n\n this.emit(\"select\", event);\n \n this.handleInput(event);\n\n this.removeDropDown();\n this.getComponent(\"comboboxinput\").state.value = value;\n }\n\n pushInput(event) {\n this.state.value = event.target.value;\n event.value = event.target.value;\n\n this.showDropDown();\n \n this.handleInput(event);\n }\n\n clearInput(event) {\n this.state.value = \"\"\n event.value = \"\";\n this.getComponent(\"comboboxinput\").state.value = \"\";\n\n this.showDropDown();\n \n this.handleInput(event);\n }\n\n setValue(value) {\n this.state.value = value;\n this.getComponent(\"comboboxinput\").state.value = value;\n }\n\n getValue() {\n return this.state.value;\n }\n\n clearOption() {\n this.state.option = null;\n this.state.value = null;\n this.getComponent(\"comboboxinput\").state.value = \"\";\n this.setStateDirty('option');\n }\n\n setOption(option) {\n this.state.option = option;\n this.state.value = (option.name||option.text||option.value||option);\n this.getComponent(\"comboboxinput\").state.value = this.state.value;\n this.setStateDirty('option');\n }\n\n getOption() {\n return this.state.option;\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\nvar addMonths = require('date-fns/addMonths/index.js');\nvar setMonth = require('date-fns/setMonth/index.js');\nvar setYear = require('date-fns/setYear/index.js');\nvar setHours = require('date-fns/setHours/index.js');\nvar setMinutes = require('date-fns/setMinutes/index.js');\n\n\nclass Component {\n onCreate(input) {\n this.state = {\n value: input.milliseconds,\n date: new Date(input.milliseconds),\n popup: false,\n curDate: new Date(input.milliseconds),\n tab: \"date\",\n setHour: true,\n includeDate: input.showdate!=null?input.showdate:true,\n includeTime: input.showtime!=null?input.showtime:true\n };\n }\n\n emitEvent() {\n this.emit(\"input\", {value: this.state.value, date: this.state.date});\n }\n\n onInput(input) {\n //this.state.value = input.milliseconds;\n //this.state.date = new Date(input.milliseconds);\n }\n\n togglePopup(event) {\n this.state.popup = !this.state.popup;\n }\n \n setDate(month, day, year, event) {\n this.state.date = new Date(year, month, day, this.state.date.getHours(), this.state.date.getMinutes());\n this.state.value = this.state.date.getTime();\n this.state.curDate = this.state.date;\n this.setStateDirty(\"curDate\");\n this.emitEvent();\n }\n\n changeMonth(forward=true) {\n this.state.curDate = addMonths(this.state.curDate, forward?1:-1);\n this.setStateDirty(\"curDate\");\n }\n\n setMonth(event) {\n this.state.curDate = setMonth(this.state.curDate, event.value);\n this.setStateDirty(\"curDate\");\n }\n\n changeYear(event) {\n this.state.curDate = setYear(this.state.curDate, parseInt(event.value));\n this.setStateDirty(\"curDate\");\n }\n\n changeHour(hour) {\n this.state.curDate = setHours(this.state.curDate, hour);\n this.state.date = setHours(this.state.date, hour);\n this.state.value = this.state.date.getTime();\n this.setStateDirty(\"curDate\");\n this.setStateDirty(\"date\");\n this.emitEvent();\n }\n\n changeMinute(minute) {\n this.state.curDate = setMinutes(this.state.curDate, minute);\n this.state.date = setMinutes(this.state.date, minute);\n this.state.value = this.state.date.getTime();\n this.setStateDirty(\"curDate\");\n this.setStateDirty(\"date\");\n this.emitEvent();\n }\n\n changeTab(tab) {\n this.state.tab = tab;\n }\n\n toggleSetHours() {\n this.state.setHour = !this.state.setHour;\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\nvar format = require('date-fns/format/index.js');\nvar toDate = require('date-fns/toDate/index.js');\n\nclass Component {\n \n onCreate(input) {\n this.state = {\n dateString: \"\"\n };\n\n this.onInput(input);\n }\n\n onInput(input) {\n this.date = toDate(input.milliseconds);\n\n this.format = '';\n\n if(input.date === true || input.date == null) {\n this.format += 'MM/dd/yy ';\n }\n\n if(input.time === true || input.time == null) {\n this.format += 'HH:mm';\n }\n\n this.state.dateString = this.getDateString();\n }\n\n getDateString() {\n console.log\n if(this.date == null) {\n return \"ERR\";\n }\n\n try {\n return format(this.date, this.format);\n }\n catch(err) {\n return \"ERR\";\n }\n }\n \n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\nvar formatDistance = require('date-fns/formatDistance/index.js');\nvar formatDistanceStrict = require('date-fns/formatDistanceStrict/index.js');\nvar toDate = require('date-fns/toDate/index.js');\nvar sub = require('date-fns/sub/index.js');\n\nclass Component {\n onCreate(input) {\n this.state = {\n durationString: this.getDurationString()\n }\n\n this.strict = false;\n\n this.parseInputs(input);\n }\n\n parseInputs(input) {\n this.strict = input.strict||false;\n \n if(input.start) {\n this.start = toDate(input.start);\n }\n else {\n this.start = sub(toDate(Date.now()), {hours: 1});\n }\n\n if(input.end) {\n this.end = toDate(input.end);\n }\n else {\n this.end = toDate(Date.now());\n }\n }\n\n onInput(input) {\n this.parseInputs(input);\n this.state.durationString = this.getDurationString();\n }\n\n getDurationString() {\n if(this.end != null && this.start != null) {\n if(this.strict) {\n return formatDistanceStrict(this.end, this.start);\n }\n return formatDistance(this.end, this.start);\n }\n return \"ERR\";\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n onCreate(input) {\n this.state = {\n classes: []\n }\n\n // Check for these keywords in the input and add them to the class list if present\n this.keywords = [\"labeled\", \"light\", \"dark\", \"disabled\", \"filled\", \"rounded\", \"accent\", \"secondary\", \"padded\", \"centered\", \"fullwidth\", \"alignleft\", \"alignright\", \"paddedwide\", \"paddednarrow\", \"hidden\", \"raised\", \"outlined\", \"fullscreen\"];\n }\n onInput(input) {\n let classes = [input.class||null];\n classes.push(\"ui-element\");\n for(let word of this.keywords) {\n if(input[word]||false === true) {\n classes.push(word);\n }\n }\n this.state.classes = classes;\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n handleItemClick(item, index, event) {\n this.emit(\"itemclick\", {item: item, index: index, event: event})\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n onCreate(input) {\n this.state = {\n value: input.value||null\n }\n }\n\n selectOption(event) {\n this.state.value = event.target.value;\n this.emit('input', {value: this.state.value, event: event});\n }\n\n onInput(input) {\n if(input.value) {\n this.state.value = input.value;\n }\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\n\nclass Component {\n onCreate(input) {\n this.state = {\n value: input.value||null\n }\n }\n\n pushInput(event) {\n this.state.value = event.target.value;\n this.input.value = this.state.value;\n event.value = event.target.value;\n this.handleInput(event);\n }\n\n getValue() {\n return this.state.value;\n }\n\n setValue(value) {\n this.state.value = value;\n this.input.value = value;\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","const Base = require(\"./base.mixin\");\nvar intervalToDuration = require('date-fns/intervalToDuration/index.js');\nvar toDate = require('date-fns/toDate/index.js');\n\nclass Component {\n onCreate(input) {\n this.state = {\n hours: 0,\n minutes: 0,\n seconds: 0,\n start: toDate(input.start||Date.now()),\n divider: input.divider||':',\n hoursSuffix: input.hourlabel||'',\n minutesSuffix: input.minutelabel||'',\n secondsSuffix: input.secondslabel||''\n }\n }\n\n onInput(input) {\n this.state.start = toDate(input.start||Date.now());\n }\n\n onMount() {\n window.setInterval(this.updateTimer.bind(this), 500);\n }\n\n updateTimer() {\n try {\n let duration = intervalToDuration({end: toDate(Date.now()), start: this.state.start});\n this.state.hours = duration.hours||0;\n this.state.minutes = duration.minutes||0;\n this.state.seconds = duration.seconds||0;\n }\n catch(err) {\n\n }\n }\n};\n\nObject.assign(Component.prototype, Base);\n\nmodule.exports = Component;","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst timezones_json_1 = __importDefault(require(\"./timezones.json\"));\r\nexports.default = timezones_json_1.default;\r\n","module.exports = require(\"./src/constants\");","module.exports = require('./src/finalize');","var win = typeof window !== \"undefined\" ? window : global;\nexports.NOOP = win.$W10NOOP = win.$W10NOOP || function () {};","var constants = require(\"./constants\");\nvar isArray = Array.isArray;\n\nfunction resolve(object, path, len) {\n var current = object;\n for (var i=0; i