{"version":3,"file":"main.bundle.js","mappings":"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","sources":["webpack://developer.gov.sg/./node_modules/swiper/swiper-bundle.min.css","webpack://developer.gov.sg/./node_modules/tippy.js/dist/tippy.css","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/api.js","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://developer.gov.sg/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://developer.gov.sg/./node_modules/sgds-govtech/js/sgds.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://developer.gov.sg/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://developer.gov.sg/webpack/bootstrap","webpack://developer.gov.sg/webpack/runtime/compat get default export","webpack://developer.gov.sg/webpack/runtime/define property getters","webpack://developer.gov.sg/webpack/runtime/hasOwnProperty shorthand","webpack://developer.gov.sg/webpack/runtime/make namespace object","webpack://developer.gov.sg/webpack/runtime/jsonp chunk loading","webpack://developer.gov.sg/webpack/runtime/nonce","webpack://developer.gov.sg/./node_modules/tslib/tslib.es6.mjs","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/css-tag.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/reactive-element.js","webpack://developer.gov.sg/./node_modules/lit-html/lit-html.js","webpack://developer.gov.sg/./node_modules/lit-element/node_modules/@lit/reactive-element/css-tag.js","webpack://developer.gov.sg/./node_modules/lit-element/node_modules/@lit/reactive-element/reactive-element.js","webpack://developer.gov.sg/./node_modules/lit-element/lit-element.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/property.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/state.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/base.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/query.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/query-async.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","webpack://developer.gov.sg/./node_modules/lit/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","webpack://developer.gov.sg/./node_modules/lit-html/directive.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/class-map.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/sgds-element2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/sgds-element.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Accordion/sgds-accordion2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Accordion/sgds-accordion.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/animate.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/animation-registry.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/event.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/watch.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Accordion/sgds-accordion-item2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Accordion/sgds-accordion-item.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Accordion/index.js","webpack://developer.gov.sg/./node_modules/@open-wc/dedupe-mixin/src/dedupeMixin.js","webpack://developer.gov.sg/./node_modules/@lit/reactive-element/css-tag.js","webpack://developer.gov.sg/./node_modules/@open-wc/scoped-elements/src/ScopedElementsMixin.js","webpack://developer.gov.sg/./node_modules/lit-html/directive-helpers.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/live.js","webpack://developer.gov.sg/./node_modules/lit-html/async-directive.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/ref.js","webpack://developer.gov.sg/./node_modules/lit-html/static.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/card-element.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/generateId.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/if-defined.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/defaultvalue.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/form.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Checkbox/sgds-checkbox2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Checkbox/sgds-checkbox.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Radio/sgds-radio2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Radio/sgds-radio.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ActionCard/sgds-action-card2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ActionCard/sgds-action-card.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ActionCard/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/sgds-alert2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/sgds-alert.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/sgds-alert-heading.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/sgds-alert-link2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/sgds-alert-link.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Alert/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Badge/sgds-badge2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Badge/sgds-badge.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Badge/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Breadcrumb/sgds-breadcrumb2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Breadcrumb/sgds-breadcrumb.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Breadcrumb/sgds-breadcrumb-item.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Breadcrumb/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Button/sgds-button2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Button/sgds-button.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Button/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Card/sgds-card2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Card/sgds-card.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Card/index.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/enums.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/math.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/within.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/createPopper.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/popper.js","webpack://developer.gov.sg/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/dom/data.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/util/index.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/dom/event-handler.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/dom/manipulator.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/util/config.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/base-component.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/dom/selector-engine.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/dropdown.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/mergeDeep.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/object.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/dropdown-element.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/unsafe-html.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/unsafe-svg.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Input/sgds-input.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ComboBox/sgds-combo-box2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/dropdown-list-element.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ComboBox/sgds-combo-box.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/ComboBox/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Checkbox/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US/_lib/localize.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US/_lib/match.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/locale/en-US.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/defaultOptions.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/constants.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/toDate.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfDay.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/constructFrom.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getDayOfYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/differenceInCalendarDays.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfISOWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getISOWeekYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getISOWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfISOWeekYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getWeekYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/startOfWeekYear.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/addLeadingZeros.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/format/lightFormatters.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/format/formatters.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/format/longFormatters.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/_lib/protectedTokens.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isValid.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isDate.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/format.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/Setter.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/transpose.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/Parser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/constants.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/utils.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/addDays.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/setDay.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/setISODay.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getISODay.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/setWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/setISOWeek.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/parse.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getDefaultOptions.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/getDaysInMonth.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isLastDayOfMonth.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/endOfDay.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/endOfMonth.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/lastDayOfMonth.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/time.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isAfter.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isEqual.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/datepicker-calendar2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/datepicker-calendar.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/node_modules/date-fns/isBefore.mjs","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/datepicker-header2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/datepicker-header.js","webpack://developer.gov.sg/./node_modules/imask/esm/core/utils.js","webpack://developer.gov.sg/./node_modules/imask/esm/core/action-details.js","webpack://developer.gov.sg/./node_modules/imask/esm/core/holder.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/factory.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/mask-element.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/html-mask-element.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/html-input-mask-element.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/html-contenteditable-mask-element.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/input-history.js","webpack://developer.gov.sg/./node_modules/imask/esm/controls/input.js","webpack://developer.gov.sg/./node_modules/imask/esm/core/change-details.js","webpack://developer.gov.sg/./node_modules/imask/esm/core/continuous-tail-details.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/base.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pattern/chunk-tail-details.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pattern/cursor.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pattern/fixed-definition.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pattern/input-definition.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/regexp.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pattern.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/range.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/date.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/dynamic.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/enum.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/number.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/function.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/pipe.js","webpack://developer.gov.sg/./node_modules/imask/esm/masked/repeat.js","webpack://developer.gov.sg/./node_modules/imask/esm/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/datepicker-input.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/sgds-datepicker2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/sgds-datepicker.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Datepicker/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/scroll.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/slot.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Drawer/sgds-drawer2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Drawer/sgds-drawer.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Drawer/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Dropdown/sgds-dropdown.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/base/link-element.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Dropdown/sgds-dropdown-item.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Dropdown/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/FileUpload/sgds-file-upload2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/FileUpload/sgds-file-upload.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/FileUpload/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Footer/sgds-footer2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Footer/sgds-footer.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Footer/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Input/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/breakpoints.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav-dropdown2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav-dropdown.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav-item2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/sgds-mainnav-item.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Mainnav/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Masthead/sgds-masthead2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Masthead/sgds-masthead.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/tabbable.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Masthead/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/utils/modal.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Modal/sgds-modal2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Modal/sgds-modal.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Modal/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Pagination/sgds-pagination2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Pagination/sgds-pagination.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Pagination/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Progress/sgds-progress2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Progress/sgds-progress.js","webpack://developer.gov.sg/./node_modules/lit-html/directives/style-map.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Progress/sgds-progress-bar2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Progress/sgds-progress-bar.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Progress/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/QuantityToggle/sgds-quantity-toggle2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/QuantityToggle/sgds-quantity-toggle.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/QuantityToggle/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Radio/sgds-radio-group2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Radio/sgds-radio-group.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Radio/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav-item2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav-item.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav-link2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/sgds-sidenav-link.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Sidenav/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Spinner/sgds-spinner2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Spinner/sgds-spinner.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Spinner/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Stepper/sgds-stepper2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Stepper/sgds-stepper.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Stepper/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab-group2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab-group.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab-panel2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/sgds-tab-panel.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tab/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Table/sgds-table2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Table/sgds-table.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Table/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Textarea/sgds-textarea2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Textarea/sgds-textarea.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Textarea/index.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Toast/sgds-toast2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Toast/sgds-toast.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Toast/sgds-toast-container2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Toast/sgds-toast-container.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Toast/index.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/util/sanitizer.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/util/template-factory.js","webpack://developer.gov.sg/./node_modules/bootstrap/js/src/tooltip.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tooltip/sgds-tooltip2.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tooltip/sgds-tooltip.js","webpack://developer.gov.sg/./node_modules/ssr-window/ssr-window.esm.js","webpack://developer.gov.sg/./node_modules/@govtechsg/sgds-web-component/components/Tooltip/index.js","webpack://developer.gov.sg/./node_modules/dom7/dom7.esm.js","webpack://developer.gov.sg/./node_modules/swiper/shared/dom.js","webpack://developer.gov.sg/./node_modules/swiper/shared/utils.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-support.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-device.js","webpack://developer.gov.sg/./node_modules/swiper/shared/get-browser.js","webpack://developer.gov.sg/./node_modules/swiper/core/events-emitter.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSize.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlides.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateProgress.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://developer.gov.sg/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/getTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/setTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/minTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/maxTranslate.js","webpack://developer.gov.sg/./node_modules/swiper/core/translate/translateTo.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionEmit.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideTo.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToLoop.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideNext.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slidePrev.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideReset.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToClosest.js","webpack://developer.gov.sg/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchStart.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchMove.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onTouchEnd.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onResize.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onClick.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/onScroll.js","webpack://developer.gov.sg/./node_modules/swiper/core/events/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/addClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/classes/removeClasses.js","webpack://developer.gov.sg/./node_modules/swiper/core/defaults.js","webpack://developer.gov.sg/./node_modules/swiper/core/moduleExtendParams.js","webpack://developer.gov.sg/./node_modules/swiper/core/core.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/setTransition.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionStart.js","webpack://developer.gov.sg/./node_modules/swiper/core/transition/transitionEnd.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopCreate.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopFix.js","webpack://developer.gov.sg/./node_modules/swiper/core/loop/loopDestroy.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://developer.gov.sg/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://developer.gov.sg/./node_modules/swiper/core/check-overflow/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/index.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/loadImage.js","webpack://developer.gov.sg/./node_modules/swiper/core/images/preloadImages.js","webpack://developer.gov.sg/./node_modules/swiper/core/modules/resize/resize.js","webpack://developer.gov.sg/./node_modules/swiper/core/modules/observer/observer.js","webpack://developer.gov.sg/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://developer.gov.sg/./node_modules/swiper/modules/navigation/navigation.js","webpack://developer.gov.sg/./node_modules/swiper/shared/classes-to-selector.js","webpack://developer.gov.sg/./node_modules/swiper/modules/pagination/pagination.js","webpack://developer.gov.sg/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://developer.gov.sg/./node_modules/swiper/swiper-bundle.min.css?0fbc","webpack://developer.gov.sg/./node_modules/tippy.js/dist/tippy.esm.js","webpack://developer.gov.sg/./node_modules/tippy.js/dist/tippy.css?cbcc","webpack://developer.gov.sg/./apps/src/main.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:application/font-woff;charset=utf-8;base64, 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\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/**\\n * Swiper 8.4.5\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2022 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 21, 2022\\n */\\n\\n@font-face{font-family:swiper-icons;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/swiper/swiper-bundle.min.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/**\\n * Swiper 8.4.5\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2022 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 21, 2022\\n */\\n\\n@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:\\\"\\\";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/tippy.js/dist/tippy.css\"],\"names\":[],\"mappings\":\"AAAA,mDAAmD,SAAS,CAAC,kBAAkB,4BAA4B,CAAC,WAAW,iBAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,gDAAgD,CAAC,6CAA6C,QAAQ,CAAC,oDAAoD,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,gDAAgD,KAAK,CAAC,uDAAuD,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,8BAA8B,CAAC,8CAA8C,OAAO,CAAC,qDAAqD,0BAA0B,CAAC,yBAAyB,CAAC,UAAU,CAAC,4BAA4B,CAAC,+CAA+C,MAAM,CAAC,sDAAsD,SAAS,CAAC,0BAA0B,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,6CAA6C,yDAAyD,CAAC,aAAa,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,UAAU,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,eAAe,iBAAiB,CAAC,eAAe,CAAC,SAAS\",\"sourcesContent\":[\".tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:\\\"\\\";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","!function(s){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return s[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=s,n.c=e,n.d=function(s,e,o){n.o(s,e)||Object.defineProperty(s,e,{enumerable:!0,get:o})},n.r=function(s){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(s,\"__esModule\",{value:!0})},n.t=function(s,e){if(1&e&&(s=n(s)),8&e)return s;if(4&e&&\"object\"==typeof s&&s&&s.__esModule)return s;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:s}),2&e&&\"string\"!=typeof s)for(var i in s)n.d(o,i,function(e){return s[e]}.bind(null,i));return o},n.n=function(s){var e=s&&s.__esModule?function(){return s.default}:function(){return s};return n.d(e,\"a\",e),e},n.o=function(s,e){return Object.prototype.hasOwnProperty.call(s,e)},n.p=\"\",n(n.s=0)}([function(s,e,n){\"use strict\";n.r(e);n(1),n(2),n(3),n(4);var o=window.jQuery;if(!o)throw new Error(\"SGDS couldn't initialize; please make sure jQuery is loaded!\");var i=o;i(document).ready((function(){for(var s=i(\".search-toggle\"),e=function(e){var n=s[e],o=n.dataset.target,t=i(\"#\".concat(o)),c=i(n).children(\"span\"),a=i(t).find(\"input\");i(n).click((function(){c.toggleClass(\"sgds-icon-search\").toggleClass(\"sgds-icon-cross\"),t.toggleClass(\"hide\"),a.focus().val(\"\")}))},n=0;n .sgds-accordion\");if(o)for(var t=function(s){var e=o[s],n=i(e).children(\".sgds-accordion-header\"),t=i(e).children(\".sgds-accordion-body\");i(n).click((function(s){var e=i(s.target);i(e).hasClass(\"is-active\")?(i(e).removeClass(\"is-active\").attr(\"aria-expanded\",!1).children(\"i\").removeClass(\"sgds-icon-chevron-up\").addClass(\"sgds-icon-chevron-down\"),i(t).slideUp(300)):(i(e).addClass(\"is-active\").attr(\"aria-expanded\",!0).children(\"i\").removeClass(\"sgds-icon-chevron-down\").addClass(\"sgds-icon-chevron-up\"),i(t).slideDown(300))}))},c=0;c .sgds-accordion\").length)for(var a=i(\".sgds-accordion-set .sgds-accordion-header\"),r=function(s){var e=a.eq(s);e.click((function(){if(e.hasClass(\"is-active\"))e.removeClass(\"is-active\").attr(\"aria-expanded\",!1),e.siblings(\".sgds-accordion-body\").slideUp(300),e.children(\"i\").removeClass(\"sgds-icon-chevron-up\").addClass(\"sgds-icon-chevron-down\");else{var s=e.parent().siblings(\".sgds-accordion\").children(\".sgds-accordion-header\");s&&(s.children(\"i\").removeClass(\"sgds-icon-chevron-up\").addClass(\"sgds-icon-chevron-down\"),s.removeClass(\"is-active\"),s.siblings(\".sgds-accordion-body\").slideUp(300).removeClass(\"is-open\")),e.addClass(\"is-active\").attr(\"aria-expanded\",!0),e.children(\"i\").removeClass(\"sgds-icon-chevron-down\").addClass(\"sgds-icon-chevron-up\"),e.siblings(\".sgds-accordion-body\").slideDown(300).addClass(\"is-open\")}}))},d=0;d0)for(var v=0;v0&&s.each((function(s,e){var n=i(e);n.removeClass(\"is-active\");var o=n.find(\"a[data-tab]\");i(o.attr(\"data-tab\")).hide()}))}}))}))}var g=i(\".sgds-navbar-burger\");g.length>0&&g.each((function(s,e){i(e).click((function(){var s=e.dataset.target,n=document.getElementById(s);e.classList.toggle(\"is-active\"),n.classList.toggle(\"is-active\")}))}));var u=i(\".navbar-burger\");u.length>0&&u.each((function(s,e){i(e).click((function(){var s=e.dataset.target,n=document.getElementById(s);e.classList.toggle(\"is-active\"),n.classList.toggle(\"is-active\")}))}));var f=i(\".sgds-dropdown:not(.is-hoverable)\");f.length>0&&(f.each((function(s,e){var n=e.querySelector(\".sgds-dropdown-trigger\");n.addEventListener(\"click\",(function(s){s.stopPropagation(),e.classList.toggle(\"is-active\");var o=n.querySelector(\".sgds-icon\");e.classList.contains(\"is-active\")?(o.classList.remove(\"sgds-icon-chevron-down\"),o.classList.add(\"sgds-icon-chevron-up\")):(o.classList.remove(\"sgds-icon-chevron-up\"),o.classList.add(\"sgds-icon-chevron-down\"))}))})),document.addEventListener(\"click\",(function(s){f.each((function(e,n){n.contains(s.target)||n.classList.remove(\"is-active\");var o=n.querySelector(\".sgds-button .sgds-icon\");o&&(o.classList.remove(\"sgds-icon-chevron-up\"),o.classList.add(\"sgds-icon-chevron-down\"))}))})),document.addEventListener(\"keydown\",(function(s){27===(s||window.event).keyCode&&f.each((function(s,e){e.classList.remove(\"is-active\");var n=e.querySelector(\".sgds-button .sgds-icon\");n&&(n.classList.remove(\"sgds-icon-chevron-up\"),n.classList.add(\"sgds-icon-chevron-down\"))}))})));var h=i(\".language-selector\");h.length&&h.each((function(s,e){var n=i(\"#\"+e.dataset.target);i(e).click((function(){n.toggle()})),document.addEventListener(\"click\",(function(s){e.contains(s.target)||n.hide()}))}))})),document.querySelector(\"li.second-level-nav\")&&function(){for(var s=document.querySelectorAll(\"li.second-level-nav\"),e=function(e){var n=s[e],o=n.nextElementSibling;o&&o.classList.contains(\"second-level-nav-div\")&&n.addEventListener(\"click\",(function(s){var e=n.querySelector(\"i\");o.classList.contains(\"is-hidden\")?(o.classList.remove(\"is-hidden\"),e&&(e.classList.remove(\"sgds-icon-chevron-down\"),e.classList.add(\"sgds-icon-chevron-up\"))):(o.classList.add(\"is-hidden\"),e&&(e.classList.remove(\"sgds-icon-chevron-up\"),e.classList.add(\"sgds-icon-chevron-down\")))}))},n=0;n 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"\":\"\",u=f;for(let i=0;i\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"\")+(2===i?\"\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(i,n){return o({descriptor:o=>{const t={get(){var o,n;return null!==(n=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(n){const n=\"symbol\"==typeof o?Symbol():\"__\"+o;t.get=function(){var o,t;return void 0===this[n]&&(this[n]=null!==(t=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==t?t:null),this[n]}}return t}})}export{i as query};\n//# sourceMappingURL=query.js.map\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction e(e){return r({descriptor:r=>({async get(){var r;return await this.updateComplete,null===(r=this.renderRoot)||void 0===r?void 0:r.querySelector(e)},enumerable:!0,configurable:!0})})}export{e as queryAsync};\n//# sourceMappingURL=query-async.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{decorateProperty as e}from\"./base.js\";import{queryAssignedElements as t}from\"./query-assigned-elements.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o,n,r){let l,s=o;return\"object\"==typeof o?(s=o.slot,l=o):l={flatten:n},r?t({slot:s,flatten:n,selector:r}):e({descriptor:e=>({get(){var e,t;const o=\"slot\"+(s?`[name=${s}]`:\":not([name])\"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(o);return null!==(t=null==n?void 0:n.assignedNodes(l))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}export{o as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`@charset \"UTF-8\";:root{--sgds-blue:#1f69ff;--sgds-purple:#5925dc;--sgds-pink:#d63384;--sgds-red:#d7260f;--sgds-yellow:#f79009;--sgds-green:#0a8217;--sgds-cyan:#0f71bb;--sgds-white:#fff;--sgds-gray:#344054;--sgds-gray-dark:#000;--sgds-gray-100:#f7f7f9;--sgds-gray-200:#e4e7ec;--sgds-gray-300:#d0d5dd;--sgds-gray-400:#98a2b3;--sgds-gray-500:#667085;--sgds-gray-600:#344054;--sgds-gray-700:#1d2939;--sgds-gray-800:#000;--sgds-gray-900:#000;--sgds-primary:#5925dc;--sgds-secondary:#1f69ff;--sgds-success:#0a8217;--sgds-info:#0f71bb;--sgds-warning:#f79009;--sgds-danger:#d7260f;--sgds-light:#f7f7f9;--sgds-dark:#000;--sgds-primary-rgb:89,37,220;--sgds-secondary-rgb:31,105,255;--sgds-success-rgb:10,130,23;--sgds-info-rgb:15,113,187;--sgds-warning-rgb:247,144,9;--sgds-danger-rgb:215,38,15;--sgds-light-rgb:247,247,249;--sgds-dark-rgb:0,0,0;--sgds-white-rgb:255,255,255;--sgds-black-rgb:0,0,0;--sgds-body-color-rgb:29,41,57;--sgds-body-bg-rgb:255,255,255;--sgds-font-sans-serif:\"Inter\",system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,\"Noto Sans\",\"Liberation Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--sgds-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--sgds-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--sgds-body-font-family:var(--sgds-font-sans-serif);--sgds-body-font-size:1rem;--sgds-body-font-weight:400;--sgds-body-line-height:2;--sgds-body-color:#1d2939;--sgds-body-bg:#fff;--sgds-gutter-x:1.5rem}@media (min-width:992px){:root{--section-padding:3rem 1.5rem;--section-padding-xs:1rem 1.5rem;--section-padding-sm:1.5rem 1.5rem;--section-padding-lg:9rem 1.5rem;--section-padding-xl:18rem 1.5rem}}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--sgds-body-bg);color:var(--sgds-body-color);font-family:var(--sgds-body-font-family);font-size:var(--sgds-body-font-size);font-weight:var(--sgds-body-font-weight);line-height:var(--sgds-body-line-height);margin:0;text-align:var(--sgds-body-text-align)}hr{background-color:currentColor;border:0;color:inherit;margin:1rem 0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,.sgds.footer .footer-header .title,h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:.5rem;margin-top:0}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,.sgds.footer .footer-header .title,h3{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h3,.sgds.footer .footer-header .title,h3{font-size:1.5rem}}.h4,h4{font-size:1.125rem}.h5,.h6,h5,h6{font-size:1rem}p{margin-bottom:1.5rem;margin-top:0}abbr[data-bs-original-title],abbr[title]{cursor:help;text-decoration:underline dotted;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-left:2rem}dl,ol,ul{margin-bottom:1rem;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{background-color:#fcf8e3;padding:.2em}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0f71bb;text-decoration:underline}a:hover{color:#0c5a96}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{direction:ltr;font-family:var(--sgds-font-monospace);font-size:1em;unicode-bidi:bidi-override}pre{display:block;font-size:.875em;margin-bottom:1rem;margin-top:0;overflow:auto}pre code{color:inherit;font-size:inherit;word-break:normal}code{word-wrap:break-word;color:#d63384;font-size:.875em}a>code{color:inherit}kbd{background-color:#000;border-radius:.2rem;color:#fff;font-size:.875em;padding:.2rem .4rem}kbd kbd{font-size:1em;font-weight:700;padding:0}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{border-collapse:collapse;caption-side:bottom}caption{color:#667085;padding-bottom:1rem;padding-top:1rem;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}textarea{resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{float:left;font-size:calc(1.275rem + .3vw);line-height:inherit;margin-bottom:.5rem;padding:0;width:100%}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}.h1,h1{line-height:1.2}.h2,h2{line-height:1.25}.h3,.sgds.footer .footer-header .title,h3{line-height:1.33}.h4,h4{line-height:1.78}.h5,.h6,h5,h6{line-height:1.2}.lead{font-size:1.25rem;font-weight:300}.display-0{font-size:calc(1.475rem + 2.7vw);font-weight:700;line-height:1.2}@media (min-width:1200px){.display-0{font-size:3.5rem}}.display-1{font-size:calc(1.375rem + 1.5vw);font-weight:700;line-height:1.2}@media (min-width:1200px){.display-1{font-size:2.5rem}}.display-2{font-size:calc(1.325rem + .9vw);font-weight:700;line-height:1.2}@media (min-width:1200px){.display-2{font-size:2rem}}.display-3{font-size:calc(1.275rem + .3vw);font-weight:700;line-height:1.2}@media (min-width:1200px){.display-3{font-size:1.5rem}}.display-4{font-size:1.125rem;font-weight:700;line-height:1.2}.display-5,.display-6{font-size:1rem;font-weight:700;line-height:1.2}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{color:#344054;font-size:.875em;margin-bottom:1rem;margin-top:-1rem}.blockquote-footer:before{content:\"— \"}p+p{margin-top:1.5rem}a{text-underline-offset:.25rem}a[target=_blank]:after{content:\"\\\\f1c5\";display:inline-block;font-family:bootstrap-icons;padding-left:.25rem;text-decoration-line:none}.img-fluid,.img-thumbnail{height:auto;max-width:100%}.img-thumbnail{background-color:#fff;border:1px solid #d0d5dd;border-radius:.3125rem;padding:.25rem}.figure{display:inline-block}.figure-img{line-height:1;margin-bottom:.5rem}.figure-caption{color:#344054;font-size:.875em}.section{padding:var(--section-padding)}.section-xs{padding:var(--section-padding-xs)}.section-sm{padding:var(--section-padding-sm)}.section-md{padding:var(--section-padding)}.section-lg{padding:var(--section-padding-lg)}.section-xl{padding:var(--section-padding-xl)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{margin-left:auto;margin-right:auto;padding-left:var(--sgds-gutter-x,.75rem);padding-right:var(--sgds-gutter-x,.75rem);width:100%}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--sgds-gutter-x:1.5rem;--sgds-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--sgds-gutter-x)*-.5);margin-right:calc(var(--sgds-gutter-x)*-.5);margin-top:calc(var(--sgds-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--sgds-gutter-y);max-width:100%;padding-left:calc(var(--sgds-gutter-x)*.5);padding-right:calc(var(--sgds-gutter-x)*.5);width:100%}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--sgds-gutter-x:0}.g-0,.gy-0{--sgds-gutter-y:0}.g-1,.gx-1{--sgds-gutter-x:0.25rem}.g-1,.gy-1{--sgds-gutter-y:0.25rem}.g-2,.gx-2{--sgds-gutter-x:0.5rem}.g-2,.gy-2{--sgds-gutter-y:0.5rem}.g-3,.gx-3{--sgds-gutter-x:1rem}.g-3,.gy-3{--sgds-gutter-y:1rem}.g-4,.gx-4{--sgds-gutter-x:1.5rem}.g-4,.gy-4{--sgds-gutter-y:1.5rem}.g-5,.gx-5{--sgds-gutter-x:2rem}.g-5,.gy-5{--sgds-gutter-y:2rem}.g-6,.gx-6{--sgds-gutter-x:2.5rem}.g-6,.gy-6{--sgds-gutter-y:2.5rem}.g-7,.gx-7{--sgds-gutter-x:3rem}.g-7,.gy-7{--sgds-gutter-y:3rem}.g-8,.gx-8{--sgds-gutter-x:3.5rem}.g-8,.gy-8{--sgds-gutter-y:3.5rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--sgds-gutter-x:0}.g-sm-0,.gy-sm-0{--sgds-gutter-y:0}.g-sm-1,.gx-sm-1{--sgds-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--sgds-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--sgds-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--sgds-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--sgds-gutter-x:1rem}.g-sm-3,.gy-sm-3{--sgds-gutter-y:1rem}.g-sm-4,.gx-sm-4{--sgds-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--sgds-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--sgds-gutter-x:2rem}.g-sm-5,.gy-sm-5{--sgds-gutter-y:2rem}.g-sm-6,.gx-sm-6{--sgds-gutter-x:2.5rem}.g-sm-6,.gy-sm-6{--sgds-gutter-y:2.5rem}.g-sm-7,.gx-sm-7{--sgds-gutter-x:3rem}.g-sm-7,.gy-sm-7{--sgds-gutter-y:3rem}.g-sm-8,.gx-sm-8{--sgds-gutter-x:3.5rem}.g-sm-8,.gy-sm-8{--sgds-gutter-y:3.5rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--sgds-gutter-x:0}.g-md-0,.gy-md-0{--sgds-gutter-y:0}.g-md-1,.gx-md-1{--sgds-gutter-x:0.25rem}.g-md-1,.gy-md-1{--sgds-gutter-y:0.25rem}.g-md-2,.gx-md-2{--sgds-gutter-x:0.5rem}.g-md-2,.gy-md-2{--sgds-gutter-y:0.5rem}.g-md-3,.gx-md-3{--sgds-gutter-x:1rem}.g-md-3,.gy-md-3{--sgds-gutter-y:1rem}.g-md-4,.gx-md-4{--sgds-gutter-x:1.5rem}.g-md-4,.gy-md-4{--sgds-gutter-y:1.5rem}.g-md-5,.gx-md-5{--sgds-gutter-x:2rem}.g-md-5,.gy-md-5{--sgds-gutter-y:2rem}.g-md-6,.gx-md-6{--sgds-gutter-x:2.5rem}.g-md-6,.gy-md-6{--sgds-gutter-y:2.5rem}.g-md-7,.gx-md-7{--sgds-gutter-x:3rem}.g-md-7,.gy-md-7{--sgds-gutter-y:3rem}.g-md-8,.gx-md-8{--sgds-gutter-x:3.5rem}.g-md-8,.gy-md-8{--sgds-gutter-y:3.5rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--sgds-gutter-x:0}.g-lg-0,.gy-lg-0{--sgds-gutter-y:0}.g-lg-1,.gx-lg-1{--sgds-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--sgds-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--sgds-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--sgds-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--sgds-gutter-x:1rem}.g-lg-3,.gy-lg-3{--sgds-gutter-y:1rem}.g-lg-4,.gx-lg-4{--sgds-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--sgds-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--sgds-gutter-x:2rem}.g-lg-5,.gy-lg-5{--sgds-gutter-y:2rem}.g-lg-6,.gx-lg-6{--sgds-gutter-x:2.5rem}.g-lg-6,.gy-lg-6{--sgds-gutter-y:2.5rem}.g-lg-7,.gx-lg-7{--sgds-gutter-x:3rem}.g-lg-7,.gy-lg-7{--sgds-gutter-y:3rem}.g-lg-8,.gx-lg-8{--sgds-gutter-x:3.5rem}.g-lg-8,.gy-lg-8{--sgds-gutter-y:3.5rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--sgds-gutter-x:0}.g-xl-0,.gy-xl-0{--sgds-gutter-y:0}.g-xl-1,.gx-xl-1{--sgds-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--sgds-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--sgds-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--sgds-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--sgds-gutter-x:1rem}.g-xl-3,.gy-xl-3{--sgds-gutter-y:1rem}.g-xl-4,.gx-xl-4{--sgds-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--sgds-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--sgds-gutter-x:2rem}.g-xl-5,.gy-xl-5{--sgds-gutter-y:2rem}.g-xl-6,.gx-xl-6{--sgds-gutter-x:2.5rem}.g-xl-6,.gy-xl-6{--sgds-gutter-y:2.5rem}.g-xl-7,.gx-xl-7{--sgds-gutter-x:3rem}.g-xl-7,.gy-xl-7{--sgds-gutter-y:3rem}.g-xl-8,.gx-xl-8{--sgds-gutter-x:3.5rem}.g-xl-8,.gy-xl-8{--sgds-gutter-y:3.5rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--sgds-gutter-x:0}.g-xxl-0,.gy-xxl-0{--sgds-gutter-y:0}.g-xxl-1,.gx-xxl-1{--sgds-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--sgds-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--sgds-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--sgds-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--sgds-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--sgds-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--sgds-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--sgds-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--sgds-gutter-x:2rem}.g-xxl-5,.gy-xxl-5{--sgds-gutter-y:2rem}.g-xxl-6,.gx-xxl-6{--sgds-gutter-x:2.5rem}.g-xxl-6,.gy-xxl-6{--sgds-gutter-y:2.5rem}.g-xxl-7,.gx-xxl-7{--sgds-gutter-x:3rem}.g-xxl-7,.gy-xxl-7{--sgds-gutter-y:3rem}.g-xxl-8,.gx-xxl-8{--sgds-gutter-x:3.5rem}.g-xxl-8,.gy-xxl-8{--sgds-gutter-y:3.5rem}}.table{--sgds-table-bg:transparent;--sgds-table-accent-bg:transparent;--sgds-table-striped-color:#1d2939;--sgds-table-striped-bg:rgba(0,0,0,.05);--sgds-table-active-color:#1d2939;--sgds-table-active-bg:rgba(0,0,0,.1);--sgds-table-hover-color:#1d2939;--sgds-table-hover-bg:rgba(0,0,0,.075);border-color:#98a2b3;color:#1d2939;margin-bottom:1rem;vertical-align:top;width:100%}.table>:not(caption)>*>*{background-color:var(--sgds-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--sgds-table-accent-bg);padding:1rem}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.5rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--sgds-table-accent-bg:var(--sgds-table-striped-bg);color:var(--sgds-table-striped-color)}.table-active{--sgds-table-accent-bg:var(--sgds-table-active-bg);color:var(--sgds-table-active-color)}.table-hover>tbody>tr:hover>*{--sgds-table-accent-bg:var(--sgds-table-hover-bg);color:var(--sgds-table-hover-color)}.table-danger,.table-info,.table-primary,.table-secondary,.table-success,.table-warning{--sgds-table-bg:#000;--sgds-table-striped-bg:#0d0d0d;--sgds-table-striped-color:#fff;--sgds-table-active-bg:#1a1a1a;--sgds-table-active-color:#fff;--sgds-table-hover-bg:#131313;--sgds-table-hover-color:#fff;border-color:#1a1a1a;color:#fff}.table-light{--sgds-table-bg:#f7f7f9;--sgds-table-striped-bg:#ebebed;--sgds-table-striped-color:#000;--sgds-table-active-bg:#dedee0;--sgds-table-active-color:#000;--sgds-table-hover-bg:#e4e4e6;--sgds-table-hover-color:#000;border-color:#dedee0;color:#000}.table-dark{--sgds-table-bg:#000;--sgds-table-striped-bg:#0d0d0d;--sgds-table-striped-color:#fff;--sgds-table-active-bg:#1a1a1a;--sgds-table-active-color:#fff;--sgds-table-hover-bg:#131313;--sgds-table-hover-color:#fff;border-color:#1a1a1a;color:#fff}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:1199.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:1399.98px){.table-responsive-xxl{-webkit-overflow-scrolling:touch;overflow-x:auto}}.sgds.table{font-size:1rem}.form-label{font-weight:700;margin-bottom:.5rem}.col-form-label{font-size:inherit;font-weight:700;line-height:2;margin-bottom:0;padding-bottom:calc(.4375rem + 1px);padding-top:calc(.4375rem + 1px)}.col-form-label-lg{font-size:1.25rem;padding-bottom:calc(.5rem + 1px);padding-top:calc(.5rem + 1px)}.col-form-label-sm{font-size:.875rem;padding-bottom:calc(.25rem + 1px);padding-top:calc(.25rem + 1px)}.form-label{margin-bottom:0}.form-text{color:#667085;font-size:1rem;font-weight:300}.form-control{appearance:none;background-clip:padding-box;background-color:#fff;border:1px solid #98a2b3;border-radius:.3125rem;color:#1d2939;display:block;font-size:1rem;font-weight:400;line-height:2;padding:.4375rem 1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{background-color:#fff;border-color:#87b8dd;box-shadow:0 0 0 .125rem rgba(15,113,187,.25);color:#1d2939;outline:0}.form-control::-webkit-date-and-time-value{height:2em}.form-control::placeholder{color:#98a2b3;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e4e7ec;opacity:1}.form-control::file-selector-button{background-color:#e4e7ec;border:0 solid;border-color:inherit;border-inline-end-width:1px;border-radius:0;color:#1d2939;margin:-.4375rem -1rem;margin-inline-end:1rem;padding:.4375rem 1rem;pointer-events:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#d9dbe0}.form-control::-webkit-file-upload-button{background-color:#e4e7ec;border:0 solid;border-color:inherit;border-inline-end-width:1px;border-radius:0;color:#1d2939;margin:-.4375rem -1rem;margin-inline-end:1rem;padding:.4375rem 1rem;pointer-events:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#d9dbe0}.form-control-plaintext{background-color:transparent;border:solid transparent;border-width:1px 0;color:#1d2939;display:block;line-height:2;margin-bottom:0;padding:.4375rem 0;width:100%}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-left:0;padding-right:0}.form-control-sm{border-radius:.2rem;font-size:.875rem;min-height:calc(2em + .5rem + 2px);padding:.25rem .5rem}.form-control-sm::file-selector-button{margin:-.25rem -.5rem;margin-inline-end:.5rem;padding:.25rem .5rem}.form-control-sm::-webkit-file-upload-button{margin:-.25rem -.5rem;margin-inline-end:.5rem;padding:.25rem .5rem}.form-control-lg{border-radius:.3rem;font-size:1.25rem;min-height:calc(2em + 1rem + 2px);padding:.5rem 1rem}.form-control-lg::file-selector-button{margin:-.5rem -1rem;margin-inline-end:1rem;padding:.5rem 1rem}.form-control-lg::-webkit-file-upload-button{margin:-.5rem -1rem;margin-inline-end:1rem;padding:.5rem 1rem}textarea.form-control{min-height:calc(2em + .875rem + 2px)}textarea.form-control-sm{min-height:calc(2em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(2em + 1rem + 2px)}.form-control-color{height:auto;padding:.4375rem;width:3rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border-radius:.3125rem;height:2em}.form-control-color::-webkit-color-swatch{border-radius:.3125rem;height:2em}.sgds.combobox .form-control-icon,.sgds.combobox .form-control-icon-validate,.sgds.form-control-group .form-control-icon,.sgds.form-control-group .form-control-icon-validate{align-items:center;display:flex;font-size:1rem;height:3rem;justify-content:center;position:absolute;width:3rem;z-index:4}.sgds.combobox,.sgds.form-control-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.sgds.combobox>.form-control,.sgds.form-control-group>.form-control{padding-left:3rem}.sgds.combobox>.form-control:focus,.sgds.form-control-group>.form-control:focus{z-index:3}.sgds.combobox .form-control-icon-validate,.sgds.form-control-group .form-control-icon-validate{left:inherit;right:0}.form-select{-moz-padding-start:calc(1rem - 3px);appearance:none;background-color:#fff;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E\");background-position:right 1rem center;background-repeat:no-repeat;background-size:16px 12px;border:1px solid #98a2b3;border-radius:.3125rem;color:#1d2939;display:block;font-size:1rem;font-weight:400;line-height:2;padding:.4375rem 3rem .4375rem 1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#87b8dd;box-shadow:0 0 0 .125rem rgba(15,113,187,.25);outline:0}.form-select[multiple],.form-select[size]:not([size=\"1\"]){background-image:none;padding-right:1rem}.form-select:disabled{background-color:#e4e7ec}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #1d2939}.form-select-sm{border-radius:.2rem;font-size:.875rem;padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}.form-select-lg{border-radius:.3rem;font-size:1.25rem;padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem}.form-check{display:block;margin-bottom:.125rem;min-height:2rem;padding-left:1.625em}.form-check .form-check-input{float:left;margin-left:-1.625em}.form-check-input{color-adjust:exact;appearance:none;background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:contain;border:1px solid rgba(0,0,0,.25);height:1.125em;margin-top:.4375em;vertical-align:top;width:1.125em}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#87b8dd;box-shadow:0 0 0 .125rem rgba(15,113,187,.25);outline:0}.form-check-input:checked{background-color:#0f71bb;border-color:#0f71bb}.form-check-input:checked[type=checkbox]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E\")}.form-check-input:checked[type=radio]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E\")}.form-check-input[type=checkbox]:indeterminate{background-color:#0f71bb;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E\");border-color:#0f71bb}.form-check-input:disabled{filter:none;opacity:.5;pointer-events:none}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0, 0, 0, 0.25)'/%3E%3C/svg%3E\");background-position:0;border-radius:2em;margin-left:-2.5em;transition:background-position .15s ease-in-out;width:2em}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2387b8dd'/%3E%3C/svg%3E\")}.form-switch .form-check-input:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");background-position:100%}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{clip:rect(0,0,0,0);pointer-events:none;position:absolute}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{filter:none;opacity:.65;pointer-events:none}.form-range{appearance:none;background-color:transparent;height:1.25rem;padding:0;width:100%}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .125rem rgba(15,113,187,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .125rem rgba(15,113,187,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{appearance:none;background-color:#0f71bb;border:0;border-radius:1rem;height:1rem;margin-top:-.25rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b7d4eb}.form-range::-webkit-slider-runnable-track{background-color:#d0d5dd;border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range::-moz-range-thumb{appearance:none;background-color:#0f71bb;border:0;border-radius:1rem;height:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1rem}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b7d4eb}.form-range::-moz-range-track{background-color:#d0d5dd;border-color:transparent;border-radius:1rem;color:transparent;cursor:pointer;height:.5rem;width:100%}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#667085}.form-range:disabled::-moz-range-thumb{background-color:#667085}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{border:1px solid transparent;height:100%;left:0;padding:1rem;pointer-events:none;position:absolute;top:0;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control:-webkit-autofill{padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-select{padding-bottom:.625rem;padding-top:1.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{align-items:stretch;display:flex;flex-wrap:wrap;position:relative;width:100%}.input-group>.form-control,.input-group>.form-select{flex:1 1 auto;min-width:0;position:relative;width:1%}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{align-items:center;background-color:#e4e7ec;border:1px solid #98a2b3;border-radius:.3125rem;color:#1d2939;display:flex;font-size:1rem;font-weight:400;line-height:2;padding:.4375rem 1rem;text-align:center;white-space:nowrap}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{border-radius:.3rem;font-size:1.25rem;padding:.5rem 1rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{border-radius:.2rem;font-size:.875rem;padding:.25rem .5rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-bottom-right-radius:0;border-top-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.sgds.input-group .input-group-text .form-check-input{margin-top:0}.sgds.input-group[variant=quantity-toggle] input::-webkit-inner-spin-button,.sgds.input-group[variant=quantity-toggle] input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.valid-feedback{color:#0a8217;display:none;font-size:1rem;width:100%}.valid-tooltip{background-color:#0a8217;border-radius:.3125rem;color:#fff;display:none;font-size:.875rem;margin-top:.1rem;max-width:100%;padding:.5rem 1rem;position:absolute;top:100%;z-index:5}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%230A8217'%3E%3Cpath d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z'/%3E%3C/svg%3E\");background-position:right calc(.5em + .21875rem) center;background-repeat:no-repeat;background-size:calc(1em + .4375rem) calc(1em + .4375rem);border-color:#0a8217;padding-right:calc(2em + .875rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#0a8217;box-shadow:0 0 0 .125rem rgba(10,130,23,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{background-position:top calc(.5em + .21875rem) right calc(.5em + .21875rem);padding-right:calc(2em + .875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#0a8217}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E\"),url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%230A8217'%3E%3Cpath d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425a.247.247 0 0 1 .02-.022Z'/%3E%3C/svg%3E\");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(1em + .4375rem) calc(1em + .4375rem);padding-right:5.5rem}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#0a8217;box-shadow:0 0 0 .125rem rgba(10,130,23,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#0a8217}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#0a8217}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .125rem rgba(10,130,23,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#0a8217}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{color:#d7260f;display:none;font-size:1rem;width:100%}.invalid-tooltip{background-color:#d7260f;border-radius:.3125rem;color:#fff;display:none;font-size:.875rem;margin-top:.1rem;max-width:100%;padding:.5rem 1rem;position:absolute;top:100%;z-index:5}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23D7260F'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z'/%3E%3C/svg%3E\");background-position:right calc(.5em + .21875rem) center;background-repeat:no-repeat;background-size:calc(1em + .4375rem) calc(1em + .4375rem);border-color:#d7260f;padding-right:calc(2em + .875rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d7260f;box-shadow:0 0 0 .125rem rgba(215,38,15,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{background-position:top calc(.5em + .21875rem) right calc(.5em + .21875rem);padding-right:calc(2em + .875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d7260f}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"]{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E\"),url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23D7260F'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z'/%3E%3C/svg%3E\");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(1em + .4375rem) calc(1em + .4375rem);padding-right:5.5rem}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d7260f;box-shadow:0 0 0 .125rem rgba(215,38,15,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d7260f}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d7260f}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .125rem rgba(215,38,15,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d7260f}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.footer-list-styling ul,.sgds.footer .footer-contact-links ul,.sgds.footer .footer-items ul,.sgds.footer .footer-mandatory-links ul{margin:0;padding:0}.footer-list-styling ul li,.sgds.footer .footer-contact-links ul li,.sgds.footer .footer-items ul li,.sgds.footer .footer-mandatory-links ul li{font-size:1rem;line-height:1.5;list-style-type:none}.footer-list-styling ul li+li,.sgds.footer .footer-contact-links ul li+li,.sgds.footer .footer-items ul li+li,.sgds.footer .footer-mandatory-links ul li+li{margin-top:1rem}.footer-list-styling ul li a,.sgds.footer .footer-contact-links ul li a,.sgds.footer .footer-items ul li a,.sgds.footer .footer-mandatory-links ul li a{color:#d0d5dd;text-decoration:none}.footer-list-styling ul li a:hover,.sgds.footer,.sgds.footer .footer-contact-links ul li a:hover,.sgds.footer .footer-items ul li a:hover,.sgds.footer .footer-mandatory-links ul li a:hover{color:#f7f7f9}.sgds.footer{height:auto}.sgds.footer .footer-top{background-color:#000;padding:3rem 0 1.5rem}.sgds.footer .footer-header{margin-bottom:1.5rem}.sgds.footer .footer-header .title{margin-bottom:1rem}.sgds.footer .footer-header .description{color:#98a2b3}@media (max-width:575.98px){.sgds.footer .footer-items>div[class*=col]+div[class*=col]{margin-top:2rem}}.sgds.footer .footer-items .title{font-weight:700}.sgds.footer .footer-items .links{margin-top:1rem}.sgds.footer .footer-contact-links{margin-top:2rem}@media (min-width:992px){.sgds.footer .footer-contact-links ul li{display:inline-block}.sgds.footer .footer-contact-links ul li+li{margin-left:1rem}}.sgds.footer .footer-bottom{background-color:#000;border-top:1px solid #000;padding:1.5rem 0}@media (min-width:992px){.sgds.footer .footer-mandatory-links ul li{display:inline-block}.sgds.footer .footer-mandatory-links ul li+li{margin-left:1rem}}@media (max-width:991.98px){.sgds.footer .footer-copyrights{margin-top:1rem}}.btn{background-color:transparent;border:1px solid transparent;border-radius:.3125rem;color:#1d2939;cursor:pointer;display:inline-block;font-size:1rem;font-weight:400;line-height:2;padding:.4375rem 1rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;user-select:none;vertical-align:middle}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#1d2939}.btn-check:focus+.btn,.btn:focus{box-shadow:0 0 0 .125rem rgba(15,113,187,.25);outline:0}.btn.disabled,.btn:disabled,fieldset:disabled .btn{opacity:.65;pointer-events:none}.btn-primary{background-color:#5925dc;border-color:#5925dc;color:#fff}.btn-check:focus+.btn-primary,.btn-primary:focus,.btn-primary:hover{background-color:#4c1fbb;border-color:#471eb0;color:#fff}.btn-check:focus+.btn-primary,.btn-primary:focus{box-shadow:0 0 0 .125rem rgba(114,70,225,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{background-color:#471eb0;border-color:#431ca5;color:#fff}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(114,70,225,.5)}.btn-primary.disabled,.btn-primary:disabled{background-color:#5925dc;border-color:#5925dc;color:#fff}.btn-secondary{background-color:#1f69ff;border-color:#1f69ff;color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus,.btn-secondary:hover{background-color:#1a59d9;border-color:#1954cc;color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{box-shadow:0 0 0 .125rem rgba(65,128,255,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{background-color:#1954cc;border-color:#174fbf;color:#fff}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(65,128,255,.5)}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#1f69ff;border-color:#1f69ff;color:#fff}.btn-success{background-color:#0a8217;border-color:#0a8217;color:#fff}.btn-check:focus+.btn-success,.btn-success:focus,.btn-success:hover{background-color:#096f14;border-color:#086812;color:#fff}.btn-check:focus+.btn-success,.btn-success:focus{box-shadow:0 0 0 .125rem rgba(47,149,58,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{background-color:#086812;border-color:#086211;color:#fff}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(47,149,58,.5)}.btn-success.disabled,.btn-success:disabled{background-color:#0a8217;border-color:#0a8217;color:#fff}.btn-info{background-color:#0f71bb;border-color:#0f71bb;color:#fff}.btn-check:focus+.btn-info,.btn-info:focus,.btn-info:hover{background-color:#0d609f;border-color:#0c5a96;color:#fff}.btn-check:focus+.btn-info,.btn-info:focus{box-shadow:0 0 0 .125rem rgba(51,134,197,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{background-color:#0c5a96;border-color:#0b558c;color:#fff}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(51,134,197,.5)}.btn-info.disabled,.btn-info:disabled{background-color:#0f71bb;border-color:#0f71bb;color:#fff}.btn-warning{background-color:#f79009;border-color:#f79009;color:#000}.btn-check:focus+.btn-warning,.btn-warning:focus,.btn-warning:hover{background-color:#f8a12e;border-color:#f89b22;color:#000}.btn-check:focus+.btn-warning,.btn-warning:focus{box-shadow:0 0 0 .125rem rgba(210,122,8,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{background-color:#f9a63a;border-color:#f89b22;color:#000}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(210,122,8,.5)}.btn-warning.disabled,.btn-warning:disabled{background-color:#f79009;border-color:#f79009;color:#000}.btn-danger{background-color:#d7260f;border-color:#d7260f;color:#fff}.btn-check:focus+.btn-danger,.btn-danger:focus,.btn-danger:hover{background-color:#b7200d;border-color:#ac1e0c;color:#fff}.btn-check:focus+.btn-danger,.btn-danger:focus{box-shadow:0 0 0 .125rem rgba(221,71,51,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{background-color:#ac1e0c;border-color:#a11d0b;color:#fff}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(221,71,51,.5)}.btn-danger.disabled,.btn-danger:disabled{background-color:#d7260f;border-color:#d7260f;color:#fff}.btn-light{background-color:#f7f7f9;border-color:#f7f7f9;color:#000}.btn-check:focus+.btn-light,.btn-light:focus,.btn-light:hover{background-color:#f8f8fa;border-color:#f8f8fa;color:#000}.btn-check:focus+.btn-light,.btn-light:focus{box-shadow:0 0 0 .125rem hsla(240,2%,83%,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{background-color:#f9f9fa;border-color:#f8f8fa;color:#000}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .125rem hsla(240,2%,83%,.5)}.btn-light.disabled,.btn-light:disabled{background-color:#f7f7f9;border-color:#f7f7f9;color:#000}.btn-check:focus+.btn-dark,.btn-dark,.btn-dark:focus,.btn-dark:hover{background-color:#000;border-color:#000;color:#fff}.btn-check:focus+.btn-dark,.btn-dark:focus{box-shadow:0 0 0 .125rem rgba(38,38,38,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{background-color:#000;border-color:#000;color:#fff}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .125rem rgba(38,38,38,.5)}.btn-dark.disabled,.btn-dark:disabled{background-color:#000;border-color:#000;color:#fff}.btn-outline-primary{border-color:#5925dc;color:#5925dc}.btn-outline-primary:hover{background-color:#5925dc;border-color:#5925dc;color:#fff}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .125rem rgba(89,37,220,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{background-color:#5925dc;border-color:#5925dc;color:#fff}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .125rem rgba(89,37,220,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{background-color:transparent;color:#5925dc}.btn-outline-secondary{border-color:#1f69ff;color:#1f69ff}.btn-outline-secondary:hover{background-color:#1f69ff;border-color:#1f69ff;color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .125rem rgba(31,105,255,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{background-color:#1f69ff;border-color:#1f69ff;color:#fff}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .125rem rgba(31,105,255,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{background-color:transparent;color:#1f69ff}.btn-outline-success{border-color:#0a8217;color:#0a8217}.btn-outline-success:hover{background-color:#0a8217;border-color:#0a8217;color:#fff}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .125rem rgba(10,130,23,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{background-color:#0a8217;border-color:#0a8217;color:#fff}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .125rem rgba(10,130,23,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{background-color:transparent;color:#0a8217}.btn-outline-info{border-color:#0f71bb;color:#0f71bb}.btn-outline-info:hover{background-color:#0f71bb;border-color:#0f71bb;color:#fff}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .125rem rgba(15,113,187,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{background-color:#0f71bb;border-color:#0f71bb;color:#fff}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .125rem rgba(15,113,187,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{background-color:transparent;color:#0f71bb}.btn-outline-warning{border-color:#f79009;color:#f79009}.btn-outline-warning:hover{background-color:#f79009;border-color:#f79009;color:#000}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .125rem rgba(247,144,9,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{background-color:#f79009;border-color:#f79009;color:#000}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .125rem rgba(247,144,9,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{background-color:transparent;color:#f79009}.btn-outline-danger{border-color:#d7260f;color:#d7260f}.btn-outline-danger:hover{background-color:#d7260f;border-color:#d7260f;color:#fff}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .125rem rgba(215,38,15,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{background-color:#d7260f;border-color:#d7260f;color:#fff}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .125rem rgba(215,38,15,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{background-color:transparent;color:#d7260f}.btn-outline-light{border-color:#f7f7f9;color:#f7f7f9}.btn-outline-light:hover{background-color:#f7f7f9;border-color:#f7f7f9;color:#000}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .125rem rgba(247,247,249,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{background-color:#f7f7f9;border-color:#f7f7f9;color:#000}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .125rem rgba(247,247,249,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{background-color:transparent;color:#f7f7f9}.btn-outline-dark{border-color:#000;color:#000}.btn-outline-dark:hover{background-color:#000;border-color:#000;color:#fff}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .125rem rgba(0,0,0,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{background-color:#000;border-color:#000;color:#fff}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .125rem rgba(0,0,0,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{background-color:transparent;color:#000}.btn-link{color:#0f71bb;font-weight:400;text-decoration:underline}.btn-link:hover{color:#0c5a96}.btn-link.disabled,.btn-link:disabled{color:#344054}.btn-group-lg>.btn,.btn-lg{border-radius:.3rem;font-size:1.25rem;padding:.5rem 1rem}.btn-group-sm>.btn,.btn-sm{border-radius:.2rem;font-size:.875rem;padding:.25rem .5rem}.btn-group,.btn-group-vertical{display:inline-flex;position:relative;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{flex:1 1 auto;position:relative}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-bottom-left-radius:0;border-top-left-radius:0}.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group-vertical{align-items:flex-start;flex-direction:column;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.sgds.datepicker{border-color:#98a2b3;font-size:1rem;max-width:24rem;width:24rem}.sgds.datepicker>.datepicker-header{border:none;color:#5925dc;padding:1.5rem 1.5rem 0}.sgds.datepicker>.datepicker-header button{background-color:transparent;border:none;color:#5925dc;font-weight:700}.sgds.datepicker>.datepicker-header button:focus-visible{outline:2px auto #5925dc;z-index:100}.sgds.datepicker>.datepicker-header button.disabled{cursor:not-allowed}.sgds.datepicker>.datepicker-header button:hover:not(.disabled){background-color:#ece6fb}.sgds.datepicker>.datepicker-header i{font-size:1.25rem}.sgds.datepicker>.datepicker-body{padding:0 1.5rem 1.5rem}.sgds.datepicker td{height:48px;padding:0;width:48px}.sgds.datepicker td:focus-visible{outline:2px auto #5925dc;z-index:100}.sgds.datepicker td.disabled{cursor:not-allowed}.sgds.datepicker td[role=button]:hover:not(.disabled){background-color:#ece6fb;cursor:pointer}.sgds.datepicker .monthpicker,.sgds.datepicker .yearpicker{align-content:space-between;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,48px);justify-content:space-between;padding:1rem 0 0}.sgds.datepicker .month,.sgds.datepicker .year{background-color:transparent;border:0;cursor:pointer;padding:0}.sgds.datepicker .month.active,.sgds.datepicker .year.active{background-color:#ece6fb;color:#5925dc}.sgds.datepicker .month:focus-visible,.sgds.datepicker .year:focus-visible{outline:2px auto #5925dc;z-index:100}.sgds.datepicker .month:hover,.sgds.datepicker .year:hover{background-color:#ece6fb}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{border-bottom:0;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid;content:\"\";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.3125rem;color:#1d2939;display:none;font-size:1rem;list-style:none;margin:0;min-width:10rem;padding:.5rem 0;position:absolute;text-align:left;z-index:1000}.dropdown-menu[data-bs-popper]{left:0;margin-top:.125rem;top:100%}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:auto;right:0}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:auto;right:0}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:auto;right:0}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:auto;right:0}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:auto;right:0}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{left:0;right:auto}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{left:auto;right:0}}.dropup .dropdown-menu[data-bs-popper]{bottom:100%;margin-bottom:.125rem;margin-top:0;top:auto}.dropup .dropdown-toggle:after{border-bottom:.3em solid;border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:0;content:\"\";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{left:100%;margin-left:.125rem;margin-top:0;right:auto;top:0}.dropend .dropdown-toggle:after{border-bottom:.3em solid transparent;border-left:.3em solid;border-right:0;border-top:.3em solid transparent;content:\"\";display:inline-block;margin-left:.255em;vertical-align:.255em}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{left:auto;margin-right:.125rem;margin-top:0;right:100%;top:0}.dropstart .dropdown-toggle:after{content:\"\";display:inline-block;display:none;margin-left:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:before{border-bottom:.3em solid transparent;border-right:.3em solid;border-top:.3em solid transparent;content:\"\";display:inline-block;margin-right:.255em;vertical-align:.255em}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{border-top:1px solid rgba(0,0,0,.15);height:0;margin:.5rem 0;overflow:hidden}.dropdown-item{background-color:transparent;border:0;clear:both;color:#000;display:block;font-weight:400;padding:.25rem 1rem;text-align:inherit;text-decoration:none;white-space:nowrap;width:100%}.dropdown-item:focus,.dropdown-item:hover{background-color:#e4e7ec;color:#000}.dropdown-item.active,.dropdown-item:active{background-color:#0f71bb;color:#fff;text-decoration:none}.dropdown-item.disabled,.dropdown-item:disabled{background-color:transparent;color:#667085;pointer-events:none}.dropdown-menu.show{display:block}.dropdown-header{color:#344054;display:block;font-size:.875rem;margin-bottom:0;padding:.5rem 1rem;white-space:nowrap}.dropdown-item-text{color:#000;display:block;padding:.25rem 1rem}.dropdown-menu-dark{background-color:#000;border-color:rgba(0,0,0,.15);color:#d0d5dd}.dropdown-menu-dark .dropdown-item{color:#d0d5dd}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{background-color:hsla(0,0%,100%,.15);color:#fff}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{background-color:#0f71bb;color:#fff}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#667085}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#d0d5dd}.dropdown-menu-dark .dropdown-header{color:#667085}.sgds.dropdown .dropdown-toggle{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.sgds.dropdown .dropdown-toggle:after{content:none}.sgds.dropdown-menu{border:1px solid #98a2b3;padding:0}.sgds.dropdown-menu li a.dropdown-item{padding:1rem}.sgds.dropdown-menu li a.dropdown-item.active,.sgds.dropdown-menu li a.dropdown-item:hover{background-color:#004ff0;color:#fff}.sgds.fileupload-list{list-style-type:none;margin-top:1rem;padding:0}.sgds.fileupload-list .fileupload-list-item+.fileupload-list-item{margin-top:.5rem}.sgds.fileupload-list .fileupload-list-item i:first-child{color:#0a8217}.sgds.fileupload-list .fileupload-list-item i:last-child{color:#d7260f}.sgds.fileupload-list .fileupload-list-item .filename{color:#0f71bb;text-decoration:underline;text-underline-offset:.25rem}.nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.nav-link{color:#0f71bb;display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0c5a96}.nav-link.disabled{color:#344054;cursor:default;pointer-events:none}.nav-tabs{border-bottom:1px solid transparent}.nav-tabs .nav-link{background:none;border:1px solid transparent;border-top-left-radius:.3125rem;border-top-right-radius:.3125rem;margin-bottom:-1px}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e4e7ec #e4e7ec transparent;isolation:isolate}.nav-tabs .nav-link.disabled{background-color:transparent;border-color:transparent;color:#344054}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background-color:#fff;border-color:#d0d5dd #d0d5dd #fff;color:#1d2939}.nav-tabs .dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}.nav-pills .nav-link{background:none;border:0;border-radius:.3125rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#0f71bb;color:#fff}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:2rem;padding-top:2rem;position:relative}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{align-items:center;display:flex;flex-wrap:inherit;justify-content:space-between}.navbar-brand{font-size:1.25rem;margin-right:1rem;padding-bottom:.25rem;padding-top:.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;list-style:none;margin-bottom:0;padding-left:0}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-bottom:.5rem;padding-top:.5rem}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{background-color:transparent;border:1px solid transparent;border-radius:.3125rem;font-size:1.25rem;line-height:1;padding:.25rem .75rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{box-shadow:0 0 0 .125rem;outline:0;text-decoration:none}.navbar-toggler-icon{background-position:50%;background-repeat:no-repeat;background-size:100%;display:inline-block;height:1.5em;vertical-align:middle;width:1.5em}.navbar-nav-scroll{max-height:var(--sgds-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler,.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler,.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler,.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler,.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler,.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler,.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{background-color:transparent;border-left:0;border-right:0;bottom:0;flex-grow:1;position:inherit;transform:none;transition:none;visibility:visible!important;z-index:1000}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{border-bottom:0;border-top:0;height:auto}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;overflow-y:visible;padding:0}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.55)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{border-color:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.55)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.sgds.navbar{align-items:stretch;min-height:80px;padding:0 2rem}@media (max-width:991.98px){.sgds.navbar{padding:0 1rem}}.sgds.navbar a.navbar-brand{align-items:center;display:flex;padding-bottom:.125rem}.sgds.navbar .navbar-collapse{align-items:stretch}.sgds.navbar .nav-item.has-megamenu{position:static}.sgds.navbar .nav-item a.nav-link{align-items:center;border-bottom:.125rem solid transparent;color:#344054;display:flex;min-height:100%}.sgds.navbar .nav-item a.nav-link.active,.sgds.navbar .nav-item a.nav-link:hover{border-color:#5925dc;color:#5925dc}.sgds.navbar .nav-item a.nav-link.dropdown-toggle{gap:.75rem}.sgds.navbar .nav-item a.nav-link.dropdown-toggle.show{border-bottom:.125rem solid #5925dc;color:#5925dc}.sgds.navbar .dropdown-menu{background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:0 0 5px 5px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);margin-top:0}.sgds.navbar .dropdown-menu.megamenu{left:0;right:0;width:100%}.card{word-wrap:break-word;background-clip:border-box;background-color:#fff;border:1px solid #98a2b3;border-radius:.3125rem;display:flex;flex-direction:column;min-width:0;position:relative}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-bottom:inherit;border-top:inherit}.card>.list-group:first-child{border-top-left-radius:calc(.3125rem - 1px);border-top-right-radius:calc(.3125rem - 1px);border-top-width:0}.card>.list-group:last-child{border-bottom-left-radius:calc(.3125rem - 1px);border-bottom-right-radius:calc(.3125rem - 1px);border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1.5rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1.5rem}.card-header{background-color:rgba(0,0,0,.03);border-bottom:1px solid #98a2b3;margin-bottom:0;padding:.75rem 1.5rem}.card-header:first-child{border-radius:calc(.3125rem - 1px) calc(.3125rem - 1px) 0 0}.card-footer{background-color:rgba(0,0,0,.03);border-top:1px solid #98a2b3;padding:.75rem 1.5rem}.card-footer:last-child{border-radius:0 0 calc(.3125rem - 1px) calc(.3125rem - 1px)}.card-header-tabs{border-bottom:0;margin-bottom:-.75rem}.card-header-pills,.card-header-tabs{margin-left:-.75rem;margin-right:-.75rem}.card-img-overlay{border-radius:calc(.3125rem - 1px);bottom:0;left:0;padding:1rem;position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.3125rem - 1px);border-top-right-radius:calc(.3125rem - 1px)}.card-img,.card-img-bottom{border-bottom-left-radius:calc(.3125rem - 1px);border-bottom-right-radius:calc(.3125rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{border-left:0;margin-left:0}.card-group>.card:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.sgds.card a:not(.btn){font-weight:700}.sgds.card[variant*=card-action]{transition-duration:.3s;transition-property:box-shadow,border-color;transition-timing-function:ease-in-out}.sgds.card[variant*=card-action] .card-body{display:flex;flex-direction:column;gap:1rem}.sgds.card[variant*=card-action] .card-body i{font-size:1.5rem;margin-right:1rem}.sgds.card[variant*=card-action] .card-body>*{margin-bottom:0}.sgds.card[variant*=card-action].is-active,.sgds.card[variant*=card-action]:hover{border-color:transparent;box-shadow:0 .5rem 1rem rgba(0,0,0,.15),inset 0 0 0 2.1px #0f71bb}.sgds.card[variant*=card-action] .card-subtitle{align-items:center;display:flex;justify-content:space-between}.sgds.card[variant*=card-action] .card-subtitle div{align-items:center;display:flex}.sgds.card[variant*=card-action] .card-input input.form-check-input{margin-top:0;min-height:1.5rem;min-width:1.5rem}.sgds.card[variant=card-action-quantity-toggle] .card-body{display:flex;flex-direction:column;gap:2rem}.sgds.card[variant=card-action-quantity-toggle] div:not([class]){align-items:center;display:flex;justify-content:space-between}.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .btn,.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .input-group{margin-top:0}.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .input-group .btn i{margin-right:0}.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .input-group button,.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .input-group input{margin-top:0}.sgds.card[variant=card-action-quantity-toggle] div:not([class]) .card-unit{flex-basis:150%}@media (max-width:500px){.sgds.card[variant=card-action-quantity-toggle] div:not([class]):last-child{display:block}.sgds.card[variant=card-action-quantity-toggle] div:not([class]):last-child div.card-unit{margin-bottom:1rem}}.accordion-button{align-items:center;background-color:#fff;border:0;border-radius:0;color:#1d2939;display:flex;font-size:1rem;overflow-anchor:none;padding:1rem 1.5rem;position:relative;text-align:left;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;width:100%}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){background-color:none;box-shadow:inset 0 -1px 0 #98a2b3;color:#5925dc}.accordion-button:not(.collapsed):after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%235925DC'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E\");transform:rotate(-180deg)}.accordion-button:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231D2939'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:1.25rem;content:\"\";flex-shrink:0;height:1.25rem;margin-left:auto;transition:transform .2s ease-in-out;width:1.25rem}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{border-color:#87b8dd;box-shadow:0 0 0 .125rem rgba(15,113,187,.25);outline:0;z-index:3}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid #98a2b3}.accordion-item:first-of-type{border-top-left-radius:.3125rem;border-top-right-radius:.3125rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.3125rem - 1px);border-top-right-radius:calc(.3125rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:.3125rem;border-bottom-right-radius:.3125rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-left-radius:calc(.3125rem - 1px);border-bottom-right-radius:calc(.3125rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-left-radius:.3125rem;border-bottom-right-radius:.3125rem}.accordion-body{padding:1rem 1.5rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-left:0;border-radius:0;border-right:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.sgds.accordion .accordion-button{line-height:2rem}.sgds.accordion .accordion-button:not(.collapsed){box-shadow:none;font-weight:700}.sgds.accordion .accordion-body{line-height:2rem;padding-bottom:1.5rem;padding-top:0}.breadcrumb{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:1rem;padding:0}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{color:#344054;content:var(--sgds-breadcrumb-divider,\"/\");float:left;padding-right:.5rem}.breadcrumb-item.active{color:#344054}.pagination{display:flex;list-style:none;padding-left:0}.page-link{background-color:#fff;border:1px solid #98a2b3;color:#0f71bb;display:block;position:relative;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{border-color:#d0d5dd;z-index:2}.page-link:focus,.page-link:hover{background-color:#e4e7ec;color:#0c5a96}.page-link:focus{box-shadow:0 0 0 .125rem rgba(15,113,187,.25);outline:0;z-index:3}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{background-color:#0f71bb;border-color:#0f71bb;color:#fff;z-index:3}.page-item.disabled .page-link{background-color:#fff;border-color:#98a2b3;color:#344054;pointer-events:none}.page-link{padding:.5rem 1rem}.page-item:first-child .page-link{border-bottom-left-radius:.3125rem;border-top-left-radius:.3125rem}.page-item:last-child .page-link{border-bottom-right-radius:.3125rem;border-top-right-radius:.3125rem}.pagination-lg .page-link{font-size:1.25rem;padding:.75rem 1.5rem}.pagination-lg .page-item:first-child .page-link{border-bottom-left-radius:.3rem;border-top-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-bottom-right-radius:.3rem;border-top-right-radius:.3rem}.pagination-sm .page-link{font-size:.875rem;padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.list-group{border-radius:.3125rem;display:flex;flex-direction:column;margin-bottom:0;padding-left:0}.list-group-numbered{counter-reset:section;list-style-type:none}.list-group-numbered>li:before{content:counters(section,\".\") \". \";counter-increment:section}.list-group-item-action{color:#1d2939;text-align:inherit;width:100%}.list-group-item-action:focus,.list-group-item-action:hover{background-color:#f7f7f9;color:#1d2939;text-decoration:none;z-index:1}.list-group-item-action:active{background-color:#e4e7ec;color:#1d2939}.list-group-item{background-color:#fff;border:1px solid rgba(0,0,0,.125);color:#000;display:block;padding:.5rem 1rem;position:relative;text-decoration:none}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{background-color:#fff;color:#344054;pointer-events:none}.list-group-item.active{background-color:#0f71bb;border-color:#0f71bb;color:#fff;z-index:2}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{border-top-width:1px;margin-top:-1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-md>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.3125rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-bottom-left-radius:0;border-top-right-radius:.3125rem}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-left-width:0;border-top-width:1px}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{border-left-width:1px;margin-left:-1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{background-color:#ded3f8;color:#351684}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{background-color:#c8bedf;color:#351684}.list-group-item-primary.list-group-item-action.active{background-color:#351684;border-color:#351684;color:#fff}.list-group-item-secondary{background-color:#d2e1ff;color:#133f99}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{background-color:#bdcbe6;color:#133f99}.list-group-item-secondary.list-group-item-action.active{background-color:#133f99;border-color:#133f99;color:#fff}.list-group-item-success{background-color:#cee6d1;color:#064e0e}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{background-color:#b9cfbc;color:#064e0e}.list-group-item-success.list-group-item-action.active{background-color:#064e0e;border-color:#064e0e;color:#fff}.list-group-item-info{background-color:#cfe3f1;color:#094470}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{background-color:#baccd9;color:#094470}.list-group-item-info.list-group-item-action.active{background-color:#094470;border-color:#094470;color:#fff}.list-group-item-warning{background-color:#fde9ce;color:#945605}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{background-color:#e4d2b9;color:#945605}.list-group-item-warning.list-group-item-action.active{background-color:#945605;border-color:#945605;color:#fff}.list-group-item-danger{background-color:#f7d4cf;color:#811709}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{background-color:#debfba;color:#811709}.list-group-item-danger.list-group-item-action.active{background-color:#811709;border-color:#811709;color:#fff}.list-group-item-light{background-color:#fdfdfe;color:#636364}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{background-color:#e4e4e5;color:#636364}.list-group-item-light.list-group-item-action.active{background-color:#636364;border-color:#636364;color:#fff}.list-group-item-dark{background-color:#ccc;color:#000}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{background-color:#b8b8b8;color:#000}.list-group-item-dark.list-group-item-action.active{background-color:#000;border-color:#000;color:#fff}.badge{border-radius:.3125rem;color:#fff;display:inline-block;font-size:.875em;font-weight:700;line-height:1;padding:.285em .571em;text-align:center;vertical-align:baseline;white-space:nowrap}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.sgds.badge{font-size:min(.875em,2rem);line-height:1.145;padding:.285em .571em}.sgds.badge i.left{padding-right:.43em}.sgds.badge i.right{padding-left:.43em}.sgds.badge-light.bg-primary{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-primary);color:var(--sgds-primary)}.sgds.badge-light.bg-secondary{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-secondary);color:var(--sgds-secondary)}.sgds.badge-light.bg-success{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-success);color:var(--sgds-success)}.sgds.badge-light.bg-info{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-info);color:var(--sgds-info)}.sgds.badge-light.bg-warning{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-warning);color:var(--sgds-warning)}.sgds.badge-light.bg-danger{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-danger);color:var(--sgds-danger)}.sgds.badge-light.bg-light{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-gray-500);color:var(--sgds-gray-500)}.sgds.badge-light.bg-dark{--sgds-bg-opacity:0.1;border:1px solid var(--sgds-dark);color:var(--sgds-dark)}.alert{border:1px solid transparent;border-radius:.3125rem;margin-bottom:1rem;padding:1rem;position:relative}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{padding:1.25rem 1rem;position:absolute;right:0;top:0;z-index:2}.alert-primary{background-color:#ded3f8;border-color:#cdbef5;color:#351684}.alert-primary .alert-link{color:#2a126a}.alert-secondary{background-color:#d2e1ff;border-color:#bcd2ff;color:#133f99}.alert-secondary .alert-link{color:#0f327a}.alert-success{background-color:#cee6d1;border-color:#b6dab9;color:#064e0e}.alert-success .alert-link{color:#053e0b}.alert-info{background-color:#cfe3f1;border-color:#b7d4eb;color:#094470}.alert-info .alert-link{color:#07365a}.alert-warning{background-color:#fde9ce;border-color:#fddeb5;color:#945605}.alert-warning .alert-link{color:#764504}.alert-danger{background-color:#f7d4cf;border-color:#f3beb7;color:#811709}.alert-danger .alert-link{color:#671207}.alert-light{background-color:#fdfdfe;border-color:#fdfdfd;color:#636364}.alert-light .alert-link{color:#4f4f50}.alert-dark{background-color:#ccc;border-color:#b3b3b3;color:#000}.alert-dark .alert-link{color:#000}.alert-primary{background-color:#ece6fb;border-color:#7e55e4;color:#344054}.alert-primary .alert-link{color:#2a3343}.alert-primary i{color:#491db6}.alert-secondary{background-color:#ebf1ff;border-color:#70a0ff;color:#344054}.alert-secondary .alert-link{color:#2a3343}.alert-secondary i{color:#004ff0}.alert-success{background-color:#e7f6e9;border-color:#58be62;color:#344054}.alert-success .alert-link{color:#2a3343}.alert-success i{color:#0a8217}.alert-info{background-color:#e2eff8;border-color:#58a1d4;color:#344054}.alert-info .alert-link{color:#2a3343}.alert-info i{color:#0f71bb}.alert-warning{background-color:#fffaeb;border-color:#fec84b;color:#344054}.alert-warning .alert-link{color:#2a3343}.alert-warning i{color:#f79009}.alert-danger{background-color:#fff4f3;border-color:#fb7463;color:#344054}.alert-danger .alert-link{color:#2a3343}.alert-danger i{color:#d7260f}.alert-light{background-color:#f7f7f9;border-color:#98a2b3;color:#344054}.alert-light .alert-link{color:#2a3343}.alert-dark,.alert-light i{color:#344054}.alert-dark{background-color:#f7f7f9;border-color:#98a2b3}.alert-dark .alert-link{color:#2a3343}.alert-dark i{color:#344054}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{background-color:#e4e7ec;border-radius:.3125rem;font-size:.75rem;height:1rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{background-color:#5925dc;color:#fff;flex-direction:column;justify-content:center;text-align:center;transition:width .6s ease;white-space:nowrap}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.btn-close{background:transparent url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2398A2B3'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E\") 50%/1em auto no-repeat;border:0;border-radius:.3125rem;box-sizing:content-box;color:#98a2b3;height:1em;opacity:1;padding:.25em;width:1em}.btn-close:hover{color:#98a2b3;opacity:1;text-decoration:none}.btn-close:focus{box-shadow:0 0 0 .125rem rgba(15,113,187,.25);opacity:1;outline:0}.btn-close.disabled,.btn-close:disabled{opacity:.25;pointer-events:none;user-select:none}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.btn-close:hover{background:transparent url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23344054'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E\") 50%/1em auto no-repeat}.sgds.sidenav{--sgds-sidenav-width:auto;--sgds-sidenav-font-size:1rem;font-size:var(--sgds-sidenav-font-size);list-style:none;width:var(--sgds-sidenav-width)}.sgds.sidenav .sidenav-item+.sidenav-item{margin-top:1rem}.sgds.sidenav .sidenav-item .sgds.btn{align-items:center;background:0;border:0;border-left:.125rem solid #5925dc;border-radius:0;color:#5925dc;display:flex;font-size:inherit;gap:1rem;line-height:1.5;padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem;text-align:initial;width:100%}.sgds.sidenav .sidenav-item .sgds.btn i.bi-chevron-down{transform:rotate(180deg);transition:all .3s ease-in-out}.sgds.sidenav .sidenav-item .sgds.btn.collapsed,.sgds.sidenav .sidenav-item .sgds.btn.inactive{border-color:transparent;color:inherit}.sgds.sidenav .sidenav-item .sgds.btn.collapsed i,.sgds.sidenav .sidenav-item .sgds.btn.inactive i{transform:rotate(0deg)}.sgds.sidenav .sidenav-item .sgds.btn.active,.sgds.sidenav .sidenav-item .sgds.btn:hover{border-left-color:#5925dc;color:#5925dc;font-weight:700}.sgds.sidenav .sidenav-item .collapse,.sgds.sidenav .sidenav-item .collapse.show,.sgds.sidenav .sidenav-item .collapsing{margin-top:1rem}.sgds.sidenav .sidenav-item .collapse a.nav-link,.sgds.sidenav .sidenav-item .collapse.show a.nav-link,.sgds.sidenav .sidenav-item .collapsing a.nav-link{color:inherit;font-size:inherit;padding:.5rem 0 .5rem 4.125rem}.sgds.sidenav .sidenav-item .collapse a.nav-link+a.nav-link,.sgds.sidenav .sidenav-item .collapse.show a.nav-link+a.nav-link,.sgds.sidenav .sidenav-item .collapsing a.nav-link+a.nav-link{margin-top:1rem}.sgds.sidenav .sidenav-item .collapse a.nav-link.active,.sgds.sidenav .sidenav-item .collapse a.nav-link:hover,.sgds.sidenav .sidenav-item .collapse.show a.nav-link.active,.sgds.sidenav .sidenav-item .collapse.show a.nav-link:hover,.sgds.sidenav .sidenav-item .collapsing a.nav-link.active,.sgds.sidenav .sidenav-item .collapsing a.nav-link:hover{color:#5925dc}.sgds.sidenav .sidenav-item .collapse a.nav-link.disabled,.sgds.sidenav .sidenav-item .collapse.show a.nav-link.disabled,.sgds.sidenav .sidenav-item .collapsing a.nav-link.disabled{color:#344054}.sgds.sidenav.sticky{--sgds-sidenav-sticky-top:0rem;max-height:calc(100vh - var(--sgds-sidenav-sticky-top));overflow-y:auto;position:sticky;top:var(--sgds-sidenav-sticky-top)}.sgds.stepper{display:flex;flex-wrap:wrap;font-size:1rem;min-height:calc(1rem*2rem)}.sgds.stepper:not(:last-child){margin-bottom:1.5rem}.sgds.stepper .stepper-item{flex-basis:0;flex-grow:1;margin-top:0;position:relative}.sgds.stepper .stepper-item:not(:first-child){flex-basis:1em;flex-grow:1;flex-shrink:1}.sgds.stepper .stepper-item:not(:first-child):before{content:\" \";position:absolute}.sgds.stepper .stepper-item.is-clickable{cursor:pointer}.sgds.stepper .stepper-item.is-clickable:hover .stepper-marker{background-color:#491db6;border-color:#491db6}.sgds.stepper .stepper-item.is-clickable:hover .stepper-detail,.sgds.stepper .stepper-item.is-clickable:hover .stepper-detail>*{color:#491db6;transition:all .5s ease}.sgds.stepper .stepper-item:before{background:linear-gradient(270deg,#d0d5dd 50%,#5925dc 0);background-position:100% 100%;background-size:200% 100%}.sgds.stepper .stepper-item:before .stepper-marker{color:#fff}.sgds.stepper .stepper-item.is-active:before{background-position:0 100%}.sgds.stepper .stepper-item.is-active .stepper-marker{background-color:#fff;border-color:#5925dc;color:#5925dc}.sgds.stepper .stepper-item.is-completed:before{background-position:0 100%}.sgds.stepper .stepper-item.is-completed .stepper-marker{background-color:#5925dc;border-color:#5925dc;color:#fff}.sgds.stepper .stepper-item>.stepper-marker{align-items:center;background:#98a2b3;border:.25rem solid #fff;border-radius:50%;color:#fff;display:flex;font-weight:700;justify-content:center;z-index:1}.sgds.stepper .stepper-item>.stepper-detail{text-align:center}.sgds.stepper .stepper-item:not(:first-child):before{bottom:0;height:.25rem;left:-50%;top:1rem;width:100%}.sgds.stepper .stepper-item .stepper-marker{height:2rem;left:calc(50% - 1rem);position:absolute;width:2rem}.sgds.stepper .stepper-item .stepper-marker .icon *{font-size:1rem}.sgds.stepper .stepper-item .stepper-detail{margin-left:.5rem;margin-right:.5rem;margin-top:2rem}.sgds.stepper.is-small{font-size:.875rem;min-height:calc(.875rem*2rem)}.sgds.stepper.is-small .stepper-item:not(:first-child):before{bottom:0;height:.25rem;left:-50%;top:.875rem;width:100%}.sgds.stepper.is-small .stepper-item .stepper-marker{height:1.75rem;left:calc(50% - .875rem);position:absolute;width:1.75rem}.sgds.stepper.is-small .stepper-item .stepper-marker .icon *{font-size:.875rem}.sgds.stepper.is-small .stepper-item .stepper-detail{margin-left:.5rem;margin-right:.5rem;margin-top:1.75rem}.sgds.stepper.is-large{font-size:1.25rem;min-height:calc(1.25rem*2rem)}.sgds.stepper.is-large .stepper-item:not(:first-child):before{bottom:0;height:.25rem;left:-50%;top:1.25rem;width:100%}.sgds.stepper.is-large .stepper-item .stepper-marker{height:2.5rem;left:calc(50% - 1.25rem);position:absolute;width:2.5rem}.sgds.stepper.is-large .stepper-item .stepper-marker .icon *{font-size:1.25rem}.sgds.stepper.is-large .stepper-item .stepper-detail{margin-left:.5rem;margin-right:.5rem;margin-top:2.5rem}.toast{background-clip:padding-box;background-color:hsla(0,0%,100%,.85);border:1px solid rgba(0,0,0,.1);border-radius:.3125rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);font-size:1rem;max-width:100%;pointer-events:auto;width:350px}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{max-width:100%;pointer-events:none;width:max-content}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{align-items:center;background-clip:padding-box;background-color:hsla(0,0%,100%,.85);border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.3125rem - 1px);border-top-right-radius:calc(.3125rem - 1px);color:#344054;display:flex;padding:.5rem .75rem}.toast-header .btn-close{margin-left:.75rem;margin-right:-.375rem}.toast-body{word-wrap:break-word;padding:.75rem}.sgds.toast{border-color:#344054;border-left:5px solid;border-radius:0 .3125rem .3125rem 0;font-size:1rem}.sgds.toast .toast-header{border-bottom:0;padding:1rem 1rem .5rem}.sgds.toast .toast-header .btn-close{margin:0}.sgds.toast .toast-body{padding:0 1rem 1rem}.sgds.toast .toast-body button{margin-top:2rem}.sgds.is-primary{border-color:#5925dc}.sgds.is-primary .toast-header{color:#5925dc}.sgds.is-secondary{border-color:#1f69ff}.sgds.is-secondary .toast-header{color:#1f69ff}.sgds.is-success{border-color:#0a8217}.sgds.is-success .toast-header{color:#0a8217}.sgds.is-info{border-color:#0f71bb}.sgds.is-info .toast-header{color:#0f71bb}.sgds.is-warning{border-color:#f79009}.sgds.is-warning .toast-header{color:#f79009}.sgds.is-danger{border-color:#d7260f}.sgds.is-danger .toast-header{color:#d7260f}.sgds.is-light{border-color:#f7f7f9}.sgds.is-light .toast-header{color:#f7f7f9}.sgds.is-dark{border-color:#000}.sgds.is-dark .toast-header{color:#000}.modal{display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:1055}.modal-dialog{margin:.5rem;pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - 1rem)}.modal-content{background-clip:padding-box;background-color:#fff;border:1px solid #98a2b3;border-radius:.3rem;display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1050}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{align-items:center;border-bottom:1px solid #98a2b3;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);display:flex;flex-shrink:0;justify-content:space-between;padding:1.5rem}.modal-header .btn-close{margin:-.75rem -.75rem -.75rem auto;padding:.75rem}.modal-title{line-height:2;margin-bottom:0}.modal-body{flex:1 1 auto;padding:1.5rem;position:relative}.modal-footer{align-items:center;border-bottom-left-radius:calc(.3rem - 1px);border-bottom-right-radius:calc(.3rem - 1px);border-top:1px solid transparent;display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:1.25rem}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{margin:1.75rem auto;max-width:500px}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-sm-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-md-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-lg-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{height:100%;margin:0;max-width:none;width:100vw}.modal-fullscreen-xxl-down .modal-content{border:0;border-radius:0;height:100%}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.sgds.modal .modal-footer{padding-top:0}.sgds.modal button.btn-close{font-size:.75rem}.sgds.modal[variant=centered-align-icon] .modal-content{text-align:center}.sgds.modal[variant=centered-align-icon] .modal-header{align-items:flex-start;border-bottom:0;padding-bottom:0}.sgds.modal[variant=centered-align-icon] .modal-title{display:flex;flex-flow:column;flex-grow:1;justify-content:center}.sgds.modal[variant=centered-align-icon] .modal-footer{justify-content:center}.sgds.nav-tabs{border-bottom:none;gap:2rem}.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link{background-color:#fff;border:1px solid #98a2b3;border-radius:.3125rem;color:#1d2939;min-width:11.875rem;padding:.75rem}.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link .tabs-info-label{display:flex;justify-content:flex-end;text-align:right}.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link .tabs-info-label.has-icon{justify-content:space-between}.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link .tabs-info-count{text-align:right}.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link.active,.sgds.nav-tabs[variant=tabs-info-toggle] li.nav-item button.nav-link:hover{border-color:#5925dc;color:#5925dc;font-weight:700}.sgds.nav-tabs[variant=tabs-basic-toggle]{gap:0}.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item+li.nav-item{margin-left:-2px}.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link{background-color:#fff;border:1px solid #98a2b3;border-radius:0;color:#1d2939;padding:.5rem 1.5rem}.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link i.left,.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link span.left{margin-right:1rem}.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link i.right,.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link span.right{margin-left:1rem}.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link.active,.sgds.nav-tabs[variant=tabs-basic-toggle] li.nav-item button.nav-link:hover{background-color:#0f71bb;color:#fff}.sgds.nav-tabs:not([variant=tabs-basic-toggle]):not([variant=tabs-info-toggle]) li.nav-item button.nav-link{background-color:transparent;border:none;color:#1d2939;padding-left:0;padding-right:0;padding-top:0}.sgds.nav-tabs:not([variant=tabs-basic-toggle]):not([variant=tabs-info-toggle]) li.nav-item button.nav-link.active{background-color:transparent;border-bottom:.125rem solid #0f71bb;font-weight:700}.sgds.tab-content{padding-bottom:1rem;padding-top:1rem}.tooltip{word-wrap:break-word;display:block;font-family:var(--sgds-font-sans-serif);font-size:.875rem;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:2;margin:0;opacity:0;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}.tooltip.show{opacity:1}.tooltip .tooltip-arrow{display:block;height:.4rem;position:absolute;width:.8rem}.tooltip .tooltip-arrow:before{border-color:transparent;border-style:solid;content:\"\";position:absolute}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{border-top-color:#344054;border-width:.4rem .4rem 0;top:-1px}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{height:.8rem;left:0;width:.4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{border-right-color:#344054;border-width:.4rem .4rem .4rem 0;right:-1px}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{border-bottom-color:#344054;border-width:0 .4rem .4rem;bottom:-1px}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{height:.8rem;right:0;width:.4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{border-left-color:#344054;border-width:.4rem 0 .4rem .4rem;left:-1px}.tooltip-inner{background-color:#344054;border-radius:.3125rem;color:#fff;max-width:200px;padding:.5rem 1rem;text-align:center}.sgds.tooltip .tooltip-inner{display:flex;gap:2rem;text-align:left}.popover{word-wrap:break-word;background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;display:block;font-family:var(--sgds-font-sans-serif);font-size:.875rem;font-style:normal;font-weight:400;left:0;letter-spacing:normal;line-break:auto;line-height:2;max-width:276px;position:absolute;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;top:0;white-space:normal;word-break:normal;word-spacing:normal;z-index:1070}.popover .popover-arrow{display:block;height:.5rem;position:absolute;width:1rem}.popover .popover-arrow:after,.popover .popover-arrow:before{border-color:transparent;border-style:solid;content:\"\";display:block;position:absolute}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{border-top-color:rgba(0,0,0,.25);border-width:.5rem .5rem 0;bottom:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{border-top-color:#fff;border-width:.5rem .5rem 0;bottom:1px}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{height:1rem;left:calc(-.5rem - 1px);width:.5rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{border-right-color:rgba(0,0,0,.25);border-width:.5rem .5rem .5rem 0;left:0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{border-right-color:#fff;border-width:.5rem .5rem .5rem 0;left:1px}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{border-bottom-color:rgba(0,0,0,.25);border-width:0 .5rem .5rem;top:0}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{border-bottom-color:#fff;border-width:0 .5rem .5rem;top:1px}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{border-bottom:1px solid #f0f0f0;content:\"\";display:block;left:50%;margin-left:-.5rem;position:absolute;top:0;width:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{height:1rem;right:calc(-.5rem - 1px);width:.5rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{border-left-color:rgba(0,0,0,.25);border-width:.5rem 0 .5rem .5rem;right:0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{border-left-color:#fff;border-width:.5rem 0 .5rem .5rem;right:1px}.popover-header{background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px);font-size:1rem;margin-bottom:0;padding:.5rem 1rem}.popover-header:empty{display:none}.popover-body{color:#1d2939;padding:1rem}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{overflow:hidden;position:relative;width:100%}.carousel-inner:after{clear:both;content:\"\";display:block}.carousel-item{backface-visibility:hidden;display:none;float:left;margin-right:-100%;position:relative;transition:transform .6s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transform:none;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{opacity:1;z-index:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{opacity:0;transition:opacity 0s .6s;z-index:0}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{align-items:center;background:none;border:0;bottom:0;color:#fff;display:flex;justify-content:center;opacity:.5;padding:0;position:absolute;text-align:center;top:0;transition:opacity .15s ease;width:15%;z-index:1}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;opacity:.9;outline:0;text-decoration:none}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{background-position:50%;background-repeat:no-repeat;background-size:100% 100%;display:inline-block;height:2rem;width:2rem}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E\")}.carousel-indicators{bottom:0;display:flex;justify-content:center;left:0;list-style:none;margin-bottom:1rem;margin-left:15%;margin-right:15%;padding:0;position:absolute;right:0;z-index:2}.carousel-indicators [data-bs-target]{background-clip:padding-box;background-color:#fff;border:0;border-bottom:10px solid transparent;border-top:10px solid transparent;box-sizing:content-box;cursor:pointer;flex:0 1 auto;height:3px;margin-left:3px;margin-right:3px;opacity:.5;padding:0;text-indent:-999px;transition:opacity .6s ease;width:30px}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{bottom:1.25rem;color:#fff;left:15%;padding-bottom:1.25rem;padding-top:1.25rem;position:absolute;right:15%;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{animation:spinner-border .75s linear infinite;border:.25em solid;border-radius:50%;border-right:.25em solid transparent;display:inline-block;height:2rem;vertical-align:-.125em;width:2rem}.spinner-border-sm{border-width:.2em;height:1rem;width:1rem}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{animation:spinner-grow .75s linear infinite;background-color:currentColor;border-radius:50%;display:inline-block;height:2rem;opacity:0;vertical-align:-.125em;width:2rem}.spinner-grow-sm{height:1rem;width:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.offcanvas{background-clip:padding-box;background-color:#fff;bottom:0;display:flex;flex-direction:column;max-width:100%;outline:0;position:fixed;transition:transform .3s ease-in-out;visibility:hidden;z-index:1045}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{background-color:#000;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1040}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{align-items:center;display:flex;justify-content:space-between;padding:1.5rem}.offcanvas-header .btn-close{margin-bottom:-.75rem;margin-right:-.75rem;margin-top:-.75rem;padding:.75rem}.offcanvas-title{line-height:2;margin-bottom:0}.offcanvas-body{flex-grow:1;overflow-y:auto;padding:1.5rem}.offcanvas-start{border-right:1px solid #98a2b3;left:0;top:0;transform:translateX(-100%);width:400px}.offcanvas-end{border-left:1px solid #98a2b3;right:0;top:0;transform:translateX(100%);width:400px}.offcanvas-top{border-bottom:1px solid #98a2b3;top:0;transform:translateY(-100%)}.offcanvas-bottom,.offcanvas-top{height:30vh;left:0;max-height:100%;right:0}.offcanvas-bottom{border-top:1px solid #98a2b3;transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{background-color:currentColor;cursor:wait;display:inline-block;min-height:1em;opacity:.5;vertical-align:middle}.placeholder.btn:before{content:\"\";display:inline-block}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{animation:placeholder-wave 2s linear infinite;mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-size:200% 100%}@keyframes placeholder-wave{to{mask-position:-200% 0}}.sgds.combobox{justify-content:flex-end}.sgds.combobox>.form-control{padding-left:1rem;padding-right:3rem}.sgds.combobox>.dropdown-menu{min-width:100%}.clearfix:after{clear:both;content:\"\";display:block}.link-primary{color:#5925dc}.link-primary:focus,.link-primary:hover{color:#471eb0}.link-secondary{color:#1f69ff}.link-secondary:focus,.link-secondary:hover{color:#1954cc}.link-success{color:#0a8217}.link-success:focus,.link-success:hover{color:#086812}.link-info{color:#0f71bb}.link-info:focus,.link-info:hover{color:#0c5a96}.link-warning{color:#f79009}.link-warning:focus,.link-warning:hover{color:#f9a63a}.link-danger{color:#d7260f}.link-danger:focus,.link-danger:hover{color:#ac1e0c}.link-light{color:#f7f7f9}.link-light:focus,.link-light:hover{color:#f9f9fa}.link-dark,.link-dark:focus,.link-dark:hover{color:#000}.ratio{position:relative;width:100%}.ratio:before{content:\"\";display:block;padding-top:var(--sgds-aspect-ratio)}.ratio>*{height:100%;left:0;position:absolute;top:0;width:100%}.ratio-1x1{--sgds-aspect-ratio:100%}.ratio-4x3{--sgds-aspect-ratio:75%}.ratio-16x9{--sgds-aspect-ratio:56.25%}.ratio-21x9{--sgds-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:1030}.fixed-bottom{bottom:0}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{align-items:center;flex-direction:row}.hstack,.vstack{align-self:stretch;display:flex}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.stretched-link:after{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{align-self:stretch;background-color:currentColor;display:inline-block;min-height:1em;opacity:.25;width:1px}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block,.form-text{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #98a2b3!important}.border-0{border:0!important}.border-top{border-top:1px solid #98a2b3!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #98a2b3!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #98a2b3!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #98a2b3!important}.border-start-0{border-left:0!important}.border-primary{border-color:#5925dc!important}.border-secondary{border-color:#1f69ff!important}.border-success{border-color:#0a8217!important}.border-info{border-color:#0f71bb!important}.border-warning{border-color:#f79009!important}.border-danger{border-color:#d7260f!important}.border-light{border-color:#f7f7f9!important}.border-dark{border-color:#000!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:2rem!important}.gap-6{gap:2.5rem!important}.gap-7{gap:3rem!important}.gap-8{gap:3.5rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center,.sgds.modal[variant=centered-align-icon] .modal-footer{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start,.sgds.alert>i{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:2rem!important}.m-6{margin:2.5rem!important}.m-7{margin:3rem!important}.m-8{margin:3.5rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:2rem!important;margin-right:2rem!important}.mx-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-7{margin-left:3rem!important;margin-right:3rem!important}.mx-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:2rem!important}.mt-6{margin-top:2.5rem!important}.mt-7{margin-top:3rem!important}.mt-8{margin-top:3.5rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:2rem!important}.me-6{margin-right:2.5rem!important}.me-7{margin-right:3rem!important}.me-8{margin-right:3.5rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:2rem!important}.mb-6{margin-bottom:2.5rem!important}.mb-7{margin-bottom:3rem!important}.mb-8{margin-bottom:3.5rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:2rem!important}.ms-6{margin-left:2.5rem!important}.ms-7{margin-left:3rem!important}.ms-8{margin-left:3.5rem!important}.ms-auto,.sgds.sidenav .sidenav-item .sgds.btn i.bi-chevron-down{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:2rem!important}.p-6{padding:2.5rem!important}.p-7{padding:3rem!important}.p-8{padding:3.5rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:2rem!important;padding-right:2rem!important}.px-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-7{padding-left:3rem!important;padding-right:3rem!important}.px-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:2rem!important}.pt-6{padding-top:2.5rem!important}.pt-7{padding-top:3rem!important}.pt-8{padding-top:3.5rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:2rem!important}.pe-6{padding-right:2.5rem!important}.pe-7{padding-right:3rem!important}.pe-8{padding-right:3.5rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:2rem!important}.pb-6{padding-bottom:2.5rem!important}.pb-7{padding-bottom:3rem!important}.pb-8{padding-bottom:3.5rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:2rem!important}.ps-6{padding-left:2.5rem!important}.ps-7{padding-left:3rem!important}.ps-8{padding-left:3.5rem!important}.font-monospace{font-family:var(--sgds-font-monospace)!important}.fs-0{font-size:calc(1.475rem + 2.7vw)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.275rem + .3vw)!important}.fs-4{font-size:1.125rem!important}.fs-5,.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.75!important}.lh-base{line-height:2!important}.lh-lg{line-height:2.25!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--sgds-text-opacity:1;color:rgba(var(--sgds-primary-rgb),var(--sgds-text-opacity))!important}.text-secondary{--sgds-text-opacity:1;color:rgba(var(--sgds-secondary-rgb),var(--sgds-text-opacity))!important}.text-success{--sgds-text-opacity:1;color:rgba(var(--sgds-success-rgb),var(--sgds-text-opacity))!important}.text-info{--sgds-text-opacity:1;color:rgba(var(--sgds-info-rgb),var(--sgds-text-opacity))!important}.text-warning{--sgds-text-opacity:1;color:rgba(var(--sgds-warning-rgb),var(--sgds-text-opacity))!important}.text-danger{--sgds-text-opacity:1;color:rgba(var(--sgds-danger-rgb),var(--sgds-text-opacity))!important}.text-light{--sgds-text-opacity:1;color:rgba(var(--sgds-light-rgb),var(--sgds-text-opacity))!important}.text-dark{--sgds-text-opacity:1;color:rgba(var(--sgds-dark-rgb),var(--sgds-text-opacity))!important}.text-black{--sgds-text-opacity:1;color:rgba(var(--sgds-black-rgb),var(--sgds-text-opacity))!important}.text-white{--sgds-text-opacity:1;color:rgba(var(--sgds-white-rgb),var(--sgds-text-opacity))!important}.text-body{--sgds-text-opacity:1;color:rgba(var(--sgds-body-color-rgb),var(--sgds-text-opacity))!important}.sgds.datepicker td.disabled,.text-muted{--sgds-text-opacity:1;color:#667085!important}.text-black-50{--sgds-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--sgds-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-reset{--sgds-text-opacity:1;color:inherit!important}.text-primary-100{--sgds-text-opacity:1;color:#ece6fb!important}.text-primary-200{--sgds-text-opacity:1;color:#c7b6f3!important}.text-primary-300{--sgds-text-opacity:1;color:#a386ec!important}.text-primary-400{--sgds-text-opacity:1;color:#7e55e4!important}.text-primary-500{--sgds-text-opacity:1;color:#5925dc!important}.text-primary-600{--sgds-text-opacity:1;color:#491db6!important}.text-primary-700{--sgds-text-opacity:1;color:#39178e!important}.text-primary-800{--sgds-text-opacity:1;color:#291167!important}.text-primary-900{--sgds-text-opacity:1;color:#190a3f!important}.text-secondary-100{--sgds-text-opacity:1;color:#ebf1ff!important}.text-secondary-200{--sgds-text-opacity:1;color:#d3e2ff!important}.text-secondary-300{--sgds-text-opacity:1;color:#9bf!important}.text-secondary-400{--sgds-text-opacity:1;color:#70a0ff!important}.text-secondary-500{--sgds-text-opacity:1;color:#1f69ff!important}.text-secondary-600{--sgds-text-opacity:1;color:#004ff0!important}.text-secondary-700{--sgds-text-opacity:1;color:#0040c2!important}.text-secondary-800{--sgds-text-opacity:1;color:#003194!important}.text-secondary-900{--sgds-text-opacity:1;color:#026!important}.text-purple-100{--sgds-text-opacity:1;color:#ece6fb!important}.text-purple-200{--sgds-text-opacity:1;color:#c7b6f3!important}.text-purple-300{--sgds-text-opacity:1;color:#a386ec!important}.text-purple-400{--sgds-text-opacity:1;color:#7e55e4!important}.text-purple-500{--sgds-text-opacity:1;color:#5925dc!important}.text-purple-600{--sgds-text-opacity:1;color:#491db6!important}.text-purple-700{--sgds-text-opacity:1;color:#39178e!important}.text-purple-800{--sgds-text-opacity:1;color:#291167!important}.text-purple-900{--sgds-text-opacity:1;color:#190a3f!important}.text-red-100{--sgds-text-opacity:1;color:#fff4f3!important}.text-red-200{--sgds-text-opacity:1;color:#ffcfc8!important}.text-red-300{--sgds-text-opacity:1;color:#fc9c90!important}.text-red-400{--sgds-text-opacity:1;color:#fb7463!important}.text-red-500{--sgds-text-opacity:1;color:#fa5741!important}.text-red-600{--sgds-text-opacity:1;color:#d7260f!important}.text-red-700{--sgds-text-opacity:1;color:#f8331c!important}.text-red-800{--sgds-text-opacity:1;color:#560f06!important}.text-red-900{--sgds-text-opacity:1;color:#2b0803!important}.text-yellow-100{--sgds-text-opacity:1;color:#fffaeb!important}.text-yellow-200{--sgds-text-opacity:1;color:#fef0c7!important}.text-yellow-300{--sgds-text-opacity:1;color:#fedf89!important}.text-yellow-400{--sgds-text-opacity:1;color:#fec84b!important}.text-yellow-500{--sgds-text-opacity:1;color:#fdb022!important}.text-yellow-600{--sgds-text-opacity:1;color:#f79009!important}.text-yellow-700{--sgds-text-opacity:1;color:#dc6803!important}.text-yellow-800{--sgds-text-opacity:1;color:#633a04!important}.text-yellow-900{--sgds-text-opacity:1;color:#311d02!important}.text-green-100{--sgds-text-opacity:1;color:#e7f6e9!important}.text-green-200{--sgds-text-opacity:1;color:#c4e8c8!important}.text-green-300{--sgds-text-opacity:1;color:#9dd9a3!important}.text-green-400{--sgds-text-opacity:1;color:#58be62!important}.text-green-500{--sgds-text-opacity:1;color:#3bb346!important}.text-green-600{--sgds-text-opacity:1;color:#0a8217!important}.text-green-700{--sgds-text-opacity:1;color:#2da337!important}.text-green-800{--sgds-text-opacity:1;color:#043409!important}.text-green-900{--sgds-text-opacity:1;color:#021a05!important}.text-cyan-100{--sgds-text-opacity:1;color:#e2eff8!important}.text-cyan-200{--sgds-text-opacity:1;color:#b9d8ee!important}.text-cyan-300{--sgds-text-opacity:1;color:#90c1e4!important}.text-cyan-400{--sgds-text-opacity:1;color:#58a1d4!important}.text-cyan-500{--sgds-text-opacity:1;color:#59a1d4!important}.text-cyan-600{--sgds-text-opacity:1;color:#0f71bb!important}.text-cyan-700{--sgds-text-opacity:1;color:#0c5b97!important}.text-cyan-800{--sgds-text-opacity:1;color:#0a4776!important}.text-cyan-900{--sgds-text-opacity:1;color:#08395e!important}.text-dark-100{--sgds-text-opacity:1;color:#f7f7f9!important}.text-dark-200{--sgds-text-opacity:1;color:#e4e7ec!important}.text-dark-300{--sgds-text-opacity:1;color:#d0d5dd!important}.text-dark-400{--sgds-text-opacity:1;color:#98a2b3!important}.text-dark-500{--sgds-text-opacity:1;color:#667085!important}.text-dark-600{--sgds-text-opacity:1;color:#344054!important}.text-dark-700{--sgds-text-opacity:1;color:#1d2939!important}.text-dark-800,.text-dark-900{--sgds-text-opacity:1;color:#000!important}.text-light-100{--sgds-text-opacity:1;color:#f7f7f9!important}.text-light-200{--sgds-text-opacity:1;color:#e4e7ec!important}.text-light-300{--sgds-text-opacity:1;color:#d0d5dd!important}.text-light-400{--sgds-text-opacity:1;color:#98a2b3!important}.text-light-500{--sgds-text-opacity:1;color:#667085!important}.text-light-600{--sgds-text-opacity:1;color:#344054!important}.text-light-700{--sgds-text-opacity:1;color:#1d2939!important}.text-light-800,.text-light-900{--sgds-text-opacity:1;color:#000!important}.text-opacity-25{--sgds-text-opacity:0.25}.text-opacity-50{--sgds-text-opacity:0.5}.text-opacity-75{--sgds-text-opacity:0.75}.text-opacity-100{--sgds-text-opacity:1}.bg-primary{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-primary-rgb),var(--sgds-bg-opacity))!important}.bg-secondary{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-secondary-rgb),var(--sgds-bg-opacity))!important}.bg-success{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-success-rgb),var(--sgds-bg-opacity))!important}.bg-info{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-info-rgb),var(--sgds-bg-opacity))!important}.bg-warning{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-warning-rgb),var(--sgds-bg-opacity))!important}.bg-danger{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-danger-rgb),var(--sgds-bg-opacity))!important}.bg-light{background-color:rgba(var(--sgds-light-rgb),var(--sgds-bg-opacity))!important}.bg-dark,.bg-light{--sgds-bg-opacity:1}.bg-dark{background-color:rgba(var(--sgds-dark-rgb),var(--sgds-bg-opacity))!important}.bg-black{--sgds-bg-opacity:1;background-color:rgba(var(--sgds-black-rgb),var(--sgds-bg-opacity))!important}.bg-white{background-color:rgba(var(--sgds-white-rgb),var(--sgds-bg-opacity))!important}.bg-body,.bg-white{--sgds-bg-opacity:1}.bg-body{background-color:rgba(var(--sgds-body-bg-rgb),var(--sgds-bg-opacity))!important}.bg-transparent{--sgds-bg-opacity:1;background-color:transparent!important}.bg-primary-100{--sgds-bg-opacity:1;background-color:#ece6fb!important}.bg-primary-200{--sgds-bg-opacity:1;background-color:#c7b6f3!important}.bg-primary-300{--sgds-bg-opacity:1;background-color:#a386ec!important}.bg-primary-400{--sgds-bg-opacity:1;background-color:#7e55e4!important}.bg-primary-500{--sgds-bg-opacity:1;background-color:#5925dc!important}.bg-primary-600{--sgds-bg-opacity:1;background-color:#491db6!important}.bg-primary-700{--sgds-bg-opacity:1;background-color:#39178e!important}.bg-primary-800{--sgds-bg-opacity:1;background-color:#291167!important}.bg-primary-900{--sgds-bg-opacity:1;background-color:#190a3f!important}.bg-secondary-100{--sgds-bg-opacity:1;background-color:#ebf1ff!important}.bg-secondary-200{--sgds-bg-opacity:1;background-color:#d3e2ff!important}.bg-secondary-300{--sgds-bg-opacity:1;background-color:#9bf!important}.bg-secondary-400{--sgds-bg-opacity:1;background-color:#70a0ff!important}.bg-secondary-500{--sgds-bg-opacity:1;background-color:#1f69ff!important}.bg-secondary-600{--sgds-bg-opacity:1;background-color:#004ff0!important}.bg-secondary-700{--sgds-bg-opacity:1;background-color:#0040c2!important}.bg-secondary-800{--sgds-bg-opacity:1;background-color:#003194!important}.bg-secondary-900{--sgds-bg-opacity:1;background-color:#026!important}.bg-purple-100{--sgds-bg-opacity:1;background-color:#ece6fb!important}.bg-purple-200{--sgds-bg-opacity:1;background-color:#c7b6f3!important}.bg-purple-300{--sgds-bg-opacity:1;background-color:#a386ec!important}.bg-purple-400{--sgds-bg-opacity:1;background-color:#7e55e4!important}.bg-purple-500{--sgds-bg-opacity:1;background-color:#5925dc!important}.bg-purple-600{--sgds-bg-opacity:1;background-color:#491db6!important}.bg-purple-700{--sgds-bg-opacity:1;background-color:#39178e!important}.bg-purple-800{--sgds-bg-opacity:1;background-color:#291167!important}.bg-purple-900{--sgds-bg-opacity:1;background-color:#190a3f!important}.bg-red-100{--sgds-bg-opacity:1;background-color:#fff4f3!important}.bg-red-200{--sgds-bg-opacity:1;background-color:#ffcfc8!important}.bg-red-300{--sgds-bg-opacity:1;background-color:#fc9c90!important}.bg-red-400{--sgds-bg-opacity:1;background-color:#fb7463!important}.bg-red-500{--sgds-bg-opacity:1;background-color:#fa5741!important}.bg-red-600{--sgds-bg-opacity:1;background-color:#d7260f!important}.bg-red-700{--sgds-bg-opacity:1;background-color:#f8331c!important}.bg-red-800{--sgds-bg-opacity:1;background-color:#560f06!important}.bg-red-900{--sgds-bg-opacity:1;background-color:#2b0803!important}.bg-yellow-100{--sgds-bg-opacity:1;background-color:#fffaeb!important}.bg-yellow-200{--sgds-bg-opacity:1;background-color:#fef0c7!important}.bg-yellow-300{--sgds-bg-opacity:1;background-color:#fedf89!important}.bg-yellow-400{--sgds-bg-opacity:1;background-color:#fec84b!important}.bg-yellow-500{--sgds-bg-opacity:1;background-color:#fdb022!important}.bg-yellow-600{--sgds-bg-opacity:1;background-color:#f79009!important}.bg-yellow-700{--sgds-bg-opacity:1;background-color:#dc6803!important}.bg-yellow-800{--sgds-bg-opacity:1;background-color:#633a04!important}.bg-yellow-900{--sgds-bg-opacity:1;background-color:#311d02!important}.bg-green-100{--sgds-bg-opacity:1;background-color:#e7f6e9!important}.bg-green-200{--sgds-bg-opacity:1;background-color:#c4e8c8!important}.bg-green-300{--sgds-bg-opacity:1;background-color:#9dd9a3!important}.bg-green-400{--sgds-bg-opacity:1;background-color:#58be62!important}.bg-green-500{--sgds-bg-opacity:1;background-color:#3bb346!important}.bg-green-600{--sgds-bg-opacity:1;background-color:#0a8217!important}.bg-green-700{--sgds-bg-opacity:1;background-color:#2da337!important}.bg-green-800{--sgds-bg-opacity:1;background-color:#043409!important}.bg-green-900{--sgds-bg-opacity:1;background-color:#021a05!important}.bg-cyan-100{--sgds-bg-opacity:1;background-color:#e2eff8!important}.bg-cyan-200{--sgds-bg-opacity:1;background-color:#b9d8ee!important}.bg-cyan-300{--sgds-bg-opacity:1;background-color:#90c1e4!important}.bg-cyan-400{--sgds-bg-opacity:1;background-color:#58a1d4!important}.bg-cyan-500{--sgds-bg-opacity:1;background-color:#59a1d4!important}.bg-cyan-600{--sgds-bg-opacity:1;background-color:#0f71bb!important}.bg-cyan-700{--sgds-bg-opacity:1;background-color:#0c5b97!important}.bg-cyan-800{--sgds-bg-opacity:1;background-color:#0a4776!important}.bg-cyan-900{--sgds-bg-opacity:1;background-color:#08395e!important}.bg-dark-100{--sgds-bg-opacity:1;background-color:#f7f7f9!important}.bg-dark-200{--sgds-bg-opacity:1;background-color:#e4e7ec!important}.bg-dark-300{--sgds-bg-opacity:1;background-color:#d0d5dd!important}.bg-dark-400{--sgds-bg-opacity:1;background-color:#98a2b3!important}.bg-dark-500{--sgds-bg-opacity:1;background-color:#667085!important}.bg-dark-600{--sgds-bg-opacity:1;background-color:#344054!important}.bg-dark-700{--sgds-bg-opacity:1;background-color:#1d2939!important}.bg-dark-800,.bg-dark-900{--sgds-bg-opacity:1;background-color:#000!important}.bg-light-100{--sgds-bg-opacity:1;background-color:#f7f7f9!important}.bg-light-200{--sgds-bg-opacity:1;background-color:#e4e7ec!important}.bg-light-300{--sgds-bg-opacity:1;background-color:#d0d5dd!important}.bg-light-400{--sgds-bg-opacity:1;background-color:#98a2b3!important}.bg-light-500{--sgds-bg-opacity:1;background-color:#667085!important}.bg-light-600{--sgds-bg-opacity:1;background-color:#344054!important}.bg-light-700{--sgds-bg-opacity:1;background-color:#1d2939!important}.bg-light-800,.bg-light-900{--sgds-bg-opacity:1;background-color:#000!important}.bg-opacity-10{--sgds-bg-opacity:0.1}.bg-opacity-25{--sgds-bg-opacity:0.25}.bg-opacity-50{--sgds-bg-opacity:0.5}.bg-opacity-75{--sgds-bg-opacity:0.75}.bg-opacity-100{--sgds-bg-opacity:1}.bg-gradient{background-image:var(--sgds-gradient)!important}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.3125rem!important}.rounded-0,.sgds.datepicker td{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.3125rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.3125rem!important}.rounded-end,.rounded-top{border-top-right-radius:.3125rem!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:.3125rem!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:.3125rem!important}.rounded-start{border-top-left-radius:.3125rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:2rem!important}.gap-sm-6{gap:2.5rem!important}.gap-sm-7{gap:3rem!important}.gap-sm-8{gap:3.5rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:2rem!important}.m-sm-6{margin:2.5rem!important}.m-sm-7{margin:3rem!important}.m-sm-8{margin:3.5rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:2rem!important;margin-right:2rem!important}.mx-sm-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-sm-7{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-sm-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-sm-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:2rem!important}.mt-sm-6{margin-top:2.5rem!important}.mt-sm-7{margin-top:3rem!important}.mt-sm-8{margin-top:3.5rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:2rem!important}.me-sm-6{margin-right:2.5rem!important}.me-sm-7{margin-right:3rem!important}.me-sm-8{margin-right:3.5rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:2rem!important}.mb-sm-6{margin-bottom:2.5rem!important}.mb-sm-7{margin-bottom:3rem!important}.mb-sm-8{margin-bottom:3.5rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:2rem!important}.ms-sm-6{margin-left:2.5rem!important}.ms-sm-7{margin-left:3rem!important}.ms-sm-8{margin-left:3.5rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:2rem!important}.p-sm-6{padding:2.5rem!important}.p-sm-7{padding:3rem!important}.p-sm-8{padding:3.5rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:2rem!important;padding-right:2rem!important}.px-sm-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-sm-7{padding-left:3rem!important;padding-right:3rem!important}.px-sm-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-sm-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-sm-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-sm-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:2rem!important}.pt-sm-6{padding-top:2.5rem!important}.pt-sm-7{padding-top:3rem!important}.pt-sm-8{padding-top:3.5rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:2rem!important}.pe-sm-6{padding-right:2.5rem!important}.pe-sm-7{padding-right:3rem!important}.pe-sm-8{padding-right:3.5rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:2rem!important}.pb-sm-6{padding-bottom:2.5rem!important}.pb-sm-7{padding-bottom:3rem!important}.pb-sm-8{padding-bottom:3.5rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:2rem!important}.ps-sm-6{padding-left:2.5rem!important}.ps-sm-7{padding-left:3rem!important}.ps-sm-8{padding-left:3.5rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:2rem!important}.gap-md-6{gap:2.5rem!important}.gap-md-7{gap:3rem!important}.gap-md-8{gap:3.5rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:2rem!important}.m-md-6{margin:2.5rem!important}.m-md-7{margin:3rem!important}.m-md-8{margin:3.5rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:2rem!important;margin-right:2rem!important}.mx-md-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-md-7{margin-left:3rem!important;margin-right:3rem!important}.mx-md-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-md-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-md-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:2rem!important}.mt-md-6{margin-top:2.5rem!important}.mt-md-7{margin-top:3rem!important}.mt-md-8{margin-top:3.5rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:2rem!important}.me-md-6{margin-right:2.5rem!important}.me-md-7{margin-right:3rem!important}.me-md-8{margin-right:3.5rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:2rem!important}.mb-md-6{margin-bottom:2.5rem!important}.mb-md-7{margin-bottom:3rem!important}.mb-md-8{margin-bottom:3.5rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:2rem!important}.ms-md-6{margin-left:2.5rem!important}.ms-md-7{margin-left:3rem!important}.ms-md-8{margin-left:3.5rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:2rem!important}.p-md-6{padding:2.5rem!important}.p-md-7{padding:3rem!important}.p-md-8{padding:3.5rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:2rem!important;padding-right:2rem!important}.px-md-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-md-7{padding-left:3rem!important;padding-right:3rem!important}.px-md-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-md-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-md-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-md-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:2rem!important}.pt-md-6{padding-top:2.5rem!important}.pt-md-7{padding-top:3rem!important}.pt-md-8{padding-top:3.5rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:2rem!important}.pe-md-6{padding-right:2.5rem!important}.pe-md-7{padding-right:3rem!important}.pe-md-8{padding-right:3.5rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:2rem!important}.pb-md-6{padding-bottom:2.5rem!important}.pb-md-7{padding-bottom:3rem!important}.pb-md-8{padding-bottom:3.5rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:2rem!important}.ps-md-6{padding-left:2.5rem!important}.ps-md-7{padding-left:3rem!important}.ps-md-8{padding-left:3.5rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:2rem!important}.gap-lg-6{gap:2.5rem!important}.gap-lg-7{gap:3rem!important}.gap-lg-8{gap:3.5rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:2rem!important}.m-lg-6{margin:2.5rem!important}.m-lg-7{margin:3rem!important}.m-lg-8{margin:3.5rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:2rem!important;margin-right:2rem!important}.mx-lg-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-lg-7{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-lg-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-lg-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:2rem!important}.mt-lg-6{margin-top:2.5rem!important}.mt-lg-7{margin-top:3rem!important}.mt-lg-8{margin-top:3.5rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:2rem!important}.me-lg-6{margin-right:2.5rem!important}.me-lg-7{margin-right:3rem!important}.me-lg-8{margin-right:3.5rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:2rem!important}.mb-lg-6{margin-bottom:2.5rem!important}.mb-lg-7{margin-bottom:3rem!important}.mb-lg-8{margin-bottom:3.5rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:2rem!important}.ms-lg-6{margin-left:2.5rem!important}.ms-lg-7{margin-left:3rem!important}.ms-lg-8{margin-left:3.5rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:2rem!important}.p-lg-6{padding:2.5rem!important}.p-lg-7{padding:3rem!important}.p-lg-8{padding:3.5rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:2rem!important;padding-right:2rem!important}.px-lg-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-lg-7{padding-left:3rem!important;padding-right:3rem!important}.px-lg-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-lg-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-lg-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-lg-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:2rem!important}.pt-lg-6{padding-top:2.5rem!important}.pt-lg-7{padding-top:3rem!important}.pt-lg-8{padding-top:3.5rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:2rem!important}.pe-lg-6{padding-right:2.5rem!important}.pe-lg-7{padding-right:3rem!important}.pe-lg-8{padding-right:3.5rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:2rem!important}.pb-lg-6{padding-bottom:2.5rem!important}.pb-lg-7{padding-bottom:3rem!important}.pb-lg-8{padding-bottom:3.5rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:2rem!important}.ps-lg-6{padding-left:2.5rem!important}.ps-lg-7{padding-left:3rem!important}.ps-lg-8{padding-left:3.5rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:2rem!important}.gap-xl-6{gap:2.5rem!important}.gap-xl-7{gap:3rem!important}.gap-xl-8{gap:3.5rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:2rem!important}.m-xl-6{margin:2.5rem!important}.m-xl-7{margin:3rem!important}.m-xl-8{margin:3.5rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:2rem!important;margin-right:2rem!important}.mx-xl-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-xl-7{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-xl-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-xl-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:2rem!important}.mt-xl-6{margin-top:2.5rem!important}.mt-xl-7{margin-top:3rem!important}.mt-xl-8{margin-top:3.5rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:2rem!important}.me-xl-6{margin-right:2.5rem!important}.me-xl-7{margin-right:3rem!important}.me-xl-8{margin-right:3.5rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:2rem!important}.mb-xl-6{margin-bottom:2.5rem!important}.mb-xl-7{margin-bottom:3rem!important}.mb-xl-8{margin-bottom:3.5rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:2rem!important}.ms-xl-6{margin-left:2.5rem!important}.ms-xl-7{margin-left:3rem!important}.ms-xl-8{margin-left:3.5rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:2rem!important}.p-xl-6{padding:2.5rem!important}.p-xl-7{padding:3rem!important}.p-xl-8{padding:3.5rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:2rem!important;padding-right:2rem!important}.px-xl-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-xl-7{padding-left:3rem!important;padding-right:3rem!important}.px-xl-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-xl-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-xl-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-xl-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:2rem!important}.pt-xl-6{padding-top:2.5rem!important}.pt-xl-7{padding-top:3rem!important}.pt-xl-8{padding-top:3.5rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:2rem!important}.pe-xl-6{padding-right:2.5rem!important}.pe-xl-7{padding-right:3rem!important}.pe-xl-8{padding-right:3.5rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:2rem!important}.pb-xl-6{padding-bottom:2.5rem!important}.pb-xl-7{padding-bottom:3rem!important}.pb-xl-8{padding-bottom:3.5rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:2rem!important}.ps-xl-6{padding-left:2.5rem!important}.ps-xl-7{padding-left:3rem!important}.ps-xl-8{padding-left:3.5rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:2rem!important}.gap-xxl-6{gap:2.5rem!important}.gap-xxl-7{gap:3rem!important}.gap-xxl-8{gap:3.5rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:2rem!important}.m-xxl-6{margin:2.5rem!important}.m-xxl-7{margin:3rem!important}.m-xxl-8{margin:3.5rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:2rem!important;margin-right:2rem!important}.mx-xxl-6{margin-left:2.5rem!important;margin-right:2.5rem!important}.mx-xxl-7{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-8{margin-left:3.5rem!important;margin-right:3.5rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:2rem!important;margin-top:2rem!important}.my-xxl-6{margin-bottom:2.5rem!important;margin-top:2.5rem!important}.my-xxl-7{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-8{margin-bottom:3.5rem!important;margin-top:3.5rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:2rem!important}.mt-xxl-6{margin-top:2.5rem!important}.mt-xxl-7{margin-top:3rem!important}.mt-xxl-8{margin-top:3.5rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:2rem!important}.me-xxl-6{margin-right:2.5rem!important}.me-xxl-7{margin-right:3rem!important}.me-xxl-8{margin-right:3.5rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:2rem!important}.mb-xxl-6{margin-bottom:2.5rem!important}.mb-xxl-7{margin-bottom:3rem!important}.mb-xxl-8{margin-bottom:3.5rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:2rem!important}.ms-xxl-6{margin-left:2.5rem!important}.ms-xxl-7{margin-left:3rem!important}.ms-xxl-8{margin-left:3.5rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:2rem!important}.p-xxl-6{padding:2.5rem!important}.p-xxl-7{padding:3rem!important}.p-xxl-8{padding:3.5rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:2rem!important;padding-right:2rem!important}.px-xxl-6{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-xxl-7{padding-left:3rem!important;padding-right:3rem!important}.px-xxl-8{padding-left:3.5rem!important;padding-right:3.5rem!important}.py-xxl-0{padding-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:2rem!important;padding-top:2rem!important}.py-xxl-6{padding-bottom:2.5rem!important;padding-top:2.5rem!important}.py-xxl-7{padding-bottom:3rem!important;padding-top:3rem!important}.py-xxl-8{padding-bottom:3.5rem!important;padding-top:3.5rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:2rem!important}.pt-xxl-6{padding-top:2.5rem!important}.pt-xxl-7{padding-top:3rem!important}.pt-xxl-8{padding-top:3.5rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:2rem!important}.pe-xxl-6{padding-right:2.5rem!important}.pe-xxl-7{padding-right:3rem!important}.pe-xxl-8{padding-right:3.5rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:2rem!important}.pb-xxl-6{padding-bottom:2.5rem!important}.pb-xxl-7{padding-bottom:3rem!important}.pb-xxl-8{padding-bottom:3.5rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:2rem!important}.ps-xxl-6{padding-left:2.5rem!important}.ps-xxl-7{padding-left:3rem!important}.ps-xxl-8{padding-left:3.5rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-0{font-size:3.5rem!important}.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}sgds-template-grid{background:#fafafa}sgds-template-grid.with-sidenav{display:grid;grid-template-columns:15rem minmax(min-content,1fr)}sgds-template-grid.with-sidenav.with-toc{grid-template-columns:15rem minmax(min-content,1fr) 15rem}@media (max-width:991.98px){sgds-template-grid.with-sidenav{display:block}sgds-template-grid.with-sidenav aside,sgds-template-grid.with-sidenav sgds-aside-area{display:none}}sgds-aside-area{background:#fff;box-shadow:3px 0 6px 0 rgba(208,213,221,.502);padding-bottom:1.5rem;padding-top:1.5rem;z-index:10}sgds-toc-area{font-size:14px;padding-top:1.5rem;position:sticky}sgds-content-area{display:flex;flex-direction:column;gap:2rem;max-width:100%;padding:2rem}sgds-content-header-top{align-items:center;display:flex;flex-direction:row;justify-content:space-between}sgds-content-header-bottom{align-items:end;display:grid;grid-template-columns:repeat(12,1fr)}sgds-content-header-bottom :first-child.search-container{grid-column:1/5}sgds-content-header-bottom :last-child{grid-column:12/13;white-space:nowrap}sgds-content-body{display:flex;flex-direction:column;gap:2rem}:host{--sgds-primary-rgb:89,37,220;--sgds-secondary-rgb:31,105,255;--sgds-success-rgb:10,130,23;--sgds-info-rgb:15,113,187;--sgds-warning-rgb:247,144,9;--sgds-danger-rgb:215,38,15;--sgds-light-rgb:247,247,249;--sgds-dark-rgb:0,0,0;--sgds-primary:#5925dc;--sgds-secondary:#1f69ff;--sgds-success:#0a8217;--sgds-info:#0f71bb;--sgds-warning:#f79009;--sgds-danger:#d7260f;--sgds-light:#f7f7f9;--sgds-dark:#000;--sgds-gray-100:#f7f7f9;--sgds-gray-200:#e4e7ec;--sgds-gray-300:#d0d5dd;--sgds-gray-400:#98a2b3;--sgds-gray-500:#667085;--sgds-gray-600:#344054;--sgds-gray-700:#1d2939;--sgds-gray-800:#000;--sgds-gray-900:#000;--sgds-primary-100:#ece6fb;--sgds-primary-200:#c7b6f3;--sgds-primary-300:#a386ec;--sgds-primary-400:#7e55e4;--sgds-primary-500:#5925dc;--sgds-primary-600:#491db6;--sgds-primary-700:#39178e;--sgds-primary-800:#291167;--sgds-primary-900:#190a3f;--sgds-secondary-100:#ebf1ff;--sgds-secondary-200:#d3e2ff;--sgds-secondary-300:#9bf;--sgds-secondary-400:#70a0ff;--sgds-secondary-500:#1f69ff;--sgds-secondary-600:#004ff0;--sgds-secondary-700:#0040c2;--sgds-secondary-800:#003194;--sgds-secondary-900:#026;--sgds-success-100:#e7f6e9;--sgds-success-200:#c4e8c8;--sgds-success-300:#9dd9a3;--sgds-success-400:#58be62;--sgds-success-500:#3bb346;--sgds-success-600:#0a8217;--sgds-success-700:#2da337;--sgds-success-800:#043409;--sgds-success-900:#021a05;--sgds-info-100:#e2eff8;--sgds-info-200:#b9d8ee;--sgds-info-300:#90c1e4;--sgds-info-400:#58a1d4;--sgds-info-500:#59a1d4;--sgds-info-600:#0f71bb;--sgds-info-700:#0c5b97;--sgds-info-800:#0a4776;--sgds-info-900:#08395e;--sgds-danger-100:#fff4f3;--sgds-danger-200:#ffcfc8;--sgds-danger-300:#fc9c90;--sgds-danger-400:#fb7463;--sgds-danger-500:#fa5741;--sgds-danger-600:#d7260f;--sgds-danger-700:#f8331c;--sgds-danger-800:#560f06;--sgds-danger-900:#2b0803;--sgds-warning-100:#fffaeb;--sgds-warning-200:#fef0c7;--sgds-warning-300:#fedf89;--sgds-warning-400:#fec84b;--sgds-warning-500:#fdb022;--sgds-warning-600:#f79009;--sgds-warning-700:#dc6803;--sgds-warning-800:#633a04;--sgds-warning-900:#311d02;--sgds-light-100:#f7f7f9;--sgds-light-200:#e4e7ec;--sgds-light-300:#d0d5dd;--sgds-light-400:#98a2b3;--sgds-light-500:#667085;--sgds-light-600:#344054;--sgds-light-700:#1d2939;--sgds-light-800:#000;--sgds-light-900:#000;--sgds-dark-100:#f7f7f9;--sgds-dark-200:#e4e7ec;--sgds-dark-300:#d0d5dd;--sgds-dark-400:#98a2b3;--sgds-dark-500:#667085;--sgds-dark-600:#344054;--sgds-dark-700:#1d2939;--sgds-dark-800:#000;--sgds-dark-900:#000;--overlay-background-color:rgba(0,0,0,.5);--zindex-modal:1055;font-family:var(--sgds-body-font-family,\"Inter\",system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,\"Noto Sans\",\"Liberation Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-size:var(--sgds-body-font-size,1rem);font-weight:var(--sgds-body-font-weight,400);line-height:var(--sgds-body-line-height,2)}:host ::slotted(a[target=_blank]):after,:host a[target=_blank]:after{background-color:currentColor;content:\"/\";display:inline-block;margin:0 .125rem;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:url('data:image/svg+xml;charset=utf-8,');-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-size:73%;-webkit-mask-size:73%;padding:0 .45em}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-element2.js.map\n","import { LitElement } from 'lit';\nimport css_248z from './sgds-element2.js';\n\n/**\n * @cssprop --sgds-{stateColor} - State colors in hexadecimal value\n * @cssprop --sgds-{stateColor}-rgb - State colors in rgb value\n * @cssprop --sgds-{stateColor}-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --sgds-gray-{weights} - State colors with different weightage in hexadecimal value\n * @cssprop --overlay-background-color - The drawer and modal component overlay background color\n * @cssprop --zindex-modal - The drawer and modal component z-index value\n */\nclass SgdsElement extends LitElement {\n /** Emits a custom event with more convenient defaults. */\n emit(name, options) {\n const event = new CustomEvent(name, Object.assign({ bubbles: true, cancelable: false, composed: true, detail: {} }, options));\n this.dispatchEvent(event);\n return event;\n }\n}\nSgdsElement.styles = css_248z;\n\nexport { SgdsElement as default };\n//# sourceMappingURL=sgds-element.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--accordion-active-color:var(--sgds-primary)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-accordion2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property, queryAssignedNodes } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-accordion2.js';\n\nconst VALID_KEYS = [\"Enter\", \"ArrowUp\", \"ArrowLeft\", \"ArrowDown\", \"ArrowRight\"];\n/**\n * @summary A dropdown mechanism that allow users to either show or hide related content. `SgdsAccordion` is a wrapper to manage the behaviour for multiple `SgdsAccordionItems`\n * @slot default - slot for accordion-item\n *\n * @cssprop --accordion-active-color - The text color of all accordion buttons to indicate its active state\n *\n */\nclass SgdsAccordion extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Allows multiple accordion items to be opened at the same time */\n this.allowMultiple = false;\n }\n /** @internal */\n get items() {\n return [...(this.defaultNodes || [])].filter((node) => typeof node.tagName !== \"undefined\");\n }\n firstUpdated() {\n const items = [...this.items];\n items.forEach((item, index) => {\n if (items.length > 1) {\n switch (index) {\n case 0:\n item.setAttribute(\"first-of-type\", \"\");\n break;\n case items.length - 1:\n item.setAttribute(\"last-of-type\", \"\");\n break;\n default:\n item.setAttribute(\"nth-of-type\", \"\");\n }\n }\n });\n }\n async _onToggle(event) {\n if (this.allowMultiple) {\n // No toggling when `allowMultiple` or the user prevents it.\n return;\n }\n const items = [...this.items];\n if (items && !items.length) {\n // no toggling when there aren't items.\n return;\n }\n items.forEach(item => {\n // Covers all elements within accordion-item\n if (!event.composedPath().includes(item)) {\n // Close all the items that didn't dispatch the event.\n item.open = false;\n }\n });\n }\n async _onKeyboardToggle(event) {\n if (!VALID_KEYS.includes(event.key))\n return;\n return this._onToggle(event);\n }\n render() {\n return html `\n \n \n \n `;\n }\n}\nSgdsAccordion.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsAccordion.prototype, \"allowMultiple\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsAccordion.prototype, \"accordionClasses\", void 0);\n__decorate([\n queryAssignedNodes()\n], SgdsAccordion.prototype, \"defaultNodes\", void 0);\n\nexport { SgdsAccordion, SgdsAccordion as default };\n//# sourceMappingURL=sgds-accordion.js.map\n","//\n// Animates an element using keyframes. Returns a promise that resolves after the animation completes or gets canceled.\n//\nfunction animateTo(el, keyframes, options) {\n return new Promise(resolve => {\n if ((options === null || options === void 0 ? void 0 : options.duration) === Infinity) {\n throw new Error(\"Promise-based animations must be finite.\");\n }\n const animation = el.animate(keyframes, Object.assign(Object.assign({}, options), { duration: prefersReducedMotion() ? 0 : options === null || options === void 0 ? void 0 : options.duration }));\n animation.addEventListener(\"cancel\", resolve, { once: true });\n animation.addEventListener(\"finish\", resolve, { once: true });\n });\n}\n//\n// Tells if the user has enabled the \"reduced motion\" setting in their browser or OS.\n//\nfunction prefersReducedMotion() {\n const query = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n return query.matches;\n}\n// We can't animate `height: auto`, but we can calculate the height and shim keyframes by replacing it with the\n// element's scrollHeight before the animation.\nfunction shimKeyframesHeightAuto(keyframes, calculatedHeight) {\n return keyframes.map(keyframe => (Object.assign(Object.assign({}, keyframe), { height: keyframe.height === \"auto\" ? `${calculatedHeight}px` : keyframe.height })));\n}\n//\n// Stops all active animations on the target element. Returns a promise that resolves after all animations are canceled.\n//\nfunction stopAnimations(el) {\n return Promise.all(el.getAnimations().map(animation => {\n return new Promise(resolve => {\n const handleAnimationEvent = requestAnimationFrame(resolve);\n animation.addEventListener(\"cancel\", () => handleAnimationEvent, { once: true });\n animation.addEventListener(\"finish\", () => handleAnimationEvent, { once: true });\n animation.cancel();\n });\n }));\n}\n\nexport { animateTo, prefersReducedMotion, shimKeyframesHeightAuto, stopAnimations };\n//# sourceMappingURL=animate.js.map\n","const defaultAnimationRegistry = new Map();\nconst customAnimationRegistry = new WeakMap();\nfunction ensureAnimation(animation) {\n return animation !== null && animation !== void 0 ? animation : { keyframes: [], options: { duration: 0 } };\n}\n//\n// Given an ElementAnimation, this function returns a new ElementAnimation where the keyframes property reflects either\n// keyframes or rtlKeyframes depending on the specified directionality.\n//\nfunction getLogicalAnimation(animation) {\n return animation;\n}\n//\n// Gets an element's animation. Falls back to the default if no animation is found.\n//\nfunction getAnimation(el, animationName) {\n const customAnimation = customAnimationRegistry.get(el);\n // Check for a custom animation\n if (customAnimation === null || customAnimation === void 0 ? void 0 : customAnimation[animationName]) {\n return getLogicalAnimation(customAnimation[animationName]);\n }\n // Check for a default animation\n const defaultAnimation = defaultAnimationRegistry.get(animationName);\n if (defaultAnimation) {\n return getLogicalAnimation(defaultAnimation);\n }\n // Fall back to an empty animation\n return {\n keyframes: [],\n options: { duration: 0 }\n };\n}\n//\n// Sets a default animation. Components should use the `name.animation` for primary animations and `name.part.animation`\n// for secondary animations, e.g. `dialog.show` and `dialog.overlay.show`. For modifiers, use `drawer.showTop`.\n//\nfunction setDefaultAnimation(animationName, animation) {\n defaultAnimationRegistry.set(animationName, ensureAnimation(animation));\n}\n\nexport { getAnimation, setDefaultAnimation };\n//# sourceMappingURL=animation-registry.js.map\n","/** Waits for a specific event to be emitted from an element. Ignores events that bubble up from child elements. */\nfunction waitForEvent(el, eventName) {\n return new Promise(resolve => {\n function done(event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n el.addEventListener(eventName, done);\n });\n}\n\nexport { waitForEvent };\n//# sourceMappingURL=event.js.map\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\nfunction watch(propName, options) {\n const resolvedOptions = Object.assign({ waitUntilFirstUpdate: false }, options);\n return (proto, decoratedFnName) => {\n // @ts-expect-error -- update is a protected property\n const { update } = proto;\n if (propName in proto) {\n const propNameKey = propName;\n // @ts-expect-error -- update is a protected property\n proto.update = function (changedProps) {\n if (changedProps.has(propNameKey)) {\n const oldValue = changedProps.get(propNameKey);\n const newValue = this[propNameKey];\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n this[decoratedFnName](oldValue, newValue);\n }\n }\n }\n update.call(this, changedProps);\n };\n }\n };\n}\n\nexport { watch };\n//# sourceMappingURL=watch.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--accordion-item-padding-y:1rem;--accordion-item-padding-x:1.5rem;--accordion-item-border-radius:0.25rem;--accordion-item-font-weight:700;--accordion-item-line-height:2rem}.accordion-body{line-height:var(--accordion-item-line-height);overflow:hidden;padding:0}.accordion-content{display:block;padding:0 var(--accordion-item-padding-x) var(--accordion-item-padding-y)}.accordion-button{line-height:var(--accordion-item-line-height)}.accordion-button:not(.collapsed){color:var(--accordion-active-color,var(--sgds-primary))}.accordion-button svg.bi-chevron-down{height:1.3rem;margin-left:auto;transition:transform .2s ease-in-out;width:1.3rem}.accordion-button:not(.collapsed){box-shadow:none;font-weight:var(--accordion-item-font-weight)}.accordion-button:not(.collapsed) svg.bi-chevron-down{transform:rotate(-180deg)}.accordion-button:after{content:unset}:host([first-of-type]) .accordion-item{border-radius:var(--accordion-item-border-radius) var(--accordion-item-border-radius) 0 0}:host([nth-of-type]) .accordion-item{border-radius:0;border-top:0}:host([last-of-type]) .accordion-item{border-radius:0 0 var(--accordion-item-border-radius) var(--accordion-item-border-radius);border-top:0}.hidden{display:none}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-accordion-item2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { stopAnimations, animateTo, shimKeyframesHeightAuto } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-accordion-item2.js';\n\n/**\n *\n * @event sgds-show - Emitted on show.\n * @event sgds-after-show - Emitted on show after animation has completed.\n * @event sgds-hide - Emitted on hide.\n * @event sgds-after-hide - Emitted on hide after animation has completed.\n *\n * @csspart base - The accordion-item base wrapper.\n * @csspart header - The accordion-item button header.\n * @csspart content - The accordion-item content.\n *\n * @slot accordion-header - The accordion-item button header slot.\n * @slot accordion-content - The accordion-item content slot.\n *\n * @cssprop --accordion-item-padding-y - The top and bottom padding for the container of accordion item's content\n * @cssprop --accordion-item-padding-x - The right and left padding for the container of accordion item's content\n * @cssprop --accordion-item-border-radius - The border radius of the accordion item\n * @cssprop --accordion-item-font-weight - The font weight of accordion-button when it is not collapsed\n * @cssprop --accordion-item-line-height - The line height of accordion\n */\nclass SgdsAccordionItem extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Controls whether accordion-item is open or close */\n this.open = false;\n }\n firstUpdated() {\n if (!this.open)\n this.body.classList.add(\"hidden\");\n }\n handleSummaryClick() {\n if (this.open) {\n this.hide();\n }\n else {\n this.show();\n }\n this.header.focus();\n }\n handleSummaryKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (this.open) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n async handleOpenChange() {\n if (this.open) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.open = false;\n return;\n }\n await stopAnimations(this.body);\n this.body.classList.remove(\"hidden\");\n const { keyframes, options } = getAnimation(this, \"accordion.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.emit(\"sgds-after-show\");\n }\n else {\n // Hide\n const slHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (slHide.defaultPrevented) {\n this.open = true;\n return;\n }\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, \"accordion.hide\");\n const animationDuration = options.duration;\n // Workaround to fix GSIB delay after animateTo.\n //Setting a timeout of duration slightly less than animation's duraton to prevent case where animation runs faster than .hidden class is added\n setTimeout(() => {\n this.body.classList.add(\"hidden\");\n }, animationDuration - 20);\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.emit(\"sgds-after-hide\");\n }\n }\n /** Shows the accordion. */\n async show() {\n if (this.open) {\n return;\n }\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hide the accordion */\n async hide() {\n if (!this.open) {\n return;\n }\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n render() {\n return html `\n \n \n \n \n \n \n \n \n \n \n \n `;\n }\n}\nSgdsAccordionItem.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".accordion-item\")\n], SgdsAccordionItem.prototype, \"accordion\", void 0);\n__decorate([\n query(\".accordion-button\")\n], SgdsAccordionItem.prototype, \"header\", void 0);\n__decorate([\n query(\".accordion-body\")\n], SgdsAccordionItem.prototype, \"body\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsAccordionItem.prototype, \"open\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsAccordionItem.prototype, \"accordionItemClasses\", void 0);\n__decorate([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SgdsAccordionItem.prototype, \"handleOpenChange\", null);\nsetDefaultAnimation(\"accordion.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 350, easing: \"ease-in-out\" }\n});\nsetDefaultAnimation(\"accordion.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 350, easing: \"ease-in-out\" }\n});\n\nexport { SgdsAccordionItem, SgdsAccordionItem as default };\n//# sourceMappingURL=sgds-accordion-item.js.map\n","import { SgdsAccordion } from './sgds-accordion.js';\nimport { SgdsAccordionItem } from './sgds-accordion-item.js';\n\ncustomElements.define(\"sgds-accordion\", SgdsAccordion);\ncustomElements.define(\"sgds-accordion-item\", SgdsAccordionItem);\n//# sourceMappingURL=index.js.map\n","const appliedClassMixins = new WeakMap();\n\n/** Vefify if the Mixin was previously applyed\n * @private\n * @param {function} mixin Mixin being applyed\n * @param {object} superClass Class receiving the new mixin\n * @returns {boolean}\n */\nfunction wasMixinPreviouslyApplied(mixin, superClass) {\n let klass = superClass;\n while (klass) {\n if (appliedClassMixins.get(klass) === mixin) {\n return true;\n }\n klass = Object.getPrototypeOf(klass);\n }\n return false;\n}\n\n/** Apply each mixin in the chain to make sure they are not applied more than once to the final class.\n * @export\n * @param {function} mixin Mixin to be applyed\n * @returns {object} Mixed class with mixin applied\n */\nexport function dedupeMixin(mixin) {\n return superClass => {\n if (wasMixinPreviouslyApplied(mixin, superClass)) {\n return superClass;\n }\n const mixedClass = mixin(superClass);\n appliedClassMixins.set(mixedClass, mixin);\n return mixedClass;\n };\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import { dedupeMixin } from '@open-wc/dedupe-mixin';\nimport { adoptStyles } from '@lit/reactive-element/css-tag.js';\n\n/**\n * @typedef {import('./types').RenderOptions} RenderOptions\n * @typedef {import('./types').ScopedElementsMixin} ScopedElementsMixin\n * @typedef {import('./types').ScopedElementsHost} ScopedElementsHost\n * @typedef {import('./types').ScopedElementsMap} ScopedElementsMap\n * @typedef {import('@lit/reactive-element').CSSResultOrNative} CSSResultOrNative\n */\n\nconst version = '2.2.2';\n// eslint-disable-next-line dot-notation\nconst versions = window['scopedElementsVersions'] || (window['scopedElementsVersions'] = []);\nif (!versions.includes(version)) {\n versions.push(version);\n}\n\n// @ts-ignore\nconst supportsScopedRegistry = !!ShadowRoot.prototype.createElement;\n\n/**\n * @template {import('./types').Constructor} T\n * @param {T} superclass\n * @return {T & import('./types').Constructor}\n */\nconst ScopedElementsMixinImplementation = superclass =>\n /** @type {ScopedElementsHost} */\n class ScopedElementsHost extends superclass {\n /**\n * Obtains the scoped elements definitions map if specified.\n *\n * @returns {ScopedElementsMap}\n */\n static get scopedElements() {\n return {};\n }\n\n static get scopedElementsVersion() {\n return version;\n }\n\n /**\n * Obtains the ShadowRoot options.\n *\n * @type {ShadowRootInit}\n */\n static get shadowRootOptions() {\n return this.__shadowRootOptions;\n }\n\n /**\n * Set the shadowRoot options.\n *\n * @param {ShadowRootInit} value\n */\n static set shadowRootOptions(value) {\n this.__shadowRootOptions = value;\n }\n\n /**\n * Obtains the element styles.\n *\n * @returns {CSSResultOrNative[]}\n */\n static get elementStyles() {\n return this.__elementStyles;\n }\n\n static set elementStyles(styles) {\n this.__elementStyles = styles;\n }\n\n // either TS or ESLint will complain here\n // eslint-disable-next-line no-unused-vars\n constructor(..._args) {\n super();\n /** @type {RenderOptions} */\n this.renderOptions = this.renderOptions || undefined;\n }\n\n /**\n * Obtains the CustomElementRegistry associated to the ShadowRoot.\n *\n * @returns {CustomElementRegistry}\n */\n get registry() {\n // @ts-ignore\n return this.constructor.__registry;\n }\n\n /**\n * Set the CustomElementRegistry associated to the ShadowRoot\n *\n * @param {CustomElementRegistry} registry\n */\n set registry(registry) {\n // @ts-ignore\n this.constructor.__registry = registry;\n }\n\n createRenderRoot() {\n const { scopedElements, shadowRootOptions, elementStyles } =\n /** @type {typeof ScopedElementsHost} */ (this.constructor);\n\n const shouldCreateRegistry =\n !this.registry ||\n // @ts-ignore\n (this.registry === this.constructor.__registry &&\n !Object.prototype.hasOwnProperty.call(this.constructor, '__registry'));\n\n /**\n * Create a new registry if:\n * - the registry is not defined\n * - this class doesn't have its own registry *AND* has no shared registry\n */\n if (shouldCreateRegistry) {\n this.registry = supportsScopedRegistry ? new CustomElementRegistry() : customElements;\n for (const [tagName, klass] of Object.entries(scopedElements)) {\n this.defineScopedElement(tagName, klass);\n }\n }\n\n /** @type {ShadowRootInit} */\n const options = {\n mode: 'open',\n ...shadowRootOptions,\n customElements: this.registry,\n registry: this.registry,\n };\n\n const createdRoot = this.attachShadow(options);\n if (supportsScopedRegistry) {\n this.renderOptions.creationScope = createdRoot;\n }\n\n if (createdRoot instanceof ShadowRoot) {\n adoptStyles(createdRoot, elementStyles);\n this.renderOptions.renderBefore = this.renderOptions.renderBefore || createdRoot.firstChild;\n }\n\n return createdRoot;\n }\n\n createScopedElement(tagName) {\n const root = supportsScopedRegistry ? this.shadowRoot : document;\n // @ts-ignore polyfill to support createElement on shadowRoot is loaded\n return root.createElement(tagName);\n }\n\n /**\n * Defines a scoped element.\n *\n * @param {string} tagName\n * @param {typeof HTMLElement} klass\n */\n defineScopedElement(tagName, klass) {\n const registeredClass = this.registry.get(tagName);\n if (registeredClass && supportsScopedRegistry === false && registeredClass !== klass) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `You are trying to re-register the \"${tagName}\" custom element with a different class via ScopedElementsMixin.`,\n 'This is only possible with a CustomElementRegistry.',\n 'Your browser does not support this feature so you will need to load a polyfill for it.',\n 'Load \"@webcomponents/scoped-custom-element-registry\" before you register ANY web component to the global customElements registry.',\n 'e.g. add \"\" as your first script tag.',\n 'For more details you can visit https://open-wc.org/docs/development/scoped-elements/',\n ].join('\\n'),\n );\n }\n if (!registeredClass) {\n return this.registry.define(tagName, klass);\n }\n return this.registry.get(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n getScopedTagName(tagName) {\n // @ts-ignore\n return this.constructor.getScopedTagName(tagName);\n }\n\n /**\n * @deprecated use the native el.tagName instead\n *\n * @param {string} tagName\n * @returns {string} the tag name\n */\n // eslint-disable-next-line class-methods-use-this\n static getScopedTagName(tagName) {\n // @ts-ignore\n return this.__registry.get(tagName) ? tagName : undefined;\n }\n };\n\nexport const ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:l}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2},t=(o,l)=>void 0===l?void 0!==(null==o?void 0:o._$litType$):(null==o?void 0:o._$litType$)===l,v=o=>{var l;return null!=(null===(l=null==o?void 0:o._$litType$)||void 0===l?void 0:l.h)},d=o=>void 0!==(null==o?void 0:o._$litDirective$),u=o=>null==o?void 0:o._$litDirective$,e=o=>void 0===o.strings,r=()=>document.createComment(\"\"),c=(o,i,n)=>{var t;const v=o._$AA.parentNode,d=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=v.insertBefore(r(),d),t=v.insertBefore(r(),d);n=new l(i,t,o,o.options)}else{const l=n._$AB.nextSibling,i=n._$AM,u=i!==o;if(u){let l;null===(t=n._$AQ)||void 0===t||t.call(n,o),n._$AM=o,void 0!==n._$AP&&(l=o._$AU)!==i._$AU&&n._$AP(l)}if(l!==d||u){let o=n._$AA;for(;o!==l;){const l=o.nextSibling;v.insertBefore(o,d),o=l}}}return n},f=(o,l,i=o)=>(o._$AI(l,i),o),s={},a=(o,l=s)=>o._$AH=l,m=o=>o._$AH,p=o=>{var l;null===(l=o._$AP)||void 0===l||l.call(o,!1,!0);let i=o._$AA;const n=o._$AB.nextSibling;for(;i!==n;){const o=i.nextSibling;i.remove(),i=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,m as getCommittedValue,u as getDirectiveClass,c as insertPart,v as isCompiledTemplateResult,d as isDirectiveResult,i as isPrimitive,e as isSingleExpression,t as isTemplateResult,p as removePart,f as setChildPartValue,a as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{Directive,PartType,directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{var e,o;const r=i._$AN;if(void 0===r)return!1;for(const i of r)null===(o=(e=i)._$AO)||void 0===o||o.call(e,t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===(null==e?void 0:e.size))},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),l(t)}};function n(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function h(i,t=!1,e=0){const r=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(t)if(Array.isArray(r))for(let i=e;i{var t,s,o,r;i.type==e.CHILD&&(null!==(t=(o=i)._$AP)&&void 0!==t||(o._$AP=h),null!==(s=(r=i)._$AQ)&&void 0!==s||(r._$AQ=n))};class c extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){var e,r;i!==this.isConnected&&(this.isConnected=i,i?null===(e=this.reconnected)||void 0===e||e.call(this):null===(r=this.disconnected)||void 0===r||r.call(this)),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{c as AsyncDirective};\n//# sourceMappingURL=async-directive.js.map\n","import{nothing as i}from\"../lit-html.js\";import{AsyncDirective as t}from\"../async-directive.js\";import{directive as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=()=>new o;class o{}const h=new WeakMap,n=s(class extends t{render(t){return i}update(t,[s]){var e;const o=s!==this.G;return o&&void 0!==this.G&&this.ot(void 0),(o||this.rt!==this.lt)&&(this.G=s,this.dt=null===(e=t.options)||void 0===e?void 0:e.host,this.ot(this.lt=t.element)),i}ot(i){var t;if(\"function\"==typeof this.G){const s=null!==(t=this.dt)&&void 0!==t?t:globalThis;let e=h.get(s);void 0===e&&(e=new WeakMap,h.set(s,e)),void 0!==e.get(this.G)&&this.G.call(this.dt,void 0),e.set(this.G,i),void 0!==i&&this.G.call(this.dt,i)}else this.G.value=i}get rt(){var i,t,s;return\"function\"==typeof this.G?null===(t=h.get(null!==(i=this.dt)&&void 0!==i?i:globalThis))||void 0===t?void 0:t.get(this.G):null===(s=this.G)||void 0===s?void 0:s.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});export{e as createRef,n as ref};\n//# sourceMappingURL=ref.js.map\n","import{html as t,svg as r}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=Symbol.for(\"\"),l=t=>{if((null==t?void 0:t.r)===e)return null==t?void 0:t._$litStatic$},o=t=>({_$litStatic$:t,r:e}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,l)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[l+1]),t[0]),r:e}),s=new Map,a=t=>(r,...e)=>{const o=e.length;let i,a;const n=[],u=[];let c,$=0,f=!1;for(;$null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import { defaultConverter } from 'lit';\n\n// @defaultValue decorator\nconst defaultValue = (propertyName = \"value\") => (proto, key) => {\n const ctor = proto.constructor;\n const attributeChangedCallback = ctor.prototype.attributeChangedCallback;\n ctor.prototype.attributeChangedCallback = function (name, old, value) {\n var _a;\n const options = ctor.getPropertyOptions(propertyName);\n const attributeName = (typeof options.attribute === \"string\" ? options.attribute : propertyName).toLowerCase();\n if (name === attributeName) {\n const converter = options.converter || defaultConverter;\n const fromAttribute = typeof converter === \"function\" ? converter : (_a = converter === null || converter === void 0 ? void 0 : converter.fromAttribute) !== null && _a !== void 0 ? _a : defaultConverter.fromAttribute;\n const newValue = fromAttribute(value, options.type);\n if (this[propertyName] !== newValue) {\n this[key] = newValue;\n }\n }\n attributeChangedCallback.call(this, name, old, value);\n };\n};\n\nexport { defaultValue };\n//# sourceMappingURL=defaultvalue.js.map\n","const reportValidityOverloads = new WeakMap();\nclass FormSubmitController {\n constructor(host, options) {\n (this.host = host).addController(this);\n this.options = Object.assign({ form: (input) => {\n return input.closest(\"form\");\n }, name: (input) => input.name, value: (input) => input.value, defaultValue: (input) => input.defaultValue, disabled: (input) => input.disabled, reportValidity: (input) => {\n return typeof input.reportValidity === \"function\" ? input.reportValidity() : true;\n }, setValue: (input, value) => {\n input.value = value;\n } }, options);\n this.handleFormData = this.handleFormData.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.handleFormReset = this.handleFormReset.bind(this);\n this.reportFormValidity = this.reportFormValidity.bind(this);\n }\n hostConnected() {\n this.form = this.options.form(this.host);\n if (this.form) {\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n // Overload the form's reportValidity() method so it looks at Shoelace form controls\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n }\n }\n hostDisconnected() {\n if (this.form) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n // Remove the overload and restore the original method\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n this.form = undefined;\n }\n }\n handleFormData(event) {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n if (!disabled && typeof name === \"string\" && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n value.forEach(val => {\n event.formData.append(name, val.toString());\n });\n }\n else {\n event.formData.append(name, value.toString());\n }\n }\n }\n handleFormSubmit(event) {\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n handleFormReset() {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n }\n reportFormValidity() {\n //\n // Shoelace form controls work hard to act like regular form controls. They support the Constraint Validation API\n // and its associated methods such as setCustomValidity() and reportValidity(). However, the HTMLFormElement also\n // has a reportValidity() method that will trigger validation on all child controls. Since we're not yet using\n // ElementInternals, we need to overload this method so it looks for any element with the reportValidity() method.\n //\n // We preserve the original method in a WeakMap, but we don't call it from the overload because that would trigger\n // validations in an unexpected order. When the element disconnects, we revert to the original behavior. This won't\n // be necessary once we can use ElementInternals.\n //\n // Note that we're also honoring the form's novalidate attribute.\n //\n if (this.form && !this.form.noValidate) {\n // This seems sloppy, but checking all elements will cover native inputs, Shoelace inputs, and other custom\n // elements that support the constraint validation API.\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n }\n doAction(type, invoker) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n // Pass form attributes through to the temporary button\n if (invoker) {\n [\"formaction\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach(attr => {\n if (invoker.hasAttribute(attr)) {\n button.setAttribute(attr, invoker.getAttribute(attr));\n }\n });\n }\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n /** Resets the form, restoring all the control to their default value */\n reset(invoker) {\n this.doAction(\"reset\", invoker);\n }\n /** Submits the form, triggering validation and form data injection. */\n submit(invoker) {\n // Calling form.submit() bypasses the submit event and constraint validation. To prevent this, we can inject a\n // native submit button into the form, \"click\" it, then remove it to simulate a standard form submission.\n this.doAction(\"submit\", invoker);\n }\n}\n\nexport { FormSubmitController };\n//# sourceMappingURL=form.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-checkbox2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-checkbox2.js';\n\n/**\n * @summary Checkbox component is used when you require users to select multiple items from a list.\n *\n * @slot default - The label of checkbox.\n *\n * @event sgds-change - Emitted when the checked state changes.\n */\nclass SgdsCheckbox extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.formSubmitController = new FormSubmitController(this, {\n value: (control) => (control.checked ? control.value : undefined),\n defaultValue: (control) => control.defaultChecked,\n setValue: (control, checked) => (control.checked = checked)\n });\n /** For aria-label when there is no appropriate text label visible */\n this.ariaLabel = \"checkbox\";\n /** Makes the checkbox a required field. */\n this.required = false;\n /** Draws the checkbox in a checked state. */\n this.checked = false;\n /** Disables the checkbox (so the user can't check / uncheck it). */\n this.disabled = false;\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n this.hasFeedback = false;\n /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultChecked = false;\n /** @internal */\n this.valid = false;\n /** @internal */\n this.invalid = false;\n /** @internal For Id/For pair of the HTML form control and label. */\n this.inputId = genId(\"checkbox\");\n }\n /** Simulates a click on the checkbox. */\n click() {\n this.input.click();\n }\n /** Sets focus on the checkbox. */\n focus(options) {\n this.input.focus(options);\n }\n /** Removes focus from the checkbox. */\n blur() {\n this.input.blur();\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n if (!this.input.reportValidity()) {\n this.invalid = !this.input.checkValidity();\n }\n return this.input.reportValidity();\n }\n handleChange() {\n this.checked = !this.checked;\n this.value = this.input.value;\n this.emit(\"sgds-change\", { detail: { checked: this.checked, value: this.value } });\n }\n handleKeyDown(event) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n if (event.key === \"Enter\" && !hasModifier) {\n this.click();\n }\n }\n handleInvalid(e) {\n e.preventDefault();\n this.invalid = true;\n }\n handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.input.disabled = this.disabled;\n this.invalid = !this.input.checkValidity();\n }\n handleStateChange() {\n this.invalid = !this.input.checkValidity();\n if (this.required)\n this.valid = this.input.checkValidity();\n }\n render() {\n return html `\n
\n this.handleInvalid(e)}\n />\n \n ${this.hasFeedback\n ? html `
${this.invalidFeedback}
`\n : \"\"}\n
\n `;\n }\n}\nSgdsCheckbox.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query('input[type=\"checkbox\"]')\n], SgdsCheckbox.prototype, \"input\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsCheckbox.prototype, \"name\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsCheckbox.prototype, \"ariaLabel\", void 0);\n__decorate([\n property()\n], SgdsCheckbox.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsCheckbox.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsCheckbox.prototype, \"checked\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsCheckbox.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsCheckbox.prototype, \"hasFeedback\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsCheckbox.prototype, \"invalidFeedback\", void 0);\n__decorate([\n defaultValue(\"checked\")\n], SgdsCheckbox.prototype, \"defaultChecked\", void 0);\n__decorate([\n state()\n], SgdsCheckbox.prototype, \"valid\", void 0);\n__decorate([\n state()\n], SgdsCheckbox.prototype, \"invalid\", void 0);\n__decorate([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SgdsCheckbox.prototype, \"handleDisabledChange\", null);\n__decorate([\n watch(\"checked\", { waitUntilFirstUpdate: true })\n], SgdsCheckbox.prototype, \"handleStateChange\", null);\n\nexport { SgdsCheckbox, SgdsCheckbox as default };\n//# sourceMappingURL=sgds-checkbox.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-radio2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-radio2.js';\n\n/**\n * @summary Radio allows the user to select one option from a set while seeing all available options.\n *\n * @slot default - The label of the radio button\n *\n * @event sgds-focus - Emitted when the control gains focus.\n * @event sgds-blur - Emitted when the control loses focus.\n */\nclass SgdsRadio extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * Draws the radio in a checked state\n */\n this.checked = false;\n /** Disables the radio. */\n this.disabled = false;\n /** Aligns the radios horizontally */\n this.isInline = false;\n /** For aria-label */\n this.ariaLabel = \"\";\n this.radioId = genId(\"radio\");\n }\n connectedCallback() {\n super.connectedCallback();\n this.setInitialAttributes();\n this.addEventListeners();\n }\n handleCheckedChange() {\n this.setAttribute(\"aria-checked\", this.checked ? \"true\" : \"false\");\n this.setAttribute(\"tabindex\", this.checked ? \"0\" : \"-1\");\n }\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n }\n handleBlur() {\n this.emit(\"sgds-blur\");\n }\n handleClick() {\n if (!this.disabled) {\n this.checked = true;\n }\n }\n handleFocus() {\n this.emit(\"sgds-focus\");\n }\n addEventListeners() {\n this.addEventListener(\"blur\", () => this.handleBlur());\n this.addEventListener(\"click\", () => this.handleClick());\n this.addEventListener(\"focus\", () => this.handleFocus());\n }\n setInitialAttributes() {\n this.setAttribute(\"role\", \"radio\");\n this.setAttribute(\"tabindex\", \"-1\");\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n }\n render() {\n return html `\n \n \n \n \n `;\n }\n}\nSgdsRadio.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsRadio.prototype, \"checked\", void 0);\n__decorate([\n property()\n], SgdsRadio.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsRadio.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsRadio.prototype, \"isInline\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsRadio.prototype, \"ariaLabel\", void 0);\n__decorate([\n watch(\"checked\")\n], SgdsRadio.prototype, \"handleCheckedChange\", null);\n__decorate([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SgdsRadio.prototype, \"handleDisabledChange\", null);\n\nexport { SgdsRadio, SgdsRadio as default };\n//# sourceMappingURL=sgds-radio.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host .sgds.card[variant*=card-action] .card-body ::slotted(svg){margin-right:1rem}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-action-card2.js.map\n","import { __decorate } from 'tslib';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { html } from 'lit/static-html.js';\nimport { CardElement } from '../../base/card-element.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport { SgdsCheckbox } from '../Checkbox/sgds-checkbox.js';\nimport { SgdsRadio } from '../Radio/sgds-radio.js';\nimport css_248z from './sgds-action-card2.js';\n\n/**\n * @summary Action Card are cards with built in checkbox or radio components. The ref of input is extended to the Card's body.\n * @slot icon - Icon content in the card-subtitile\n * @slot card-subtitle - The subtitle of the card\n * @slot card-title - The title of the card\n * @slot card-text - The paragrapher text of the card\n *\n * @event sgds-change - Emitted when the checked state of card's checkbox changes or when the selected card's radio has changed\n *\n * @csspart base - The action card base wrapper\n * @csspart body - The action card body\n * @csspart subtitle - The action card subtitle\n * @csspart title - The action card title\n * @csspart text - The action card text\n *\n */\nclass SgdsActionCard extends ScopedElementsMixin(CardElement) {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputRef = createRef();\n /** Disables the input (so the user can't check / uncheck it). */\n this.disabled = false;\n /** Draws the input in a checked state. */\n this.checked = false;\n /** The type of input of the action card */\n this.type = \"checkbox\";\n /** Controls the active styling of the action card */\n this.active = false;\n /** @internal The input's id. */\n this.inputId = genId(\"action-card\", \"input\");\n }\n static get scopedElements() {\n return {\n \"sgds-checkbox\": SgdsCheckbox,\n \"sgds-radio\": SgdsRadio\n };\n }\n /** Simulates a click on the input control*/\n click() {\n this.inputRef.value.click();\n }\n /** @internal Declare the click event listener*/\n async handleInputChange() {\n this.inputRef.value.click();\n this.emit(\"sgds-change\");\n }\n async handleRadioCheckedChange() {\n this.active = this.checked;\n }\n async handleDisabledChange() {\n this.active = !this.disabled;\n }\n handleKeyDown(event) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n if (event.key === \"Enter\" && !hasModifier) {\n this.handleInputChange();\n }\n }\n render() {\n const checkbox = html ` (this.checked = e.detail.checked)}\n >`;\n const radio = html ``;\n return html `\n \n
\n
\n
\n \n \n
\n
${this.type === \"checkbox\" ? checkbox : radio}
\n
\n
\n

\n
\n \n `;\n }\n}\nSgdsActionCard.styles = [CardElement.styles, css_248z];\n__decorate([\n property({ reflect: true })\n], SgdsActionCard.prototype, \"name\", void 0);\n__decorate([\n property({ type: String })\n], SgdsActionCard.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsActionCard.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsActionCard.prototype, \"checked\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsActionCard.prototype, \"type\", void 0);\n__decorate([\n property({ reflect: true, type: Boolean })\n], SgdsActionCard.prototype, \"active\", void 0);\n__decorate([\n watch(\"checked\")\n], SgdsActionCard.prototype, \"handleRadioCheckedChange\", null);\n__decorate([\n watch(\"disabled\")\n], SgdsActionCard.prototype, \"handleDisabledChange\", null);\n\nexport { SgdsActionCard, SgdsActionCard as default };\n//# sourceMappingURL=sgds-action-card.js.map\n","import { SgdsActionCard } from './sgds-action-card.js';\n\ncustomElements.define(\"sgds-action-card\", SgdsActionCard);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--alert-icon-margin-right:0.5rem}slot[name=icon]::slotted(svg){margin-right:var(--alert-icon-margin-right);vertical-align:unset!important}i{position:relative;top:2px}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-alert2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-alert2.js';\n\n/**\n * @summary Alerts provide short, timely, and relevant information for your users. It can be a simple text message or customised HTML content with paragraphs, headings and links.\n *\n * @slot default - The alert's main content.\n * @slot icon - An icon to show in the alert. Pass in SVG elements.\n *\n * @event sgds-show - Emitted when the alert appears.\n * @event sgds-hide - Emitted after the alert closes.\n *\n * @cssproperty --alert-icon-margin-right - The margin-right css of icon slot, to position the gap between icon and alert message\n */\nclass SgdsAlert extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Controls the appearance of the alert */\n this.show = false;\n /** Enables a close button that allows the user to dismiss the alert. */\n this.dismissible = false;\n /** The alert's theme variant. */\n this.variant = \"primary\";\n }\n /** Closes the alert */\n close() {\n this.show = false;\n }\n /**@internal */\n handleShowChange() {\n this.show ? this.emit(\"sgds-show\") : this.emit(\"sgds-hide\");\n }\n render() {\n return html `\n \n \n \n ${this.dismissible\n ? html ``\n : null}\n \n `;\n }\n}\nSgdsAlert.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsAlert.prototype, \"show\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsAlert.prototype, \"dismissible\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsAlert.prototype, \"variant\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsAlert.prototype, \"alertClasses\", void 0);\n__decorate([\n watch(\"show\")\n], SgdsAlert.prototype, \"handleShowChange\", null);\n\nexport { SgdsAlert, SgdsAlert as default };\n//# sourceMappingURL=sgds-alert.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\n\n/**\n * @summary Alert heading is the header of the Alert component. Use it in the default slot of `sgds-alert` when required\n *\n * @slot default - The text content of the anchor element\n */\nclass SgdsAlertHeading extends SgdsElement {\n constructor() {\n super(...arguments);\n /** The type of header tag style for alert's heading */\n this.headerTag = \"h4\";\n }\n render() {\n return html `\n \n \n \n `;\n }\n}\nSgdsAlertHeading.styles = [SgdsElement.styles];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsAlertHeading.prototype, \"headerTag\", void 0);\n\nexport { SgdsAlertHeading, SgdsAlertHeading as default };\n//# sourceMappingURL=sgds-alert-heading.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--alert-link-anchor-color:#2a3343}.alert-link{cursor:pointer}.alert-link,.alert-link:hover{color:var(--alert-link-anchor-color)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-alert-link2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-alert-link2.js';\n\n/**\n * @summary Alert link are used within the alert's message that is passed into the default slot of ``\n *\n * @slot default - The text content of the anchor element\n * @cssproperty --alert-link-anchor-color - The margin-right css of icon slot, to position the gap between icon and alert message\n */\nclass SgdsAlertLink extends SgdsElement {\n render() {\n return html `\n \n `;\n }\n}\nSgdsAlertLink.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsAlertLink.prototype, \"href\", void 0);\n__decorate([\n property()\n], SgdsAlertLink.prototype, \"target\", void 0);\n\nexport { SgdsAlertLink, SgdsAlertLink as default };\n//# sourceMappingURL=sgds-alert-link.js.map\n","import { SgdsAlert } from './sgds-alert.js';\nimport { SgdsAlertHeading } from './sgds-alert-heading.js';\nimport { SgdsAlertLink } from './sgds-alert-link.js';\n\ncustomElements.define(\"sgds-alert\", SgdsAlert);\ncustomElements.define(\"sgds-alert-heading\", SgdsAlertHeading);\ncustomElements.define(\"sgds-alert-link\", SgdsAlertLink);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-badge2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-badge2.js';\n\n/**\n * @summary Badges can be used to highlight important bits of information such as labels, notifications & status.\n * @slot default - slot for badge\n */\nclass SgdsBadge extends SgdsElement {\n constructor() {\n super(...arguments);\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `primary`, `secondary`, `success`, `danger`, `warning`, `info`, `dark`, `light`, `link` */\n this.variant = \"primary\";\n /** Visually set badge for lesser color emphasis. */\n this.isLight = false;\n /** Visually set badge with rounded corners. */\n this.roundedPill = false;\n }\n render() {\n return html `\n \n \n \n \n \n `;\n }\n}\nSgdsBadge.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ reflect: true })\n], SgdsBadge.prototype, \"variant\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsBadge.prototype, \"isLight\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsBadge.prototype, \"roundedPill\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsBadge.prototype, \"badgeClasses\", void 0);\n\nexport { SgdsBadge, SgdsBadge as default };\n//# sourceMappingURL=sgds-badge.js.map\n","import { SgdsBadge } from './sgds-badge.js';\n\ncustomElements.define(\"sgds-badge\", SgdsBadge);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`slot[name=separator]::slotted(*){align-items:center;display:inline-block;padding-left:.25rem;padding-right:.5rem}:host(:last-of-type) .breadcrumb-item__separator{display:none}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-breadcrumb2.js.map\n","import { __decorate } from 'tslib';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-breadcrumb2.js';\n\n/**\n * @summary Breadcrumbs help users to navigate and understand where they are on the current website or service.\n *\n * @slot default - The slot to pass in custom elements of `SgdsBreadcrumbItems`.\n * @slot separator - Defines all the separator of `SgdsBreadcrumbItems`. Defaults to \"/\"\n *\n * @csspart base - The nav element wrapper of `SgdsBreadcrumb`\n */\nclass SgdsBreadcrumb extends SgdsElement {\n constructor() {\n super(...arguments);\n /** The aria-label of nav element within breadcrumb component. */\n this.ariaLabel = \"breadcrumb\";\n }\n // Generates a clone of the separator element to use for each breadcrumb item\n getSeparator() {\n const separator = this.separatorSlot.assignedElements({ flatten: true })[0];\n // Clone it, remove ids, and slot it\n const clone = separator.cloneNode(true);\n [clone, ...clone.querySelectorAll(\"[id]\")].forEach(el => el.removeAttribute(\"id\"));\n clone.setAttribute(\"data-default\", \"\");\n clone.slot = \"separator\";\n return clone;\n }\n handleSlotChange() {\n const items = [...this.defaultSlot.assignedElements({ flatten: true })].filter(item => item.tagName.toLowerCase() === \"sgds-breadcrumb-item\");\n items.forEach((item, index) => {\n // Append separators to each item if they don't already have one\n const separator = item.querySelector('[slot=\"separator\"]');\n if (separator === null) {\n // No separator exists, add one\n item.append(this.getSeparator());\n }\n else if (separator.hasAttribute(\"data-default\")) {\n // A default separator exists, replace it\n separator.replaceWith(this.getSeparator());\n }\n else ;\n // The last breadcrumb item is the \"current page\"\n if (index === items.length - 1) {\n item.setAttribute(\"aria-current\", \"page\");\n }\n else {\n item.removeAttribute(\"aria-current\");\n }\n });\n }\n render() {\n return html `\n \n `;\n }\n}\nSgdsBreadcrumb.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String })\n], SgdsBreadcrumb.prototype, \"ariaLabel\", void 0);\n__decorate([\n query(\"slot\")\n], SgdsBreadcrumb.prototype, \"defaultSlot\", void 0);\n__decorate([\n query('slot[name=\"separator\"]')\n], SgdsBreadcrumb.prototype, \"separatorSlot\", void 0);\n\nexport { SgdsBreadcrumb, SgdsBreadcrumb as default };\n//# sourceMappingURL=sgds-breadcrumb.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-breadcrumb2.js';\n\n/**\n * @summary Breadcrumb Item are navigational links used in Breadcrumb component\n *\n * @slot default - The title of the item\n * @slot separator - The individual separator of breadcrumb item can be changed here.\n *\n * @csspart base - The base wrapper of breadcrumb item which is a HTMLListElement.\n * @csspart label -The label of the breadcrumb item. It is either a span or anchor element depending on href attribute\n */\nclass SgdsBreadcrumbItem extends SgdsElement {\n constructor() {\n super(...arguments);\n /** The `rel` attribute to use on the link. Only used when `href` is set. */\n this.rel = \"noreferrer noopener\";\n }\n render() {\n const isLink = this.href ? true : false;\n return html `\n \n ${isLink\n ? html `\n \n `\n : html ``}\n \n \n `;\n }\n}\nSgdsBreadcrumbItem.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsBreadcrumbItem.prototype, \"href\", void 0);\n__decorate([\n property()\n], SgdsBreadcrumbItem.prototype, \"target\", void 0);\n__decorate([\n property()\n], SgdsBreadcrumbItem.prototype, \"rel\", void 0);\n\nexport { SgdsBreadcrumbItem, SgdsBreadcrumbItem as default };\n//# sourceMappingURL=sgds-breadcrumb-item.js.map\n","import { SgdsBreadcrumb } from './sgds-breadcrumb.js';\nimport { SgdsBreadcrumbItem } from './sgds-breadcrumb-item.js';\n\ncustomElements.define(\"sgds-breadcrumb\", SgdsBreadcrumb);\ncustomElements.define(\"sgds-breadcrumb-item\", SgdsBreadcrumbItem);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{display:inline-block}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-button2.js.map\n","import { __decorate } from 'tslib';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { literal, html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport css_248z from './sgds-button2.js';\n\n/**\n * @summary Custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.\n *\n * @slot default - The button's label.\n *\n * @event sgds-blur - Emitted when the button is not focused.\n * @event sgds-focus - Emitted when the button is focused.\n */\nclass SgdsButton extends SgdsElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.formSubmitController = new FormSubmitController(this, {\n form: (input) => {\n // Buttons support a form attribute that points to an arbitrary form, so if this attribute it set we need to query\n // the form from the same root using its id\n if (input.hasAttribute(\"form\")) {\n const doc = input.getRootNode();\n const formId = input.getAttribute(\"form\");\n return doc.getElementById(formId);\n }\n // Fall back to the closest containing form\n return input.closest(\"form\");\n }\n });\n /** One or more button variant combinations buttons may be one of a variety of visual variants such as: `primary`, `secondary`, `success`, `danger`, `warning`, `info`, `dark`, `light`, `link` as well as \"outline\" versions (prefixed by `outline-*`) */\n this.variant = \"primary\";\n /** Manually set the visual state of the button to `:active` */\n this.active = false;\n /** The disabled state of the button */\n this.disabled = false;\n /** The behavior of the button with default as `type='button', `reset` resets all the controls to their initial values and `submit` submits the form data to the server */\n this.type = \"button\";\n /** @internal */\n this.clickHandler = () => {\n if (this.type === \"submit\") {\n this.formSubmitController.submit(this);\n }\n if (this.type === \"reset\") {\n this.formSubmitController.reset(this);\n }\n };\n }\n /** Sets focus on the button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Simulates a click on the button. */\n click() {\n this.button.click();\n }\n /** Removes focus from the button. */\n blur() {\n this.button.blur();\n }\n handleBlur() {\n this.emit(\"sgds-blur\");\n }\n handleFocus() {\n this.emit(\"sgds-focus\");\n }\n handleClick(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.removeEventListener(\"click\", this.clickHandler);\n this.addEventListener(\"click\", this.clickHandler);\n }\n render() {\n const isLink = this.href;\n const tag = isLink ? literal `a` : literal `button`;\n return html `\n <${tag}\n class=\"sgds btn ${classMap({\n disabled: isLink && this.disabled,\n active: this.active,\n [`btn-${this.variant}`]: this.variant,\n [`btn-${this.size}`]: this.size,\n [`${this.buttonClasses}`]: this.buttonClasses\n })}\"\n ?disabled=${ifDefined(isLink ? undefined : this.disabled)}\n type=${ifDefined(isLink ? undefined : this.type)}\n href=${ifDefined(isLink ? this.href : undefined)}\n target=${ifDefined(isLink ? this.target : undefined)}\n download=${ifDefined(isLink ? this.download : undefined)}\n rel=${ifDefined(isLink && this.target === \"_blank\" ? \"noreferrer noopener\" : undefined)}\n role=${ifDefined(isLink ? \"button\" : undefined)}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @click=${this.handleClick}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n >\n \n \n `;\n }\n}\nSgdsButton.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".btn\")\n], SgdsButton.prototype, \"button\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsButton.prototype, \"variant\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsButton.prototype, \"buttonClasses\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsButton.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsButton.prototype, \"active\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], SgdsButton.prototype, \"type\", void 0);\n__decorate([\n property()\n], SgdsButton.prototype, \"href\", void 0);\n__decorate([\n property()\n], SgdsButton.prototype, \"target\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsButton.prototype, \"download\", void 0);\n__decorate([\n property()\n], SgdsButton.prototype, \"form\", void 0);\n__decorate([\n property({ attribute: \"formaction\" })\n], SgdsButton.prototype, \"formAction\", void 0);\n__decorate([\n property({ attribute: \"formmethod\" })\n], SgdsButton.prototype, \"formMethod\", void 0);\n__decorate([\n property({ attribute: \"formnovalidate\", type: Boolean })\n], SgdsButton.prototype, \"formNoValidate\", void 0);\n__decorate([\n property({ attribute: \"formtarget\" })\n], SgdsButton.prototype, \"formTarget\", void 0);\n\nexport { SgdsButton, SgdsButton as default };\n//# sourceMappingURL=sgds-button.js.map\n","import { SgdsButton } from './sgds-button.js';\n\ncustomElements.define(\"sgds-button\", SgdsButton);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`::slotted(.stretched-link):before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:1}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-card2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { CardElement } from '../../base/card-element.js';\nimport css_248z from './sgds-card2.js';\n\n/**\n * @summary Cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot card-title - The title of the card\n * @slot card-text - The paragrapher text of the card\n * @slot card-image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.\n * @slot card-link - Accepts an anchor element. Only a single element is allowed to be passed in.\n *\n *\n * @csspart base - The card base wrapper\n * @csspart body - The card body\n * @csspart title - The card title\n * @csspart text - The card text\n *\n */\nclass SgdsCard extends CardElement {\n constructor() {\n super(...arguments);\n /** Extends the link passed in slot[name=\"link\"] to the entire card */\n this.stretchedLink = false;\n }\n handleLinkSlotChange(e) {\n const childNodes = e.target.assignedNodes({ flatten: true });\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's link slot\");\n }\n if (this.stretchedLink) {\n childNodes[0].classList.add(\"stretched-link\");\n }\n childNodes[0].classList.add(\"fw-bold\");\n return;\n }\n handleImgSlotChange(e) {\n const childNodes = e.target.assignedNodes({ flatten: true });\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's image slot\");\n }\n childNodes[0].classList.add(\"card-img-top\");\n }\n render() {\n return html `\n \n \n
\n

\n

\n \n

\n \n
\n \n `;\n }\n}\nSgdsCard.styles = [CardElement.styles, css_248z];\n__decorate([\n property({ type: Boolean })\n], SgdsCard.prototype, \"stretchedLink\", void 0);\n\nexport { SgdsCard, SgdsCard as default };\n//# sourceMappingURL=sgds-card.js.map\n","import { SgdsCard } from './sgds-card.js';\n\ncustomElements.define(\"sgds-card\", SgdsCard);\n//# sourceMappingURL=index.js.map\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];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\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 };","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 { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import 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 { 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}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\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 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 getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\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 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 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\"; // 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 (!contains(state.elements.popper, arrowElement)) {\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};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n 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 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};","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 getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import 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 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 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}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import 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 getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import 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 } // $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, 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 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};","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, 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 getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { 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 orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\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 });\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 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\n for (var index = 0; index < state.orderedModifiers.length; index++) {\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 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 (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.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 { 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 { 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\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._popper = null\n this._parent = this._element.parentNode // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._createPopper()\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const parentDropdown = this._parent\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static') // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: context._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n event.preventDefault()\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (isUpOrDownEvent) {\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (instance._isShown()) { // else is escape and we check if it is shown\n event.stopPropagation()\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n","import { keys, assign } from './object.js';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction _isObject(item) {\n return item && typeof item === \"object\" && item.constructor === Object;\n}\nconst mergeDeep = (target, source) => {\n if (_isObject(target) && _isObject(source)) {\n keys(source).forEach(key => {\n if (_isObject(source[key])) {\n if (!target[key] || !_isObject(target[key])) {\n target[key] = source[key];\n }\n mergeDeep(target[key], source[key]);\n }\n else {\n assign(target, { [key]: source[key] });\n }\n });\n }\n return target;\n};\n\nexport { mergeDeep as default };\n//# sourceMappingURL=mergeDeep.js.map\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nconst assign = (target, ...args) => Object.assign(target, ...args);\nconst keys = (obj) => Object.keys(obj);\n\nexport { assign, keys };\n//# sourceMappingURL=object.js.map\n","import { __decorate } from 'tslib';\nimport Dropdown from 'bootstrap/js/src/dropdown';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef } from 'lit/directives/ref.js';\nimport mergeDeep from '../utils/mergeDeep.js';\nimport SgdsElement from './sgds-element.js';\nimport genId from '../utils/generateId.js';\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ESC = \"Escape\";\n/**\n * @event sgds-show - Emitted event when show instance is called\n * @event sgds-after-show - Emitted event when dropdown has been made visible to the user and CSS transitions have completed\n * @event sgds-hide - Emitted event when hide instance is called\n * @event sgds-after-hide - Emitted event when dropdown has hidden to the user and CSS transitions have completed\n */\nclass DropdownElement extends SgdsElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.myDropdown = createRef();\n /** @internal */\n this.bsDropdown = null;\n /** @internal Unique id generated for the dropdown menu */\n this.dropdownMenuId = genId(\"dropdown-menu\", \"ul\");\n /** @internal Controls auto-flipping of menu */\n this.noFlip = false;\n /** @internal When true, aligns right edge of menu with right edge of button */\n this.menuAlignRight = false;\n /** @internal The drop position of menu relative to the toggle button */\n this.drop = \"down\";\n /** Additional configuration to pass to Popper.js. See https://popper.js.org/ for config opts */\n this.popperOpts = {};\n /** @internal */\n this.modifierOpt = [];\n /** When true, dropdown menu shows on first load */\n this.menuIsOpen = false;\n /** Controls the close behaviour of dropdown menu. By default menu auto-closes when SgdsDropdownItem or area outside dropdown is clicked */\n this.close = \"default\";\n /** Disables the dropdown toggle */\n this.disabled = false;\n }\n connectedCallback() {\n super.connectedCallback();\n if (this.close !== \"inside\") {\n document.addEventListener(\"click\", (event) => this._handleClickOutOfElement(event, this));\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener(\"click\", (event) => this._handleClickOutOfElement(event, this));\n }\n firstUpdated() {\n this.bsDropdown = new Dropdown(this.myDropdown.value, {\n // autoClose not working as bootstrap is using attribute data-bs-toggle=\"dropdown\" to configure autoclose. But it doesnt look into this attribute in the shadow dom\n reference: \"toggle\", // working\n popperConfig: (defaultConfig) => {\n //working\n this.dropdownConfig = {\n placement: \"bottom-start\",\n modifiers: !this.noFlip\n ? this.modifierOpt\n : [\n ...this.modifierOpt,\n {\n name: \"flip\",\n options: { fallbackPlacements: [] }\n }\n ]\n };\n switch (this.drop) {\n case \"up\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"top-end\" : \"top-start\";\n break;\n case \"right\":\n this.dropdownConfig.placement = \"right-start\";\n break;\n case \"left\":\n this.dropdownConfig.placement = \"left-start\";\n break;\n case \"down\":\n this.dropdownConfig.placement = this.menuAlignRight ? \"bottom-end\" : \"bottom-start\";\n break;\n default:\n this.dropdownConfig.placement = undefined;\n break;\n }\n return mergeDeep(defaultConfig, mergeDeep(this.dropdownConfig, this.popperOpts));\n }\n });\n this.myDropdown.value.addEventListener(\"show.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-show\");\n });\n this.myDropdown.value.addEventListener(\"shown.bs.dropdown\", () => {\n this.menuIsOpen = true;\n this.emit(\"sgds-after-show\");\n });\n this.myDropdown.value.addEventListener(\"hide.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-hide\");\n });\n this.myDropdown.value.addEventListener(\"hidden.bs.dropdown\", () => {\n this.menuIsOpen = false;\n this.emit(\"sgds-after-hide\");\n });\n this.addEventListener(\"keydown\", this._handleKeyboardMenuEvent);\n }\n /** When invoked, opens the dropdown menu */\n showMenu() {\n this.bsDropdown.show();\n }\n /** When invoked, hides the dropdown menu */\n hideMenu() {\n this.bsDropdown.hide();\n }\n toggleMenu() {\n this.bsDropdown.toggle();\n }\n _handleKeyboardMenuEvent(e) {\n switch (e.key) {\n case ARROW_DOWN:\n e.preventDefault();\n if (!this.menuIsOpen)\n return this.showMenu();\n break;\n case ARROW_UP:\n e.preventDefault();\n if (!this.menuIsOpen)\n return this.showMenu();\n break;\n case ESC:\n return this.hideMenu();\n }\n }\n _handleClickOutOfElement(e, self) {\n if (!e.composedPath().includes(self)) {\n this.hideMenu();\n }\n }\n}\nDropdownElement.styles = SgdsElement.styles;\n__decorate([\n property({ type: Boolean, state: true })\n], DropdownElement.prototype, \"noFlip\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, state: true })\n], DropdownElement.prototype, \"menuAlignRight\", void 0);\n__decorate([\n property({ type: String, reflect: true, state: true })\n], DropdownElement.prototype, \"drop\", void 0);\n__decorate([\n property({ type: Object })\n], DropdownElement.prototype, \"popperOpts\", void 0);\n__decorate([\n state()\n], DropdownElement.prototype, \"dropdownConfig\", void 0);\n__decorate([\n state()\n], DropdownElement.prototype, \"modifierOpt\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], DropdownElement.prototype, \"menuIsOpen\", void 0);\n__decorate([\n property({ type: String })\n], DropdownElement.prototype, \"close\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], DropdownElement.prototype, \"disabled\", void 0);\n\nexport { DropdownElement };\n//# sourceMappingURL=dropdown-element.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.et=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this.ft=void 0,this.et=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.et)return this.ft;this.et=r;const s=[r];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{directive as s}from\"../directive.js\";import{UnsafeHTMLDirective as e}from\"./unsafe-html.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t extends e{}t.directiveName=\"unsafeSVG\",t.resultType=2;const o=s(t);export{o as unsafeSVG};\n//# sourceMappingURL=unsafe-svg.js.map\n","import { __decorate } from 'tslib';\nimport { query, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\n\n/**\n * @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when input is in focus.\n * @event sgds-blur - Emitted when input is not in focus.\n *\n */\nclass SgdsInput extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.formSubmitController = new FormSubmitController(this);\n /** The type of input which works the same as HTMLInputElement*/\n this.type = \"text\";\n /** The input's label */\n this.label = \"\";\n /** The input's hint text below the label */\n this.hintText = \"\";\n /**The input's placeholder text. */\n this.placeholder = \"placeholder\";\n /**Autofocus the input */\n this.autofocus = false;\n /**Disables the input. */\n this.disabled = false;\n /**Makes the input a required field. */\n this.required = false;\n /**Makes the input readonly. */\n this.readonly = false;\n /**The input's value attribute. */\n this.value = \"\";\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultValue = \"\";\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n this.hasFeedback = false;\n /**Feedback text for error state when validated */\n this.invalidFeedback = \"\";\n /**@internal */\n this.invalid = false;\n /**@internal */\n this.valid = false;\n /**@internal */\n this.inputId = genId(\"input\", this.type);\n this.labelId = genId(\"label\");\n }\n /** Sets focus on the input. */\n focus(options) {\n this.input.focus(options);\n }\n /** Sets blur on the input. */\n blur() {\n this.input.blur();\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n setCustomValidity(err) {\n return this.input.setCustomValidity(err);\n }\n setInvalid(bool) {\n this.invalid = bool;\n }\n _handleChange(event) {\n this.value = this.input.value;\n this.emit(event);\n }\n _handleFocus() {\n this.emit(\"sgds-focus\");\n }\n _handleBlur() {\n this.emit(\"sgds-blur\");\n }\n _handleKeyDown(event) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === \"Enter\" && !hasModifier) {\n setTimeout(() => {\n // Prevent submission when enter is click on a submission in an Input Method Editor with isComposing\n if (!event.defaultPrevented && !event.isComposing) {\n this.formSubmitController.submit();\n }\n });\n }\n }\n _handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.input.disabled = this.disabled;\n this.invalid = !this.input.checkValidity();\n }\n _handleValueChange() {\n this.invalid = !this.input.checkValidity();\n this.valid = this.input.checkValidity();\n // remove validation for input that is not required, is already dirty and has empty value\n if (!this.required && this.value === \"\") {\n this.valid = false;\n }\n }\n _renderInput() {\n return html ` this._handleChange(\"sgds-input\")}\n @change=${() => this._handleChange(\"sgds-change\")}\n @keydown=${this._handleKeyDown}\n @invalid=${() => this.setInvalid(true)}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-describedby=${ifDefined(this.invalid && this.hasFeedback ? `${this.inputId}-invalid` : undefined)}\n aria-labelledby=\"${this.labelId} ${this.inputId}Help ${this.invalid && this.hasFeedback\n ? `${this.inputId}-invalid`\n : \"\"}\"\n />\n ${this._renderFeedback()} `;\n }\n _renderFeedback() {\n return this.hasFeedback\n ? html `
${this.invalidFeedback}
`\n : \"\";\n }\n _renderLabel() {\n const labelTemplate = html `\n \n `;\n return this.label && labelTemplate;\n }\n _renderHintText() {\n const hintTextTemplate = html `\n ${this.hintText}\n `;\n return this.hintText && hintTextTemplate;\n }\n render() {\n const input = html `${this._renderInput()}`;\n // if iconName is defined\n const inputWithIcon = html `\n
\n ${unsafeSVG(this.icon)} \n ${input}\n
\n `;\n // if hintText is defined\n return html `\n
\n ${html `${this._renderLabel()} ${this._renderHintText()} ${this.icon ? inputWithIcon : input} `}\n
\n `;\n }\n}\nSgdsInput.styles = SgdsElement.styles;\n__decorate([\n query(\"input.form-control\")\n], SgdsInput.prototype, \"input\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"type\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"label\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"hintText\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"name\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"inputClasses\", void 0);\n__decorate([\n property({ type: String })\n], SgdsInput.prototype, \"icon\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsInput.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsInput.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsInput.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: String })\n], SgdsInput.prototype, \"pattern\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsInput.prototype, \"autofocus\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsInput.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsInput.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsInput.prototype, \"readonly\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsInput.prototype, \"value\", void 0);\n__decorate([\n defaultValue()\n], SgdsInput.prototype, \"defaultValue\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsInput.prototype, \"hasFeedback\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsInput.prototype, \"invalidFeedback\", void 0);\n__decorate([\n state()\n], SgdsInput.prototype, \"invalid\", void 0);\n__decorate([\n state()\n], SgdsInput.prototype, \"valid\", void 0);\n__decorate([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SgdsInput.prototype, \"_handleDisabledChange\", null);\n__decorate([\n watch(\"value\", { waitUntilFirstUpdate: true })\n], SgdsInput.prototype, \"_handleValueChange\", null);\n\nexport { SgdsInput, SgdsInput as default };\n//# sourceMappingURL=sgds-input.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`.form-control-icon{bottom:0}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-combo-box2.js.map\n","import { __decorate } from 'tslib';\nimport { query, state } from 'lit/decorators.js';\nimport { DropdownElement } from './dropdown-element.js';\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ENTER = \"Enter\";\n/**\n * @event sgds-select - Emitted event when a slot item is selected\n */\nclass DropdownListElement extends DropdownElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.nextDropdownItemNo = 0;\n /** @internal */\n this.prevDropdownItemNo = -1;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"sgds-hide\", this._resetMenu);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"sgds-hide\", this._resetMenu);\n }\n firstUpdated() {\n super.firstUpdated();\n this.addEventListener(\"keydown\", this._handleKeyboardMenuItemsEvent);\n }\n handleSelectSlot(e) {\n const items = this._getActiveMenuItems();\n const currentItemNo = items.indexOf(e.target);\n this.nextDropdownItemNo = currentItemNo + 1;\n this.prevDropdownItemNo = currentItemNo <= 0 ? items.length - 1 : currentItemNo - 1;\n /** Emitted event from SgdsDropdown element when a slot item is selected */\n const selectedItem = e.target;\n if (!selectedItem.disabled) {\n this.emit(\"sgds-select\");\n this.close !== \"outside\" && this.bsDropdown.hide();\n }\n else\n return;\n }\n _resetMenu() {\n this.nextDropdownItemNo = 0;\n this.prevDropdownItemNo = -1;\n // reset the tabindex\n const items = this._getMenuItems();\n items.forEach(i => {\n i.removeAttribute(\"tabindex\");\n });\n }\n _handleKeyboardMenuItemsEvent(e) {\n const menuItems = this._getActiveMenuItems();\n switch (e.key) {\n case ARROW_DOWN:\n e.preventDefault();\n if (this.nextDropdownItemNo === menuItems.length) {\n return this._setMenuItem(0);\n }\n else {\n return this._setMenuItem(this.nextDropdownItemNo > 0 ? this.nextDropdownItemNo : 0);\n }\n case ARROW_UP:\n e.preventDefault();\n if (this.prevDropdownItemNo < 0) {\n return this._setMenuItem(menuItems.length - 1, false);\n }\n else {\n return this._setMenuItem(this.prevDropdownItemNo, false);\n }\n case ENTER:\n if (menuItems.includes(e.target)) {\n return this.handleSelectSlot(e);\n }\n break;\n }\n }\n _getMenuItems() {\n var _a;\n // for case when default slot is used e.g. dropdown, mainnavdropdown\n if (this.shadowRoot.querySelector(\"slot#default\")) {\n return (_a = this.shadowRoot.querySelector(\"slot#default\")) === null || _a === void 0 ? void 0 : _a.assignedElements({\n flatten: true\n });\n }\n // for case when there is no slot e.g. combobox\n if (this.menu.hasChildNodes()) {\n const menuItems = this.menu.children;\n return [...menuItems];\n }\n }\n _getActiveMenuItems() {\n return this._getMenuItems().filter(item => !item.disabled);\n }\n _setMenuItem(currentItemIdx, isArrowDown = true) {\n const items = this._getActiveMenuItems();\n if (items.length === 0)\n return;\n const item = items[currentItemIdx];\n this.nextDropdownItemNo = currentItemIdx + 1;\n this.prevDropdownItemNo = currentItemIdx - 1 < 0 ? items.length - 1 : currentItemIdx - 1;\n let activeItem;\n if (item.disabled) {\n return this._setMenuItem(isArrowDown ? this.nextDropdownItemNo : this.prevDropdownItemNo);\n }\n else\n activeItem = item;\n // focus or blur items depending on active or not\n items.forEach(i => {\n i.setAttribute(\"tabindex\", i === activeItem ? \"0\" : \"-1\");\n i === activeItem && i.focus();\n });\n }\n}\nDropdownListElement.styles = DropdownElement.styles;\n__decorate([\n query(\"ul.dropdown-menu\")\n], DropdownListElement.prototype, \"menu\", void 0);\n__decorate([\n state()\n], DropdownListElement.prototype, \"nextDropdownItemNo\", void 0);\n__decorate([\n state()\n], DropdownListElement.prototype, \"prevDropdownItemNo\", void 0);\n\nexport { DropdownListElement };\n//# sourceMappingURL=dropdown-list-element.js.map\n","import { __decorate } from 'tslib';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ref } from 'lit/directives/ref.js';\nimport { DropdownElement } from '../../base/dropdown-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { SgdsInput } from '../Input/sgds-input.js';\nimport css_248z from './sgds-combo-box2.js';\nimport { watch } from '../../utils/watch.js';\nimport { DropdownListElement } from '../../base/dropdown-list-element.js';\n\n/**\n * @summary ComboBox component is used for users to make one or more selections from a list.\n *\n * @slot icon - slot for form control icon to be displayed on the right of the input box.\n *\n * @event sgds-select - Emitted when the combo box's selected value changes.\n * @event sgds-input - Emitted when user input is received and its value changes.\n */\nclass SgdsComboBox extends ScopedElementsMixin(DropdownListElement) {\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-input\": SgdsInput\n };\n }\n constructor() {\n super();\n /** The input's label */\n this.label = \"\";\n /** The input's hint text below the label */\n this.hintText = \"\";\n /**The input's placeholder text. */\n this.placeholder = \"placeholder\";\n /**Autofocus the input */\n this.autofocus = false;\n /**Disables the input. */\n this.disabled = false;\n /**Makes the input a required field. */\n this.required = false;\n /**Makes the input readonly. */\n this.readonly = false;\n /**The input's value attribute. */\n this.value = \"\";\n /**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultValue = \"\";\n /**The list of items to display in the dropdown. */\n this.menuList = [];\n /**The function used to determine if a menu item should be shown in the menu list, given the user's input value. */\n this.filterFunction = (inputValue, menuItem) => {\n const itemLowerCase = menuItem.toLowerCase();\n const valueLower = inputValue.toLowerCase();\n return itemLowerCase.startsWith(valueLower);\n };\n /**@internal */\n this.filteredMenuList = [];\n /**@internal */\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 10]\n }\n }\n ];\n }\n /**@internal */\n handleFilterMenu() {\n this.filteredMenuList = this.menuList.filter(item => this.filterFunction.call(null, this.value, item));\n if (!this.myDropdown || !this.bsDropdown)\n return;\n // To hide dropdown menu when filtered menuList is empty\n if (this.filteredMenuList.length === 0) {\n this.hideMenu();\n }\n else if (this.menuIsOpen) {\n this.showMenu();\n }\n }\n _handleInputChange(e) {\n this.showMenu();\n this.value = e.target.value;\n }\n _handleSelectChange(e) {\n this.value = e.target.innerText;\n this.handleSelectSlot(e);\n }\n render() {\n return html `\n
\n (this.filteredMenuList.length > 0 ? this.showMenu() : this.hideMenu())}\n placeholder=${this.placeholder}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n ?required=${this.required}\n ?readonly=${this.readonly}\n .value=${this.value}\n @sgds-input=${this._handleInputChange}\n role=\"combobox\"\n aria-expanded=${this.menuIsOpen}\n aria-autocomplete=\"list\"\n aria-controls=${this.dropdownMenuId}\n >\n \n
\n \n
\n
    \n ${this.filteredMenuList.map(item => html ``)}\n
\n
\n `;\n }\n}\nSgdsComboBox.styles = [DropdownElement.styles, css_248z];\n__decorate([\n property({ reflect: true })\n], SgdsComboBox.prototype, \"label\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsComboBox.prototype, \"hintText\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsComboBox.prototype, \"name\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsComboBox.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsComboBox.prototype, \"autofocus\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsComboBox.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsComboBox.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsComboBox.prototype, \"readonly\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsComboBox.prototype, \"value\", void 0);\n__decorate([\n defaultValue()\n], SgdsComboBox.prototype, \"defaultValue\", void 0);\n__decorate([\n property({ type: Array })\n], SgdsComboBox.prototype, \"menuList\", void 0);\n__decorate([\n property({ type: Function })\n], SgdsComboBox.prototype, \"filterFunction\", void 0);\n__decorate([\n state()\n], SgdsComboBox.prototype, \"filteredMenuList\", void 0);\n__decorate([\n watch(\"value\")\n], SgdsComboBox.prototype, \"handleFilterMenu\", null);\n\nexport { SgdsComboBox, SgdsComboBox as default };\n//# sourceMappingURL=sgds-combo-box.js.map\n","import { SgdsComboBox } from './sgds-combo-box.js';\n\ncustomElements.define(\"sgds-combo-box\", SgdsComboBox);\n//# sourceMappingURL=index.js.map\n","import { SgdsCheckbox } from './sgds-checkbox.js';\n\ncustomElements.define(\"sgds-checkbox\", SgdsCheckbox);\n//# sourceMappingURL=index.js.map\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\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?.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","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst 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};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const 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\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - 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 return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\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.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst 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: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst 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};\n\nconst 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\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // 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 const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst 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};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst 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};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst 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};\nconst 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};\n\nconst 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};\nconst 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};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\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 */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"./toDate.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\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 */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\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 */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\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 */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\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 */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\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 const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\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 case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\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 case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\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 case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\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 case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const 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 case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\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 case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\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 case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.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\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 case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\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 case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\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 case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\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 case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\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](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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\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 */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\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 */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\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\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\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 */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\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 _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\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\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { endOfDay } from \"./endOfDay.mjs\";\nimport { endOfMonth } from \"./endOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date) {\n const _date = toDate(date);\n return +endOfDay(_date) === +endOfMonth(_date);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { toDate } from \"./toDate.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\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 */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.mjs\";\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\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 */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n","import { getDaysInMonth, isLastDayOfMonth, lastDayOfMonth } from 'date-fns';\n\nconst DATE_PATTERNS = {\n \"DD/MM/YYYY\": {\n imPattern: \"`dd{/}`mm{/}`yyyy\",\n imRangePattern: \"`dd{/}`mm{/}`yyyy - `DD{/}`MM{/}`YYYY\",\n fnsPattern: \"dd/MM/yyyy\"\n },\n \"MM/DD/YYYY\": {\n imPattern: \"`mm{/}`dd{/}`yyyy\",\n imRangePattern: \"`mm{/}`dd{/}`yyyy - `MM{/}`DD{/}`YYYY\",\n fnsPattern: \"MM/dd/yyyy\"\n },\n \"YYYY/MM/DD\": {\n imPattern: \"`yyyy{/}`mm{/}`dd\",\n imRangePattern: \"`yyyy{/}`mm{/}`dd - `YYYY{/}`MM{/}`DD\",\n fnsPattern: \"yyyy/MM/dd\"\n }\n};\n/**\n * @description - creates calendar's year view years array with context of\n * datepicker's displayDate and current year\n * Fixes current year to the start of array\n */\nconst createYearViewArray = (displayDate, currentYear) => {\n // keeping the year range position to be always fixed by setting current year to the first element of the calendar\n const displayYear = displayDate.getFullYear();\n const remainder = (displayYear - currentYear) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n const yearArray = [];\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1; // -1 to match the index of the years (index starts from 0)\n for (let i = startLimit; i < endLimit + 1; i++) {\n yearArray.push(i);\n }\n return yearArray;\n};\nconst sanitizedNextMonth = (d) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const nextMonthDate = new Date(year, month + 1);\n const numberOfDaysNextMonth = getDaysInMonth(nextMonthDate);\n if (isLastDayOfMonth(d) && numberOfDaysNextMonth < date) {\n return lastDayOfMonth(nextMonthDate);\n }\n else {\n return new Date(year, month + 1, date);\n }\n};\nconst sanitizedPreviousMonth = (d) => {\n const month = d.getMonth();\n const year = d.getFullYear();\n const date = d.getDate();\n const prevMonthDate = new Date(year, month - 1);\n const numberOfDaysPrevMonth = getDaysInMonth(prevMonthDate);\n if (isLastDayOfMonth(d) && numberOfDaysPrevMonth < date) {\n return lastDayOfMonth(prevMonthDate);\n }\n else {\n return new Date(year, month - 1, date);\n }\n};\nconst setTimeToNoon = (date) => {\n const newDate = new Date(date);\n newDate.setHours(12);\n newDate.setMinutes(0);\n newDate.setSeconds(0);\n newDate.setMilliseconds(0);\n return newDate;\n};\n\nexport { DATE_PATTERNS, createYearViewArray, sanitizedNextMonth, sanitizedPreviousMonth, setTimeToNoon };\n//# sourceMappingURL=time.js.map\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n const _dateLeft = toDate(leftDate);\n const _dateRight = toDate(rightDate);\n return +_dateLeft === +_dateRight;\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { css } from 'lit';\n\nvar css_248z = css`.datepicker-body{padding:0 1.5rem 1.5rem}button.month.active.selected-ends,button.year.active.selected-ends,td[data-day].active.selected-ends{background-color:var(--datepicker-selected-date-bg-color);color:var(--datepicker-selected-date-text-color)}button.month.active,button.month:hover:not(.active),button.year.active,button.year:hover:not(.active),td[data-day].active,td[data-day]:hover:not(.disabled):not(.selected-ends){background-color:var(--datepicker-hover-bg-color);cursor:pointer}.sgds.monthpicker,.sgds.yearpicker{align-content:space-between;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,3rem);justify-content:space-between;padding:1rem 0 0}button.month,button.year{background-color:transparent;border:0;padding:0}button.month:focus,button.year:focus{outline:var(--datepicker-theme-color) auto 2px;z-index:100}td{height:3rem;padding:0;width:3rem}td[data-day]{cursor:pointer}td[data-day]:focus{outline:var(--datepicker-theme-color) auto 2px}td[data-day].disabled{color:var(--sgds-gray-400);cursor:not-allowed}.today{color:var(--datepicker-theme-color)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=datepicker-calendar2.js.map\n","import { __decorate } from 'tslib';\nimport { isAfter, isEqual, format } from 'date-fns';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { setTimeToNoon, createYearViewArray } from '../../utils/time.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './datepicker-calendar2.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nconst TODAY_DATE = new Date();\nconst keyPressAction = {\n ArrowUp: {\n days: -7,\n months: -3,\n years: -3\n },\n ArrowDown: {\n days: 7,\n months: 3,\n years: 3\n },\n ArrowRight: {\n days: 1,\n months: 1,\n years: 1\n },\n ArrowLeft: {\n days: -1,\n months: -1,\n years: -1\n }\n};\nclass DatepickerCalendar extends SgdsElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.selectedDate = [];\n /** @internal */\n this.mode = \"single\";\n }\n /**Shifts focus from Input to Calendar */\n focusOnCalendar(toBlurEl) {\n toBlurEl.blur();\n this._focusOnCalendarCell();\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"keydown\", this._handleKeyPress);\n }\n updated() {\n /** For KeyboardNavigation (switching months) and ClickNavigation:\n * Runs after render has completed and td of next month has appeared.\n * For the case when calendar view changes to the next month\n * */\n if (this.focusedTabIndex === 3) {\n this._focusOnCalendarCell();\n }\n }\n _updateFocusedDate() {\n this.focusedDate = setTimeToNoon(this.displayDate);\n if (this.focusedDate.getFullYear() < 1900) {\n this.focusedDate.setFullYear(1900);\n }\n }\n _setFocusedDate(shift) {\n const currentFocusedDate = this.focusedDate.getDate();\n const currentFocusedMonth = this.focusedDate.getMonth();\n const currentFocusedYear = this.focusedDate.getFullYear();\n switch (this.view) {\n case \"days\": {\n const newFocusedDate = setTimeToNoon(new Date(currentFocusedYear, currentFocusedMonth, currentFocusedDate + shift));\n if (isAfter(newFocusedDate, new Date(0, 0, 1, 12)) || isEqual(newFocusedDate, new Date(0, 0, 1, 12)))\n this.focusedDate = newFocusedDate;\n break;\n }\n case \"months\": {\n const newFocusedDate = setTimeToNoon(new Date(currentFocusedYear, currentFocusedMonth + shift, currentFocusedDate));\n if (isAfter(newFocusedDate, new Date(0, 0, 1, 12)) || isEqual(newFocusedDate, new Date(0, 0, 1, 12))) {\n this.focusedDate = newFocusedDate;\n }\n break;\n }\n case \"years\": {\n const newFocusedDate = setTimeToNoon(new Date(currentFocusedYear + shift, currentFocusedMonth, currentFocusedDate));\n if (newFocusedDate.getFullYear() >= 1900) {\n this.focusedDate = newFocusedDate;\n }\n break;\n }\n }\n }\n _handleEnterDateKeyboard(event) {\n const targetElement = event.composedPath()[0];\n if (targetElement.classList.contains(\"disabled\"))\n return;\n switch (this.view) {\n case \"days\":\n this._onClickDay(event);\n break;\n case \"months\": {\n const { month } = targetElement.dataset;\n this._onClickMonth(parseInt(month));\n break;\n }\n case \"years\": {\n const { year } = targetElement.dataset;\n this._onClickYear(parseInt(year));\n }\n }\n }\n _handleKeyPress(event) {\n if (event.key === \"Enter\") {\n event.preventDefault();\n this._handleEnterDateKeyboard(event);\n return;\n }\n if (event.key === \"Tab\") {\n const targetEl = this._getFocusedTarget();\n if (this.focusedTabIndex !== 3)\n targetEl.blur();\n return;\n }\n if (event.key.includes(\"Arrow\")) {\n event.preventDefault();\n this._blurCalendarCell();\n const keyShiftObject = keyPressAction[event.key];\n const shiftNumber = keyShiftObject[this.view];\n this._setFocusedDate(shiftNumber);\n this._focusOnCalendarCell();\n }\n }\n _generateIncrementDates() {\n const start = setTimeToNoon(this.selectedDate[0]);\n if (this.selectedDate.length < 2) {\n return [start];\n }\n const end = setTimeToNoon(this.selectedDate[1]);\n const arr = [];\n if (start.getTime() < end.getTime()) {\n for (let dt = start; dt <= end; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n }\n else {\n for (let dt = end; dt <= start; dt.setDate(dt.getDate() + 1)) {\n arr.push(new Date(dt));\n }\n }\n return arr;\n }\n _onClickDay(event) {\n const { day, date } = event.composedPath()[0].dataset;\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setDate(parseInt(day));\n /** update new focused date for mouse click */\n if (event.type === \"click\") {\n this.focusedDate = setTimeToNoon(new Date(date));\n }\n if (this.mode === \"single\") {\n // Single mode: Select a single date\n this.selectedDate = [displayDateClone];\n // Emit event with selected date\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n }\n else if (this.mode === \"range\") {\n // Range mode: Select a range of dates\n const selectedDates = [...this.selectedDate];\n if (selectedDates.length === 0 || selectedDates.length === 2) {\n // No dates selected yet or both dates already selected,\n // start a new range by clearing the selected dates array\n selectedDates.length = 0;\n }\n // Add the selected date to the range\n selectedDates.push(displayDateClone);\n // Update the selectedDate property\n this.selectedDate = selectedDates;\n // Emit event with the range of selected dates\n this.emit(\"sgds-selectdates\", { detail: this.selectedDate });\n }\n // Check if the selected date is before minDate or after maxDate\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n const selectedDate = setTimeToNoon(displayDateClone);\n if ((minimumDate && selectedDate < minimumDate) || (maximumDate && selectedDate > maximumDate)) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n _onClickMonth(month, year = this.focusedDate.getFullYear()) {\n const displayDateClone = new Date(this.displayDate);\n this.view = \"days\";\n displayDateClone.setMonth(month);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.emit(\"sgds-view\", { detail: this.view });\n //once clicked, should change view to days, and hold value and change view\n this.emit(\"sgds-selectmonth\", { detail: this.displayDate });\n }\n _onClickYear(year) {\n const displayDateClone = new Date(this.displayDate);\n displayDateClone.setFullYear(year);\n this.displayDate = displayDateClone;\n this.view = \"months\";\n this.emit(\"sgds-view\", { detail: this.view });\n this.emit(\"sgds-selectyear\", { detail: this.displayDate });\n }\n _getFocusedTarget() {\n const queryObj = {\n days: `td[data-date=\"${this.focusedDate.toISOString()}\"]`,\n months: `button[data-month=\"${this.focusedDate.getMonth()}\"][data-year=\"${this.focusedDate.getFullYear()}\"]`,\n years: `button[data-year=\"${this.focusedDate.getFullYear()}\"]`\n };\n const queryString = queryObj[this.view];\n const targetEl = this.shadowRoot.querySelector(`${queryString}`);\n return targetEl;\n }\n _blurCalendarCell() {\n const targetEl = this._getFocusedTarget();\n targetEl.setAttribute(\"tabindex\", \"-1\");\n targetEl.blur();\n }\n _focusOnCalendarCell() {\n const targetEl = this._getFocusedTarget();\n if (targetEl) {\n targetEl.setAttribute(\"tabindex\", \"3\");\n targetEl.focus();\n this.emit(\"sgds-update-focus\", { detail: this.focusedDate });\n }\n else {\n /** Change month view */\n this.emit(\"sgds-change-calendar\", { detail: this.focusedDate });\n }\n }\n _generateDays() {\n const selectedDates = this.selectedDate.map(d => setTimeToNoon(d));\n const rangeSelectedDates = this._generateIncrementDates();\n const minimumDate = this.minDate ? setTimeToNoon(new Date(this.minDate)) : null;\n const maximumDate = this.maxDate ? setTimeToNoon(new Date(this.maxDate)) : null;\n const year = this.displayDate.getFullYear();\n const month = this.displayDate.getMonth();\n const firstDateOfMonth = new Date(year, month, 1);\n const startingDayOfMonth = firstDateOfMonth.getDay();\n let monthLength = DatepickerCalendar.daysInMonth[month];\n if (month === 1) {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n monthLength = 29;\n }\n }\n const weeks = [];\n let day = 1;\n for (let i = 0; i < 9; i++) {\n const week = [];\n for (let j = 0; j <= 6; j++) {\n if (day <= monthLength && (i > 0 || j >= startingDayOfMonth)) {\n const dateObj = new Date(year, month, day, 12, 0, 0, 0);\n const dateStr = dateObj.toISOString();\n const beforeMinDate = minimumDate && Date.parse(dateStr) < Date.parse(minimumDate.toISOString());\n const afterMinDate = maximumDate && Date.parse(dateStr) > Date.parse(maximumDate.toISOString());\n const clickHandler = beforeMinDate || afterMinDate ? undefined : this._onClickDay;\n const isCurrentMonth = TODAY_DATE.getMonth() === this.displayDate.getMonth();\n const isCurrentYear = TODAY_DATE.getFullYear() === this.displayDate.getFullYear();\n const isCurrentDay = TODAY_DATE.getDate() === day;\n const isSelected = selectedDates.length > 0 &&\n rangeSelectedDates.some(d => Date.parse(dateStr) === Date.parse(d.toISOString()));\n const isFirstSelectedDate = selectedDates.length > 0 && rangeSelectedDates[0].toISOString() === dateStr;\n const isLastSelectedDate = selectedDates.length > 1 && rangeSelectedDates[rangeSelectedDates.length - 1].toISOString() === dateStr;\n const ariaLabel = `${isCurrentDay && isCurrentMonth && isCurrentYear ? \"Today's date, \" : \"\"}` + format(dateObj, \"PPPP\");\n week.push(html `\n ${day}\n `);\n day++;\n }\n else {\n week.push(html ``);\n }\n }\n weeks.push(html `\n ${week}\n `);\n if (day > monthLength) {\n break;\n }\n }\n const dayView = html `\n \n \n \n ${DatepickerCalendar.DAY_LABELS.map((label, index) => html `\n \n `)}\n \n \n \n ${weeks}\n \n
\n ${label.slice(0, 3)}\n
\n `;\n return dayView;\n }\n _generateMonths() {\n const rangeDates = this._generateIncrementDates();\n const selectedTime = rangeDates.map(e => setTimeToNoon(new Date(e.getFullYear(), e.getMonth())).getTime());\n const year = this.displayDate.getFullYear();\n const monthView = html `\n
\n ${DatepickerCalendar.MONTHVIEW_LABELS.map((m, idx) => {\n const isCurrentMonth = idx === TODAY_DATE.getMonth() && year === TODAY_DATE.getFullYear();\n const time = setTimeToNoon(new Date(year, idx)).getTime();\n const isFirstSelectedMonth = rangeDates[0].getMonth() === idx;\n const isFirstSelectedYear = rangeDates[0].getFullYear() === year;\n const isLastSelectedMonth = rangeDates[rangeDates.length - 1].getMonth() === idx;\n const isLastSelectedYear = rangeDates[rangeDates.length - 1].getFullYear() === year;\n const ariaLabel = isCurrentMonth ? `Current month ${m} ${year}` : `${m} ${year}`;\n return html ` this._onClickMonth(idx)}\n data-month=${idx}\n data-year=${year}\n tabindex=\"3\"\n aria-selected=${selectedTime.includes(time)}\n aria-label=${ariaLabel}\n >\n ${m.slice(0, 3)}\n `;\n })}\n
\n `;\n return monthView;\n }\n _generateYears() {\n const selectedYears = this._generateIncrementDates().map(e => e.getFullYear());\n const CURRENT_YEAR = TODAY_DATE.getFullYear();\n const yearArray = createYearViewArray(this.displayDate, CURRENT_YEAR);\n const yearView = html `\n
\n ${yearArray.map(y => {\n const isFirstSelectedYear = selectedYears[0] === y;\n const isLastSectedYear = selectedYears[selectedYears.length - 1] === y;\n return html `\n this._onClickYear(y)}\n data-year=${y}\n tabindex=\"3\"\n ?disabled=${y < 1900}\n aria-selected=${selectedYears.includes(y)}\n aria-label=${ifDefined(CURRENT_YEAR === y ? `Current year, ${y}` : undefined)}\n >\n ${y}\n \n `;\n })}\n
\n `;\n return yearView;\n }\n render() {\n let viewContent;\n switch (this.view) {\n case \"days\":\n viewContent = html ` ${this._generateDays()} `;\n break;\n case \"months\":\n viewContent = html ` ${this._generateMonths()} `;\n break;\n case \"years\":\n viewContent = html ` ${this._generateYears()} `;\n break;\n default:\n viewContent = html ` ${this._generateDays()} `; // Set a default view\n break;\n }\n return html `
${viewContent}
`;\n }\n}\nDatepickerCalendar.styles = [SgdsElement.styles, css_248z];\n/** @internal */\nDatepickerCalendar.DAY_LABELS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n/** @internal */\nDatepickerCalendar.daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n/** @internal */\nDatepickerCalendar.MONTHVIEW_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n__decorate([\n property({ type: Array })\n], DatepickerCalendar.prototype, \"selectedDate\", void 0);\n__decorate([\n property({ attribute: false })\n], DatepickerCalendar.prototype, \"displayDate\", void 0);\n__decorate([\n property({ type: String })\n], DatepickerCalendar.prototype, \"minDate\", void 0);\n__decorate([\n property({ type: String })\n], DatepickerCalendar.prototype, \"maxDate\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], DatepickerCalendar.prototype, \"mode\", void 0);\n__decorate([\n property()\n], DatepickerCalendar.prototype, \"view\", void 0);\n__decorate([\n property({ type: Boolean })\n], DatepickerCalendar.prototype, \"show\", void 0);\n__decorate([\n property()\n], DatepickerCalendar.prototype, \"focusedTabIndex\", void 0);\n__decorate([\n watch(\"displayDate\")\n], DatepickerCalendar.prototype, \"_updateFocusedDate\", null);\n\nexport { DatepickerCalendar, DatepickerCalendar as default };\n//# sourceMappingURL=datepicker-calendar.js.map\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { css } from 'lit';\n\nvar css_248z = css`.datepicker-header{padding:1.5rem 1.5rem 0}.datepicker-header,.datepicker-header button{border:none;color:var(--datepicker-theme-color)}.datepicker-header button{background-color:transparent;cursor:pointer;font-weight:700}.datepicker-header button:focus{outline:var(--datepicker-theme-color) auto 2px}.datepicker-header button.disabled{cursor:not-allowed}.datepicker-header button:hover:not(.disabled){background-color:var(--datepicker-hover-bg-color)}.datepicker-header svg{font-size:10rem}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=datepicker-header2.js.map\n","import { __decorate } from 'tslib';\nimport { isEqual, isBefore } from 'date-fns';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { sanitizedPreviousMonth, sanitizedNextMonth } from '../../utils/time.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './datepicker-header2.js';\n\nclass DatepickerHeader extends SgdsElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.selectedDate = [];\n }\n _handleFocusedTabIndexChange() {\n if (this.focusedTabIndex < 3) {\n const buttonToFocus = this.shadowRoot.querySelector(`button[tabindex=\"${this.focusedTabIndex}\"]`);\n buttonToFocus.focus();\n }\n return;\n }\n _changeView() {\n switch (this.view) {\n case \"days\":\n this.view = \"months\";\n break;\n case \"months\":\n this.view = \"years\";\n break;\n }\n this.emit(\"sgds-view\", { detail: this.view }); // emit event to render the correct view\n }\n renderHeader(displayDate = this.displayDate, view = this.view) {\n if (view === \"months\") {\n return displayDate.getFullYear();\n }\n if (view === \"years\") {\n const CURRENT_YEAR = new Date().getFullYear();\n const displayYear = displayDate.getFullYear();\n const remainder = (displayYear - CURRENT_YEAR) % 12;\n const yearsPosition = remainder < 0 ? 12 + remainder : remainder;\n const startLimit = displayYear - yearsPosition;\n const endLimit = displayYear - yearsPosition + 12 - 1;\n return `${startLimit} - ${endLimit}`;\n }\n return `${MONTH_LABELS[displayDate.getMonth()]} ${displayDate.getFullYear()}`;\n }\n _renderHeaderTemplate() {\n return html `${this.renderHeader()}`;\n }\n /** @internal */\n handleClickPrevious() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 1);\n }\n else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() - 12);\n }\n else {\n /**\n * FocusedDate gets precedence over displayDate.\n * This happens when the arrow keys are pressed to\n * change focus date and user clicks the arrow buttons to\n * shift months\n */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedPreviousMonth(focusedDate);\n }\n else {\n newDisplayDate = sanitizedPreviousMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n // emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n /** @internal */\n _handleClickNext() {\n const { view, displayDate, focusedDate } = this;\n let newDisplayDate = new Date(displayDate);\n if (view === \"months\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 1);\n }\n else if (this.view === \"years\") {\n newDisplayDate.setFullYear(newDisplayDate.getFullYear() + 12);\n }\n else {\n /** FocusedDate gets precedence over displayDate */\n if (focusedDate.getDate() !== displayDate.getDate()) {\n newDisplayDate = sanitizedNextMonth(focusedDate);\n }\n else {\n newDisplayDate = sanitizedNextMonth(newDisplayDate);\n }\n }\n this.displayDate = newDisplayDate; // Update the displayDate property\n //emit event to render correct view\n this.emit(\"sgds-change-calendar\", { detail: this.displayDate });\n }\n _removeCaret() {\n const displayYear = this.displayDate.getFullYear();\n const displayMonth = this.displayDate.getMonth();\n const displayMonthYear = new Date(displayYear, displayMonth);\n if (this.view === \"months\") {\n return displayYear <= 1900;\n }\n if (this.view === \"years\") {\n return displayYear < 1904;\n }\n return isEqual(displayMonthYear, new Date(0, 0, 1)) || isBefore(displayMonthYear, new Date(0, 0, 1));\n }\n _ariaLabelForNextBtn() {\n const nextBtnDate = {\n days: \"Show next month\",\n months: \"Show next year\",\n years: \"Show next 12 years\"\n };\n return nextBtnDate[this.view];\n }\n _ariaLabelForPrevBtn() {\n const prevBtnDate = {\n days: \"Show previous month\",\n months: \"Show previous year\",\n years: \"Show previous 12 years\"\n };\n return prevBtnDate[this.view];\n }\n _ariaLabelForHeaderBtn() {\n const message = {\n days: `Current view is days, click to show months in ${this.displayDate.getFullYear()}`,\n months: `Current view is months, click to show years between ${this.renderHeader(this.displayDate, \"years\")}`,\n years: `Current view is years`\n };\n return `${this.renderHeader()}. ${message[this.view]}`;\n }\n render() {\n return html `\n
\n
\n \n \n \n \n \n \n ${this._renderHeaderTemplate()}\n \n \n
\n
\n `;\n }\n}\nDatepickerHeader.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ attribute: false })\n], DatepickerHeader.prototype, \"displayDate\", void 0);\n__decorate([\n property({ attribute: false })\n], DatepickerHeader.prototype, \"focusedDate\", void 0);\n__decorate([\n property({ attribute: false })\n], DatepickerHeader.prototype, \"selectedDate\", void 0);\n__decorate([\n property()\n], DatepickerHeader.prototype, \"view\", void 0);\n__decorate([\n property()\n], DatepickerHeader.prototype, \"focusedTabIndex\", void 0);\n__decorate([\n watch(\"focusedTabIndex\", { waitUntilFirstUpdate: true })\n], DatepickerHeader.prototype, \"_handleFocusedTabIndexChange\", null);\nconst MONTH_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport { DatepickerHeader, MONTH_LABELS, DatepickerHeader as default };\n//# sourceMappingURL=datepicker-header.js.map\n","/** Checks if value is string */\nfunction isString(str) {\n return typeof str === 'string' || str instanceof String;\n}\n\n/** Checks if value is object */\nfunction isObject(obj) {\n var _obj$constructor;\n return typeof obj === 'object' && obj != null && (obj == null || (_obj$constructor = obj.constructor) == null ? void 0 : _obj$constructor.name) === 'Object';\n}\nfunction pick(obj, keys) {\n if (Array.isArray(keys)) return pick(obj, (_, k) => keys.includes(k));\n return Object.entries(obj).reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (keys(v, k)) acc[k] = v;\n return acc;\n }, {});\n}\n\n/** Direction */\nconst DIRECTION = {\n NONE: 'NONE',\n LEFT: 'LEFT',\n FORCE_LEFT: 'FORCE_LEFT',\n RIGHT: 'RIGHT',\n FORCE_RIGHT: 'FORCE_RIGHT'\n};\n\n/** Direction */\n\nfunction forceDirection(direction) {\n switch (direction) {\n case DIRECTION.LEFT:\n return DIRECTION.FORCE_LEFT;\n case DIRECTION.RIGHT:\n return DIRECTION.FORCE_RIGHT;\n default:\n return direction;\n }\n}\n\n/** Escapes regular expression control chars */\nfunction escapeRegExp(str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n}\n\n// cloned from https://github.com/epoberezkin/fast-deep-equal with small changes\nfunction objectIncludes(b, a) {\n if (a === b) return true;\n const arrA = Array.isArray(a),\n arrB = Array.isArray(b);\n let i;\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++) if (!objectIncludes(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n const dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n const regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n const keys = Object.keys(a);\n // if (keys.length !== Object.keys(b).length) return false;\n\n for (i = 0; i < keys.length; i++) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = 0; i < keys.length; i++) if (!objectIncludes(b[keys[i]], a[keys[i]])) return false;\n return true;\n } else if (a && b && typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n return false;\n}\n\n/** Selection range */\n\nexport { DIRECTION, escapeRegExp, forceDirection, isObject, isString, objectIncludes, pick };\n","import { DIRECTION } from './utils.js';\n\n/** Provides details of changing input */\nclass ActionDetails {\n /** Current input value */\n\n /** Current cursor position */\n\n /** Old input value */\n\n /** Old selection */\n\n constructor(opts) {\n Object.assign(this, opts);\n\n // double check if left part was changed (autofilling, other non-standard input triggers)\n while (this.value.slice(0, this.startChangePos) !== this.oldValue.slice(0, this.startChangePos)) {\n --this.oldSelection.start;\n }\n if (this.insertedCount) {\n // double check right part\n while (this.value.slice(this.cursorPos) !== this.oldValue.slice(this.oldSelection.end)) {\n if (this.value.length - this.cursorPos < this.oldValue.length - this.oldSelection.end) ++this.oldSelection.end;else ++this.cursorPos;\n }\n }\n }\n\n /** Start changing position */\n get startChangePos() {\n return Math.min(this.cursorPos, this.oldSelection.start);\n }\n\n /** Inserted symbols count */\n get insertedCount() {\n return this.cursorPos - this.startChangePos;\n }\n\n /** Inserted symbols */\n get inserted() {\n return this.value.substr(this.startChangePos, this.insertedCount);\n }\n\n /** Removed symbols count */\n get removedCount() {\n // Math.max for opposite operation\n return Math.max(this.oldSelection.end - this.startChangePos ||\n // for Delete\n this.oldValue.length - this.value.length, 0);\n }\n\n /** Removed symbols */\n get removed() {\n return this.oldValue.substr(this.startChangePos, this.removedCount);\n }\n\n /** Unchanged head symbols */\n get head() {\n return this.value.substring(0, this.startChangePos);\n }\n\n /** Unchanged tail symbols */\n get tail() {\n return this.value.substring(this.startChangePos + this.insertedCount);\n }\n\n /** Remove direction */\n get removeDirection() {\n if (!this.removedCount || this.insertedCount) return DIRECTION.NONE;\n\n // align right if delete at right\n return (this.oldSelection.end === this.cursorPos || this.oldSelection.start === this.cursorPos) &&\n // if not range removed (event with backspace)\n this.oldSelection.end === this.oldSelection.start ? DIRECTION.RIGHT : DIRECTION.LEFT;\n }\n}\n\nexport { ActionDetails as default };\n","/** Applies mask on element */\nfunction IMask(el, opts) {\n // currently available only for input-like elements\n return new IMask.InputMask(el, opts);\n}\n\nexport { IMask as default };\n","import { isString, isObject, pick } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n// export function maskedClass(mask: string): typeof MaskedPattern;\n// export function maskedClass(mask: DateConstructor): typeof MaskedDate;\n// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;\n// export function maskedClass(mask: Array | ArrayConstructor): typeof MaskedDynamic;\n// export function maskedClass(mask: MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass(mask: Masked): typeof Masked;\n// export function maskedClass(mask: typeof Masked): typeof Masked;\n// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass (mask: Mask): Mask;\n// export function maskedClass(mask: RegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;\n\n/** Get Masked class by mask type */\nfunction maskedClass(mask) /* TODO */{\n if (mask == null) throw new Error('mask property should be defined');\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n if (isString(mask)) return IMask.MaskedPattern;\n if (mask === Date) return IMask.MaskedDate;\n if (mask === Number) return IMask.MaskedNumber;\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n return IMask.Masked;\n}\nfunction normalizeOpts(opts) {\n if (!opts) throw new Error('Options in not defined');\n if (IMask.Masked) {\n if (opts.prototype instanceof IMask.Masked) return {\n mask: opts\n };\n\n /*\n handle cases like:\n 1) opts = Masked\n 2) opts = { mask: Masked, ...instanceOpts }\n */\n const {\n mask = undefined,\n ...instanceOpts\n } = opts instanceof IMask.Masked ? {\n mask: opts\n } : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};\n if (mask) {\n const _mask = mask.mask;\n return {\n ...pick(mask, (_, k) => !k.startsWith('_')),\n mask: mask.constructor,\n _mask,\n ...instanceOpts\n };\n }\n }\n if (!isObject(opts)) return {\n mask: opts\n };\n return {\n ...opts\n };\n}\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n\n// From masked\n// export default function createMask (opts: Opts): ReturnMasked;\n// // From masked class\n// export default function createMask, ReturnMasked extends Masked=InstanceType> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDate=MaskedDate> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedNumber=MaskedNumber> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedEnum=MaskedEnum> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRange=MaskedRange> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedPattern=MaskedPattern> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedDynamic=MaskedDynamic> (opts: Opts): ReturnMasked;\n// // From mask opts\n// export default function createMask, ReturnMasked=Opts extends MaskedOptions ? M : never> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedRegExp=MaskedRegExp> (opts: Opts): ReturnMasked;\n// export default function createMask, ReturnMasked extends MaskedFunction=MaskedFunction> (opts: Opts): ReturnMasked;\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n const nOpts = normalizeOpts(opts);\n const MaskedClass = maskedClass(nOpts.mask);\n if (!MaskedClass) throw new Error(\"Masked class is not found for provided mask \" + nOpts.mask + \", appropriate module needs to be imported manually before creating mask.\");\n if (nOpts.mask === MaskedClass) delete nOpts.mask;\n if (nOpts._mask) {\n nOpts.mask = nOpts._mask;\n delete nOpts._mask;\n }\n return new MaskedClass(nOpts);\n}\nIMask.createMask = createMask;\n\nexport { createMask as default, maskedClass, normalizeOpts };\n","import IMask from '../core/holder.js';\n\n/** Generic element API to use with mask */\nclass MaskElement {\n /** */\n\n /** */\n\n /** */\n\n /** Safely returns selection start */\n get selectionStart() {\n let start;\n try {\n start = this._unsafeSelectionStart;\n } catch {}\n return start != null ? start : this.value.length;\n }\n\n /** Safely returns selection end */\n get selectionEnd() {\n let end;\n try {\n end = this._unsafeSelectionEnd;\n } catch {}\n return end != null ? end : this.value.length;\n }\n\n /** Safely sets element selection */\n select(start, end) {\n if (start == null || end == null || start === this.selectionStart && end === this.selectionEnd) return;\n try {\n this._unsafeSelect(start, end);\n } catch {}\n }\n\n /** */\n get isActive() {\n return false;\n }\n /** */\n\n /** */\n\n /** */\n}\nIMask.MaskElement = MaskElement;\n\nexport { MaskElement as default };\n","import MaskElement from './mask-element.js';\nimport IMask from '../core/holder.js';\n\nconst KEY_Z = 90;\nconst KEY_Y = 89;\n\n/** Bridge between HTMLElement and {@link Masked} */\nclass HTMLMaskElement extends MaskElement {\n /** HTMLElement to use mask on */\n\n constructor(input) {\n super();\n this.input = input;\n this._onKeydown = this._onKeydown.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onBeforeinput = this._onBeforeinput.bind(this);\n this._onCompositionEnd = this._onCompositionEnd.bind(this);\n }\n get rootElement() {\n var _this$input$getRootNo, _this$input$getRootNo2, _this$input;\n return (_this$input$getRootNo = (_this$input$getRootNo2 = (_this$input = this.input).getRootNode) == null ? void 0 : _this$input$getRootNo2.call(_this$input)) != null ? _this$input$getRootNo : document;\n }\n\n /** Is element in focus */\n get isActive() {\n return this.input === this.rootElement.activeElement;\n }\n\n /** Binds HTMLElement events to mask internal events */\n bindEvents(handlers) {\n this.input.addEventListener('keydown', this._onKeydown);\n this.input.addEventListener('input', this._onInput);\n this.input.addEventListener('beforeinput', this._onBeforeinput);\n this.input.addEventListener('compositionend', this._onCompositionEnd);\n this.input.addEventListener('drop', handlers.drop);\n this.input.addEventListener('click', handlers.click);\n this.input.addEventListener('focus', handlers.focus);\n this.input.addEventListener('blur', handlers.commit);\n this._handlers = handlers;\n }\n _onKeydown(e) {\n if (this._handlers.redo && (e.keyCode === KEY_Z && e.shiftKey && (e.metaKey || e.ctrlKey) || e.keyCode === KEY_Y && e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n if (this._handlers.undo && e.keyCode === KEY_Z && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (!e.isComposing) this._handlers.selectionChange(e);\n }\n _onBeforeinput(e) {\n if (e.inputType === 'historyUndo' && this._handlers.undo) {\n e.preventDefault();\n return this._handlers.undo(e);\n }\n if (e.inputType === 'historyRedo' && this._handlers.redo) {\n e.preventDefault();\n return this._handlers.redo(e);\n }\n }\n _onCompositionEnd(e) {\n this._handlers.input(e);\n }\n _onInput(e) {\n if (!e.isComposing) this._handlers.input(e);\n }\n\n /** Unbinds HTMLElement events to mask internal events */\n unbindEvents() {\n this.input.removeEventListener('keydown', this._onKeydown);\n this.input.removeEventListener('input', this._onInput);\n this.input.removeEventListener('beforeinput', this._onBeforeinput);\n this.input.removeEventListener('compositionend', this._onCompositionEnd);\n this.input.removeEventListener('drop', this._handlers.drop);\n this.input.removeEventListener('click', this._handlers.click);\n this.input.removeEventListener('focus', this._handlers.focus);\n this.input.removeEventListener('blur', this._handlers.commit);\n this._handlers = {};\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\n/** Bridge between InputElement and {@link Masked} */\nclass HTMLInputMaskElement extends HTMLMaskElement {\n /** InputElement to use mask on */\n\n constructor(input) {\n super(input);\n this.input = input;\n }\n\n /** Returns InputElement selection start */\n get _unsafeSelectionStart() {\n return this.input.selectionStart != null ? this.input.selectionStart : this.value.length;\n }\n\n /** Returns InputElement selection end */\n get _unsafeSelectionEnd() {\n return this.input.selectionEnd;\n }\n\n /** Sets InputElement selection */\n _unsafeSelect(start, end) {\n this.input.setSelectionRange(start, end);\n }\n get value() {\n return this.input.value;\n }\n set value(value) {\n this.input.value = value;\n }\n}\nIMask.HTMLMaskElement = HTMLMaskElement;\n\nexport { HTMLInputMaskElement as default };\n","import HTMLMaskElement from './html-mask-element.js';\nimport IMask from '../core/holder.js';\nimport './mask-element.js';\n\nclass HTMLContenteditableMaskElement extends HTMLMaskElement {\n /** Returns HTMLElement selection start */\n get _unsafeSelectionStart() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset < focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Returns HTMLElement selection end */\n get _unsafeSelectionEnd() {\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n const anchorOffset = selection && selection.anchorOffset;\n const focusOffset = selection && selection.focusOffset;\n if (focusOffset == null || anchorOffset == null || anchorOffset > focusOffset) {\n return anchorOffset;\n }\n return focusOffset;\n }\n\n /** Sets HTMLElement selection */\n _unsafeSelect(start, end) {\n if (!this.rootElement.createRange) return;\n const range = this.rootElement.createRange();\n range.setStart(this.input.firstChild || this.input, start);\n range.setEnd(this.input.lastChild || this.input, end);\n const root = this.rootElement;\n const selection = root.getSelection && root.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /** HTMLElement value */\n get value() {\n return this.input.textContent || '';\n }\n set value(value) {\n this.input.textContent = value;\n }\n}\nIMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;\n\nexport { HTMLContenteditableMaskElement as default };\n","class InputHistory {\n constructor() {\n this.states = [];\n this.currentIndex = 0;\n }\n get currentState() {\n return this.states[this.currentIndex];\n }\n get isEmpty() {\n return this.states.length === 0;\n }\n push(state) {\n // if current index points before the last element then remove the future\n if (this.currentIndex < this.states.length - 1) this.states.length = this.currentIndex + 1;\n this.states.push(state);\n if (this.states.length > InputHistory.MAX_LENGTH) this.states.shift();\n this.currentIndex = this.states.length - 1;\n }\n go(steps) {\n this.currentIndex = Math.min(Math.max(this.currentIndex + steps, 0), this.states.length - 1);\n return this.currentState;\n }\n undo() {\n return this.go(-1);\n }\n redo() {\n return this.go(+1);\n }\n clear() {\n this.states.length = 0;\n this.currentIndex = 0;\n }\n}\nInputHistory.MAX_LENGTH = 100;\n\nexport { InputHistory as default };\n","import { DIRECTION } from '../core/utils.js';\nimport ActionDetails from '../core/action-details.js';\nimport createMask, { maskedClass } from '../masked/factory.js';\nimport MaskElement from './mask-element.js';\nimport HTMLInputMaskElement from './html-input-mask-element.js';\nimport HTMLContenteditableMaskElement from './html-contenteditable-mask-element.js';\nimport IMask from '../core/holder.js';\nimport InputHistory from './input-history.js';\nimport './html-mask-element.js';\n\n/** Listens to element events and controls changes between element and {@link Masked} */\nclass InputMask {\n /**\n View element\n */\n\n /** Internal {@link Masked} model */\n\n constructor(el, opts) {\n this.el = el instanceof MaskElement ? el : el.isContentEditable && el.tagName !== 'INPUT' && el.tagName !== 'TEXTAREA' ? new HTMLContenteditableMaskElement(el) : new HTMLInputMaskElement(el);\n this.masked = createMask(opts);\n this._listeners = {};\n this._value = '';\n this._unmaskedValue = '';\n this._rawInputValue = '';\n this.history = new InputHistory();\n this._saveSelection = this._saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onChange = this._onChange.bind(this);\n this._onDrop = this._onDrop.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onUndo = this._onUndo.bind(this);\n this._onRedo = this._onRedo.bind(this);\n this.alignCursor = this.alignCursor.bind(this);\n this.alignCursorFriendly = this.alignCursorFriendly.bind(this);\n this._bindEvents();\n\n // refresh\n this.updateValue();\n this._onChange();\n }\n maskEquals(mask) {\n var _this$masked;\n return mask == null || ((_this$masked = this.masked) == null ? void 0 : _this$masked.maskEquals(mask));\n }\n\n /** Masked */\n get mask() {\n return this.masked.mask;\n }\n set mask(mask) {\n if (this.maskEquals(mask)) return;\n if (!(mask instanceof IMask.Masked) && this.masked.constructor === maskedClass(mask)) {\n // TODO \"any\" no idea\n this.masked.updateOptions({\n mask\n });\n return;\n }\n const masked = mask instanceof IMask.Masked ? mask : createMask({\n mask\n });\n masked.unmaskedValue = this.masked.unmaskedValue;\n this.masked = masked;\n }\n\n /** Raw value */\n get value() {\n return this._value;\n }\n set value(str) {\n if (this.value === str) return;\n this.masked.value = str;\n this.updateControl('auto');\n }\n\n /** Unmasked value */\n get unmaskedValue() {\n return this._unmaskedValue;\n }\n set unmaskedValue(str) {\n if (this.unmaskedValue === str) return;\n this.masked.unmaskedValue = str;\n this.updateControl('auto');\n }\n\n /** Raw input value */\n get rawInputValue() {\n return this._rawInputValue;\n }\n set rawInputValue(str) {\n if (this.rawInputValue === str) return;\n this.masked.rawInputValue = str;\n this.updateControl();\n this.alignCursor();\n }\n\n /** Typed unmasked value */\n get typedValue() {\n return this.masked.typedValue;\n }\n set typedValue(val) {\n if (this.masked.typedValueEquals(val)) return;\n this.masked.typedValue = val;\n this.updateControl('auto');\n }\n\n /** Display value */\n get displayValue() {\n return this.masked.displayValue;\n }\n\n /** Starts listening to element events */\n _bindEvents() {\n this.el.bindEvents({\n selectionChange: this._saveSelection,\n input: this._onInput,\n drop: this._onDrop,\n click: this._onClick,\n focus: this._onFocus,\n commit: this._onChange,\n undo: this._onUndo,\n redo: this._onRedo\n });\n }\n\n /** Stops listening to element events */\n _unbindEvents() {\n if (this.el) this.el.unbindEvents();\n }\n\n /** Fires custom event */\n _fireEvent(ev, e) {\n const listeners = this._listeners[ev];\n if (!listeners) return;\n listeners.forEach(l => l(e));\n }\n\n /** Current selection start */\n get selectionStart() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n\n /** Current cursor position */\n get cursorPos() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n }\n set cursorPos(pos) {\n if (!this.el || !this.el.isActive) return;\n this.el.select(pos, pos);\n this._saveSelection();\n }\n\n /** Stores current selection */\n _saveSelection( /* ev */\n ) {\n if (this.displayValue !== this.el.value) {\n console.warn('Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly.'); // eslint-disable-line no-console\n }\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n }\n\n /** Syncronizes model value from view */\n updateValue() {\n this.masked.value = this.el.value;\n this._value = this.masked.value;\n this._unmaskedValue = this.masked.unmaskedValue;\n this._rawInputValue = this.masked.rawInputValue;\n }\n\n /** Syncronizes view from model value, fires change events */\n updateControl(cursorPos) {\n const newUnmaskedValue = this.masked.unmaskedValue;\n const newValue = this.masked.value;\n const newRawInputValue = this.masked.rawInputValue;\n const newDisplayValue = this.displayValue;\n const isChanged = this.unmaskedValue !== newUnmaskedValue || this.value !== newValue || this._rawInputValue !== newRawInputValue;\n this._unmaskedValue = newUnmaskedValue;\n this._value = newValue;\n this._rawInputValue = newRawInputValue;\n if (this.el.value !== newDisplayValue) this.el.value = newDisplayValue;\n if (cursorPos === 'auto') this.alignCursor();else if (cursorPos != null) this.cursorPos = cursorPos;\n if (isChanged) this._fireChangeEvents();\n if (!this._historyChanging && (isChanged || this.history.isEmpty)) this.history.push({\n unmaskedValue: newUnmaskedValue,\n selection: {\n start: this.selectionStart,\n end: this.cursorPos\n }\n });\n }\n\n /** Updates options with deep equal check, recreates {@link Masked} model if mask type changes */\n updateOptions(opts) {\n const {\n mask,\n ...restOpts\n } = opts; // TODO types, yes, mask is optional\n\n const updateMask = !this.maskEquals(mask);\n const updateOpts = this.masked.optionsIsChanged(restOpts);\n if (updateMask) this.mask = mask;\n if (updateOpts) this.masked.updateOptions(restOpts); // TODO\n\n if (updateMask || updateOpts) this.updateControl();\n }\n\n /** Updates cursor */\n updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n }\n\n /** Delays cursor update to support mobile browsers */\n _delayUpdateCursor(cursorPos) {\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(() => {\n if (!this.el) return; // if was destroyed\n this.cursorPos = this._changingCursorPos;\n this._abortUpdateCursor();\n }, 10);\n }\n\n /** Fires custom events */\n _fireChangeEvents() {\n this._fireEvent('accept', this._inputEvent);\n if (this.masked.isComplete) this._fireEvent('complete', this._inputEvent);\n }\n\n /** Aborts delayed cursor update */\n _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n }\n\n /** Aligns cursor to nearest available position */\n alignCursor() {\n this.cursorPos = this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos, DIRECTION.LEFT));\n }\n\n /** Aligns cursor only if selection is empty */\n alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return; // skip if range is selected\n this.alignCursor();\n }\n\n /** Adds listener on custom event */\n on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n }\n\n /** Removes custom event listener */\n off(ev, handler) {\n if (!this._listeners[ev]) return this;\n if (!handler) {\n delete this._listeners[ev];\n return this;\n }\n const hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners[ev].splice(hIndex, 1);\n return this;\n }\n\n /** Handles view input event */\n _onInput(e) {\n this._inputEvent = e;\n this._abortUpdateCursor();\n const details = new ActionDetails({\n // new state\n value: this.el.value,\n cursorPos: this.cursorPos,\n // old state\n oldValue: this.displayValue,\n oldSelection: this._selection\n });\n const oldRawValue = this.masked.rawInputValue;\n const offset = this.masked.splice(details.startChangePos, details.removed.length, details.inserted, details.removeDirection, {\n input: true,\n raw: true\n }).offset;\n\n // force align in remove direction only if no input chars were removed\n // otherwise we still need to align with NONE (to get out from fixed symbols for instance)\n const removeDirection = oldRawValue === this.masked.rawInputValue ? details.removeDirection : DIRECTION.NONE;\n let cursorPos = this.masked.nearestInputPos(details.startChangePos + offset, removeDirection);\n if (removeDirection !== DIRECTION.NONE) cursorPos = this.masked.nearestInputPos(cursorPos, DIRECTION.NONE);\n this.updateControl(cursorPos);\n delete this._inputEvent;\n }\n\n /** Handles view change event and commits model value */\n _onChange() {\n if (this.displayValue !== this.el.value) this.updateValue();\n this.masked.doCommit();\n this.updateControl();\n this._saveSelection();\n }\n\n /** Handles view drop event, prevents by default */\n _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n /** Restore last selection on focus */\n _onFocus(ev) {\n this.alignCursorFriendly();\n }\n\n /** Restore last selection on focus */\n _onClick(ev) {\n this.alignCursorFriendly();\n }\n _onUndo() {\n this._applyHistoryState(this.history.undo());\n }\n _onRedo() {\n this._applyHistoryState(this.history.redo());\n }\n _applyHistoryState(state) {\n if (!state) return;\n this._historyChanging = true;\n this.unmaskedValue = state.unmaskedValue;\n this.el.select(state.selection.start, state.selection.end);\n this._saveSelection();\n this._historyChanging = false;\n }\n\n /** Unbind view events and removes element reference */\n destroy() {\n this._unbindEvents();\n this._listeners.length = 0;\n delete this.el;\n }\n}\nIMask.InputMask = InputMask;\n\nexport { InputMask as default };\n","import IMask from './holder.js';\n\n/** Provides details of changing model value */\nclass ChangeDetails {\n /** Inserted symbols */\n\n /** Additional offset if any changes occurred before tail */\n\n /** Raw inserted is used by dynamic mask */\n\n /** Can skip chars */\n\n static normalize(prep) {\n return Array.isArray(prep) ? prep : [prep, new ChangeDetails()];\n }\n constructor(details) {\n Object.assign(this, {\n inserted: '',\n rawInserted: '',\n tailShift: 0,\n skip: false\n }, details);\n }\n\n /** Aggregate changes */\n aggregate(details) {\n this.inserted += details.inserted;\n this.rawInserted += details.rawInserted;\n this.tailShift += details.tailShift;\n this.skip = this.skip || details.skip;\n return this;\n }\n\n /** Total offset considering all changes */\n get offset() {\n return this.tailShift + this.inserted.length;\n }\n get consumed() {\n return Boolean(this.rawInserted) || this.skip;\n }\n equals(details) {\n return this.inserted === details.inserted && this.tailShift === details.tailShift && this.rawInserted === details.rawInserted && this.skip === details.skip;\n }\n}\nIMask.ChangeDetails = ChangeDetails;\n\nexport { ChangeDetails as default };\n","/** Provides details of continuous extracted tail */\nclass ContinuousTailDetails {\n /** Tail value as string */\n\n /** Tail start position */\n\n /** Start position */\n\n constructor(value, from, stop) {\n if (value === void 0) {\n value = '';\n }\n if (from === void 0) {\n from = 0;\n }\n this.value = value;\n this.from = from;\n this.stop = stop;\n }\n toString() {\n return this.value;\n }\n extend(tail) {\n this.value += String(tail);\n }\n appendTo(masked) {\n return masked.append(this.toString(), {\n tail: true\n }).aggregate(masked._appendPlaceholder());\n }\n get state() {\n return {\n value: this.value,\n from: this.from,\n stop: this.stop\n };\n }\n set state(state) {\n Object.assign(this, state);\n }\n unshift(beforePos) {\n if (!this.value.length || beforePos != null && this.from >= beforePos) return '';\n const shiftChar = this.value[0];\n this.value = this.value.slice(1);\n return shiftChar;\n }\n shift() {\n if (!this.value.length) return '';\n const shiftChar = this.value[this.value.length - 1];\n this.value = this.value.slice(0, -1);\n return shiftChar;\n }\n}\n\nexport { ContinuousTailDetails as default };\n","import ChangeDetails from '../core/change-details.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport { isString, DIRECTION, objectIncludes, forceDirection } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n/** Append flags */\n\n/** Extract flags */\n\n// see https://github.com/microsoft/TypeScript/issues/6223\n\n/** Provides common masking stuff */\nclass Masked {\n /** */\n\n /** */\n\n /** Transforms value before mask processing */\n\n /** Transforms each char before mask processing */\n\n /** Validates if value is acceptable */\n\n /** Does additional processing at the end of editing */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n this._value = '';\n this._update({\n ...Masked.DEFAULTS,\n ...opts\n });\n this._initialized = true;\n }\n\n /** Sets and applies new options */\n updateOptions(opts) {\n if (!this.optionsIsChanged(opts)) return;\n this.withValueRefresh(this._update.bind(this, opts));\n }\n\n /** Sets new options */\n _update(opts) {\n Object.assign(this, opts);\n }\n\n /** Mask state */\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n }\n\n /** Resets value */\n reset() {\n this._value = '';\n }\n get value() {\n return this._value;\n }\n set value(value) {\n this.resolve(value, {\n input: true\n });\n }\n\n /** Resolve new value */\n resolve(value, flags) {\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n this.reset();\n this.append(value, flags, '');\n this.doCommit();\n }\n get unmaskedValue() {\n return this.value;\n }\n set unmaskedValue(value) {\n this.resolve(value, {});\n }\n get typedValue() {\n return this.parse ? this.parse(this.value, this) : this.unmaskedValue;\n }\n set typedValue(value) {\n if (this.format) {\n this.value = this.format(value, this);\n } else {\n this.unmaskedValue = String(value);\n }\n }\n\n /** Value that includes raw user input */\n get rawInputValue() {\n return this.extractInput(0, this.displayValue.length, {\n raw: true\n });\n }\n set rawInputValue(value) {\n this.resolve(value, {\n raw: true\n });\n }\n get displayValue() {\n return this.value;\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return this.isComplete;\n }\n\n /** Finds nearest input position in direction */\n nearestInputPos(cursorPos, direction) {\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return Math.min(this.displayValue.length, toPos - fromPos);\n }\n\n /** Extracts value in range considering flags */\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return this.displayValue.slice(fromPos, toPos);\n }\n\n /** Extracts tail in range */\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n return new ContinuousTailDetails(this.extractInput(fromPos, toPos), fromPos);\n }\n\n /** Appends tail */\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n\n /** Appends char */\n _appendCharRaw(ch, flags) {\n if (!ch) return new ChangeDetails();\n this._value += ch;\n return new ChangeDetails({\n inserted: ch,\n rawInserted: ch\n });\n }\n\n /** Appends char */\n _appendChar(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const consistentState = this.state;\n let details;\n [ch, details] = this.doPrepareChar(ch, flags);\n if (ch) {\n details = details.aggregate(this._appendCharRaw(ch, flags));\n\n // TODO handle `skip`?\n\n // try `autofix` lookahead\n if (!details.rawInserted && this.autofix === 'pad') {\n const noFixState = this.state;\n this.state = consistentState;\n let fixDetails = this.pad(flags);\n const chDetails = this._appendCharRaw(ch, flags);\n fixDetails = fixDetails.aggregate(chDetails);\n\n // if fix was applied or\n // if details are equal use skip restoring state optimization\n if (chDetails.rawInserted || fixDetails.equals(details)) {\n details = fixDetails;\n } else {\n this.state = noFixState;\n }\n }\n }\n if (details.inserted) {\n let consistentTail;\n let appended = this.doValidate(flags) !== false;\n if (appended && checkTail != null) {\n // validation ok, check tail\n const beforeTailState = this.state;\n if (this.overwrite === true) {\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.unshift(this.displayValue.length - details.tailShift);\n }\n }\n let tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n\n // not ok, try shift\n if (!(appended && tailDetails.inserted) && this.overwrite === 'shift') {\n this.state = beforeTailState;\n consistentTail = checkTail.state;\n for (let i = 0; i < details.rawInserted.length; ++i) {\n checkTail.shift();\n }\n tailDetails = this.appendTail(checkTail);\n appended = tailDetails.rawInserted.length === checkTail.toString().length;\n }\n\n // if ok, rollback state after tail\n if (appended && tailDetails.inserted) this.state = beforeTailState;\n }\n\n // revert all if something went wrong\n if (!appended) {\n details = new ChangeDetails();\n this.state = consistentState;\n if (checkTail && consistentTail) checkTail.state = consistentTail;\n }\n }\n return details;\n }\n\n /** Appends optional placeholder at the end */\n _appendPlaceholder() {\n return new ChangeDetails();\n }\n\n /** Appends optional eager placeholder at the end */\n _appendEager() {\n return new ChangeDetails();\n }\n\n /** Appends symbols considering flags */\n append(str, flags, tail) {\n if (!isString(str)) throw new Error('value should be string');\n const checkTail = isString(tail) ? new ContinuousTailDetails(String(tail)) : tail;\n if (flags != null && flags.tail) flags._beforeTailState = this.state;\n let details;\n [str, details] = this.doPrepare(str, flags);\n for (let ci = 0; ci < str.length; ++ci) {\n const d = this._appendChar(str[ci], flags, checkTail);\n if (!d.rawInserted && !this.doSkipInvalid(str[ci], flags, checkTail)) break;\n details.aggregate(d);\n }\n if ((this.eager === true || this.eager === 'append') && flags != null && flags.input && str) {\n details.aggregate(this._appendEager());\n }\n\n // append tail but aggregate only tailShift\n if (checkTail != null) {\n details.tailShift += this.appendTail(checkTail).tailShift;\n // TODO it's a good idea to clear state after appending ends\n // but it causes bugs when one append calls another (when dynamic dispatch set rawInputValue)\n // this._resetBeforeTailState();\n }\n return details;\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n this._value = this.displayValue.slice(0, fromPos) + this.displayValue.slice(toPos);\n return new ChangeDetails();\n }\n\n /** Calls function and reapplies current value */\n withValueRefresh(fn) {\n if (this._refreshing || !this._initialized) return fn();\n this._refreshing = true;\n const rawInput = this.rawInputValue;\n const value = this.value;\n const ret = fn();\n this.rawInputValue = rawInput;\n // append lost trailing chars at the end\n if (this.value && this.value !== value && value.indexOf(this.value) === 0) {\n this.append(value.slice(this.displayValue.length), {}, '');\n this.doCommit();\n }\n delete this._refreshing;\n return ret;\n }\n runIsolated(fn) {\n if (this._isolated || !this._initialized) return fn(this);\n this._isolated = true;\n const state = this.state;\n const ret = fn(this);\n this.state = state;\n delete this._isolated;\n return ret;\n }\n doSkipInvalid(ch, flags, checkTail) {\n return Boolean(this.skipInvalid);\n }\n\n /** Prepares string before mask processing */\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepare ? this.prepare(str, this, flags) : str);\n }\n\n /** Prepares each char before mask processing */\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n return ChangeDetails.normalize(this.prepareChar ? this.prepareChar(str, this, flags) : str);\n }\n\n /** Validates if value is acceptable */\n doValidate(flags) {\n return (!this.validate || this.validate(this.value, this, flags)) && (!this.parent || this.parent.doValidate(flags));\n }\n\n /** Does additional processing at the end of editing */\n doCommit() {\n if (this.commit) this.commit(this.value, this);\n }\n splice(start, deleteCount, inserted, removeDirection, flags) {\n if (inserted === void 0) {\n inserted = '';\n }\n if (removeDirection === void 0) {\n removeDirection = DIRECTION.NONE;\n }\n if (flags === void 0) {\n flags = {\n input: true\n };\n }\n const tailPos = start + deleteCount;\n const tail = this.extractTail(tailPos);\n const eagerRemove = this.eager === true || this.eager === 'remove';\n let oldRawValue;\n if (eagerRemove) {\n removeDirection = forceDirection(removeDirection);\n oldRawValue = this.extractInput(0, tailPos, {\n raw: true\n });\n }\n let startChangePos = start;\n const details = new ChangeDetails();\n\n // if it is just deletion without insertion\n if (removeDirection !== DIRECTION.NONE) {\n startChangePos = this.nearestInputPos(start, deleteCount > 1 && start !== 0 && !eagerRemove ? DIRECTION.NONE : removeDirection);\n\n // adjust tailShift if start was aligned\n details.tailShift = startChangePos - start;\n }\n details.aggregate(this.remove(startChangePos));\n if (eagerRemove && removeDirection !== DIRECTION.NONE && oldRawValue === this.rawInputValue) {\n if (removeDirection === DIRECTION.FORCE_LEFT) {\n let valLength;\n while (oldRawValue === this.rawInputValue && (valLength = this.displayValue.length)) {\n details.aggregate(new ChangeDetails({\n tailShift: -1\n })).aggregate(this.remove(valLength - 1));\n }\n } else if (removeDirection === DIRECTION.FORCE_RIGHT) {\n tail.unshift();\n }\n }\n return details.aggregate(this.append(inserted, flags, tail));\n }\n maskEquals(mask) {\n return this.mask === mask;\n }\n optionsIsChanged(opts) {\n return !objectIncludes(this, opts);\n }\n typedValueEquals(value) {\n const tval = this.typedValue;\n return value === tval || Masked.EMPTY_VALUES.includes(value) && Masked.EMPTY_VALUES.includes(tval) || (this.format ? this.format(value, this) === this.format(this.typedValue, this) : false);\n }\n pad(flags) {\n return new ChangeDetails();\n }\n}\nMasked.DEFAULTS = {\n skipInvalid: true\n};\nMasked.EMPTY_VALUES = [undefined, null, ''];\nIMask.Masked = Masked;\n\nexport { Masked as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport IMask from '../../core/holder.js';\n\nclass ChunksTailDetails {\n /** */\n\n constructor(chunks, from) {\n if (chunks === void 0) {\n chunks = [];\n }\n if (from === void 0) {\n from = 0;\n }\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n details.aggregate(masked._appendPlaceholder(stop));\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n details.aggregate(tailDetails);\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks,\n ...props\n } = state;\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nexport { ChunksTailDetails as default };\n","import { DIRECTION } from '../../core/utils.js';\n\nclass PatternCursor {\n constructor(masked, pos) {\n this.masked = masked;\n this._log = [];\n const {\n offset,\n index\n } = masked._mapPosToBlock(pos) || (pos < 0 ?\n // first\n {\n index: 0,\n offset: 0\n } :\n // last\n {\n index: this.masked._blocks.length,\n offset: 0\n });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n get block() {\n return this.masked._blocks[this.index];\n }\n get pos() {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n get state() {\n return {\n index: this.index,\n offset: this.offset,\n ok: this.ok\n };\n }\n set state(s) {\n Object.assign(this, s);\n }\n pushState() {\n this._log.push(this.state);\n }\n popState() {\n const s = this._log.pop();\n if (s) this.state = s;\n return s;\n }\n bindBlock() {\n if (this.block) return;\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n this.offset = this.block.displayValue.length; // TODO this is stupid type error, `block` depends on index that was changed above\n }\n }\n _pushLeft(fn) {\n this.pushState();\n for (this.bindBlock(); 0 <= this.index; --this.index, this.offset = ((_this$block = this.block) == null ? void 0 : _this$block.displayValue.length) || 0) {\n var _this$block;\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n _pushRight(fn) {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) return this.ok = true;\n }\n return this.ok = false;\n }\n pushLeftBeforeFilled() {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) return true;\n });\n }\n pushLeftBeforeInput() {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushLeftBeforeRequired() {\n return this._pushLeft(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n pushRightBeforeFilled() {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) return;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) return true;\n });\n }\n pushRightBeforeInput() {\n return this._pushRight(() => {\n if (this.block.isFixed) return;\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aaX_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n pushRightBeforeRequired() {\n return this._pushRight(() => {\n if (this.block.isFixed || this.block.isOptional && !this.block.value) return;\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n\nexport { PatternCursor as default };\n","import ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION, isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport '../../core/holder.js';\n\nclass PatternFixedDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n get value() {\n return this._value;\n }\n get unmaskedValue() {\n return this.isUnmasking ? this.value : '';\n }\n get rawInputValue() {\n return this._isRawInput ? this.value : '';\n }\n get displayValue() {\n return this.value;\n }\n reset() {\n this._isRawInput = false;\n this._value = '';\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) this._isRawInput = false;\n return new ChangeDetails();\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this._value.length;\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n return this._isRawInput ? toPos - fromPos : 0;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this._value.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n return flags.raw && this._isRawInput && this._value.slice(fromPos, toPos) || '';\n }\n get isComplete() {\n return true;\n }\n get isFilled() {\n return Boolean(this._value);\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const appendEager = this.eager === true || this.eager === 'append';\n const appended = this.char === ch;\n const isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n const details = new ChangeDetails({\n inserted: this.char,\n rawInserted: isResolved ? this.char : ''\n });\n this._value = this.char;\n this._isRawInput = isResolved && (flags.raw || flags.input);\n return details;\n }\n _appendEager() {\n return this._appendChar(this.char, {\n tail: true\n });\n }\n _appendPlaceholder() {\n const details = new ChangeDetails();\n if (this.isFilled) return details;\n this._value = details.inserted = this.char;\n return details;\n }\n extractTail() {\n return new ContinuousTailDetails('');\n }\n appendTail(tail) {\n if (isString(tail)) tail = new ContinuousTailDetails(String(tail));\n return tail.appendTo(this);\n }\n append(str, flags, tail) {\n const details = this._appendChar(str[0], flags);\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n return details;\n }\n doCommit() {}\n get state() {\n return {\n _value: this._value,\n _rawInputValue: this.rawInputValue\n };\n }\n set state(state) {\n this._value = state._value;\n this._isRawInput = Boolean(state._rawInputValue);\n }\n pad(flags) {\n return this._appendPlaceholder();\n }\n}\n\nexport { PatternFixedDefinition as default };\n","import createMask from '../factory.js';\nimport ChangeDetails from '../../core/change-details.js';\nimport { DIRECTION } from '../../core/utils.js';\nimport '../../core/holder.js';\n\nclass PatternInputDefinition {\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n const {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager,\n ...maskOpts\n } = opts;\n this.masked = createMask(maskOpts);\n Object.assign(this, {\n parent,\n isOptional,\n placeholderChar,\n displayChar,\n lazy,\n eager\n });\n }\n reset() {\n this.isFilled = false;\n this.masked.reset();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n if (fromPos === 0 && toPos >= 1) {\n this.isFilled = false;\n return this.masked.remove(fromPos, toPos);\n }\n return new ChangeDetails();\n }\n get value() {\n return this.masked.value || (this.isFilled && !this.isOptional ? this.placeholderChar : '');\n }\n get unmaskedValue() {\n return this.masked.unmaskedValue;\n }\n get rawInputValue() {\n return this.masked.rawInputValue;\n }\n get displayValue() {\n return this.masked.value && this.displayChar || this.value;\n }\n get isComplete() {\n return Boolean(this.masked.value) || this.isOptional;\n }\n _appendChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (this.isFilled) return new ChangeDetails();\n const state = this.masked.state;\n // simulate input\n let details = this.masked._appendChar(ch, this.currentMaskFlags(flags));\n if (details.inserted && this.doValidate(flags) === false) {\n details = new ChangeDetails();\n this.masked.state = state;\n }\n if (!details.inserted && !this.isOptional && !this.lazy && !flags.input) {\n details.inserted = this.placeholderChar;\n }\n details.skip = !details.inserted && !this.isOptional;\n this.isFilled = Boolean(details.inserted);\n return details;\n }\n append(str, flags, tail) {\n // TODO probably should be done via _appendChar\n return this.masked.append(str, this.currentMaskFlags(flags), tail);\n }\n _appendPlaceholder() {\n if (this.isFilled || this.isOptional) return new ChangeDetails();\n this.isFilled = true;\n return new ChangeDetails({\n inserted: this.placeholderChar\n });\n }\n _appendEager() {\n return new ChangeDetails();\n }\n extractTail(fromPos, toPos) {\n return this.masked.extractTail(fromPos, toPos);\n }\n appendTail(tail) {\n return this.masked.appendTail(tail);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.masked.extractInput(fromPos, toPos, flags);\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n const minPos = 0;\n const maxPos = this.value.length;\n const boundPos = Math.min(Math.max(cursorPos, minPos), maxPos);\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return this.isComplete ? boundPos : minPos;\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n return this.isComplete ? boundPos : maxPos;\n case DIRECTION.NONE:\n default:\n return boundPos;\n }\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.value.length;\n }\n return this.value.slice(fromPos, toPos).length;\n }\n doValidate(flags) {\n return this.masked.doValidate(this.currentMaskFlags(flags)) && (!this.parent || this.parent.doValidate(this.currentMaskFlags(flags)));\n }\n doCommit() {\n this.masked.doCommit();\n }\n get state() {\n return {\n _value: this.value,\n _rawInputValue: this.rawInputValue,\n masked: this.masked.state,\n isFilled: this.isFilled\n };\n }\n set state(state) {\n this.masked.state = state.masked;\n this.isFilled = state.isFilled;\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta;\n return {\n ...flags,\n _beforeTailState: (flags == null || (_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.masked) || (flags == null ? void 0 : flags._beforeTailState)\n };\n }\n pad(flags) {\n return new ChangeDetails();\n }\n}\nPatternInputDefinition.DEFAULT_DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // http://stackoverflow.com/a/22075070\n '*': /./\n};\n\nexport { PatternInputDefinition as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by RegExp */\nclass MaskedRegExp extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const mask = opts.mask;\n if (mask) opts.validate = value => value.search(mask) >= 0;\n super._update(opts);\n }\n}\nIMask.MaskedRegExp = MaskedRegExp;\n\nexport { MaskedRegExp as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport { DIRECTION } from '../core/utils.js';\nimport Masked from './base.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport ChunksTailDetails from './pattern/chunk-tail-details.js';\nimport PatternCursor from './pattern/cursor.js';\nimport PatternFixedDefinition from './pattern/fixed-definition.js';\nimport PatternInputDefinition from './pattern/input-definition.js';\nimport './regexp.js';\nimport '../core/continuous-tail-details.js';\n\n/** Pattern mask */\nclass MaskedPattern extends Masked {\n /** */\n\n /** */\n\n /** Single char for empty input */\n\n /** Single char for filled input */\n\n /** Show placeholder only when needed */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n constructor(opts) {\n super({\n ...MaskedPattern.DEFAULTS,\n ...opts,\n definitions: Object.assign({}, PatternInputDefinition.DEFAULT_DEFINITIONS, opts == null ? void 0 : opts.definitions)\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n opts.definitions = Object.assign({}, this.definitions, opts.definitions);\n super._update(opts);\n this._rebuildMask();\n }\n _rebuildMask() {\n const defs = this.definitions;\n this._blocks = [];\n this.exposeBlock = undefined;\n this._stops = [];\n this._maskedBlocks = {};\n const pattern = this.mask;\n if (!pattern || !defs) return;\n let unmaskingBlock = false;\n let optionalBlock = false;\n for (let i = 0; i < pattern.length; ++i) {\n if (this.blocks) {\n const p = pattern.slice(i);\n const bNames = Object.keys(this.blocks).filter(bName => p.indexOf(bName) === 0);\n // order by key length\n bNames.sort((a, b) => b.length - a.length);\n // use block name with max length\n const bName = bNames[0];\n if (bName) {\n const {\n expose,\n repeat,\n ...bOpts\n } = normalizeOpts(this.blocks[bName]); // TODO type Opts\n const blockOpts = {\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n overwrite: this.overwrite,\n autofix: this.autofix,\n ...bOpts,\n repeat,\n parent: this\n };\n const maskedBlock = repeat != null ? new IMask.RepeatBlock(blockOpts /* TODO */) : createMask(blockOpts);\n if (maskedBlock) {\n this._blocks.push(maskedBlock);\n if (expose) this.exposeBlock = maskedBlock;\n\n // store block index\n if (!this._maskedBlocks[bName]) this._maskedBlocks[bName] = [];\n this._maskedBlocks[bName].push(this._blocks.length - 1);\n }\n i += bName.length - 1;\n continue;\n }\n }\n let char = pattern[i];\n let isInput = (char in defs);\n if (char === MaskedPattern.STOP_CHAR) {\n this._stops.push(this._blocks.length);\n continue;\n }\n if (char === '{' || char === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n if (char === '[' || char === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n if (char === MaskedPattern.ESCAPE_CHAR) {\n ++i;\n char = pattern[i];\n if (!char) break;\n isInput = false;\n }\n const def = isInput ? new PatternInputDefinition({\n isOptional: optionalBlock,\n lazy: this.lazy,\n eager: this.eager,\n placeholderChar: this.placeholderChar,\n displayChar: this.displayChar,\n ...normalizeOpts(defs[char]),\n parent: this\n }) : new PatternFixedDefinition({\n char,\n eager: this.eager,\n isUnmasking: unmaskingBlock\n });\n this._blocks.push(def);\n }\n }\n get state() {\n return {\n ...super.state,\n _blocks: this._blocks.map(b => b.state)\n };\n }\n set state(state) {\n if (!state) {\n this.reset();\n return;\n }\n const {\n _blocks,\n ...maskedState\n } = state;\n this._blocks.forEach((b, bi) => b.state = _blocks[bi]);\n super.state = maskedState;\n }\n reset() {\n super.reset();\n this._blocks.forEach(b => b.reset());\n }\n get isComplete() {\n return this.exposeBlock ? this.exposeBlock.isComplete : this._blocks.every(b => b.isComplete);\n }\n get isFilled() {\n return this._blocks.every(b => b.isFilled);\n }\n get isFixed() {\n return this._blocks.every(b => b.isFixed);\n }\n get isOptional() {\n return this._blocks.every(b => b.isOptional);\n }\n doCommit() {\n this._blocks.forEach(b => b.doCommit());\n super.doCommit();\n }\n get unmaskedValue() {\n return this.exposeBlock ? this.exposeBlock.unmaskedValue : this._blocks.reduce((str, b) => str += b.unmaskedValue, '');\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.unmaskedValue = unmaskedValue;\n this.appendTail(tail);\n this.doCommit();\n } else super.unmaskedValue = unmaskedValue;\n }\n get value() {\n return this.exposeBlock ? this.exposeBlock.value :\n // TODO return _value when not in change?\n this._blocks.reduce((str, b) => str += b.value, '');\n }\n set value(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.value = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.value = value;\n }\n get typedValue() {\n return this.exposeBlock ? this.exposeBlock.typedValue : super.typedValue;\n }\n set typedValue(value) {\n if (this.exposeBlock) {\n const tail = this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock)) + this.exposeBlock.displayValue.length);\n this.exposeBlock.typedValue = value;\n this.appendTail(tail);\n this.doCommit();\n } else super.typedValue = value;\n }\n get displayValue() {\n return this._blocks.reduce((str, b) => str += b.displayValue, '');\n }\n appendTail(tail) {\n return super.appendTail(tail).aggregate(this._appendPlaceholder());\n }\n _appendEager() {\n var _this$_mapPosToBlock;\n const details = new ChangeDetails();\n let startBlockIndex = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index;\n if (startBlockIndex == null) return details;\n\n // TODO test if it works for nested pattern masks\n if (this._blocks[startBlockIndex].isFilled) ++startBlockIndex;\n for (let bi = startBlockIndex; bi < this._blocks.length; ++bi) {\n const d = this._blocks[bi]._appendEager();\n if (!d.inserted) break;\n details.aggregate(d);\n }\n return details;\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const blockIter = this._mapPosToBlock(this.displayValue.length);\n const details = new ChangeDetails();\n if (!blockIter) return details;\n for (let bi = blockIter.index, block; block = this._blocks[bi]; ++bi) {\n var _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const chunkTail = new ChunksTailDetails();\n if (fromPos === toPos) return chunkTail;\n this._forEachBlocksInRange(fromPos, toPos, (b, bi, bFromPos, bToPos) => {\n const blockChunk = b.extractTail(bFromPos, bToPos);\n blockChunk.stop = this._findStopBefore(bi);\n blockChunk.from = this._blockStartPos(bi);\n if (blockChunk instanceof ChunksTailDetails) blockChunk.blockIndex = bi;\n chunkTail.extend(blockChunk);\n });\n return chunkTail;\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (flags === void 0) {\n flags = {};\n }\n if (fromPos === toPos) return '';\n let input = '';\n this._forEachBlocksInRange(fromPos, toPos, (b, _, fromPos, toPos) => {\n input += b.extractInput(fromPos, toPos, flags);\n });\n return input;\n }\n _findStopBefore(blockIndex) {\n let stopBefore;\n for (let si = 0; si < this._stops.length; ++si) {\n const stop = this._stops[si];\n if (stop <= blockIndex) stopBefore = stop;else break;\n }\n return stopBefore;\n }\n\n /** Appends placeholder depending on laziness */\n _appendPlaceholder(toBlockIndex) {\n const details = new ChangeDetails();\n if (this.lazy && toBlockIndex == null) return details;\n const startBlockIter = this._mapPosToBlock(this.displayValue.length);\n if (!startBlockIter) return details;\n const startBlockIndex = startBlockIter.index;\n const endBlockIndex = toBlockIndex != null ? toBlockIndex : this._blocks.length;\n this._blocks.slice(startBlockIndex, endBlockIndex).forEach(b => {\n if (!b.lazy || toBlockIndex != null) {\n var _blocks2;\n details.aggregate(b._appendPlaceholder((_blocks2 = b._blocks) == null ? void 0 : _blocks2.length));\n }\n });\n return details;\n }\n\n /** Finds block in pos */\n _mapPosToBlock(pos) {\n let accVal = '';\n for (let bi = 0; bi < this._blocks.length; ++bi) {\n const block = this._blocks[bi];\n const blockStartPos = accVal.length;\n accVal += block.displayValue;\n if (pos <= accVal.length) {\n return {\n index: bi,\n offset: pos - blockStartPos\n };\n }\n }\n }\n _blockStartPos(blockIndex) {\n return this._blocks.slice(0, blockIndex).reduce((pos, b) => pos += b.displayValue.length, 0);\n }\n _forEachBlocksInRange(fromPos, toPos, fn) {\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const fromBlockIter = this._mapPosToBlock(fromPos);\n if (fromBlockIter) {\n const toBlockIter = this._mapPosToBlock(toPos);\n // process first block\n const isSameBlock = toBlockIter && fromBlockIter.index === toBlockIter.index;\n const fromBlockStartPos = fromBlockIter.offset;\n const fromBlockEndPos = toBlockIter && isSameBlock ? toBlockIter.offset : this._blocks[fromBlockIter.index].displayValue.length;\n fn(this._blocks[fromBlockIter.index], fromBlockIter.index, fromBlockStartPos, fromBlockEndPos);\n if (toBlockIter && !isSameBlock) {\n // process intermediate blocks\n for (let bi = fromBlockIter.index + 1; bi < toBlockIter.index; ++bi) {\n fn(this._blocks[bi], bi, 0, this._blocks[bi].displayValue.length);\n }\n\n // process last block\n fn(this._blocks[toBlockIter.index], toBlockIter.index, 0, toBlockIter.offset);\n }\n }\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n removeDetails.aggregate(b.remove(bFromPos, bToPos));\n });\n return removeDetails;\n }\n nearestInputPos(cursorPos, direction) {\n if (direction === void 0) {\n direction = DIRECTION.NONE;\n }\n if (!this._blocks.length) return 0;\n const cursor = new PatternCursor(this, cursorPos);\n if (direction === DIRECTION.NONE) {\n // -------------------------------------------------\n // NONE should only go out from fixed to the right!\n // -------------------------------------------------\n if (cursor.pushRightBeforeInput()) return cursor.pos;\n cursor.popState();\n if (cursor.pushLeftBeforeInput()) return cursor.pos;\n return this.displayValue.length;\n }\n\n // FORCE is only about a|* otherwise is 0\n if (direction === DIRECTION.LEFT || direction === DIRECTION.FORCE_LEFT) {\n // try to break fast when *|a\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeFilled();\n if (cursor.ok && cursor.pos === cursorPos) return cursorPos;\n cursor.popState();\n }\n\n // forward flow\n cursor.pushLeftBeforeInput();\n cursor.pushLeftBeforeRequired();\n cursor.pushLeftBeforeFilled();\n\n // backward flow\n if (direction === DIRECTION.LEFT) {\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n if (cursor.ok && cursor.pos <= cursorPos) return cursor.pos;\n cursor.popState();\n }\n if (cursor.ok) return cursor.pos;\n if (direction === DIRECTION.FORCE_LEFT) return 0;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return 0;\n }\n if (direction === DIRECTION.RIGHT || direction === DIRECTION.FORCE_RIGHT) {\n // forward flow\n cursor.pushRightBeforeInput();\n cursor.pushRightBeforeRequired();\n if (cursor.pushRightBeforeFilled()) return cursor.pos;\n if (direction === DIRECTION.FORCE_RIGHT) return this.displayValue.length;\n\n // backward flow\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n cursor.popState();\n if (cursor.ok) return cursor.pos;\n return this.nearestInputPos(cursorPos, DIRECTION.LEFT);\n }\n return cursorPos;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n let total = 0;\n this._forEachBlocksInRange(fromPos, toPos, (b, _, bFromPos, bToPos) => {\n total += b.totalInputPositions(bFromPos, bToPos);\n });\n return total;\n }\n\n /** Get block by name */\n maskedBlock(name) {\n return this.maskedBlocks(name)[0];\n }\n\n /** Get all blocks by name */\n maskedBlocks(name) {\n const indices = this._maskedBlocks[name];\n if (!indices) return [];\n return indices.map(gi => this._blocks[gi]);\n }\n pad(flags) {\n const details = new ChangeDetails();\n this._forEachBlocksInRange(0, this.displayValue.length, b => details.aggregate(b.pad(flags)));\n return details;\n }\n}\nMaskedPattern.DEFAULTS = {\n ...Masked.DEFAULTS,\n lazy: true,\n placeholderChar: '_'\n};\nMaskedPattern.STOP_CHAR = '`';\nMaskedPattern.ESCAPE_CHAR = '\\\\';\nMaskedPattern.InputDefinition = PatternInputDefinition;\nMaskedPattern.FixedDefinition = PatternFixedDefinition;\nIMask.MaskedPattern = MaskedPattern;\n\nexport { MaskedPattern as default };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which accepts ranges */\nclass MaskedRange extends MaskedPattern {\n /**\n Optionally sets max length of pattern.\n Used when pattern length is longer then `to` param length. Pads zeros at start in this case.\n */\n\n /** Min bound */\n\n /** Max bound */\n\n get _matchFrom() {\n return this.maxLength - String(this.from).length;\n }\n constructor(opts) {\n super(opts); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n to = this.to || 0,\n from = this.from || 0,\n maxLength = this.maxLength || 0,\n autofix = this.autofix,\n ...patternOpts\n } = opts;\n this.to = to;\n this.from = from;\n this.maxLength = Math.max(String(to).length, maxLength);\n this.autofix = autofix;\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n let sameCharsCount = 0;\n while (sameCharsCount < toStr.length && toStr[sameCharsCount] === fromStr[sameCharsCount]) ++sameCharsCount;\n patternOpts.mask = toStr.slice(0, sameCharsCount).replace(/0/g, '\\\\0') + '0'.repeat(this.maxLength - sameCharsCount);\n super._update(patternOpts);\n }\n get isComplete() {\n return super.isComplete && Boolean(this.value);\n }\n boundaries(str) {\n let minstr = '';\n let maxstr = '';\n const [, placeholder, num] = str.match(/^(\\D*)(\\d*)(\\D*)/) || [];\n if (num) {\n minstr = '0'.repeat(placeholder.length) + num;\n maxstr = '9'.repeat(placeholder.length) + num;\n }\n minstr = minstr.padEnd(this.maxLength, '0');\n maxstr = maxstr.padEnd(this.maxLength, '9');\n return [minstr, maxstr];\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let details;\n [ch, details] = super.doPrepareChar(ch.replace(/\\D/g, ''), flags);\n if (!ch) details.skip = !this.isComplete;\n return [ch, details];\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n if (!this.autofix || this.value.length + 1 > this.maxLength) return super._appendCharRaw(ch, flags);\n const fromStr = String(this.from).padStart(this.maxLength, '0');\n const toStr = String(this.to).padStart(this.maxLength, '0');\n const [minstr, maxstr] = this.boundaries(this.value + ch);\n if (Number(maxstr) < this.from) return super._appendCharRaw(fromStr[this.value.length], flags);\n if (Number(minstr) > this.to) {\n if (!flags.tail && this.autofix === 'pad' && this.value.length + 1 < this.maxLength) {\n return super._appendCharRaw(fromStr[this.value.length], flags).aggregate(this._appendCharRaw(ch, flags));\n }\n return super._appendCharRaw(toStr[this.value.length], flags);\n }\n return super._appendCharRaw(ch, flags);\n }\n doValidate(flags) {\n const str = this.value;\n const firstNonZero = str.search(/[^0]/);\n if (firstNonZero === -1 && str.length <= this._matchFrom) return true;\n const [minstr, maxstr] = this.boundaries(str);\n return this.from <= Number(maxstr) && Number(minstr) <= this.to && super.doValidate(flags);\n }\n pad(flags) {\n const details = new ChangeDetails();\n if (this.value.length === this.maxLength) return details;\n const value = this.value;\n const padLength = this.maxLength - this.value.length;\n if (padLength) {\n this.reset();\n for (let i = 0; i < padLength; ++i) {\n details.aggregate(super._appendCharRaw('0', flags));\n }\n\n // append tail\n value.split('').forEach(ch => this._appendCharRaw(ch));\n }\n return details;\n }\n}\nIMask.MaskedRange = MaskedRange;\n\nexport { MaskedRange as default };\n","import MaskedPattern from './pattern.js';\nimport MaskedRange from './range.js';\nimport IMask from '../core/holder.js';\nimport { isString } from '../core/utils.js';\nimport '../core/change-details.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\nconst DefaultPattern = 'd{.}`m{.}`Y';\n\n// Make format and parse required when pattern is provided\n\n/** Date mask */\nclass MaskedDate extends MaskedPattern {\n static extractPatternOptions(opts) {\n const {\n mask,\n pattern,\n ...patternOpts\n } = opts;\n return {\n ...patternOpts,\n mask: isString(mask) ? mask : pattern\n };\n }\n\n /** Pattern mask for date according to {@link MaskedDate#format} */\n\n /** Start date */\n\n /** End date */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super(MaskedDate.extractPatternOptions({\n ...MaskedDate.DEFAULTS,\n ...opts\n }));\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n mask,\n pattern,\n blocks,\n ...patternOpts\n } = {\n ...MaskedDate.DEFAULTS,\n ...opts\n };\n const patternBlocks = Object.assign({}, MaskedDate.GET_DEFAULT_BLOCKS());\n // adjust year block\n if (opts.min) patternBlocks.Y.from = opts.min.getFullYear();\n if (opts.max) patternBlocks.Y.to = opts.max.getFullYear();\n if (opts.min && opts.max && patternBlocks.Y.from === patternBlocks.Y.to) {\n patternBlocks.m.from = opts.min.getMonth() + 1;\n patternBlocks.m.to = opts.max.getMonth() + 1;\n if (patternBlocks.m.from === patternBlocks.m.to) {\n patternBlocks.d.from = opts.min.getDate();\n patternBlocks.d.to = opts.max.getDate();\n }\n }\n Object.assign(patternBlocks, this.blocks, blocks);\n super._update({\n ...patternOpts,\n mask: isString(mask) ? mask : pattern,\n blocks: patternBlocks\n });\n }\n doValidate(flags) {\n const date = this.date;\n return super.doValidate(flags) && (!this.isComplete || this.isDateExist(this.value) && date != null && (this.min == null || this.min <= date) && (this.max == null || date <= this.max));\n }\n\n /** Checks if date is exists */\n isDateExist(str) {\n return this.format(this.parse(str, this), this).indexOf(str) >= 0;\n }\n\n /** Parsed Date */\n get date() {\n return this.typedValue;\n }\n set date(date) {\n this.typedValue = date;\n }\n get typedValue() {\n return this.isComplete ? super.typedValue : null;\n }\n set typedValue(value) {\n super.typedValue = value;\n }\n maskEquals(mask) {\n return mask === Date || super.maskEquals(mask);\n }\n optionsIsChanged(opts) {\n return super.optionsIsChanged(MaskedDate.extractPatternOptions(opts));\n }\n}\nMaskedDate.GET_DEFAULT_BLOCKS = () => ({\n d: {\n mask: MaskedRange,\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: MaskedRange,\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: MaskedRange,\n from: 1900,\n to: 9999\n }\n});\nMaskedDate.DEFAULTS = {\n ...MaskedPattern.DEFAULTS,\n mask: Date,\n pattern: DefaultPattern,\n format: (date, masked) => {\n if (!date) return '';\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n return [day, month, year].join('.');\n },\n parse: (str, masked) => {\n const [day, month, year] = str.split('.').map(Number);\n return new Date(year, month - 1, day);\n }\n};\nIMask.MaskedDate = MaskedDate;\n\nexport { MaskedDate as default };\n","import { DIRECTION, objectIncludes } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Dynamic mask for choosing appropriate mask in run-time */\nclass MaskedDynamic extends Masked {\n constructor(opts) {\n super({\n ...MaskedDynamic.DEFAULTS,\n ...opts\n });\n this.currentMask = undefined;\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n this.exposeMask = undefined;\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {\n const {\n expose,\n ...maskOpts\n } = normalizeOpts(m);\n const masked = createMask({\n overwrite: this._overwrite,\n eager: this._eager,\n skipInvalid: this._skipInvalid,\n ...maskOpts\n });\n if (expose) this.exposeMask = masked;\n return masked;\n }) : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));\n }\n return details;\n }\n _applyDispatch(appended, flags, tail) {\n if (appended === void 0) {\n appended = '';\n }\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;\n const inputValue = this.rawInputValue;\n const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState = prevMask == null ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(appended, {\n ...flags\n }, tail);\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n this.currentMask.append(insertValue, {\n raw: true\n });\n details.tailShift = this.currentMask.value.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true\n }).tailShift;\n }\n } else if (prevMaskState) {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n _appendEager() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return {\n ...flags,\n _beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState\n };\n }\n doDispatch(appended, flags, tail) {\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n return this.dispatch(appended, this, flags, tail);\n }\n doValidate(flags) {\n return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));\n }\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepare(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepareChar(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) == null || _this$currentMask.reset();\n this.compiledMasks.forEach(m => m.reset());\n }\n get value() {\n return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n if (this.exposeMask) {\n this.exposeMask.value = value;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.value = value;\n }\n get unmaskedValue() {\n return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeMask) {\n this.exposeMask.unmaskedValue = unmaskedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';\n }\n set typedValue(typedValue) {\n if (this.exposeMask) {\n this.exposeMask.typedValue = typedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n return;\n }\n let unmaskedValue = String(typedValue);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = typedValue;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n get isComplete() {\n var _this$currentMask2;\n return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);\n }\n get isFilled() {\n var _this$currentMask3;\n return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);\n }\n remove(fromPos, toPos) {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details.aggregate(this.currentMask.remove(fromPos, toPos))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n get state() {\n var _this$currentMask4;\n return {\n ...super.state,\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map(m => m.state),\n currentMaskRef: this.currentMask,\n currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state\n };\n }\n set state(state) {\n const {\n compiledMasks,\n currentMaskRef,\n currentMask,\n ...maskedState\n } = state;\n if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n extractInput(fromPos, toPos, flags) {\n return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';\n }\n extractTail(fromPos, toPos) {\n return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);\n }\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n nearestInputPos(cursorPos, direction) {\n return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : this._overwrite;\n }\n set overwrite(overwrite) {\n this._overwrite = overwrite;\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : this._eager;\n }\n set eager(eager) {\n this._eager = eager;\n }\n get skipInvalid() {\n return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n this._skipInvalid = skipInvalid;\n }\n get autofix() {\n return this.currentMask ? this.currentMask.autofix : this._autofix;\n }\n set autofix(autofix) {\n this._autofix = autofix;\n }\n maskEquals(mask) {\n return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const {\n mask: oldMask,\n ...restOpts\n } = mask[mi];\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n }) : super.maskEquals(mask);\n }\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));\n }\n}\n/** Currently chosen mask */\n/** Currently chosen mask */\n/** Compliled {@link Masked} options */\n/** Chooses {@link Masked} depending on input value */\nMaskedDynamic.DEFAULTS = {\n ...Masked.DEFAULTS,\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))\n };\n });\n\n // pop masks with longer values first\n inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);\n return masked.compiledMasks[inputs[0].index];\n }\n};\nIMask.MaskedDynamic = MaskedDynamic;\n\nexport { MaskedDynamic as default };\n","import MaskedPattern from './pattern.js';\nimport IMask from '../core/holder.js';\nimport ChangeDetails from '../core/change-details.js';\nimport { DIRECTION } from '../core/utils.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport './base.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which validates enum values */\nclass MaskedEnum extends MaskedPattern {\n constructor(opts) {\n super({\n ...MaskedEnum.DEFAULTS,\n ...opts\n }); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n enum: enum_,\n ...eopts\n } = opts;\n if (enum_) {\n const lengths = enum_.map(e => e.length);\n const requiredLength = Math.min(...lengths);\n const optionalLength = Math.max(...lengths) - requiredLength;\n eopts.mask = '*'.repeat(requiredLength);\n if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';\n this.enum = enum_;\n }\n super._update(eopts);\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const matchFrom = Math.min(this.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n const matches = this.enum.filter(e => this.matchValue(e, this.unmaskedValue + ch, matchFrom));\n if (matches.length) {\n if (matches.length === 1) {\n this._forEachBlocksInRange(0, this.value.length, (b, bi) => {\n const mch = matches[0][bi];\n if (bi >= this.value.length || mch === b.value) return;\n b.reset();\n b._appendChar(mch, flags);\n });\n }\n const d = super._appendCharRaw(matches[0][this.value.length], flags);\n if (matches.length === 1) {\n matches[0].slice(this.unmaskedValue.length).split('').forEach(mch => d.aggregate(super._appendCharRaw(mch)));\n }\n return d;\n }\n return new ChangeDetails({\n skip: !this.isComplete\n });\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n // just drop tail\n return new ContinuousTailDetails('', fromPos);\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (fromPos === toPos) return new ChangeDetails();\n const matchFrom = Math.min(super.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n let pos;\n for (pos = fromPos; pos >= 0; --pos) {\n const matches = this.enum.filter(e => this.matchValue(e, this.value.slice(matchFrom, pos), matchFrom));\n if (matches.length > 1) break;\n }\n const details = super.remove(pos, toPos);\n details.tailShift += pos - fromPos;\n return details;\n }\n get isComplete() {\n return this.enum.indexOf(this.value) >= 0;\n }\n}\n/** Match enum value */\nMaskedEnum.DEFAULTS = {\n ...MaskedPattern.DEFAULTS,\n matchValue: (estr, istr, matchFrom) => estr.indexOf(istr, matchFrom) === matchFrom\n};\nIMask.MaskedEnum = MaskedEnum;\n\nexport { MaskedEnum as default };\n","import { escapeRegExp, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\nvar _MaskedNumber;\n/** Number mask */\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super({\n ...MaskedNumber.DEFAULTS,\n ...opts\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n _updateRegExps() {\n const start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n const mid = '\\\\d*';\n const end = (this.scale ? \"(\" + escapeRegExp(this.radix) + \"\\\\d{0,\" + this.scale + \"})?\" : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\" + this.mapToRadix.map(escapeRegExp).join('') + \"]\", 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);\n if (ch && !prepCh) details.skip = true;\n if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));\n return [prepCh, details];\n }\n _separatorsCount(to, extendOnSeparators) {\n if (extendOnSeparators === void 0) {\n extendOnSeparators = false;\n }\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n _separatorsCountFromSlice(slice) {\n if (slice === void 0) {\n slice = this._value;\n }\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const oldValue = this._value;\n this._value += ch;\n const num = this.number;\n let accepted = !isNaN(num);\n let skip = false;\n if (accepted) {\n let fixedNum;\n if (this.min != null && this.min < 0 && this.number < this.min) fixedNum = this.min;\n if (this.max != null && this.max > 0 && this.number > this.max) fixedNum = this.max;\n if (fixedNum != null) {\n if (this.autofix) {\n this._value = this.format(fixedNum, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n skip || (skip = oldValue === this._value && !flags.tail); // if not changed on tail it's still ok to proceed\n } else {\n accepted = false;\n }\n }\n accepted && (accepted = Boolean(this._value.match(this._numberRegExp)));\n }\n let appendDetails;\n if (!accepted) {\n this._value = oldValue;\n appendDetails = new ChangeDetails();\n } else {\n appendDetails = new ChangeDetails({\n inserted: this._value.slice(oldValue.length),\n rawInserted: skip ? '' : ch,\n skip\n });\n }\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n return appendDetails;\n }\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.format(validnum, this);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n doSkipInvalid(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.parse(this.unmaskedValue, this);\n }\n set typedValue(n) {\n this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n get allowNegative() {\n return this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n get allowPositive() {\n return this.min != null && this.min > 0 || this.max != null && this.max > 0;\n }\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\n_MaskedNumber = MaskedNumber;\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nMaskedNumber.DEFAULTS = {\n ...Masked.DEFAULTS,\n mask: Number,\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [_MaskedNumber.UNMASKED_RADIX],\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n scale: 2,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n","import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by custom Function */\nclass MaskedFunction extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update({\n ...opts,\n validate: opts.mask\n });\n }\n}\nIMask.MaskedFunction = MaskedFunction;\n\nexport { MaskedFunction as default };\n","import createMask from './factory.js';\nimport IMask from '../core/holder.js';\nimport '../core/utils.js';\n\n/** Mask pipe source and destination types */\nconst PIPE_TYPE = {\n MASKED: 'value',\n UNMASKED: 'unmaskedValue',\n TYPED: 'typedValue'\n};\n/** Creates new pipe function depending on mask type, source and destination options */\nfunction createPipe(arg, from, to) {\n if (from === void 0) {\n from = PIPE_TYPE.MASKED;\n }\n if (to === void 0) {\n to = PIPE_TYPE.MASKED;\n }\n const masked = createMask(arg);\n return value => masked.runIsolated(m => {\n m[from] = value;\n return m[to];\n });\n}\n\n/** Pipes value through mask depending on mask type, source and destination options */\nfunction pipe(value, mask, from, to) {\n return createPipe(mask, from, to)(value);\n}\nIMask.PIPE_TYPE = PIPE_TYPE;\nIMask.createPipe = createPipe;\nIMask.pipe = pipe;\n\nexport { PIPE_TYPE, createPipe, pipe };\n","import ChangeDetails from '../core/change-details.js';\nimport IMask from '../core/holder.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport MaskedPattern from './pattern.js';\nimport '../core/utils.js';\nimport './base.js';\nimport '../core/continuous-tail-details.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern mask */\nclass RepeatBlock extends MaskedPattern {\n get repeatFrom() {\n var _ref;\n return (_ref = Array.isArray(this.repeat) ? this.repeat[0] : this.repeat === Infinity ? 0 : this.repeat) != null ? _ref : 0;\n }\n get repeatTo() {\n var _ref2;\n return (_ref2 = Array.isArray(this.repeat) ? this.repeat[1] : this.repeat) != null ? _ref2 : Infinity;\n }\n constructor(opts) {\n super(opts);\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n var _ref3, _ref4, _this$_blocks;\n const {\n repeat,\n ...blockOpts\n } = normalizeOpts(opts); // TODO type\n this._blockOpts = Object.assign({}, this._blockOpts, blockOpts);\n const block = createMask(this._blockOpts);\n this.repeat = (_ref3 = (_ref4 = repeat != null ? repeat : block.repeat) != null ? _ref4 : this.repeat) != null ? _ref3 : Infinity; // TODO type\n\n super._update({\n mask: 'm'.repeat(Math.max(this.repeatTo === Infinity && ((_this$_blocks = this._blocks) == null ? void 0 : _this$_blocks.length) || 0, this.repeatFrom)),\n blocks: {\n m: block\n },\n eager: block.eager,\n overwrite: block.overwrite,\n skipInvalid: block.skipInvalid,\n lazy: block.lazy,\n placeholderChar: block.placeholderChar,\n displayChar: block.displayChar\n });\n }\n _allocateBlock(bi) {\n if (bi < this._blocks.length) return this._blocks[bi];\n if (this.repeatTo === Infinity || this._blocks.length < this.repeatTo) {\n this._blocks.push(createMask(this._blockOpts));\n this.mask += 'm';\n return this._blocks[this._blocks.length - 1];\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = new ChangeDetails();\n for (let bi = (_this$_mapPosToBlock$ = (_this$_mapPosToBlock = this._mapPosToBlock(this.displayValue.length)) == null ? void 0 : _this$_mapPosToBlock.index) != null ? _this$_mapPosToBlock$ : Math.max(this._blocks.length - 1, 0), block, allocated;\n // try to get a block or\n // try to allocate a new block if not allocated already\n block = (_this$_blocks$bi = this._blocks[bi]) != null ? _this$_blocks$bi : allocated = !allocated && this._allocateBlock(bi); ++bi) {\n var _this$_mapPosToBlock$, _this$_mapPosToBlock, _this$_blocks$bi, _flags$_beforeTailSta;\n const blockDetails = block._appendChar(ch, {\n ...flags,\n _beforeTailState: (_flags$_beforeTailSta = flags._beforeTailState) == null || (_flags$_beforeTailSta = _flags$_beforeTailSta._blocks) == null ? void 0 : _flags$_beforeTailSta[bi]\n });\n if (blockDetails.skip && allocated) {\n // remove the last allocated block and break\n this._blocks.pop();\n this.mask = this.mask.slice(1);\n break;\n }\n details.aggregate(blockDetails);\n if (blockDetails.consumed) break; // go next char\n }\n return details;\n }\n _trimEmptyTail(fromPos, toPos) {\n var _this$_mapPosToBlock2, _this$_mapPosToBlock3;\n if (fromPos === void 0) {\n fromPos = 0;\n }\n const firstBlockIndex = Math.max(((_this$_mapPosToBlock2 = this._mapPosToBlock(fromPos)) == null ? void 0 : _this$_mapPosToBlock2.index) || 0, this.repeatFrom, 0);\n let lastBlockIndex;\n if (toPos != null) lastBlockIndex = (_this$_mapPosToBlock3 = this._mapPosToBlock(toPos)) == null ? void 0 : _this$_mapPosToBlock3.index;\n if (lastBlockIndex == null) lastBlockIndex = this._blocks.length - 1;\n let removeCount = 0;\n for (let blockIndex = lastBlockIndex; firstBlockIndex <= blockIndex; --blockIndex, ++removeCount) {\n if (this._blocks[blockIndex].unmaskedValue) break;\n }\n if (removeCount) {\n this._blocks.splice(lastBlockIndex - removeCount + 1, removeCount);\n this.mask = this.mask.slice(removeCount);\n }\n }\n reset() {\n super.reset();\n this._trimEmptyTail();\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n const removeDetails = super.remove(fromPos, toPos);\n this._trimEmptyTail(fromPos, toPos);\n return removeDetails;\n }\n totalInputPositions(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos == null && this.repeatTo === Infinity) return Infinity;\n return super.totalInputPositions(fromPos, toPos);\n }\n get state() {\n return super.state;\n }\n set state(state) {\n this._blocks.length = state._blocks.length;\n this.mask = this.mask.slice(0, this._blocks.length);\n super.state = state;\n }\n}\nIMask.RepeatBlock = RepeatBlock;\n\nexport { RepeatBlock as default };\n","export { default as InputMask } from './controls/input.js';\nimport IMask from './core/holder.js';\nexport { default as HTMLContenteditableMaskElement } from './controls/html-contenteditable-mask-element.js';\nexport { default as HTMLInputMaskElement } from './controls/html-input-mask-element.js';\nexport { default as HTMLMaskElement } from './controls/html-mask-element.js';\nexport { default as MaskElement } from './controls/mask-element.js';\nexport { default as ChangeDetails } from './core/change-details.js';\nexport { DIRECTION, forceDirection } from './core/utils.js';\nexport { default as Masked } from './masked/base.js';\nexport { default as MaskedDate } from './masked/date.js';\nexport { default as MaskedDynamic } from './masked/dynamic.js';\nexport { default as MaskedEnum } from './masked/enum.js';\nexport { default as createMask, normalizeOpts } from './masked/factory.js';\nexport { default as MaskedFunction } from './masked/function.js';\nexport { default as MaskedNumber } from './masked/number.js';\nexport { default as MaskedPattern } from './masked/pattern.js';\nexport { default as ChunksTailDetails } from './masked/pattern/chunk-tail-details.js';\nexport { default as PatternFixedDefinition } from './masked/pattern/fixed-definition.js';\nexport { default as PatternInputDefinition } from './masked/pattern/input-definition.js';\nexport { PIPE_TYPE, createPipe, pipe } from './masked/pipe.js';\nexport { default as MaskedRange } from './masked/range.js';\nexport { default as MaskedRegExp } from './masked/regexp.js';\nexport { default as RepeatBlock } from './masked/repeat.js';\nimport './core/action-details.js';\nimport './controls/input-history.js';\nimport './core/continuous-tail-details.js';\nimport './masked/pattern/cursor.js';\n\ntry {\n globalThis.IMask = IMask;\n} catch {}\n\nexport { IMask as default };\n","import { __decorate } from 'tslib';\nimport { parse, isValid, isBefore, isAfter } from 'date-fns';\nimport IMask from 'imask';\nimport { html } from 'lit';\nimport { property, queryAsync } from 'lit/decorators.js';\nimport { setTimeToNoon, DATE_PATTERNS } from '../../utils/time.js';\nimport { SgdsInput } from '../Input/sgds-input.js';\n\nclass DatepickerInput extends SgdsInput {\n constructor() {\n super();\n /** Date format reflected on input */\n this.dateFormat = \"DD/MM/YYYY\";\n /** Changes DatePicker to single date selection or range date selection */\n this.mode = \"single\";\n this._validateInput = async () => {\n const dates = this.mask.value.split(\" - \");\n const noEmptyDates = dates.filter(d => d !== this.dateFormat.toLowerCase());\n const dateArray = noEmptyDates.map(date => setTimeToNoon(parse(date, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date())));\n const invalidDates = dateArray.filter(date => !isValid(date) ||\n isBefore(date, new Date(0, 0, 1)) ||\n isBefore(date, setTimeToNoon(new Date(this.minDate))) ||\n isAfter(date, setTimeToNoon(new Date(this.maxDate))));\n if (invalidDates.length > 0) {\n this.setInvalid(true);\n return this.emit(\"sgds-invalid-input\");\n }\n if (this.mode === \"range\" && dateArray.length === 1) {\n this.setInvalid(true);\n return this.emit(\"sgds-invalid-input\");\n }\n if (invalidDates.length === 0 && dateArray.length > 0) {\n this.setInvalid(false);\n return this.emit(\"sgds-selectdates-input\", { detail: dateArray });\n }\n if (dateArray.length === 0 && invalidDates.length === 0) {\n this.setInvalid(false);\n return this.emit(\"sgds-empty-input\");\n }\n };\n this.inputClasses = `rounded-0 rounded-start`;\n this.type = \"text\";\n this.hasFeedback = true;\n this._handleValueChange = () => null;\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"sgds-change\", this._validateInput);\n }\n async firstUpdated(changes) {\n super.firstUpdated(changes);\n this._applyInputMask(this.dateFormat);\n }\n async _applyInputMask(dateFormat) {\n const shadowInput = await this.shadowInput;\n const imPattern = this.mode === \"single\" ? DATE_PATTERNS[dateFormat].imPattern : DATE_PATTERNS[dateFormat].imRangePattern;\n const blocks = {\n d: { mask: IMask.MaskedRange, placeholderChar: \"d\", from: 0, to: 9, maxLength: 1 },\n m: { mask: IMask.MaskedRange, placeholderChar: \"m\", from: 0, to: 9, maxLength: 1 },\n y: { mask: IMask.MaskedRange, placeholderChar: \"y\", from: 0, to: 9, maxLength: 1 },\n D: { mask: IMask.MaskedRange, placeholderChar: \"d\", from: 0, to: 9, maxLength: 1 },\n M: { mask: IMask.MaskedRange, placeholderChar: \"m\", from: 0, to: 9, maxLength: 1 },\n Y: { mask: IMask.MaskedRange, placeholderChar: \"y\", from: 0, to: 9, maxLength: 1 }\n };\n const maskOptions = {\n mask: imPattern,\n pattern: imPattern,\n eager: true,\n overwrite: true,\n // define str -> date convertion\n parse: function (str) {\n const dates = str.split(\" - \");\n return dates.map(date => parse(date, DATE_PATTERNS[dateFormat].fnsPattern, new Date()));\n },\n format: function (dateArr) {\n const dateStrings = dateArr.map(date => {\n let dayStr, monthStr = \"\";\n const day = date.getDate();\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n if (day < 10)\n dayStr = \"0\" + day;\n if (month < 10)\n monthStr = \"0\" + month;\n return [dayStr, monthStr, year].join(\"/\");\n });\n return dateStrings.join(\" - \");\n },\n lazy: false,\n blocks\n };\n this.mask = IMask(shadowInput, maskOptions);\n this.mask.on(\"accept\", () => {\n this.value = this.mask.masked.value;\n this.emit(\"sgds-mask-input-change\", { detail: this.value });\n });\n /**\n * Validation after date is complete\n */\n this.mask.on(\"complete\", this._validateInput);\n }\n updateMaskValue() {\n var _a;\n (_a = this.mask) === null || _a === void 0 ? void 0 : _a.updateValue();\n }\n destroyInputMask() {\n var _a;\n (_a = this.mask) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n async applyInputMask() {\n return await this._applyInputMask(this.dateFormat);\n }\n async focus() {\n const input = await this.shadowInput;\n return input.focus();\n }\n render() {\n return html `\n ${this._renderLabel()} ${this._renderHintText()}\n
\n
${this._renderInput()}
\n \n \n
\n `;\n }\n}\n__decorate([\n property({ type: String })\n], DatepickerInput.prototype, \"dateFormat\", void 0);\n__decorate([\n property({ type: String })\n], DatepickerInput.prototype, \"minDate\", void 0);\n__decorate([\n property({ type: String })\n], DatepickerInput.prototype, \"maxDate\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], DatepickerInput.prototype, \"mode\", void 0);\n__decorate([\n queryAsync(\"input\")\n], DatepickerInput.prototype, \"shadowInput\", void 0);\n\nexport { DatepickerInput, DatepickerInput as default };\n//# sourceMappingURL=datepicker-input.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--datepicker-theme-color:var(--sgds-primary);--datepicker-hover-bg-color:var(--sgds-primary-100);--datepicker-bg-color:#fff;--datepicker-closebutton-bg-color:var(--datepicker-theme-color);--datepicker-closebutton-hover-bg-color:var(--sgds-primary-600);--datepicker-closebutton-color:#fff;--datepicker-selected-date-bg-color:var(--sgds-primary-600);--datepicker-selected-date-text-color:#fff}div{display:flex}button{align-self:self-start}.datepicker{background-color:var(--datepicker-bg-color)}sgds-datepicker-input{flex:1;margin-right:0}.reset-btn{background-color:var(--datepicker-closebutton-bg-color)}.reset-btn,.reset-btn:hover{color:var(--datepicker-closebutton-color)}.reset-btn:hover{background-color:var(--datepicker-closebutton-hover-bg-color)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-datepicker2.js.map\n","import { __decorate } from 'tslib';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { parse, format } from 'date-fns';\nimport { html } from 'lit';\nimport { property, state, queryAsync, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\nimport { ref } from 'lit/directives/ref.js';\nimport { DropdownElement } from '../../base/dropdown-element.js';\nimport { setTimeToNoon, DATE_PATTERNS } from '../../utils/time.js';\nimport { watch } from '../../utils/watch.js';\nimport { DatepickerCalendar } from './datepicker-calendar.js';\nimport { DatepickerHeader } from './datepicker-header.js';\nimport { DatepickerInput } from './datepicker-input.js';\nimport css_248z from './sgds-datepicker2.js';\n\n/**\n * @summary The `DatePicker` Component is built using `Dropdown`, `Input` and `Button` components. By default, the Calendar points to today's date and input has no value. Users can either pick dates from the calendar or type dates through the input\n *\n * @event sgds-change-date - Emitted when the state of datepicker's input changes during first load, close button reset click & date click. Date values can be accessed via event.target.value\n *\n * @cssproperty --datepicker-theme-color - Datepicker's overall theme color\n * @cssproperty --datepicker-hover-bg-color - Datepicker's calendar menu hover color\n * @cssproperty --datepicker-bg-color - Datepicker's menu background color\n * @cssproperty --datepicker-closebutton-bg-color - Datepicker's close button background color\n * @cssproperty --datepicker-closebutton-hover-bg-color - Datepicker's close button hover background color\n * @cssproperty --datepicker-closebutton-color - Datepicker's close button color\n * @cssproperty --datepicker-selected-date-bg-color - Selected date's background color\n * @cssproperty --datepicker-selected-date-text-color - Selected date's text color\n *\n * @description displayDate sets the month, year views of the calendar while focusedDate follows the focus which also directly changes\n * displayDate on certain occasions. Example, when keyboard moves up to the next month, it updates displayDate which then affect the current\n * date view of the calendar\n */\nclass SgdsDatepicker extends ScopedElementsMixin(DropdownElement) {\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-datepicker-input\": DatepickerInput,\n \"sgds-datepicker-calendar\": DatepickerCalendar,\n \"sgds-datepicker-header\": DatepickerHeader\n };\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this._internals.reportValidity();\n }\n constructor() {\n super();\n /** When true, adds required attribute to input element */\n this.required = false;\n /** When true, adds disabled attribute to input and button element */\n this.disabled = false;\n /** The initial value of DatePicker on first load for single & range mode as array of string. eg.'[\"22/12/2023\"]' for single & '[\"22/12/2023\",\"25/12/2023\"]' for range respectively */\n this.initialValue = [];\n /** Date format reflected on input */\n this.dateFormat = \"DD/MM/YYYY\";\n /** ISO date string to set the lowest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n this.minDate = \"\";\n /** ISO date string to set the highest allowable date value. e.g. \"2016-05-19T12:00:00.000Z\" */\n this.maxDate = \"\";\n /** Changes DatePicker to single date selection or range date selection */\n this.mode = \"single\";\n /**Feedback text for error state when date input is invalid */\n this.invalidFeedback = \"Please enter a valid date\";\n /** The datepicker input's label */\n this.label = \"\";\n /** The datepicker input's hint text below the label */\n this.hintText = \"\";\n /** Controls auto-flipping of menu */\n this.noFlip = false;\n /** The drop position of menu relative to the toggle button */\n this.drop = \"down\";\n /**@internal */\n this.value = \"\";\n this.view = \"days\";\n this.selectedDateRange = [];\n this.focusedTabIndex = 3;\n this._makeInputValueString = (startDate, endDate, dateFormat) => {\n if (!startDate && !endDate)\n return this.value;\n const formatDate = (date) => format(date, DATE_PATTERNS[dateFormat].fnsPattern);\n switch (this.mode) {\n case \"single\": {\n if (startDate) {\n this.value = formatDate(startDate);\n }\n break;\n }\n case \"range\": {\n if (startDate && endDate) {\n this.value = `${formatDate(startDate)} - ${formatDate(endDate)}`;\n }\n if (startDate && !endDate) {\n this.value = `${formatDate(startDate)} - ${this.dateFormat.toLowerCase()}`;\n }\n break;\n }\n }\n return this.value;\n };\n this._dialogAriaLabels = {\n days: \"Choose date\",\n months: \"Choose month\",\n years: \"Choose year\"\n };\n this._internals = this.attachInternals();\n /**@internal */\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 10]\n }\n }\n ];\n }\n async connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"sgds-view\", this._handleViewChanged);\n this.addEventListener(\"sgds-change-calendar\", this._handleDateChanged);\n this.addEventListener(\"sgds-update-focus\", this._handleFocusDateChanged);\n this.addEventListener(\"sgds-selectmonth\", this._handleSelectMonth);\n this.addEventListener(\"sgds-selectyear\", this._handleSelectYear);\n this.addEventListener(\"sgds-selectdates\", this._handleSelectDatesAndClose);\n this.addEventListener(\"sgds-selectdates-input\", this._handleSelectDatesInput);\n this.addEventListener(\"sgds-empty-input\", this._handleEmptyInput);\n this.addEventListener(\"keydown\", this._handleTab);\n this.addEventListener(\"sgds-hide\", this._handleCloseMenu);\n this.addEventListener(\"sgds-show\", this._handleOpenMenu);\n this.initialDisplayDate = this.displayDate || new Date();\n if (this.initialValue && this.initialValue.length > 0) {\n // Validate initialValue against the dateFormat regex\n const dateFormatRegex = new RegExp(this._getDateFormatRegex());\n // const startDateString = this.initialValue[0];\n const invalidDates = this.initialValue.filter(v => !dateFormatRegex.test(v));\n if (invalidDates.length > 0) {\n return console.error(\"Invalid date format in initialValue:\", invalidDates);\n }\n else {\n const initialSelectedDates = this.initialValue.map(v => setTimeToNoon(parse(v, DATE_PATTERNS[this.dateFormat].fnsPattern, new Date())));\n this._handleSelectDates(initialSelectedDates);\n }\n }\n else {\n this.displayDate = this.initialDisplayDate;\n }\n }\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n const input = await this.datepickerInputAsync;\n this.showMenu();\n const cal = await this.calendar;\n cal.focusOnCalendar(input);\n }\n const shadowInput = await this.datepickerInput.shadowInput;\n this._manageInternalsDefault(shadowInput);\n this._internals.setValidity(shadowInput.validity, shadowInput.validationMessage, shadowInput);\n }\n /** @internal */\n _getDateFormatRegex() {\n // validate date strings and adhere to the specified date format\n return (this.dateFormat\n // Replace any special characters with their escaped version using \"\\\\$&\"\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n // Replace 'MM' with '\\\\d{2}', which matches two digits representing the month (e.g., 01, 12)\n .replace(\"MM\", \"\\\\d{2}\")\n // Replace 'DD' with '\\\\d{2}', which matches two digits representing the day (e.g., 01, 31)\n .replace(\"DD\", \"\\\\d{2}\")\n // Replace 'YYYY' with '\\\\d{4}', which matches four digits representing the year (e.g., 2021)\n .replace(\"YYYY\", \"\\\\d{4}\")\n // Replace '/' with '\\\\/', which matches the forward slash character\n .replace(\"/\", \"\\\\/\"));\n }\n _handleTab(event) {\n if (!this.menuIsOpen) {\n return;\n }\n const tabIndexArray = Array(4);\n if (event.shiftKey && event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex - 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n else if (event.key === \"Tab\") {\n event.preventDefault();\n this.focusedTabIndex = (this.focusedTabIndex + 1 + tabIndexArray.length) % tabIndexArray.length;\n }\n }\n _handleValueChange() {\n this.emit(\"sgds-change-date\");\n this._setInternalFormValue(this.value);\n }\n async _handleCloseMenu() {\n //return focus to input when menu closes\n const input = await this.datepickerInputAsync;\n input.focus();\n if (this.selectedDateRange.length === 0) {\n this.displayDate = this.initialDisplayDate;\n }\n else {\n const selectedDatesLength = this.selectedDateRange.length;\n this.displayDate = this.selectedDateRange[selectedDatesLength - 1];\n const calendar = await this.calendar;\n calendar._updateFocusedDate();\n }\n }\n async _handleOpenMenu() {\n const cal = await this.calendar;\n const input = await this.datepickerInputAsync;\n cal.focusOnCalendar(input);\n }\n _handleSelectDatesInput(event) {\n this._handleSelectDates(event.detail);\n this._manageInternalsDefault(this._shadowInput);\n }\n async _handleSelectDates(newSelectedDates) {\n newSelectedDates.sort((a, b) => a.getTime() - b.getTime());\n this.displayDate = newSelectedDates[0];\n this.focusedDate = newSelectedDates[0];\n this.selectedDateRange = newSelectedDates;\n // Get the formattedDate value for the selected dates\n const formattedDate = this._makeInputValueString(this.selectedDateRange[0], this.selectedDateRange[1], this.dateFormat);\n // Set formattedDate value as the new value for sgds-input\n this.value = formattedDate;\n const input = await this.datepickerInputAsync;\n input.updateMaskValue();\n }\n get _shadowInput() {\n return this.datepickerInput.shadowRoot.querySelector(\"input\");\n }\n _handleSelectDatesAndClose(event) {\n this._handleSelectDates(event.detail);\n if (this.mode === \"range\" && this.selectedDateRange.length === 2) {\n this.hideMenu();\n }\n else if (this.mode === \"single\" && this.selectedDateRange.length === 1) {\n this.hideMenu();\n }\n this._manageInternalsValid();\n }\n /** update latest view state from datepicker-header */\n _handleViewChanged(event) {\n this.view = event.detail;\n }\n _handleDateChanged(event) {\n this.displayDate = event.detail;\n }\n _handleFocusDateChanged(event) {\n this.focusedDate = event.detail;\n }\n _handleSelectMonth(event) {\n this.displayDate = event.detail;\n }\n _handleSelectYear(event) {\n this.displayDate = event.detail;\n }\n async _handleInvalidInput() {\n this.selectedDateRange = [];\n this.displayDate = this.initialDisplayDate;\n this._manageInternalsBadInput();\n }\n async _handleButtonResetClick() {\n this.displayDate = this.initialDisplayDate;\n this.selectedDateRange = [];\n this.value = \"\";\n this.view = \"days\";\n this.hideMenu();\n const input = await this.datepickerInputAsync;\n input.setInvalid(false);\n input.destroyInputMask();\n await input.applyInputMask();\n this._manageInternalsRequired();\n }\n async _handleEmptyInput() {\n this._manageInternalsRequired();\n }\n _manageInternalsRequired() {\n this.required\n ? this._internals.setValidity({\n valueMissing: true\n }, \"Please fill in this field\", this._shadowInput)\n : this._internals.setValidity({});\n }\n _manageInternalsBadInput() {\n this._internals.setValidity({\n badInput: true\n }, \"The chosen date(s) are invalid\", this._shadowInput);\n }\n _manageInternalsValid() {\n this._internals.setValidity({});\n }\n _manageInternalsDefault(inputEl) {\n this._internals.setValidity(inputEl.validity, inputEl.validationMessage, inputEl);\n }\n _setInternalFormValue(value) {\n this._internals.setFormValue(value);\n }\n async _handleInputMaskChange(e) {\n this.value = e.detail;\n }\n render() {\n const svgEl = html `\n \n \n \n `;\n return html `\n
\n \n this.toggleMenu()}\n aria-label=${this.menuIsOpen ? \"Close Calendar\" : \"Open Calendar\"}\n ?disabled=${this.disabled}\n >\n \n \n \n \n this._handleButtonResetClick()}\n aria-label=\"Reset Datepicker\"\n >\n ${svgEl}\n \n \n\n event.stopPropagation()}\n >\n \n \n \n
\n `;\n }\n}\nSgdsDatepicker.styles = [DropdownElement.styles, css_248z];\n/**@internal */\nSgdsDatepicker.formAssociated = true;\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsDatepicker.prototype, \"required\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsDatepicker.prototype, \"name\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsDatepicker.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Array, reflect: true })\n], SgdsDatepicker.prototype, \"initialValue\", void 0);\n__decorate([\n property({ type: String })\n], SgdsDatepicker.prototype, \"dateFormat\", void 0);\n__decorate([\n property({ type: String })\n], SgdsDatepicker.prototype, \"minDate\", void 0);\n__decorate([\n property({ type: String })\n], SgdsDatepicker.prototype, \"maxDate\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsDatepicker.prototype, \"mode\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsDatepicker.prototype, \"invalidFeedback\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsDatepicker.prototype, \"label\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsDatepicker.prototype, \"hintText\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, state: false })\n], SgdsDatepicker.prototype, \"noFlip\", void 0);\n__decorate([\n property({ type: String, reflect: true, state: false })\n], SgdsDatepicker.prototype, \"drop\", void 0);\n__decorate([\n property({ attribute: false })\n], SgdsDatepicker.prototype, \"displayDate\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"value\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"view\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"selectedDateRange\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"focusedDate\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"focusedTabIndex\", void 0);\n__decorate([\n state()\n], SgdsDatepicker.prototype, \"dialogAriaLabel\", void 0);\n__decorate([\n queryAsync(\"sgds-datepicker-calendar\")\n], SgdsDatepicker.prototype, \"calendar\", void 0);\n__decorate([\n queryAsync(\"sgds-datepicker-input\")\n], SgdsDatepicker.prototype, \"datepickerInputAsync\", void 0);\n__decorate([\n queryAsync(\"sgds-datepicker-header\")\n], SgdsDatepicker.prototype, \"datepickerHeaderAsync\", void 0);\n__decorate([\n query(\"sgds-datepicker-input\")\n], SgdsDatepicker.prototype, \"datepickerInput\", void 0);\n__decorate([\n watch(\"value\")\n], SgdsDatepicker.prototype, \"_handleValueChange\", null);\n\nexport { SgdsDatepicker, SgdsDatepicker as default };\n//# sourceMappingURL=sgds-datepicker.js.map\n","import { SgdsDatepicker } from './sgds-datepicker.js';\n\ncustomElements.define(\"sgds-datepicker\", SgdsDatepicker);\n//# sourceMappingURL=index.js.map\n","const locks = new Set();\n/**\n * Prevents body scrolling. Keeps track of which elements requested a lock so multiple levels of locking are possible\n * without premature unlocking.\n */\nfunction lockBodyScrolling(lockingEl) {\n locks.add(lockingEl);\n document.body.classList.add(\"sl-scroll-lock\");\n}\n/**\n * Unlocks body scrolling. Scrolling will only be unlocked once all elements that requested a lock call this method.\n */\nfunction unlockBodyScrolling(lockingEl) {\n locks.delete(lockingEl);\n if (locks.size === 0) {\n document.body.classList.remove(\"sl-scroll-lock\");\n }\n}\n\nexport { lockBodyScrolling, unlockBodyScrolling };\n//# sourceMappingURL=scroll.js.map\n","class HasSlotController {\n constructor(host, ...slotNames) {\n this.slotNames = [];\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n this.handleSlotChange = this.handleSlotChange.bind(this);\n }\n hasDefaultSlot() {\n return [...this.host.childNodes].some(node => {\n var _a;\n if (node.nodeType === node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== \"\") {\n return true;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node;\n const tagName = el.tagName.toLowerCase();\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n return false;\n });\n }\n hasNamedSlot(name) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n test(slotName) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n hostConnected() {\n var _a;\n (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n hostDisconnected() {\n var _a;\n (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n handleSlotChange(event) {\n const slot = event.target;\n if ((this.slotNames.includes(\"[default]\") && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n }\n}\n\nexport { HasSlotController };\n//# sourceMappingURL=slot.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--drawer-padding:1.5rem;--drawer-size:35rem;--drawer-background-color:#fff;--drawer-button-gap:0.5rem;--drawer-overlay-background-color:var(--overlay-background-color);display:contents}.drawer{font-family:var(--sgds-body-font-family);height:100%;inset-inline-start:0;overflow:hidden;pointer-events:none;top:0;width:100%}.drawer-fixed{position:fixed;z-index:var(--zindex-modal)}.drawer-panel{background-color:var(--drawer-background-color);box-shadow:0 2px 8px hsla(240,4%,46%,.12);display:flex;flex-direction:column;max-height:100%;max-width:100%;overflow:auto;pointer-events:all;position:absolute;z-index:2}.drawer-panel:focus{outline:none}.drawer-top .drawer-panel{bottom:auto;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:0;width:100%}.drawer-end .drawer-panel{bottom:auto;height:100%;inset-inline-end:0;inset-inline-start:auto;top:0;width:var(--drawer-size)}.drawer-bottom .drawer-panel{bottom:0;height:var(--drawer-size);inset-inline-end:auto;inset-inline-start:0;top:auto;width:100%}.drawer-start .drawer-panel{bottom:auto;height:100%;inset-inline-end:auto;inset-inline-start:0;top:0;width:var(--drawer-size)}.drawer-header{display:flex;padding:var(--drawer-padding)}.drawer-title{flex:1 1 auto;font:inherit;font-size:calc(1.275rem + .3vw);line-height:1.33;margin:0}.drawer-header-actions{cursor:pointer;display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--drawer-button-gap);justify-content:end;padding:0 var(--drawer-padding)}.drawer-header-actions .drawer-close{align-self:center;display:flex;flex:0 0 auto}.drawer-body{-webkit-overflow-scrolling:touch;display:block;flex:1 1 auto;overflow:auto}.drawer-body,.drawer-footer{padding:var(--drawer-padding)}.drawer-footer{text-align:right}.drawer-footer ::slotted(sgds-button:not(:last-of-type)){margin-inline-end:var(--drawer-button-gap)}.drawer:not(.drawer-has-footer) .drawer-footer{display:none}.drawer-overlay{background-color:var(--drawer-overlay-background-color);bottom:0;display:block;left:0;pointer-events:all;position:fixed;right:0;top:0}.drawer-contained .drawer-overlay{display:none}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-drawer2.js.map\n","import { __decorate } from 'tslib';\nimport { html, nothing } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { animateTo, stopAnimations } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll.js';\nimport { HasSlotController } from '../../utils/slot.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-drawer2.js';\n\n/**\n * @summary Drawers slide in from a container to expose additional options and information.\n *\n * @slot - The drawer's main content.\n * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.\n * @slot header-actions - Optional actions to add to the header.\n * @slot footer - The drawer's footer, usually one or more buttons representing various options.\n *\n * @event sgds-show - Emitted when the drawer opens.\n * @event sgds-after-show - Emitted after the drawer opens and all animations are complete.\n * @event sgds-hide - Emitted when the drawer closes.\n * @event sgds-after-hide - Emitted after the drawer closes and all animations are complete.\n * @event sgds-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling\n * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} sgds-request-close - Emitted when the user attempts to\n * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling\n * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in\n * destructive behavior such as data loss.\n *\n * @csspart base - The component's base wrapper.\n * @csspart overlay - The overlay that covers the screen behind the drawer.\n * @csspart panel - The drawer's panel (where the drawer and its content are rendered).\n * @csspart header - The drawer's header. This element wraps the title and header actions.\n * @csspart header-actions - Optional actions to add to the header.\n * @csspart title - The drawer's title.\n * @csspart close-button - The close button.\n * @csspart body - The drawer's body.\n * @csspart footer - The drawer's footer.\n *\n * @cssproperty --sgds-drawer-size - The preferred size of the drawer. This will be applied to the drawer's width or height\n * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.\n * @cssproperty --sgds-drawer-padding - The amount of padding to use for the header.\n * @cssproperty --sgds-drawer-background-color - The drawer's background color.\n * @cssproperty --sgds-drawer-button-gap - The drawer's flex gap between buttons.\n */\nclass SgdsDrawer extends SgdsElement {\n constructor() {\n super(...arguments);\n /** @internal */\n this.hasSlotController = new HasSlotController(this, \"footer\");\n /**\n * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.\n */\n this.open = false;\n /**\n * The drawer's label as displayed in the header. You should always include a relevant label even when using\n * `noHeader`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.\n */\n this.label = \"\";\n /** The direction from which the drawer will open. */\n this.placement = \"end\";\n /**\n * By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\n * its parent element, set this attribute and add `position: relative` to the parent.\n */\n this.contained = false;\n /**\n * Removes the header. This will also remove the default close button, so please ensure you provide an easy,\n * accessible way for users to dismiss the drawer.\n */\n this.noHeader = false;\n this.handleDocumentKeyDown = (event) => {\n if (this.open && !this.contained && event.key === \"Escape\") {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n };\n }\n firstUpdated() {\n this.drawer.hidden = !this.open;\n if (this.open) {\n this.addOpenListeners();\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n unlockBodyScrolling(this);\n }\n uppercaseFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n requestClose(source) {\n const slRequestClose = this.emit(\"sgds-request-close\", {\n cancelable: true,\n detail: { source }\n });\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"drawer.denyClose\");\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n this.hide();\n }\n addOpenListeners() {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n removeOpenListeners() {\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit(\"sgds-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement;\n // Lock body scrolling only if the drawer isn't contained\n if (!this.contained) {\n lockBodyScrolling(this);\n }\n // When the drawer is shown, Safari will attempt to set focus on whatever element has autofocus. This causes the\n // drawer's animation to jitter, so we'll temporarily remove the attribute, call `focus({ preventScroll: true })`\n // ourselves, and add the attribute back afterwards.\n //\n // Related: https://github.com/shoelace-style/shoelace/issues/693\n //\n const autoFocusTarget = this.querySelector(\"[autofocus]\");\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute(\"autofocus\");\n }\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n this.drawer.hidden = false;\n // Set initial focus\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit(\"sgds-initial-focus\", { cancelable: true });\n if (!slInitialFocus.defaultPrevented) {\n // Set focus to the autofocus target and restore the attribute\n if (autoFocusTarget) {\n autoFocusTarget.focus({ preventScroll: true });\n }\n else {\n this.panel.focus({ preventScroll: true });\n }\n }\n // Restore the autofocus attribute\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute(\"autofocus\", \"\");\n }\n });\n const panelAnimation = getAnimation(this, `drawer.show${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.show\");\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n this.emit(\"sgds-after-show\");\n }\n else {\n // Hide\n this.emit(\"sgds-hide\");\n this.removeOpenListeners();\n if (!this.contained) {\n unlockBodyScrolling(this);\n }\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, `drawer.hide${this.uppercaseFirstLetter(this.placement)}`);\n const overlayAnimation = getAnimation(this, \"drawer.overlay.hide\");\n // Animate the overlay and the panel at the same time. Because animation durations might be different, we need to\n // hide each one individually when the animation finishes, otherwise the first one that finishes will reappear\n // unexpectedly. We'll unhide them after all animations have completed.\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n this.drawer.hidden = true;\n // Now that the dialog is hidden, restore the overlay and panel for next time\n this.overlay.hidden = false;\n this.panel.hidden = false;\n // Restore focus to the original trigger\n const trigger = this.originalTrigger;\n if (typeof (trigger === null || trigger === void 0 ? void 0 : trigger.focus) === \"function\") {\n setTimeout(() => trigger.focus());\n }\n this.emit(\"sgds-after-hide\");\n }\n }\n handleNoModalChange() {\n if (this.open && !this.contained) {\n lockBodyScrolling(this);\n }\n if (this.open && this.contained) {\n unlockBodyScrolling(this);\n }\n }\n /** Shows the drawer. */\n async show() {\n if (this.open) {\n return undefined;\n }\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hides the drawer */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n render() {\n return html `\n \n
this.requestClose(\"overlay\")} tabindex=\"-1\">
\n\n \n ${!this.noHeader\n ? html `\n
\n

\n \n ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} \n

\n
\n \n this.requestClose(\"close-button\")}\"\n >\n
\n
\n `\n : nothing}\n\n \n\n
\n \n
\n \n \n `;\n }\n}\nSgdsDrawer.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".drawer\")\n], SgdsDrawer.prototype, \"drawer\", void 0);\n__decorate([\n query(\".drawer-panel\")\n], SgdsDrawer.prototype, \"panel\", void 0);\n__decorate([\n query(\".drawer-overlay\")\n], SgdsDrawer.prototype, \"overlay\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsDrawer.prototype, \"open\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsDrawer.prototype, \"label\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsDrawer.prototype, \"placement\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsDrawer.prototype, \"contained\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsDrawer.prototype, \"noHeader\", void 0);\n__decorate([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SgdsDrawer.prototype, \"handleOpenChange\", null);\n__decorate([\n watch(\"contained\", { waitUntilFirstUpdate: true })\n], SgdsDrawer.prototype, \"handleNoModalChange\", null);\n// Top\nsetDefaultAnimation(\"drawer.showTop\", {\n keyframes: [\n { opacity: 0, translate: \"0 -100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"drawer.hideTop\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 -100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n// End\nsetDefaultAnimation(\"drawer.showEnd\", {\n keyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"drawer.hideEnd\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n// Bottom\nsetDefaultAnimation(\"drawer.showBottom\", {\n keyframes: [\n { opacity: 0, translate: \"0 100%\" },\n { opacity: 1, translate: \"0 0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"drawer.hideBottom\", {\n keyframes: [\n { opacity: 1, translate: \"0 0\" },\n { opacity: 0, translate: \"0 100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n// Start\nsetDefaultAnimation(\"drawer.showStart\", {\n keyframes: [\n { opacity: 0, translate: \"-100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: \"100%\" },\n { opacity: 1, translate: \"0\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"drawer.hideStart\", {\n keyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"-100%\" }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: \"0\" },\n { opacity: 0, translate: \"100%\" }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\n// Deny close\nsetDefaultAnimation(\"drawer.denyClose\", {\n keyframes: [{ scale: 1 }, { scale: 1.01 }, { scale: 1 }],\n options: { duration: 250 }\n});\n// Overlay\nsetDefaultAnimation(\"drawer.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\nsetDefaultAnimation(\"drawer.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n\nexport { SgdsDrawer, SgdsDrawer as default };\n//# sourceMappingURL=sgds-drawer.js.map\n","import { SgdsDrawer } from './sgds-drawer.js';\n\ncustomElements.define(\"sgds-drawer\", SgdsDrawer);\n//# sourceMappingURL=index.js.map\n","import { __decorate } from 'tslib';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { html } from 'lit';\nimport { property, queryAsync } from 'lit/decorators.js';\nimport { ref } from 'lit/directives/ref.js';\nimport { DropdownElement } from '../../base/dropdown-element.js';\nimport { SgdsButton } from '../Button/sgds-button.js';\nimport { DropdownListElement } from '../../base/dropdown-list-element.js';\nimport genId from '../../utils/generateId.js';\n\n/**\n * @summary `SgdsDropdown` toggles contextual overlays for displaying lists of links.\n * @slot default - slot for sgds-dropdown-item passed into dropdown's menu\n *\n * @csspart menu - The dropdown's menu (ul element)\n */\nclass SgdsDropdown extends ScopedElementsMixin(DropdownListElement) {\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-button\": SgdsButton\n };\n }\n constructor() {\n super();\n this.togglerId = genId(\"dropdown\", \"button\");\n /** Sets the text content of Dropdown button */\n this.togglerText = \"\";\n /** Controls auto-flipping of menu */\n this.noFlip = false;\n /** When true, aligns right edge of menu with right edge of button */\n this.menuAlignRight = false;\n /** The drop position of menu relative to the toggle button */\n this.drop = \"down\";\n /** Sets color of Dropdown button */\n this.variant = \"secondary\";\n /**@internal */\n this.modifierOpt = [\n {\n name: \"offset\",\n options: {\n offset: [0, 10]\n }\n }\n ];\n }\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n await this.dropdownRef;\n this.showMenu();\n }\n }\n render() {\n return html `\n
\n this.toggleMenu()}\n id=${this.togglerId}\n >\n ${this.togglerText}\n \n \n \n \n
    \n \n
\n
\n `;\n }\n}\nSgdsDropdown.styles = [DropdownElement.styles];\n__decorate([\n property({ type: String })\n /** Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n], SgdsDropdown.prototype, \"togglerId\", void 0);\n__decorate([\n property({ type: String })\n], SgdsDropdown.prototype, \"togglerText\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, state: false })\n], SgdsDropdown.prototype, \"noFlip\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true, state: false })\n], SgdsDropdown.prototype, \"menuAlignRight\", void 0);\n__decorate([\n property({ type: String, reflect: true, state: false })\n], SgdsDropdown.prototype, \"drop\", void 0);\n__decorate([\n property({ type: String })\n], SgdsDropdown.prototype, \"variant\", void 0);\n__decorate([\n queryAsync(\"sgds-button\")\n], SgdsDropdown.prototype, \"dropdownRef\", void 0);\n\nexport { SgdsDropdown, SgdsDropdown as default };\n//# sourceMappingURL=sgds-dropdown.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport SgdsElement from './sgds-element.js';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * @slot default - Default slot for SgdsMainnavItem anchor element\n */\nclass LinkElement extends SgdsElement {\n constructor() {\n super(...arguments);\n /** when true, sets the active stylings of .nav-link */\n this.active = false;\n /** Href attribute for anchor element in SgdsMainnavItem */\n this.href = \"\";\n /** Disables the SgdsMainnavItem */\n this.disabled = false;\n /** Where to display the linked URL, as the name for a browsing context. Forwards to the HTMLAnchor target attribute */\n this.target = \"_self\";\n }\n render() {\n return html `\n
  • \n \n
  • \n `;\n }\n}\nLinkElement.styles = SgdsElement.styles;\n__decorate([\n property({ type: Boolean })\n], LinkElement.prototype, \"active\", void 0);\n__decorate([\n property({ type: String })\n], LinkElement.prototype, \"href\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], LinkElement.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], LinkElement.prototype, \"target\", void 0);\n\nexport { LinkElement as default };\n//# sourceMappingURL=link-element.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport LinkElement from '../../base/link-element.js';\n\n/**\n * @summary `SgdsDropdownItem` are navigation links built with `HTMLAnchorElement`. It should be used in the default slot of `SgdsDropdown`\n */\nclass SgdsDropdownItem extends LinkElement {\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Enter\") {\n this.anchor.click();\n }\n });\n }\n render() {\n return html `\n
  • \n \n
  • \n `;\n }\n}\nSgdsDropdownItem.styles = [LinkElement.styles];\n__decorate([\n query(\"a\")\n], SgdsDropdownItem.prototype, \"anchor\", void 0);\n\nexport { SgdsDropdownItem, SgdsDropdownItem as default };\n//# sourceMappingURL=sgds-dropdown-item.js.map\n","import { SgdsDropdown } from './sgds-dropdown.js';\nimport { SgdsDropdownItem } from './sgds-dropdown-item.js';\n\ncustomElements.define(\"sgds-dropdown\", SgdsDropdown);\ncustomElements.define(\"sgds-dropdown-item\", SgdsDropdownItem);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--fileupload-left-icon-fill:green;--fileupload-remove-icon-fill:red;--fileupload-remove-icon-hover-fill:#c00}.fileupload-list-item span{cursor:pointer}.fileupload-list-item span:first-of-type svg{fill:var(--fileupload-left-icon-fill)}.fileupload-list-item span:last-of-type svg{fill:var(--fileupload-remove-icon-fill)}.fileupload-list-item span:last-of-type svg:hover{fill:var(--fileupload-remove-icon-hover-fill)}.file-upload__label{align-items:center;display:flex;gap:.5rem}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-file-upload2.js.map\n","import { __decorate } from 'tslib';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { SgdsButton } from '../Button/sgds-button.js';\nimport css_248z from './sgds-file-upload2.js';\nimport genId from '../../utils/generateId.js';\n\n/**\n * @summary Allows users to upload files of various sizes and formats\n * @slot default - Label for file upload button\n *\n * @event sgds-files-selected - Emitted when files are selected for uploading\n *\n * @cssproperty --fileupload-file-icon-fill - Left icon fill color\n * @cssproperty --fileupload-remove-icon-fill - Remove icon fill color\n * @cssproperty --fileupload-remove-icon-hover-fill - Remove icon mouse over fill color\n *\n */\nclass SgdsFileUpload extends ScopedElementsMixin(SgdsElement) {\n constructor() {\n super(...arguments);\n /** The button's variant. */\n this.variant = \"primary\";\n // /** Sets a unique id to the file input, required. */\n // @property({ type: String }) controlId = \"\";\n //** Disable the fileuploader button */\n this.disabled = false;\n /** Allows multiple files to be listed for uploading */\n this.multiple = false;\n /** Specify the acceptable file type */\n this.accept = \"\";\n /** Customize the check icon with SVG */\n this.checkedIcon = \"\";\n /** Customize the cancel icon with SVG */\n this.cancelIcon = \"\";\n /** @internal */\n this.selectedFiles = [];\n // Create a ref to the input element\n /** @internal */\n this.inputRef = createRef();\n /**@internal */\n this.inputId = genId(\"input\", \"file\");\n }\n /**@internal */\n static get scopedElements() {\n return {\n \"sgds-button\": SgdsButton\n };\n }\n setFileList(files) {\n this.files = files;\n this.emit(\"sgds-files-selected\");\n //Possible to pass in the files\n }\n /** @internal */\n handleClick(event) {\n event.preventDefault();\n if (!this.disabled) {\n // Get a reference to the input element using the inputRef\n const inputElement = this.inputRef.value;\n // Do something with the input element\n inputElement.click();\n }\n }\n /** @internal */\n handleInputChange(event) {\n const inputElement = event.target;\n const files = inputElement.files;\n if (files.length > 0) {\n this.selectedFiles = Array.from(files);\n }\n // Trigger a re-render of the component to update the list of selected files\n this.setFileList(files);\n this.requestUpdate();\n }\n /** @internal */\n removeFileHandler(index) {\n const inputElement = this.inputRef.value;\n const attachments = inputElement.files;\n const fileBuffer = new DataTransfer();\n for (let i = 0; i < attachments.length; i++) {\n if (index !== i)\n fileBuffer.items.add(attachments[i]);\n }\n // Assign buffer to file input\n inputElement.files = fileBuffer.files;\n // Re-populate selected files to the lists\n this.setFileList(fileBuffer.files);\n this.selectedFiles = Array.from(fileBuffer.files);\n // Trigger a re-render of the component to update the list of selected files\n this.requestUpdate();\n }\n render() {\n const getCheckedIcon = (checkedIcon) => {\n if (checkedIcon) {\n return html `${unsafeSVG(checkedIcon)}`;\n }\n return html ` \n \n `;\n };\n const getCancelIcon = (cancelIcon) => {\n if (cancelIcon) {\n return html `${unsafeSVG(cancelIcon)}`;\n }\n return html `\n \n \n `;\n };\n const listItems = this.selectedFiles.map((file, index) => html `\n
  • \n ${getCheckedIcon(this.checkedIcon)}\n ${file.name}\n this.removeFileHandler(index)}>${getCancelIcon(this.cancelIcon)}\n
  • \n `);\n return html `\n \n \n \n \n\n
      \n ${listItems}\n
    \n `;\n }\n}\nSgdsFileUpload.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ reflect: true })\n], SgdsFileUpload.prototype, \"variant\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsFileUpload.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsFileUpload.prototype, \"multiple\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsFileUpload.prototype, \"accept\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsFileUpload.prototype, \"size\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFileUpload.prototype, \"checkedIcon\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFileUpload.prototype, \"cancelIcon\", void 0);\n__decorate([\n property({ type: Object, state: true })\n], SgdsFileUpload.prototype, \"files\", void 0);\n__decorate([\n property({ type: Array })\n], SgdsFileUpload.prototype, \"selectedFiles\", void 0);\n\nexport { SgdsFileUpload, SgdsFileUpload as default };\n//# sourceMappingURL=sgds-file-upload.js.map\n","import { SgdsFileUpload } from './sgds-file-upload.js';\n\ncustomElements.define(\"sgds-file-upload\", SgdsFileUpload);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-footer2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-footer2.js';\n\n/**\n * @summary The footer contains supporting information for your service at the bottom of your website. All .gov.sg digital services shall contain a Global Footer Bar across all pages. The Global Footer Bar should include the name of the digital service, contact information, a privacy statement and the terms of use.\n *\n * @csspart footer-top - The component's footer-top section container.\n * @csspart footer-bottom - The component's footer-bottom section container.\n *\n * @cssproperty footer-top - The component's footer-top section container.\n * @cssproperty footer-bottom - The component's footer-bottom section container.\n */\nclass SgdsFooter extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * \tSets title of SgdsFooter\n */\n this.title = \"\";\n /**\n * \tSets description of SgdsFooter\n */\n this.description = \"\";\n /**\n * \tSets copyrightLiner of SgdsFooter\n */\n this.copyrightLiner = \"Government of Singapore\";\n /**\n * Array of type\n *\n * `interface ColumnLinks { title: string; links : Links[] } interface Links { href: string; label: string; }`\n */\n this.links = [];\n /**\n * String date for last updated date\n */\n this.lastUpdatedDate = \"\";\n /**\n * \thref link for contacts\n */\n this.contactHref = \"#\";\n /**\n * \thref link for feedback\n */\n this.feedbackHref = \"#\";\n /**\n * \thref link for privacy statement\n */\n this.privacyHref = \"#\";\n /**\n * \thref link for terms of use\n */\n this.termsOfUseHref = \"#\";\n }\n render() {\n // if description is defined\n const hasDescription = html `
    ${this.description}
    `;\n return html `\n
    \n
    \n
    \n
    \n
    \n
    ${this.title ? this.title : \"Footer title\"}
    \n ${this.description ? hasDescription : undefined}\n
    \n
    \n
    \n ${this.links.map((item) => html `\n
    \n
    ${item.title}
    \n \n
    \n `)}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n © ${new Date().getFullYear()} ${this.copyrightLiner}
    \n Last Updated ${this.lastUpdatedDate}\n
    \n
    \n
    \n
    \n
    \n
    \n `;\n }\n}\nSgdsFooter.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"title\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"description\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"copyrightLiner\", void 0);\n__decorate([\n property({\n type: Array\n })\n], SgdsFooter.prototype, \"links\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"lastUpdatedDate\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"contactHref\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"feedbackHref\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"privacyHref\", void 0);\n__decorate([\n property({ type: String })\n], SgdsFooter.prototype, \"termsOfUseHref\", void 0);\n\nexport { SgdsFooter, SgdsFooter as default };\n//# sourceMappingURL=sgds-footer.js.map\n","import { SgdsFooter } from './sgds-footer.js';\n\ncustomElements.define(\"sgds-footer\", SgdsFooter);\n//# sourceMappingURL=index.js.map\n","import { SgdsInput } from './sgds-input.js';\n\ncustomElements.define(\"sgds-input\", SgdsInput);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--mainnav-background-color:#fff;--mainnav-padding-x:1rem;--mainnav-padding-y:0;--mainnav-mobile-padding-x:0.5rem;--mainnav-mobile-padding-y:0;--mainnav-borderBottom-width:1px;--mainnav-borderBottom-color:#98a2b3}.sgds.navbar{background-color:var(--mainnav-background-color);border-bottom:var(--mainnav-borderBottom-width) solid var(--mainnav-borderBottom-color);padding:var(--mainnav-padding-y) var(--mainnav-padding-x)}@media (max-width:768px){.sgds.navbar{padding:var(--mainnav-mobile-padding-y) var(--mainnav-mobile-padding-x)}}.navbar-nav{display:flex;gap:1rem;height:100%;padding-left:1rem;padding-right:1rem;width:100%}.navbar-toggler{border:none}.navbar-toggler:focus{box-shadow:none}slot[name=non-collapsible]{align-items:center;display:flex;gap:1rem}.slot-end{align-items:stretch;display:flex;gap:1rem;margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-mainnav2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { stopAnimations, animateTo, shimKeyframesHeightAuto } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { SM_BREAKPOINT, MD_BREAKPOINT, LG_BREAKPOINT, XL_BREAKPOINT, XXL_BREAKPOINT } from '../../utils/breakpoints.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-mainnav2.js';\n\nconst SIZES = {\n sm: SM_BREAKPOINT,\n md: MD_BREAKPOINT,\n lg: LG_BREAKPOINT,\n xl: XL_BREAKPOINT,\n XXL: XXL_BREAKPOINT,\n never: Infinity,\n always: -1\n};\n/**\n * @summary This component is the primary means that your users will use to navigate through your portal. It includes horizontal navigation and branding to identify your site.\n *\n * @event sgds-show - Emitted on show. Only for collapsed menu.\n * @event sgds-after-show - Emitted on show after animation has completed. Only for collapsed menu.\n * @event sgds-hide - Emitted on hide. Only for collapsed menu.\n * @event sgds-after-hide - Emitted on hide after animation has completed. Only for collapsed menu.\n *\n * @slot - Default slot of SgdsMainnav. Pass in SgdsMainnavItem elements here.\n * @slot end - Elements in this slot will be positioned to the right end of .navbar-nav. Elements in this slot will also be included in collapsed menu.\n * @slot brand - Brand slot of SgdsMainnav. Pass in brand logo img here\n * @slot non-collapsible - Elements in this slot will not be collapsed\n *\n * @cssproperty --mainnav-background-color - Navbar's background color.\n * @cssproperty --mainnav-padding-x - left and right padding for browser width > 768px\n * @cssproperty --mainnav-padding-y - top and bottom padding for browser width > 768px\n * @cssproperty --mainnav-mobile-padding-x - left and right padding for browser width < 768px\n * @cssproperty --mainnav-mobile-padding-y - top and bottom padding for browser width < 768px\n * @cssproperty --mainnav-borderBottom-width - bottom border width\n * @cssproperty --mainnav-borderBottom-color - borderBottom width color\n */\nclass SgdsMainnav extends SgdsElement {\n constructor() {\n super();\n /** The href link for brand logo */\n this.brandHref = \"\";\n this.collapseId = genId(\"mainnav\", \"collapse\");\n /** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */\n this.expand = \"lg\";\n /** @internal */\n this.breakpointReached = false;\n /** @internal */\n this.expanded = false;\n window.addEventListener(\"resize\", () => {\n const newBreakpointReachedValue = window.innerWidth < SIZES[this.expand];\n if (newBreakpointReachedValue !== this.breakpointReached) {\n this.requestUpdate();\n }\n else {\n this.body ? (this.body.hidden = true) : null;\n this.expanded = false;\n }\n });\n }\n firstUpdated() {\n if (this.breakpointReached && this.body) {\n this.expanded = false;\n this.body.hidden = true;\n }\n }\n handleSummaryClick() {\n if (this.expanded) {\n this.hide();\n }\n else {\n this.show();\n }\n this.header.focus();\n }\n async _animateToShow() {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.expanded = false;\n return;\n }\n await stopAnimations(this.body);\n this.body.hidden = false;\n const { keyframes, options } = getAnimation(this, \"mainnav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n this.emit(\"sgds-after-show\");\n }\n async _animateToHide() {\n const slHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (slHide.defaultPrevented) {\n this.expanded = true;\n return;\n }\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, \"mainnav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n this.emit(\"sgds-after-hide\");\n }\n async handleOpenChange() {\n if (this.expanded) {\n // Show\n this._animateToShow();\n }\n else {\n // Hide\n this._animateToHide();\n }\n }\n /** Shows the menu. For when mainnav is in the collapsed form */\n async show() {\n if (this.expanded) {\n return;\n }\n this.expanded = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hide the menu. For when mainnav is in the collapsed form */\n async hide() {\n if (!this.expanded) {\n return;\n }\n this.expanded = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n // assigning name attribute to elements added in slot=\"end\", to use wildcard css selector to assign styles only to *-mainnav-item\n _handleSlotChange(e) {\n const childElements = e.target.assignedElements({ flatten: true });\n childElements.forEach(e => {\n e.setAttribute(\"name\", e.tagName.toLowerCase());\n });\n }\n render() {\n this.breakpointReached = window.innerWidth < SIZES[this.expand];\n const collapseClass = \"navbar-body navbar-collapse order-2\";\n return html `\n \n \n \n \n \n \n \n \n \n \n
    \n
      \n \n \n
    \n
    \n \n `;\n }\n _expandClass() {\n switch (this.expand) {\n case \"always\":\n return \"navbar-expand\";\n case \"never\":\n break;\n default:\n return `navbar-expand-${this.expand}`;\n }\n }\n}\nSgdsMainnav.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".navbar-toggler\")\n], SgdsMainnav.prototype, \"header\", void 0);\n__decorate([\n query(\".navbar-body\")\n], SgdsMainnav.prototype, \"body\", void 0);\n__decorate([\n property({ type: String })\n], SgdsMainnav.prototype, \"brandHref\", void 0);\n__decorate([\n property({ type: String })\n], SgdsMainnav.prototype, \"expand\", void 0);\n__decorate([\n state()\n], SgdsMainnav.prototype, \"breakpointReached\", void 0);\n__decorate([\n state()\n], SgdsMainnav.prototype, \"expanded\", void 0);\n__decorate([\n watch(\"expanded\", { waitUntilFirstUpdate: true })\n], SgdsMainnav.prototype, \"handleOpenChange\", null);\nsetDefaultAnimation(\"mainnav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nsetDefaultAnimation(\"mainnav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nexport { SgdsMainnav, SgdsMainnav as default };\n//# sourceMappingURL=sgds-mainnav.js.map\n","const LG_BREAKPOINT = 992;\nconst MD_BREAKPOINT = 768;\nconst SM_BREAKPOINT = 576;\nconst XL_BREAKPOINT = 1200;\nconst XXL_BREAKPOINT = 1400;\n\nexport { LG_BREAKPOINT, MD_BREAKPOINT, SM_BREAKPOINT, XL_BREAKPOINT, XXL_BREAKPOINT };\n//# sourceMappingURL=breakpoints.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--mainnav-item-theme-color:#5925dc;--mainnav-item-color:#344054;--mainnav-item-borderBottom-width:0.125rem}li{height:100%}a.nav-link{align-items:center;border-bottom:var(--mainnav-item-borderBottom-width) solid transparent;color:var(--mainnav-item-color);display:flex;min-height:100%}.nav-link.active,.nav-link.show,a.nav-link.active,a.nav-link:hover{border-color:var(--mainnav-item-theme-color);color:var(--mainnav-item-theme-color)}.nav-link{gap:1rem}.dropdown-menu{background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:0 0 5px 5px;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);margin-top:0}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-mainnav-dropdown2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { queryAsync, property } from 'lit/decorators.js';\nimport { ref } from 'lit/directives/ref.js';\nimport { DropdownElement } from '../../base/dropdown-element.js';\nimport css_248z from './sgds-mainnav-dropdown2.js';\nimport { DropdownListElement } from '../../base/dropdown-list-element.js';\nimport genId from '../../utils/generateId.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * @slot default - The menu items. Pass in sgds-dropdown-item as the menu items\n * @slot toggler - The content of the toggler to pass in html content. `togglerText` property takes precedence over this slot when both are defined.\n */\nclass SgdsMainnavDropdown extends DropdownListElement {\n constructor() {\n super(...arguments);\n /** @internal Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n this.togglerId = genId(\"dropdown\", \"button\");\n /** Sets the text content of Dropdown button */\n this.togglerText = \"\";\n /** When true, applies active styles on the dropdown button */\n this.active = false;\n }\n async firstUpdated() {\n super.firstUpdated();\n if (this.menuIsOpen) {\n await this.dropdownRef;\n this.showMenu();\n }\n }\n render() {\n return html `\n
  • \n this.toggleMenu()}\n id=${this.togglerId}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n >\n ${this.togglerText ? this.togglerText : html ``}\n \n \n \n \n
      \n \n
    \n
  • \n `;\n }\n}\nSgdsMainnavDropdown.styles = [DropdownElement.styles, css_248z];\n__decorate([\n queryAsync(\"a\")\n], SgdsMainnavDropdown.prototype, \"dropdownRef\", void 0);\n__decorate([\n property({ type: String })\n], SgdsMainnavDropdown.prototype, \"togglerText\", void 0);\n__decorate([\n property({ type: Boolean })\n], SgdsMainnavDropdown.prototype, \"active\", void 0);\n\nexport { SgdsMainnavDropdown, SgdsMainnavDropdown as default };\n//# sourceMappingURL=sgds-mainnav-dropdown.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--mainnav-item-theme-color:#5925dc;--mainnav-item-color:#344054;--mainnav-item-borderBottom-width:0.125rem}li{height:100%}a.nav-link{align-items:center;border-bottom:var(--mainnav-item-borderBottom-width) solid transparent;color:var(--mainnav-item-color);display:flex;min-height:100%}a.nav-link.active,a.nav-link:hover{border-color:var(--mainnav-item-theme-color);color:var(--mainnav-item-theme-color)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-mainnav-item2.js.map\n","import LinkElement from '../../base/link-element.js';\nimport css_248z from './sgds-mainnav-item2.js';\n\n/**\n * @slot default - slot for SgdsMainnavItem element.\n *\n * @cssproperty --mainnav-item-theme-color - Hover and active color for mainnav items.\n * @cssproperty --mainnav-item-color - Text color of nav item.\n * @cssproperty --mainnav-item-borderBottom-width - border bottom width for hover and active state for nav item\n */\nclass SgdsMainnavItem extends LinkElement {\n}\nSgdsMainnavItem.styles = [LinkElement.styles, css_248z];\n\nexport { SgdsMainnavItem, SgdsMainnavItem as default };\n//# sourceMappingURL=sgds-mainnav-item.js.map\n","import { SgdsMainnav } from './sgds-mainnav.js';\nimport { SgdsMainnavDropdown } from './sgds-mainnav-dropdown.js';\nimport { SgdsMainnavItem } from './sgds-mainnav-item.js';\n\ncustomElements.define(\"sgds-mainnav\", SgdsMainnav);\ncustomElements.define(\"sgds-mainnav-dropdown\", SgdsMainnavDropdown);\ncustomElements.define(\"sgds-mainnav-item\", SgdsMainnavItem);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--masthead-font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,\"Noto Sans\",\"Liberation Sans\",sans-serif;--masthead-text-color:#474747;--masthead-link-color:#2f5fd0;--masthead-link-color-hover:#4371d6;--masthead-mobile-font-size:0.6875rem;--masthead-mobile-padding-x:0.75rem;--masthead-fluid-padding-x:0.75rem;--masthead-crest-color:#ef3320}.sgds-masthead{background-color:#f0f0f0;color:var(--masthead-text-color);font-family:var(--masthead-font-family);font-size:.875rem}@media screen and (max-width:1023px){.sgds-masthead{font-size:var(--masthead-mobile-font-size)}.sgds-masthead .col,.sgds-masthead .row{padding-left:0;padding-right:0}.sgds-masthead .row{margin-left:0;margin-right:0}}.sg-crest{height:1.75rem;width:1.25rem}.sg-crest path{fill:var(--masthead-crest-color)}.masthead-layout{align-items:center;display:flex;gap:.25rem}.sgds-masthead-identify-icon{align-self:center;display:block;height:21px;transform:rotate(180deg);transition:all .3s ease-in-out 0s;user-select:none;width:12px}.sgds-masthead-identify-icon.show{transform:rotate(0deg)}.sgds-masthead-button{align-items:center;color:var(--masthead-link-color);cursor:pointer;display:flex}.sgds-masthead-button-text{text-decoration:underline}.sgds-masthead-button-text:hover{color:var(--masthead-link-color-hover)}.sgds-masthead-content{display:none;padding-bottom:3rem;padding-top:2.5rem}@media screen and (max-width:1023px){.sgds-masthead-content{padding-bottom:2rem;padding-top:1rem}}.sgds-masthead-content .content-grid{display:grid;gap:10rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}@media screen and (max-width:1023px){.sgds-masthead-content .content-grid{gap:1.5rem;grid-template-columns:1fr}.sgds-masthead-content .content-grid .banner-icon-inline{height:.6rem;margin-bottom:.1875rem;width:.6rem}}.sgds-masthead-content .content-grid .icon{margin-top:-.1em}.sgds-masthead-content .wrapper{display:flex;font-size:1rem;gap:1rem}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper{font-size:var(--masthead-mobile-font-size);gap:.5rem}}.sgds-masthead-content .wrapper .content .title{font-weight:600;margin-bottom:.5rem}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper .content .title{margin-bottom:.25rem}}.sgds-masthead-content .wrapper .content article{line-height:1.5rem}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper .content article{line-height:1.2rem}}.sgds-masthead-content .wrapper .banner-icon{width:1.125rem}.sgds-masthead-content .wrapper .banner-icon path{fill:var(--masthead-text-color)}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper .banner-icon{width:.75rem}}.sgds-masthead-content .wrapper .banner-icon svg{line-height:1.5rem}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper .banner-icon svg{width:1.25rem}}.sgds-masthead-content .wrapper .banner-icon-inline path{fill:var(--masthead-text-color)}@media screen and (max-width:1023px){.sgds-masthead-content .wrapper .banner-icon-inline{height:.6rem;margin-bottom:.1875rem;width:.6rem}}.sgds-masthead-content.show{display:block}a[target=_blank]{text-decoration:none}a[target=_blank]:after{content:none}a.trusted-websites-link{align-items:center;color:var(--masthead-link-color);display:inline-flex;margin-left:.125rem}a.trusted-websites-link svg{fill:var(--masthead-link-color);margin-left:.125rem}a.trusted-websites-link:hover{color:var(--masthead-link-color-hover)}a.trusted-websites-link:hover svg{fill:var(--masthead-link-color-hover)}@media screen and (max-width:1023px){.trusted-websites-icon{width:.75rem}.sgds-masthead>.container{padding-left:var(--masthead-mobile-padding-x);padding-right:var(--masthead-mobile-padding-x)}}.sgds-masthead>.container-fluid{padding-left:var(--masthead-fluid-padding-x);padding-right:var(--masthead-fluid-padding-x)}@media screen and (max-width:1023px){.sgds-masthead>.container-fluid{padding-left:var(--masthead-mobile-padding-x);padding-right:var(--masthead-mobile-padding-x)}.sgds-masthead:not([fluid]) .container{margin:0}}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-masthead2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-masthead2.js';\n\n/**\n * @summary All .gov.sg digital services shall adopt The Official Government Banner for every page in the digital service and be placed at the top of the page.\n *\n * @cssproperty --masthead-font-family - Sets font family for masthead\n * @cssproperty --masthead-text-color - Sets overall text color\n * @cssproperty --masthead-link-color - Sets link color for `How to identify?` and `Trusted Site`\n * @cssproperty --masthead-link-color-hover - Sets link hover color for `How to identify?` and `Trusted Site`\n * @cssproperty --masthead-mobile-font-size - Sets the padding left and right for viewport width 1024px and below\n * @cssproperty --masthead-mobile-padding-x - Sets the font size for viewport width 1024px and below\n * @cssproperty --masthead-fluid-padding-x - Sets the container-fluid padding left and right for viewport width 1024px and above\n * @cssproperty --masthead-crest-color - Sets the lion head crest color.\n */\nclass SgdsMasthead extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * Sets the masthead container width to 100% for all breakpoints\n */\n this.fluid = false;\n /** @internal */\n this.toggleVisibility = false;\n }\n /** @internal */\n _toggleVisibility() {\n this.toggleVisibility = !this.toggleVisibility;\n }\n render() {\n return html `\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n A Singapore Government Agency Website\n this._toggleVisibility()}\n >\n How to identify\n \n \n \n
    \n
    \n
    \n
    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    Official website links end with .gov.sg
    \n
    \n Government agencies communicate via .gov.sg websites (e.g. go.gov.sg/open).Trusted websites\n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    Secure websites use HTTPS
    \n
    \n Look for a lock (\n ) or https:// as an added precaution. Share sensitive information only on official, secure\n websites.\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n `;\n }\n}\nSgdsMasthead.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsMasthead.prototype, \"fluid\", void 0);\n__decorate([\n state()\n], SgdsMasthead.prototype, \"toggleVisibility\", void 0);\n\nexport { SgdsMasthead, SgdsMasthead as default };\n//# sourceMappingURL=sgds-masthead.js.map\n","/** Determines if the specified element is tabbable using heuristics inspired by https://github.com/focus-trap/tabbable */\nfunction isTabbable(el) {\n const tag = el.tagName.toLowerCase();\n // Elements with a -1 tab index are not tabbable\n if (el.getAttribute(\"tabindex\") === \"-1\") {\n return false;\n }\n // Elements with a disabled attribute are not tabbable\n if (el.hasAttribute(\"disabled\")) {\n return false;\n }\n // Elements with aria-disabled are not tabbable\n if (el.hasAttribute(\"aria-disabled\") && el.getAttribute(\"aria-disabled\") !== \"false\") {\n return false;\n }\n // Radios without a checked attribute are not tabbable\n if (tag === \"input\" && el.getAttribute(\"type\") === \"radio\" && !el.hasAttribute(\"checked\")) {\n return false;\n }\n // Elements that are hidden have no offsetParent and are not tabbable\n if (el.offsetParent === null) {\n return false;\n }\n // Elements without visibility are not tabbable\n if (window.getComputedStyle(el).visibility === \"hidden\") {\n return false;\n }\n // Audio and video elements with the controls attribute are tabbable\n if ((tag === \"audio\" || tag === \"video\") && el.hasAttribute(\"controls\")) {\n return true;\n }\n // Elements with a tabindex other than -1 are tabbable\n if (el.hasAttribute(\"tabindex\")) {\n return true;\n }\n // Elements with a contenteditable attribute are tabbable\n if (el.hasAttribute(\"contenteditable\") && el.getAttribute(\"contenteditable\") !== \"false\") {\n return true;\n }\n // At this point, the following elements are considered tabbable\n return [\"button\", \"input\", \"select\", \"textarea\", \"a\", \"audio\", \"video\", \"summary\"].includes(tag);\n}\n/**\n * Returns the first and last bounding elements that are tabbable. This is more performant than checking every single\n * element because it short-circuits after finding the first and last ones.\n */\nfunction getTabbableBoundary(root) {\n var _a, _b;\n const allElements = [];\n function walk(el) {\n if (el instanceof HTMLElement) {\n allElements.push(el);\n if (el.shadowRoot !== null && el.shadowRoot.mode === \"open\") {\n walk(el.shadowRoot);\n }\n }\n [...el.children].forEach((e) => walk(e));\n }\n // Collect all elements including the root\n walk(root);\n // Find the first and last tabbable elements\n const start = (_a = allElements.find(el => isTabbable(el))) !== null && _a !== void 0 ? _a : null;\n const end = (_b = allElements.reverse().find(el => isTabbable(el))) !== null && _b !== void 0 ? _b : null;\n return { start, end };\n}\n\nexport { getTabbableBoundary };\n//# sourceMappingURL=tabbable.js.map\n","import { SgdsMasthead } from './sgds-masthead.js';\n\ncustomElements.define(\"sgds-masthead\", SgdsMasthead);\n//# sourceMappingURL=index.js.map\n","import { getTabbableBoundary } from './tabbable.js';\n\nlet activeModals = [];\nclass Modal {\n constructor(element) {\n this.tabDirection = \"forward\";\n this.element = element;\n this.handleFocusIn = this.handleFocusIn.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n activate() {\n activeModals.push(this.element);\n document.addEventListener(\"focusin\", this.handleFocusIn);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n document.addEventListener(\"keyup\", this.handleKeyUp);\n }\n deactivate() {\n activeModals = activeModals.filter(modal => modal !== this.element);\n document.removeEventListener(\"focusin\", this.handleFocusIn);\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n document.removeEventListener(\"keyup\", this.handleKeyUp);\n }\n isActive() {\n // The \"active\" modal is always the most recent one shown\n return activeModals[activeModals.length - 1] === this.element;\n }\n checkFocus() {\n if (this.isActive()) {\n if (!this.element.matches(\":focus-within\")) {\n const { start, end } = getTabbableBoundary(this.element);\n const target = this.tabDirection === \"forward\" ? start : end;\n if (typeof (target === null || target === void 0 ? void 0 : target.focus) === \"function\") {\n target.focus({ preventScroll: true });\n }\n }\n }\n }\n handleFocusIn() {\n this.checkFocus();\n }\n handleKeyDown(event) {\n if (event.key === \"Tab\" && event.shiftKey) {\n this.tabDirection = \"backward\";\n // Ensure focus remains trapped after the key is pressed\n requestAnimationFrame(() => this.checkFocus());\n }\n }\n handleKeyUp() {\n this.tabDirection = \"forward\";\n }\n}\n\nexport { Modal as default };\n//# sourceMappingURL=modal.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--modal-padding:1.5rem;--modal-panel-z-index:var(--zindex-modal);--modal-panel-width:35rem;--modal-panel-height:auto;--modal-panel-background-color:#fff;--modal-panel-border-radius:5px;--modal-header-bottom-border-line-width:1px;--modal-overlay-background-color:var(--overlay-background-color);display:contents}[hidden]{display:none!important}.modal{align-items:start;bottom:0;display:flex;font-family:var(--sgds-body-font-family);justify-content:center;left:0;padding-top:1.75rem;position:fixed;right:0;top:0;z-index:var(--zindex-modal)}.modal.centered{align-items:center;padding-top:0}.modal-panel{background-color:var(--modal-panel-background-color);border-radius:var(--modal-panel-border-radius);display:flex;flex-direction:column;height:var(--modal-panel-height);max-height:calc(100% - 2.25rem);max-width:calc(100% - 2.25rem);width:var(--modal-panel-width);z-index:var(--modal-panel-z-index)}.modal-panel:focus{outline:none}@media screen and (max-width:420px){.modal-panel{max-height:80vh}}.modal--open .modal-panel{display:flex;opacity:1;transform:none}.modal-header{align-items:center;border-bottom:var(--modal-header-bottom-border-line-width) solid var(--sgds-gray-400,#98a2b3);display:flex;flex:0 0 auto;font-size:calc(1.275rem + .3vw);font-weight:700;line-height:1.33;margin-bottom:.5rem;margin-top:0;padding:var(--modal-padding)}.modal-header.centered{border-bottom:0;margin-bottom:0;padding-bottom:0}.modal-title{align-items:center;display:flex;flex:1 1 auto;gap:1rem}.modal-title.centered{flex-direction:column;justify-content:center;margin-left:3rem;text-align:center}.modal-close{align-items:center;display:flex;flex:0 0 auto}.modal-close.centered{align-self:flex-start;margin-top:-.5rem}.modal-body{-webkit-overflow-scrolling:touch;flex:1 1 auto;overflow:auto;padding:var(--modal-padding)}.modal-body.centered{text-align:center}.modal-footer{flex:0 0 auto;padding:var(--modal-padding);padding-top:0;text-align:right}.modal-footer.centered{justify-content:center;text-align:center}.modal-footer ::slotted(sgds-button){margin-inline-start:.5rem}.modal:not(.modal--has-footer) .modal-footer{display:none}.modal-overlay{background-color:var(--modal-overlay-background-color);bottom:0;left:0;position:fixed;right:0;top:0}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-modal2.js.map\n","import { __decorate } from 'tslib';\nimport { html, nothing } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { animateTo, stopAnimations } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport Modal from '../../utils/modal.js';\nimport { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll.js';\nimport { HasSlotController } from '../../utils/slot.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-modal2.js';\n\n/**\n * @summary The modal component inform users about a specific task and may contain critical information which users then have to make a decision.\n *\n * @slot default - The content of the Modal's body.\n * @slot footer - The content of the Modal's footer, typically used to pass in buttons for call to action.\n *\n * @event sgds-close - Emitted when the modal is called to close via mouseclick of close button, overlay or via keyboard esc key\n * @event sgds-show - Emitted when the modal opens\n * @event sgds-hide - Emitted when the modal closes\n * @event sgds-after-show - Emitted after modal opens and the animations has completed\n * @event sgds-after-hide - Emitted after modal closes and the animations has completed\n *\n * @csspart base - The component's base wrapper\n * @csspart overlay - The overlay that covers the screen behind the dialog\n * @csspart panel - The modal's dialog panel\n * @csspart header - The modal's header that wraps the title, titleIcon and close button\n * @csspart title - The h3 element wrapping title and titleIcon\n * @csspart body - The modal's body where the content lies\n * @csspart footers - The modal's footer\n *\n * @cssproperty --modal-padding - The general modal padding of modal component. Applied to body, footer and header.\n * @cssproperty --modal-panel-z-index - The z-index of modal panel\n * @cssproperty --modal-panel-width - The width of modal panel.\n * @cssproperty --modal-panel-height - The height of modal panel.\n * @cssproperty --modal-panel-background-color - The background color of modal panel\n * @cssproperty --modal-panel-border-radius - The border radius of modal panel\n * @cssproperty --modal-header-bottom-border-line-width - The line width of header's bottom border\n * @cssproperty --modal-overlay-background-color - The overlay's background color\n */\nclass SgdsModal extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.hasSlotController = new HasSlotController(this, \"footer\");\n /**Indicates whether or not the modal is open. You can use this in lieu of the show/hide methods. */\n this.open = false;\n // @property({ type: Boolean, reflect: true }) centeredAlignVariant = false;\n /**The modal's title as displayed in the header */\n this.title = \"\";\n /**The modal's icon as displayed in the header. Pass in SVG format icons as string directly */\n this.titleIcon = \"\";\n /** Disables the header. This will also remove the default close button */\n this.noHeader = false;\n /** Centers the modal vertically in page */\n this.centered = false;\n /** Centers the contents inside the modal */\n this.centeredAlignVariant = false;\n /** Removes the default animation when opening and closing of modal */\n this.noAnimation = false;\n /** Removes the close button from modal header */\n this.noCloseButton = false;\n }\n connectedCallback() {\n super.connectedCallback();\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.modal = new Modal(this);\n }\n firstUpdated() {\n this.dialog.hidden = !this.open;\n if (this.open) {\n this.addOpenListeners();\n this.modal.activate();\n lockBodyScrolling(this);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n unlockBodyScrolling(this);\n }\n /** Shows the dialog. */\n async show() {\n if (this.open) {\n return undefined;\n }\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hides the dialog */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n requestClose(source) {\n const sgdsRequestClose = this.emit(\"sgds-close\", {\n cancelable: true,\n detail: { source }\n });\n if (sgdsRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"modal.denyClose\");\n animateTo(this.panel, animation.keyframes);\n return;\n }\n this.hide();\n }\n addOpenListeners() {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n removeOpenListeners() {\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n handleDocumentKeyDown(event) {\n if (this.open && event.key === \"Escape\") {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n }\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit(\"sgds-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement;\n this.modal.activate();\n lockBodyScrolling(this);\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n this.dialog.hidden = false;\n const panelAnimation = getAnimation(this, \"modal.show\");\n const overlayAnimation = getAnimation(this, \"modal.overlay.show\");\n !this.noAnimation &&\n (await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]));\n this.emit(\"sgds-after-show\");\n // Add focus on modal heading after opening it\n this.heading.focus();\n }\n else {\n // Hide\n this.emit(\"sgds-hide\");\n this.removeOpenListeners();\n this.modal.deactivate();\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, \"modal.hide\");\n const overlayAnimation = getAnimation(this, \"modal.overlay.hide\");\n // Animate the overlay and the panel at the same time. Because animation durations might be different, we need to\n // hide each one individually when the animation finishes, otherwise the first one that finishes will reappear\n // unexpectedly. We'll unhide them after all animations have completed.\n !this.noAnimation &&\n (await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]));\n this.dialog.hidden = true;\n // Now that the dialog is hidden, restore the overlay and panel for next time\n this.overlay.hidden = false;\n this.panel.hidden = false;\n unlockBodyScrolling(this);\n // Restore focus to the original trigger\n const trigger = this.originalTrigger;\n if (typeof (trigger === null || trigger === void 0 ? void 0 : trigger.focus) === \"function\") {\n setTimeout(() => trigger.focus());\n }\n this.emit(\"sgds-after-hide\");\n }\n }\n render() {\n const withLabelIcon = html `${unsafeSVG(this.titleIcon)}`;\n return html `\n \n
    this.requestClose(\"overlay\")}>
    \n\n \n ${!this.noHeader\n ? html `\n \n \n ${this.titleIcon ? withLabelIcon : \"\"} ${this.title}\n \n ${this.noCloseButton\n ? nothing\n : html ` this.requestClose(\"close-button\")}\"\n aria-label=\"close modal\"\n >`}\n \n `\n : \"\"}\n\n \n \n \n\n \n \n \n \n \n `;\n }\n}\nSgdsModal.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".modal\")\n], SgdsModal.prototype, \"dialog\", void 0);\n__decorate([\n query(\".modal-panel\")\n], SgdsModal.prototype, \"panel\", void 0);\n__decorate([\n query(\".modal-overlay\")\n], SgdsModal.prototype, \"overlay\", void 0);\n__decorate([\n query(\".modal-title\")\n], SgdsModal.prototype, \"heading\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"open\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsModal.prototype, \"title\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsModal.prototype, \"titleIcon\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"noHeader\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"centered\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"centeredAlignVariant\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"noAnimation\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsModal.prototype, \"noCloseButton\", void 0);\n__decorate([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SgdsModal.prototype, \"handleOpenChange\", null);\nsetDefaultAnimation(\"modal.show\", {\n keyframes: [\n { opacity: 0, transform: \"scale(1) translate(0, -100%)\" },\n { opacity: 1, transform: \"scale(1) translate(0, 0%)\" }\n ],\n options: { duration: 400, easing: \"ease\" }\n});\nsetDefaultAnimation(\"modal.hide\", {\n keyframes: [\n { opacity: 1, transform: \"scale(1) translate(0, 0)\" },\n { opacity: 0, transform: \"scale(1) translate(0, -100%)\" }\n ],\n options: { duration: 400, easing: \"ease\" }\n});\nsetDefaultAnimation(\"modal.denyClose\", {\n keyframes: [{ transform: \"scale(1)\" }, { transform: \"scale(1.02)\" }, { transform: \"scale(1)\" }],\n options: { duration: 400 }\n});\nsetDefaultAnimation(\"modal.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 400 }\n});\nsetDefaultAnimation(\"modal.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 400 }\n});\n\nexport { SgdsModal, SgdsModal as default };\n//# sourceMappingURL=sgds-modal.js.map\n","import { SgdsModal } from './sgds-modal.js';\n\ncustomElements.define(\"sgds-modal\", SgdsModal);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--pagination-color:var(--sgds-info,#0f71bb);--pagination-bg-color:var(--sgds-white,#fff);--pagination-hover-bg-color:var(--sgds-gray-200,#e4e7ec);--pagination-hover-border-color:var(--sgds-gray-300,#d0d5dd);--pagination-active-color:var(--sgds-white,#fff);--pagination-active-bg-color:var(--sgds-info,#0f71bb);--pagination-disabled-color:var(--sgds-gray-600,#344054);--pagination-disabled-bg-color:var(--sgds-white,#fff)}ul.pagination.sgds li{cursor:pointer}ul.pagination.sgds li.disabled{cursor:default}ul.pagination.sgds li.page-item span.page-link{background-color:var(--pagination-bg-color);color:var(--pagination-color)}ul.pagination.sgds li.page-item span.page-link:hover{background-color:var(--pagination-hover-bg-color);border-color:var(--pagination-hover-border-color);color:var(--pagination-color)}ul.pagination.sgds li.page-item.disabled .page-link{background-color:var(--pagination-disabled-bg-color);color:var(--pagination-disabled-color)}ul.pagination.sgds li.page-item.active .page-link{background-color:var(--pagination-active-bg-color);color:var(--pagination-active-color)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-pagination2.js.map\n","import { __decorate } from 'tslib';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-pagination2.js';\nimport { watch } from '../../utils/watch.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * @summary The Pagination component enables the user to select a specific page from a range of pages\n *\n * @event sgds-page-change - Event is emitted when `handleNextButton`, `handlePrevButton`, `handleNextEllipsisButton` and `handlePrevEllipsisButton` was called.\n *\n * @cssproperty --pagination-color Sets the pagination color.
    Default value `--sgds-cyan`\n * @cssproperty --pagination-bg-color Sets the pagination background color.
    Default value `--sgds-white`\n * @cssproperty --pagination-hover-bg-color Sets the pagination hover state background color.
    Default value `--sgds-gray-200`\n * @cssproperty --pagination-hover-border-color Sets the pagination hover state border color.
    Default value `--sgds-gray-300`\n * @cssproperty --pagination-active-color Sets the pagination hover state color.
    Default value `--sgds-white`\n * @cssproperty --pagination-active-bg-color Sets the pagination active state background color.
    Default value `--sgds-cyan`\n * @cssproperty --pagination-disabled-color Sets the pagination disabled state color.
    Default value `--sgds-gray-600`\n * @cssproperty --pagination-disabled-bg-color Sets the pagination disabled state background color.
    Default value `--sgds-white`\n *\n *\n **/\nclass SgdsPagination extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Inserts the length value from a given sets of data objects*/\n this.dataLength = 0;\n /** Sets the starting active page upon render*/\n this.currentPage = 1;\n /** Sets the amount of data objects to be displayed per page */\n this.itemsPerPage = 5;\n /** Sets the page limit to be displayed at any given render. e.g 3, 5, 7, 9 */\n this.limit = 3;\n /** Sets the page direction button to contain text and/or icon */\n this.directionVariant = \"icon-text\";\n /** Sets the size of all page items. */\n this.size = \"sm\";\n /** Toggles ellipsis buttons to be able to increment/decrement pages based on the ellipsisJump value set. By default, it will be false */\n this.ellipsisOn = false;\n /** When ellipsisOn is true, length of decrementing/incrementing of pages can be set with a number value*/\n this.ellipsisJump = 3;\n /** Enables rendering of the first-page button on the pagination, allowing users to jump to the initial page. By default, it will be false. When true, the first ellipsis will always be rendered */\n this.showFirstPage = false;\n /** Enables rendering of the last-page button on the pagination, allowing users to jump to the last page. By default, it will be false */\n this.showLastPage = false;\n this.ellipsisContent = html `\n \n Ellipsis\n `;\n /** @internal */\n this._renderFirstEllipsis = () => {\n const isHidden = !(this.pages.length !== this._sanitizeLimit && this.currentPage - Math.floor(this._sanitizeLimit / 2) > 1);\n if (isHidden) {\n return null;\n }\n const tabIndex = isHidden ? -1 : 0;\n return html `\n this._handleKeyDown(e, \"ellipsis\", undefined, true)}\n >\n ${this.ellipsisContent}\n \n `;\n };\n }\n /**@internal */\n _handleValueChange() {\n this.emit(\"sgds-page-change\", { detail: { currentPage: this.currentPage } });\n }\n /** @internal */\n _handlePageClick(event) {\n const liTarget = event.target;\n const clickedLi = liTarget.closest(\"li\");\n if (clickedLi) {\n const clickedPage = Number(clickedLi.getAttribute(\"key\"));\n if (clickedPage !== this.currentPage) {\n this.currentPage = clickedPage;\n }\n }\n }\n /** @internal */\n _handleNextButton() {\n this.currentPage = this.currentPage + 1;\n }\n /** @internal */\n _handlePrevButton() {\n this.currentPage = this.currentPage - 1;\n }\n /** @internal */\n _handleNextEllipsisButton() {\n this.currentPage = this.currentPage + this.ellipsisJump;\n if (this.currentPage >= this.pages.length)\n this.currentPage = this.pages.length;\n }\n /** @internal */\n _handlePrevEllipsisButton() {\n this.currentPage = this.currentPage - this.ellipsisJump;\n if (this.currentPage <= 1)\n this.currentPage = this.pages[0];\n }\n /** @internal */\n get pages() {\n const pages = [];\n for (let i = 1; i <= Math.ceil(this.dataLength / this.itemsPerPage); i++) {\n pages.push(i);\n }\n return pages;\n }\n /** @internal */\n get _sanitizeLimit() {\n return this.limit >= this.pages.length ? this.pages.length : this.limit;\n }\n /**@internal */\n _handleKeyDown(event, action, number, isFirstEllipsis, isPrevButton) {\n if (event.key === \"Enter\") {\n switch (action) {\n case \"pageNumber\":\n this.currentPage = number;\n break;\n case \"ellipsis\":\n if (isFirstEllipsis) {\n this._handlePrevEllipsisButton();\n }\n else {\n this._handleNextEllipsisButton();\n }\n break;\n case \"directionButton\":\n if (isPrevButton) {\n this._handlePrevButton();\n }\n else {\n this._handleNextButton();\n }\n break;\n }\n }\n }\n _renderFirstPage() {\n const sanitizeStartPage = this.currentPage - Math.floor(this._sanitizeLimit / 2);\n if (sanitizeStartPage > 1) {\n return html `\n
  • \n this._handleKeyDown(e, \"pageNumber\", 1)}\n >1\n
  • \n `;\n }\n else {\n return null;\n }\n }\n /** @internal */\n _renderPgNumbers() {\n const pagesToShow = [];\n let sanitizeStartPage = 1;\n let endPage;\n if (this.limit < this.pages.length) {\n sanitizeStartPage = this.currentPage - Math.floor(this._sanitizeLimit / 2);\n }\n if (this.pages.length - sanitizeStartPage < this.limit) {\n sanitizeStartPage = this.pages.length + 1 - this.limit;\n }\n if (sanitizeStartPage <= 0) {\n sanitizeStartPage = 1;\n }\n endPage = sanitizeStartPage + this._sanitizeLimit - 1;\n if (endPage > this.pages.length) {\n endPage = this.pages.length;\n }\n if (this.currentPage === this.pages.length) {\n sanitizeStartPage = this.pages.length - this._sanitizeLimit + 1;\n }\n for (let i = sanitizeStartPage; i <= endPage; i++) {\n pagesToShow.push(i);\n }\n return pagesToShow.map(number => html `\n
  • \n this._handleKeyDown(e, \"pageNumber\", number)}\n >${number}\n
  • \n `);\n }\n /** @internal */\n _renderLastEllipsis() {\n const isEvenLimit = this._sanitizeLimit % 2 === 0;\n const differentialLimitCondition = isEvenLimit\n ? this.currentPage + Math.floor(this._sanitizeLimit / 2) <= this.pages.length\n : this.currentPage + Math.floor(this._sanitizeLimit / 2) < this.pages.length;\n const shouldRenderEllipsis = this.pages.length !== this.limit && differentialLimitCondition;\n const tabIndex = shouldRenderEllipsis && this.ellipsisOn ? 0 : -1;\n if (!shouldRenderEllipsis || this._sanitizeLimit >= this.pages.length) {\n return null;\n }\n if (this.ellipsisOn) {\n return html `\n this._handleKeyDown(e, \"ellipsis\", undefined, false)}\n >\n ${this.ellipsisContent}\n \n `;\n }\n else {\n return html `\n
  • \n ${this.ellipsisContent}\n
  • \n `;\n }\n }\n _renderLastPage() {\n const isEvenLimit = this._sanitizeLimit % 2 === 0;\n const differentialLimitCondition = isEvenLimit\n ? this.currentPage + Math.floor(this._sanitizeLimit / 2) <= this.pages.length\n : this.currentPage + Math.floor(this._sanitizeLimit / 2) < this.pages.length;\n if (this.pages.length !== this._sanitizeLimit && differentialLimitCondition) {\n return html `\n
  • \n this._handleKeyDown(e, \"pageNumber\", this.pages.length)}\n >${this.pages.length}\n
  • \n `;\n }\n else {\n return null;\n }\n }\n /** @internal */\n _getLeftChevronSVG() {\n return html `\n \n \n \n `;\n }\n /** @internal */\n _getRightChevronSVG() {\n return html `\n \n \n \n `;\n }\n /** @internal */\n _renderDirectionButton(directionLabel, iconClass, clickHandler, keydownHandler, directionVariant) {\n const isDisabled = iconClass === \"left\" ? this.currentPage === 1 : this.currentPage === this.pages.length;\n const tabIndex = isDisabled ? -1 : 0;\n const keydownListener = (event) => {\n if (!isDisabled && event.key === \"Enter\") {\n keydownHandler(event);\n }\n };\n return html `\n
  • \n \n ${directionVariant === \"icon-text\"\n ? html `\n ${iconClass === \"left\" ? this._getLeftChevronSVG() : \"\"} ${directionLabel}\n ${iconClass === \"right\" ? this._getRightChevronSVG() : \"\"}\n `\n : directionVariant === \"text\"\n ? html `${directionLabel}`\n : directionVariant === \"icon\"\n ? html `${iconClass === \"left\" ? this._getLeftChevronSVG() : this._getRightChevronSVG()}`\n : html ``}\n \n
  • \n `;\n }\n render() {\n return html `\n \n `;\n }\n}\nSgdsPagination.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Number })\n], SgdsPagination.prototype, \"dataLength\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsPagination.prototype, \"currentPage\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsPagination.prototype, \"itemsPerPage\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsPagination.prototype, \"limit\", void 0);\n__decorate([\n property({ type: String })\n], SgdsPagination.prototype, \"directionVariant\", void 0);\n__decorate([\n property({ type: String })\n], SgdsPagination.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean })\n], SgdsPagination.prototype, \"ellipsisOn\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsPagination.prototype, \"ellipsisJump\", void 0);\n__decorate([\n property({ type: Boolean })\n], SgdsPagination.prototype, \"showFirstPage\", void 0);\n__decorate([\n property({ type: Boolean })\n], SgdsPagination.prototype, \"showLastPage\", void 0);\n__decorate([\n watch(\"currentPage\")\n], SgdsPagination.prototype, \"_handleValueChange\", null);\n\nexport { SgdsPagination, SgdsPagination as default };\n//# sourceMappingURL=sgds-pagination.js.map\n","import { SgdsPagination } from './sgds-pagination.js';\n\ncustomElements.define(\"sgds-pagination\", SgdsPagination);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--progress-height:1rem;--progress-font-size:0.75rem;display:block}.progress{height:var(--progress-height)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-progress2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-progress2.js';\nimport { html } from 'lit';\n\n/**\n * @summary Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.\n * @slot default - slot for progress-bar\n *\n * @cssprop --progress-height - Sets the height of the progress wrapper.\n */\nclass SgdsProgress extends SgdsElement {\n render() {\n return html `\n \n \n \n `;\n }\n}\nSgdsProgress.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsProgress.prototype, \"progressClasses\", void 0);\n\nexport { SgdsProgress, SgdsProgress as default };\n//# sourceMappingURL=sgds-progress.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=\"important\",n=\" !\"+i,o=e(class extends r{constructor(t){var e;if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||(null===(e=t.strings)||void 0===e?void 0:e.length)>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce(((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`}),\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ht){this.ht=new Set;for(const t in r)this.ht.add(t);return this.render(r)}this.ht.forEach((t=>{null==r[t]&&(this.ht.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=\"\")}));for(const t in r){const e=r[t];if(null!=e){this.ht.add(t);const r=\"string\"==typeof e&&e.endsWith(n);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?i:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{width:100%}:host .progress-bar{font-size:var(--sgds-progress-font-size);height:100%}:host .progress-bar[class*=bg-light]{color:var(--sgds-dark)}:host .progress-bar[class*=bg-dark]{color:var(--sgds-light)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-progress-bar2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-progress-bar2.js';\nimport { html } from 'lit';\n\nclass SgdsProgressBar extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * Sets the aria label for assistive devices.\n */\n this.arialabel = \"\";\n /** Apply a stripe over the progress bar */\n this.striped = false;\n /**\n * Animated stripes over the progress bar.\n *\n * Use in conjunction with striped property\n */\n this.animated = false;\n /** Add label on top of progress bar */\n this.label = \"\";\n }\n render() {\n return html `\n \n ${this.label ? html `${this.label}` : undefined}\n \n `;\n }\n}\nSgdsProgressBar.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsProgressBar.prototype, \"variant\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsProgressBar.prototype, \"value\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsProgressBar.prototype, \"ariamin\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsProgressBar.prototype, \"ariamax\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsProgressBar.prototype, \"arialabel\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsProgressBar.prototype, \"striped\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsProgressBar.prototype, \"animated\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsProgressBar.prototype, \"label\", void 0);\n\nexport { SgdsProgressBar, SgdsProgressBar as default };\n//# sourceMappingURL=sgds-progress-bar.js.map\n","import { SgdsProgress } from './sgds-progress.js';\nimport { SgdsProgressBar } from './sgds-progress-bar.js';\n\ncustomElements.define(\"sgds-progress\", SgdsProgress);\ncustomElements.define(\"sgds-progress-bar\", SgdsProgressBar);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-quantity-toggle2.js.map\n","import { __decorate } from 'tslib';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport genId from '../../utils/generateId.js';\nimport css_248z from './sgds-quantity-toggle2.js';\n\n/**\n * @summary The quantity toggle component is used to increase or decrease an incremental venue, best used when the user needs to enter or adjust the quantity of a selected item.\n *\n * @csspart base - The base wrapper of the quantity toggle component.\n * @csspart button - The plus and minus button of quantity toggle\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n *\n */\nclass SgdsQuantityToggle extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.formSubmitController = new FormSubmitController(this);\n /**Controls the size of the quantity toggle */\n this.size = \"sm\";\n /**The input's value. Set to 0 by default */\n this.value = 0;\n /** Disables the entire quantity toggle */\n this.disabled = false;\n /** The quantity toggle's button variants */\n this.buttonVariant = \"primary\";\n /**\n * Controls the incremental / decremental value of the input\n */\n this.step = 1;\n /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultValue = 0;\n /** @internal The id forwarded to input element */\n this.inputId = genId(\"quantity-toggle\", \"input\");\n }\n handleChange(event) {\n if (parseInt(this.input.value) < this.step || this.input.value === \"\") {\n this.input.value = \"0\";\n }\n this.value = parseInt(this.input.value);\n this.emit(event);\n }\n handleKeyDown(event) {\n const allowedKeys = [\n \"Backspace\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n ...Array.from(Array(10).keys()).map(key => key.toString())\n ];\n // Allow keydown event only if the pressed key is in the allowedKeys array\n if (!allowedKeys.includes(event.key)) {\n event.preventDefault();\n }\n }\n /** Simulates a click on the plus button */\n plus() {\n this.plusBtn.click();\n }\n /** Simulates a click on the minus button */\n minus() {\n this.minusBtn.click();\n }\n onPlus(event) {\n event.preventDefault();\n event.stopPropagation();\n this.value = parseInt(this.input.value) + parseInt(this.input.step);\n }\n onMinus(event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.value < this.step) {\n this.value = 0;\n }\n else {\n this.value = parseInt(this.input.value) - parseInt(this.input.step);\n }\n }\n render() {\n return html `\n \n \n \n \n \n \n this.handleChange(\"sgds-change\")}\n @input=${() => this.handleChange(\"sgds-input\")}\n @keydown=${this.handleKeyDown}\n ?disabled=${this.disabled}\n id=${this.inputId}\n aria-label=\"quantity\"\n />\n = this.max)}\n >\n \n \n \n \n \n
    ${this.value}
    \n `;\n }\n}\nSgdsQuantityToggle.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\"input.form-control\")\n], SgdsQuantityToggle.prototype, \"input\", void 0);\n__decorate([\n query(\"button[aria-label^='increase by']\")\n], SgdsQuantityToggle.prototype, \"plusBtn\", void 0);\n__decorate([\n query(\"button[aria-label^='decrease by']\")\n], SgdsQuantityToggle.prototype, \"minusBtn\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsQuantityToggle.prototype, \"name\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsQuantityToggle.prototype, \"min\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsQuantityToggle.prototype, \"max\", void 0);\n__decorate([\n property()\n], SgdsQuantityToggle.prototype, \"size\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsQuantityToggle.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsQuantityToggle.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String })\n], SgdsQuantityToggle.prototype, \"buttonVariant\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsQuantityToggle.prototype, \"step\", void 0);\n__decorate([\n defaultValue()\n], SgdsQuantityToggle.prototype, \"defaultValue\", void 0);\n\nexport { SgdsQuantityToggle, SgdsQuantityToggle as default };\n//# sourceMappingURL=sgds-quantity-toggle.js.map\n","import { SgdsQuantityToggle } from './sgds-quantity-toggle.js';\n\ncustomElements.define(\"sgds-quantity-toggle\", SgdsQuantityToggle);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css``;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-radio-group2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, state, property, queryAssignedElements } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-radio-group2.js';\n\n/**\n * @summary RadioGroup group multiple radios so they function as a single form control.\n *\n * @slot default - The default slot where sgds-radio are placed.\n *\n * @event sgds-change - Emitted when the radio group's selected value changes.\n */\nclass SgdsRadioGroup extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.formSubmitController = new FormSubmitController(this, {\n defaultValue: (control) => control.defaultValue\n });\n /**@internal */\n this.defaultValue = \"\";\n /**@internal */\n this.customErrorMessage = \"\";\n /** @internal This will be true when the control is in an invalid state. */\n this.invalid = false;\n /** The selected value of the control. */\n this.value = \"\";\n /** The name assigned to the radio controls. */\n this.name = \"option\";\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n this.required = false;\n /**Feedback text for error state when validated */\n this.invalidFeedback = \"\";\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n this.hasFeedback = false;\n }\n handleValueChange() {\n if (this.hasUpdated) {\n this.emit(\"sgds-change\", { detail: { value: this.value } });\n this.updateCheckedRadio();\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.defaultValue = this.value;\n }\n /** Gets and return the ValidityState object. */\n get validity() {\n const hasMissingData = !((this.value && this.required) || !this.required);\n const hasCustomError = this.customErrorMessage !== \"\";\n return {\n badInput: false,\n customError: hasCustomError,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: hasMissingData ? false : true,\n valueMissing: !hasMissingData\n };\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n const validity = this.validity;\n // this.errorMessage = this.customErrorMessage || validity.valid ? '' : this.input.validationMessage;\n // this.invalid = !this.input.checkValidity();\n this.invalid = !validity.valid;\n if (!validity.valid) {\n this.showNativeErrorMessage();\n }\n return !this.invalid;\n }\n handleRadioClick(event) {\n const target = event.target;\n if (target.disabled) {\n return;\n }\n this.value = target.value;\n const radios = this._radios;\n radios.forEach(radio => (radio.checked = radio === target));\n }\n handleKeyDown(event) {\n var _a;\n if (![\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \" \"].includes(event.key)) {\n return;\n }\n const radios = this._radios.filter(radio => !radio.disabled);\n const checkedRadio = (_a = radios.find(radio => radio.checked)) !== null && _a !== void 0 ? _a : radios[0];\n //if eventkey is space, index increment is 0, if eventkey arrowup/arrowleft, index is -1, arrowright/arrowdown, index incr is 1\n const incr = event.key === \" \" ? 0 : [\"ArrowUp\", \"ArrowLeft\"].includes(event.key) ? -1 : 1;\n let index = radios.indexOf(checkedRadio) + incr;\n if (index < 0) {\n index = radios.length - 1;\n }\n if (index > radios.length - 1) {\n index = 0;\n }\n this._radios.forEach(radio => {\n radio.checked = false;\n radio.tabIndex = -1;\n });\n this.value = radios[index].value;\n radios[index].checked = true;\n radios[index].tabIndex = 0;\n radios[index].focus();\n event.preventDefault();\n }\n handleLabelClick() {\n const radios = this._radios;\n const checked = radios.find(radio => radio.checked);\n const radioToFocus = checked || radios[0];\n // Move focus to the checked radio (or the first one if none are checked) when clicking the label\n if (radioToFocus) {\n radioToFocus.focus();\n }\n }\n handleSlotChange() {\n const radios = this._radios;\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n if (!radios.some(radio => radio.checked)) {\n if (radios[0])\n radios[0].tabIndex = 0;\n }\n }\n handleInvalid(e) {\n e.preventDefault();\n this.invalid = true;\n }\n showNativeErrorMessage() {\n this.input.hidden = false;\n this.input.reportValidity();\n setTimeout(() => (this.input.hidden = true), 10000);\n }\n updateCheckedRadio() {\n const radios = this._radios;\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n this.invalid = !this.validity.valid;\n }\n render() {\n const defaultSlot = html `\n
    \n \n
    \n `;\n return html `\n
    \n \n ${defaultSlot}\n this.handleInvalid(e)}\n hidden\n />\n ${this.hasFeedback ? html `
    ${this.invalidFeedback}
    ` : \"\"}\n
    \n `;\n }\n}\nSgdsRadioGroup.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\"slot:not([name])\")\n], SgdsRadioGroup.prototype, \"defaultSlot\", void 0);\n__decorate([\n query(\".radio-group__validation-input\")\n], SgdsRadioGroup.prototype, \"input\", void 0);\n__decorate([\n state()\n], SgdsRadioGroup.prototype, \"defaultValue\", void 0);\n__decorate([\n state()\n], SgdsRadioGroup.prototype, \"customErrorMessage\", void 0);\n__decorate([\n state()\n], SgdsRadioGroup.prototype, \"invalid\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsRadioGroup.prototype, \"value\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsRadioGroup.prototype, \"name\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsRadioGroup.prototype, \"required\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsRadioGroup.prototype, \"invalidFeedback\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsRadioGroup.prototype, \"hasFeedback\", void 0);\n__decorate([\n watch(\"value\")\n], SgdsRadioGroup.prototype, \"handleValueChange\", null);\n__decorate([\n queryAssignedElements()\n], SgdsRadioGroup.prototype, \"_radios\", void 0);\n\nexport { SgdsRadioGroup, SgdsRadioGroup as default };\n//# sourceMappingURL=sgds-radio-group.js.map\n","import { SgdsRadio } from './sgds-radio.js';\nimport { SgdsRadioGroup } from './sgds-radio-group.js';\n\ncustomElements.define(\"sgds-radio\", SgdsRadio);\ncustomElements.define(\"sgds-radio-group\", SgdsRadioGroup);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--sidenav-theme-color:#5925dc;--sidenav-sticky-top:0rem}ul{display:flex;flex-direction:column;gap:1rem;list-style:none;padding-left:0}.sticky{height:calc(100vh - var(--sidenav-sticky-top, 0rem));overflow-y:auto;position:sticky;top:var(--sidenav-sticky-top,0)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-sidenav2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property, queryAssignedNodes } from 'lit/decorators.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-sidenav2.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\n/**\n * @summary The side navigation is used to display a list of links to move between pages within a related category.\n * It is used as a secondary form of navigation where the primary navigation is located hierachically above the page frame.\n * Maximum two levels of navigations are allowed.\n *\n * @slot default - Default slot for SgdsSidenavItem element.\n *\n * @cssproperty --sidenav-theme-color - overall sidenav theme color\n * @cssproperty --sidenav-sticky-top - set the top value of the sticky sidenav. Defaults to 0rem\n */\nclass SgdsSidenav extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Allow sidenav items to stay open when another item is opened */\n this.alwaysOpen = false;\n /** Apply position sticky to the sidenav */\n this.sticky = false;\n }\n /** @internal */\n get items() {\n return [...(this.defaultNodes || [])].filter((node) => typeof node.tagName !== \"undefined\");\n }\n async onToggle(event) {\n const target = event.target;\n const isSidenavLink = target.tagName === \"SGDS-SIDENAV-LINK\";\n // Let the event pass through the DOM so that it can be\n // prevented from the outside if a user so desires.\n if (this.alwaysOpen || event.defaultPrevented || isSidenavLink) {\n // No toggling when `alwaysOpen` or the user prevents it.\n return;\n }\n const items = [...this.items];\n if (items && !items.length) {\n // no toggling when there aren't items.\n return;\n }\n items.forEach(item => {\n // Covers all elements within sidenav-item\n if (!event.composedPath().includes(item)) {\n // Close all the items that didn't dispatch the event.\n item.active = false;\n }\n });\n }\n render() {\n return html `\n \n `;\n }\n}\nSgdsSidenav.styles = css_248z;\n__decorate([\n property({ type: Boolean, attribute: true })\n], SgdsSidenav.prototype, \"alwaysOpen\", void 0);\n__decorate([\n property({ type: Boolean, attribute: true })\n], SgdsSidenav.prototype, \"sticky\", void 0);\n__decorate([\n queryAssignedNodes()\n], SgdsSidenav.prototype, \"defaultNodes\", void 0);\n\nexport { SgdsSidenav, SgdsSidenav as default };\n//# sourceMappingURL=sgds-sidenav.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--sidenav-item-button-border-left-width:0.125rem;--sidenav-item-padding-x:1rem;--sidenav-item-padding-y:0.5rem;--sidenav-item-icon-title-gap:1rem}.sidenav-btn{align-items:center;background:0;border:0;border-left:var(--sidenav-item-button-border-left-width) solid transparent;border-radius:0;display:flex;font-size:var(--sgds-body-font-size);gap:var(--sidenav-item-icon-title-gap);line-height:1.5rem;padding:.5rem 1rem;text-align:initial;width:100%}.sidenav-btn.active,.sidenav-btn:hover{border-left-color:var(--sidenav-theme-color);color:var(--sidenav-theme-color);font-weight:700}.sidenav-btn.disabled{opacity:.65;pointer-events:none}.sidenav-btn svg.bi-chevron-down{margin-left:auto;transform:rotate(180deg);transition:all .3s ease-in-out}.sidenav-btn:not(.active) svg.bi-chevron-down{transform:rotate(0deg)}a.sidenav-btn{color:inherit;line-height:1.5rem;text-decoration:none}.sidenav-list{display:flex;flex-direction:column;line-height:2rem;list-style:none;margin:0;padding-left:0}.collapse,.collapse.show,.collapsing{margin-top:1rem}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-sidenav-item2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { stopAnimations, animateTo, shimKeyframesHeightAuto } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-sidenav-item2.js';\n\n/**\n *\n * @event sgds-toggle - Emitted when the sidenav item's button is clicked.\n * @event sgds-show - Emitted on show.\n * @event sgds-after-show - Emitted on show after animation has completed.\n * @event sgds-hide - Emitted on hide.\n * @event sgds-after-hide - Emitted on hide after animation has completed.\n *\n * @slot - default slot for SgdsSidenavLink element.\n * @slot title - title slot for the content of SgdsSidenavItem's button / anchor element.\n * @slot icon - icon slot for the content of SgdsSidenavItem's button / anchor element.\n *\n * @cssproperty --sidenav-item-button-border-left-width - sidenav item left border width\n * @cssproperty --sidenav-item-padding-x - sidenav item padding left and right\n * @cssproperty --sidenav-item-padding-y - sidenav item padding top and bottom\n * @cssproperty --sidenav-item-icon-title-gap - the flex gap between sidenav item icon and title\n */\nclass SgdsSidenavItem extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * when true, toggles the sidenav-item to open on first load and set the active stylings.\n */\n this.active = false;\n /**\n * When defined, converts SgdsSidenavItem from a button element to an Anchor element. In this case, only one level of navigation is allowed\n */\n this.href = \"\";\n /**\n * Disables the SgdsSidenavItem\n */\n this.disabled = false;\n /**\n * @internal Forwards to id attribute of div.collapse and aria-controls attribute of button in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n this.collapseId = genId(\"sidenav\", \"collapse\");\n /**\n * @internal Forwards to id attribute of button and aria-labelledby attribute of ul.sidenav-list in SgdsSidenavItem. By default, SgdsSidenavItem auto-generates a unique id. Override the default id by specifiying your own\n */\n this.buttonId = genId(\"sidenav\", \"button\");\n /** @internal */\n this.index = \"-1\";\n }\n _onToggle() {\n this.emit(\"sgds-toggle\", { detail: { index: this.index } });\n }\n _onClickLink() {\n this._onToggle();\n this.active = true;\n }\n /** Shows the sidenav item. */\n async show() {\n if (this.active) {\n return;\n }\n this.active = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hide the sidenav item */\n async hide() {\n if (!this.active) {\n return;\n }\n this.active = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n /**\n * @deprecated since 1.1. Will be removed in 2.0 and replaced by hide.\n * When invoked, closes the SgdsSidenavItem\n */\n async closeItem() {\n return await this.hide();\n }\n /**\n * @deprecated since 1.1. Will be removed in 2.0 and replaced by show.\n * When invoked, opens the SgdsSidenavItem\n */\n async openItem() {\n return await this.show();\n }\n firstUpdated() {\n if (!this.href) {\n this.body.hidden = !this.active;\n this.body.style.height = this.active ? \"auto\" : \"0\";\n }\n }\n _handleSummaryClick() {\n if (this.active) {\n this.hide();\n }\n else {\n this.show();\n }\n this._onToggle();\n this.header.focus();\n }\n _handleSummaryKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (this.active) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n this.hide();\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n this.show();\n }\n }\n async handleOpenChange() {\n if (this.href)\n return;\n if (this.active) {\n // Show\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.active = false;\n return;\n }\n await stopAnimations(this.body);\n this.body.hidden = false;\n const { keyframes, options } = getAnimation(this, \"sidenav.show\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.style.height = \"auto\";\n this.emit(\"sgds-after-show\");\n }\n else {\n // Hide\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.active = true;\n return;\n }\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, \"sidenav.hide\");\n await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);\n this.body.hidden = true;\n this.body.style.height = \"auto\";\n this.emit(\"sgds-after-hide\");\n }\n }\n render() {\n const withMenuTemplate = html ` \n \n \n \n \n \n \n
    \n
      \n \n
    \n
    `;\n const noMenuTemplate = html `\n this._onClickLink()}\n class=\"sidenav-btn ${classMap({\n disabled: this.disabled,\n active: this.active\n })} \"\n aria-selected=\"${this.active}\"\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n >\n \n \n \n `;\n return html `\n
  • ${this.href ? noMenuTemplate : withMenuTemplate}
  • \n `;\n }\n}\nSgdsSidenavItem.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".sidenav-body\")\n], SgdsSidenavItem.prototype, \"body\", void 0);\n__decorate([\n query(\".sidenav-btn\")\n], SgdsSidenavItem.prototype, \"header\", void 0);\n__decorate([\n property({ type: Boolean })\n], SgdsSidenavItem.prototype, \"active\", void 0);\n__decorate([\n property({ type: String })\n], SgdsSidenavItem.prototype, \"href\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsSidenavItem.prototype, \"disabled\", void 0);\n__decorate([\n watch(\"active\", { waitUntilFirstUpdate: true })\n], SgdsSidenavItem.prototype, \"handleOpenChange\", null);\nsetDefaultAnimation(\"sidenav.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\nsetDefaultAnimation(\"sidenav.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 200, easing: \"ease-in-out\" }\n});\n\nexport { SgdsSidenavItem, SgdsSidenavItem as default };\n//# sourceMappingURL=sgds-sidenav-item.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--sidenav-link-font-size:var(--sgds-body-font-size);--sidenav-link-padding-x:1rem;--sidenav-link-padding-y:0.5rem;--sidenav-link-disabled-color:var(--sgds-gray-600)}a.nav-link{color:inherit;display:block;font-size:var(--sidenav-link-font-size);padding-bottom:var(--sidenav-link-padding-y);padding-left:calc(var(--sidenav-link-padding-y)*4 + var(--sidenav-item-button-border-left-width));padding-right:0;padding-top:var(--sidenav-link-padding-y);text-decoration:none}a.nav-link.active,a.nav-link:hover{color:var(--sidenav-theme-color)}a.nav-link.disabled{color:var(--sidenav-link-disabled-color);cursor:default;pointer-events:none}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-sidenav-link2.js.map\n","import LinkElement from '../../base/link-element.js';\nimport css_248z from './sgds-sidenav-link2.js';\n\n/**\n * @slot default - slot for label of anchor tag.\n *\n * @cssproperty --sidenav-link-font-size - sidenav link font size, default to `--sgds-body-font-size`\n * @cssproperty --sidenav-link-padding-x - sidenav link padding left and right\n * @cssproperty --sidenav-link-padding-y - sidenav link padding top and bottom\n * @cssproperty --sidenav-link-disabled-color - sidenav link disabled color, default to `--sgds-gray-600`\n */\nclass SgdsSidenavLink extends LinkElement {\n}\nSgdsSidenavLink.styles = css_248z;\n\nexport { SgdsSidenavLink, SgdsSidenavLink as default };\n//# sourceMappingURL=sgds-sidenav-link.js.map\n","import { SgdsSidenav } from './sgds-sidenav.js';\nimport { SgdsSidenavItem } from './sgds-sidenav-item.js';\nimport { SgdsSidenavLink } from './sgds-sidenav-link.js';\n\ncustomElements.define(\"sgds-sidenav\", SgdsSidenav);\ncustomElements.define(\"sgds-sidenav-item\", SgdsSidenavItem);\ncustomElements.define(\"sgds-sidenav-link\", SgdsSidenavLink);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`.sr-only{clip:rect(0,0,0,0);border:0;height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-spinner2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-spinner2.js';\n\n/**\n * @summary Spinners notify the users that their request is being processed.\n */\nclass SgdsSpinner extends SgdsElement {\n constructor() {\n super(...arguments);\n /** The type of spinner */\n this.type = \"border\";\n /** The color of spinner */\n this.color = \"primary\";\n }\n render() {\n return html `\n \n Loading...\n \n `;\n }\n}\nSgdsSpinner.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsSpinner.prototype, \"type\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsSpinner.prototype, \"color\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsSpinner.prototype, \"spinnerClasses\", void 0);\n\nexport { SgdsSpinner, SgdsSpinner as default };\n//# sourceMappingURL=sgds-spinner.js.map\n","import { SgdsSpinner } from './sgds-spinner.js';\n\ncustomElements.define(\"sgds-spinner\", SgdsSpinner);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--stepper-theme-color:var(--sgds-primary);--stepper-theme-hover-color:var(--sgds-primary-600);--stepper-default-color:var(--sgds-gray-400)}.sgds.stepper .stepper-item>.stepper-marker{background-color:var(--stepper-default-color);border-color:var(--sgds-gray-100)}.sgds.stepper .stepper-item.is-active .stepper-marker{background-color:var(--sgds-gray-100);border-color:var(--stepper-theme-color);color:var(--stepper-theme-color)}.sgds.stepper .stepper-item.is-completed .stepper-marker{background-color:var(--stepper-theme-color);border-color:var(--stepper-theme-color);color:var(--sgds-gray-100)}.sgds.stepper .stepper-item.is-clickable:hover .stepper-marker{background-color:var(--stepper-theme-hover-color);border-color:var(--stepper-theme-hover-color)}.sgds.stepper .stepper-item.is-clickable:hover .stepper-detail>*{color:var(--stepper-theme-hover-color)}.sgds.stepper .stepper-item:before{background:linear-gradient(270deg,var(--stepper-default-color) 50%,var(--stepper-theme-color) 0) 100% 100%/200% 100%}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-stepper2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-stepper2.js';\n\n/**\n * @summary Steppers are used to inform users which step they are at in a form or a process\n *\n * @event sgds-next-step - Emitted right before the next step is reached. Event is fired when nextStep method is called.\n * @event sgds-previous-step - Emitted right before the previous step is reached. Event is fired when previousStep method is called.\n * @event sgds-last-step - Emitted right before the last step is reached. Event is fired when lastStep method is called.\n * @event sgds-first-step - Emitted on hide after animation has completed. Event is fired when firstStep method is called.\n * @event sgds-arrived - Emitted right after the activeStep has updated its state, when upcoming step has arrived. Call `getMethod()` on this event to get the current step's component.\n * @event sgds-reset - Emitted right before the step is reset to its defaultActiveStep. Event is fired when reset method is called.\n *\n * @cssproperty --stepper-default-color - Sets the theme color for default stepper marker.
    Default value `--sgds-gray-400`\n * @cssproperty --stepper-theme-color - Sets the theme color for active, completed and clickable stepper marker.
    Default value `--sgds-primary`\n * @cssproperty --stepper-theme-hover-color - Sets the theme hover color for clickable stepper marker.
    Default value `--sgds-primary-600`\n *\n */\nclass SgdsStepper extends SgdsElement {\n constructor() {\n super(...arguments);\n /** The metadata of stepper, type `IStepMetaData`, that consist of `stepHeader: string` and `component:unknown`. `stepHeader` is the name of the step and `component` is the content that should appear at the each step. `component` is set to `unknown` to allow users to pass in their desired component based on the framework of choice. e.g. pass in your own react/angular/vue component or it can also be a text content.\n */\n this.steps = [];\n /** The current state of active step. Defaults to 0 */\n this.activeStep = 0;\n /**Gets or sets the default activeStep used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultActiveStep = 0;\n }\n /** By default, it returns the corresponding component of the current activeStep as defined in the steps metadata. To get other components, pass in your desired step number as the parameter*/\n getComponent(step = this.activeStep) {\n return this.steps[step].component;\n }\n /** Moves the active step forward one step */\n nextStep() {\n this.emit(\"sgds-next-step\");\n if (this.activeStep < this.steps.length - 1) {\n this.activeStep++;\n }\n }\n /** Moves the active step back one step */\n previousStep() {\n this.emit(\"sgds-previous-step\");\n if (this.activeStep > 0) {\n this.activeStep--;\n }\n }\n /** Changes the active step to the last step */\n lastStep() {\n this.emit(\"sgds-last-step\");\n if (this.activeStep !== this.steps.length - 1) {\n this.activeStep = this.steps.length - 1;\n }\n }\n /** Changes active step to the first step */\n firstStep() {\n this.emit(\"sgds-first-step\");\n if (this.activeStep > 0) {\n this.activeStep = 0;\n }\n }\n /** Resets the Stepper to its initial active step state */\n reset() {\n this.emit(\"sgds-reset\");\n this.activeStep = this.defaultActiveStep;\n }\n /**@internal */\n _onStepperItemClick(index) {\n //emit an event before moving to next step\n if (this.activeStep > index) {\n this.activeStep = index;\n }\n }\n /**@internal */\n _handleActiveStepChange() {\n this.emit(\"sgds-arrived\");\n }\n /**@internal */\n _handleKeyDown(event, index) {\n if (event.key === \"Enter\") {\n this._onStepperItemClick(index);\n }\n }\n render() {\n return html `\n
    \n ${this.steps.map(({ stepHeader: step }, index) => {\n return html `\n index,\n \"is-clickable\": this.activeStep > index\n })}\"\n tabindex=\"0\"\n aria-current=${this.activeStep === index ? \"step\" : \"false\"}\n aria-disabled=${this.activeStep <= index ? \"true\" : \"false\"}\n @click=\"${() => this._onStepperItemClick(index)}\"\n @keydown=${(e) => this._handleKeyDown(e, index)}\n >\n
    ${index + 1}
    \n
    \n

    ${step}

    \n
    \n
    \n `;\n })}\n \n `;\n }\n}\nSgdsStepper.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Array })\n], SgdsStepper.prototype, \"steps\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsStepper.prototype, \"activeStep\", void 0);\n__decorate([\n defaultValue(\"activeStep\")\n], SgdsStepper.prototype, \"defaultActiveStep\", void 0);\n__decorate([\n watch(\"activeStep\", { waitUntilFirstUpdate: true })\n], SgdsStepper.prototype, \"_handleActiveStepChange\", null);\n\nexport { SgdsStepper, SgdsStepper as default };\n//# sourceMappingURL=sgds-stepper.js.map\n","import { SgdsStepper } from './sgds-stepper.js';\n\ncustomElements.define(\"sgds-stepper\", SgdsStepper);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--tab-theme-color:var(--sgds-primary);display:inline-block}.disabled,li.nav-item div.nav-link.tabs-basic-toggle.disabled,li.nav-item div.nav-link.tabs-info-toggle.disabled,li.nav-item div.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle).disabled{background-color:var(--sgds-gray-200);border-color:var(--sgds-gray-400);color:var(--sgds-gray-400);cursor:not-allowed}li.nav-item div.nav-link.tabs-info-toggle{background-color:#fff;border:1px solid var(--sgds-gray-400);border-radius:.3125rem;color:#1d2939;cursor:pointer;min-width:11.875rem;padding:.75rem}li.nav-item div.nav-link.tabs-info-toggle .tabs-info-label{display:flex;justify-content:space-between;text-align:right}li.nav-item div.nav-link.tabs-info-toggle .tabs-info-count{text-align:right}li.nav-item div.nav-link.tabs-info-toggle.active,li.nav-item div.nav-link.tabs-info-toggle:hover{border-color:var(--tab-theme-color);color:var(--tab-theme-color);font-weight:700}li.nav-item div.nav-link.tabs-basic-toggle{background-color:#fff;border:1px solid var(--sgds-gray-400);border-radius:0;color:#1d2939;cursor:pointer;padding:.5rem 1.5rem}li.nav-item div.nav-link.tabs-basic-toggle slot{align-items:center;display:flex;gap:1rem}li.nav-item div.nav-link.tabs-basic-toggle.active,li.nav-item div.nav-link.tabs-basic-toggle:hover{background-color:var(--tab-theme-color);color:#fff}li.nav-item div.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle){background-color:transparent;border:none;color:#1d2939;cursor:pointer;padding-left:0;padding-right:0;padding-top:0}li.nav-item div.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle).active,li.nav-item div.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle):hover{background-color:transparent;border-bottom:.125rem solid var(--tab-theme-color);font-weight:700}li.nav-item div.nav-link:not(.tabs-basic-toggle):not(.tabs-info-toggle).disabled{background-color:transparent}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-tab2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-tab2.js';\n\nlet id = 0;\n/**\n * @summary Tabs are used within tab group to activate the tab panels\n *\n * @slot default - The content of the tab. This is available when variant attribute of `sgds-tab-group` is not specified or when it is `tabs-basic-toggle`\n *\n * @slot icon - The slot to place svg icons. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot count - The slot for count. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n * @slot label - The slot for label of tab. This is only available when variant attribute of `sgds-tab-group` is `tabs-info-toggle`\n *\n * @csspart base - The base wrapper of tab\n * @cssproperty --tab-theme-color - The theme colour for tab. Defaults to `--sgds-primary`\n */\nclass SgdsTab extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.attrId = ++id;\n /**@internal */\n this.componentId = `sgds-tab-${this.attrId}`;\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n this.panel = \"\";\n /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */\n this.active = false;\n /** Disables the tab and prevents selection. */\n this.disabled = false;\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"tab\");\n }\n /** Sets focus to the tab. */\n focus(options) {\n this.tab.focus(options);\n }\n /** Removes focus from the tab. */\n blur() {\n this.tab.blur();\n }\n /**@internal */\n handleActiveChange() {\n this.setAttribute(\"aria-selected\", this.active ? \"true\" : \"false\");\n }\n /**@internal */\n handleDisabledChange() {\n this.setAttribute(\"aria-disabled\", this.disabled ? \"true\" : \"false\");\n if (this.disabled)\n this.active = false;\n }\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n const parentVariantAttr = this.closest(\"sgds-tab-group\").getAttribute(\"variant\");\n const tabsInfo = html `\n
    \n
    \n
    \n
    \n
    \n `;\n return html `\n
      \n
    • \n \n ${parentVariantAttr === \"tabs-info-toggle\" ? tabsInfo : html ``}\n \n
    • \n
    \n `;\n }\n}\nSgdsTab.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".nav-item\")\n], SgdsTab.prototype, \"tab\", void 0);\n__decorate([\n property({ reflect: true })\n], SgdsTab.prototype, \"panel\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTab.prototype, \"active\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTab.prototype, \"disabled\", void 0);\n__decorate([\n watch(\"active\")\n], SgdsTab.prototype, \"handleActiveChange\", null);\n__decorate([\n watch(\"disabled\")\n], SgdsTab.prototype, \"handleDisabledChange\", null);\n\nexport { SgdsTab, SgdsTab as default };\n//# sourceMappingURL=sgds-tab.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`slot[name=nav][variant=tabs-basic-toggle]::slotted(sgds-tab){margin-left:-2px}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-tab-group2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-tab-group2.js';\n\n/**\n * @summary Tab Group organizes content into a container with the syncing of tab and their corresponding panels.\n * Each tab must be slotted into the nav slot and its `panel` must refer to a tab panel of the same name.\n *\n * @slot default - The slot for `sgds-tab-panel`\n * @slot nav - The slot for `sgds-tab`\n *\n * @event sgds-tab-show Emitted when a tab and its panels are shown\n * @event sgds-tab-hide Emitted when a tab and its panels are hidden.\n *\n * @csspart body - The container wrapping the default slot where all `sgds-tab-panel`s are slotted.\n * @csspart nav - The container wrapping the default slot where all `sgds-tab`s are slotted.\n */\nclass SgdsTabGroup extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.tabs = [];\n /**@internal */\n this.panels = [];\n }\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined(\"sgds-tab\"),\n customElements.whenDefined(\"sgds-tab-panel\")\n ]);\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => {\n return;\n });\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => ![\"aria-labelledby\", \"aria-controls\"].includes(m.attributeName))) {\n setTimeout(() => this.setAriaLabels());\n }\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === \"disabled\")) {\n this.syncTabsAndPanels();\n }\n });\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs first become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n var _a;\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n // this.setTabVariant();\n this.setActiveTab((_a = this.getActiveTab()) !== null && _a !== void 0 ? _a : this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n /** Shows the specified tab panel. */\n show(panel) {\n const tab = this.tabs.find(el => el.panel === panel);\n if (tab) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n getAllTabs(options = { includeDisabled: true }) {\n const slot = this.shadowRoot.querySelector('slot[name=\"nav\"]');\n return [...slot.assignedElements()].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === \"sgds-tab\"\n : el.tagName.toLowerCase() === \"sgds-tab\" && !el.disabled;\n });\n }\n /** @internal */\n getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === \"sgds-tab-panel\");\n }\n /** @internal */\n getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n /** @internal */\n handleClick(event) {\n const target = event.target;\n const tab = target.closest(\"sgds-tab\");\n const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest(\"sgds-tab-group\");\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n if (tab !== null) {\n this.setActiveTab(tab);\n }\n }\n /** @internal */\n handleKeyDown(event) {\n const target = event.target;\n const tab = target.closest(\"sgds-tab\");\n const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest(\"sgds-tab-group\");\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n // Activate a tab\n if ([\"Enter\", \" \"].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab);\n event.preventDefault();\n }\n }\n // Move focus left or right\n if ([\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(\":focus\"));\n if ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName.toLowerCase()) === \"sgds-tab\") {\n let index = this.tabs.indexOf(activeEl);\n if (event.key === \"Home\") {\n index = 0;\n }\n else if (event.key === \"End\") {\n index = this.tabs.length - 1;\n }\n else if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n index--;\n }\n else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n index++;\n }\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n this.tabs[index].focus({ preventScroll: true });\n this.setActiveTab(this.tabs[index] /** , { scrollBehavior: \"smooth\" }*/);\n event.preventDefault();\n }\n }\n }\n /** @internal */\n setActiveTab(tab, options) {\n options = Object.assign({ emitEvents: true }, options);\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => { var _a; return (el.active = el.name === ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel)); });\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit(\"sgds-tab-hide\", { detail: { name: previousTab.panel } });\n }\n this.emit(\"sgds-tab-show\", { detail: { name: this.activeTab.panel } });\n }\n }\n }\n /** @internal */\n setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute(\"aria-controls\", panel.getAttribute(\"id\"));\n panel.setAttribute(\"aria-labelledby\", tab.getAttribute(\"id\"));\n }\n });\n }\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n /** @internal */\n syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n }\n render() {\n return html `\n \n \n
    \n \n \n \n \n \n `;\n }\n}\nSgdsTabGroup.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\".tab-group\")\n], SgdsTabGroup.prototype, \"tabGroup\", void 0);\n__decorate([\n query(\".tab-group__body\")\n], SgdsTabGroup.prototype, \"body\", void 0);\n__decorate([\n query(\".tab-group__nav\")\n], SgdsTabGroup.prototype, \"nav\", void 0);\n__decorate([\n property({ reflect: true, attribute: true })\n], SgdsTabGroup.prototype, \"variant\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTabGroup.prototype, \"tabsClasses\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTabGroup.prototype, \"bodyClasses\", void 0);\n\nexport { SgdsTabGroup, SgdsTabGroup as default };\n//# sourceMappingURL=sgds-tab-group.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--tab-panel-padding-y:1rem;display:block}.tab-panel{display:block;padding:var(--tab-panel-padding-y) 0}.tab-panel:not(.tab-panel--active){display:none}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-tab-panel2.js.map\n","import { __decorate } from 'tslib';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-tab-panel2.js';\n\nlet id = 0;\n/**\n * @summary Tab panels are used inside tab groups to display tabbed content.\n * @slot - The tab panel's content.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --tab-panel-padding-y - The tab panel's padding.\n */\nclass SgdsTabPanel extends LitElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.attrId = ++id;\n /**@internal */\n this.componentId = `sgds-tab-panel-${this.attrId}`;\n /** The tab panel's name. */\n this.name = \"\";\n /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */\n this.active = false;\n }\n connectedCallback() {\n super.connectedCallback();\n this.id = this.id.length > 0 ? this.id : this.componentId;\n this.setAttribute(\"role\", \"tabpanel\");\n }\n handleActiveChange() {\n this.setAttribute(\"aria-hidden\", this.active ? \"false\" : \"true\");\n }\n render() {\n return html `\n \n `;\n }\n}\nSgdsTabPanel.styles = css_248z;\n__decorate([\n property({ reflect: true })\n], SgdsTabPanel.prototype, \"name\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTabPanel.prototype, \"active\", void 0);\n__decorate([\n watch(\"active\")\n], SgdsTabPanel.prototype, \"handleActiveChange\", null);\n\nexport { SgdsTabPanel, SgdsTabPanel as default };\n//# sourceMappingURL=sgds-tab-panel.js.map\n","import { SgdsTab } from './sgds-tab.js';\nimport { SgdsTabGroup } from './sgds-tab-group.js';\nimport { SgdsTabPanel } from './sgds-tab-panel.js';\n\ncustomElements.define(\"sgds-tab\", SgdsTab);\ncustomElements.define(\"sgds-tab-group\", SgdsTabGroup);\ncustomElements.define(\"sgds-tab-panel\", SgdsTabPanel);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--table-bg:transparent;--table-accent-bg:transparent;--table-striped-color:var(--sgds-gray-600);--table-striped-bg:rgba(0,0,0,.05);--table-active-color:var(--sgds-gray-600);--table-active-bg:rgba(0,0,0,.1);--table-hover-color:var(--sgds-gray-600);--table-hover-bg:rgba(0,0,0,.075)}:host .table{--sgds-table-bg:var(--table-bg);--sgds-table-accent-bg:var(--table-accent-bg);--sgds-table-striped-color:var(--table-striped-color);--sgds-table-striped-bg:var(--table-striped-bg);--sgds-table-active-color:var(--table-active-color);--sgds-table-active-bg:var(--table-active-bg);--sgds-table-hover-color:var(--table-hover-color);--sgds-table-hover-bg:var(--table-hover-bg)}.sortable-header{cursor:pointer}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-table2.js.map\n","import { __decorate } from 'tslib';\nimport { html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-table2.js';\n\n/**\n * @summary The use of a table is to organise a collections of data into readable rows\n *\n * @cssproperty --table-bg - Table's background color\n * @cssproperty --table-accent-bg - Table's accent background color\n * @cssproperty --table-striped-color - Text color for striped table\n * @cssproperty --table-striped-bg - Background color for striped table\n * @cssproperty --table-active-color - Active text color for hovered row\n * @cssproperty --table-active-bg - Active background color for hovered row\n * @cssproperty --table-hover-color - Hovered text color for hover table\n * @cssproperty --table-hover-bg - Hovered background color for hover table\n */\nclass SgdsTable extends SgdsElement {\n constructor() {\n super(...arguments);\n /**\n * Adds zebra-striping using striped to table row within the \n */\n this.striped = false;\n /**\n * Add borders to all sides of table and cells\n */\n this.bordered = false;\n /**\n * Remove all borders to table and cells\n */\n this.borderless = false;\n /**\n * Add hoverable state on table rows\n */\n this.hover = false;\n /**\n * Sorting on a column is enabled by adding the sort property. The sorting algorithm is based on javascript array.sort() method. In ascending order from bottom, alphabets come first, followed by numbers, and then symbols. Similarly, in descending order from bottom, symbols come first, followed by numbers, and then alphabets.\n */\n this.sort = false;\n /**\n * When removableSort is present, the third click removes the sorting from the column.\n */\n this.removableSort = false;\n /**\n * Populate header cells using Arrays\n */\n this.tableHeaders = [];\n /**\n * Populate data cells using Arrays\n */\n this.tableData = [];\n /** @internal */\n this.sortColumn = null;\n /** @internal */\n this.sortAsc = true;\n //TODO aria-sort\n /** @internal */\n this.activeColumn = null;\n /** @internal */\n this.sortClickCount = 0;\n /** @internal */\n this.clickCount = 0;\n /** @internal */\n this.originalTableData = [];\n }\n connectedCallback() {\n super.connectedCallback();\n this.originalTableData = [...this.tableData];\n }\n handleHeaderClick(columnIndex) {\n var _a;\n if (this.sort) {\n if (this.sortColumn === columnIndex) {\n this.sortAsc = !this.sortAsc;\n }\n else {\n this.sortColumn = columnIndex;\n this.sortAsc = true;\n }\n this.tableData = [...this.tableData].sort((a, b) => {\n const aValue = a[columnIndex];\n const bValue = b[columnIndex];\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return this.sortAsc ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n }\n else {\n return this.sortAsc ? aValue - bValue : bValue - aValue;\n }\n });\n // update the active column\n if (this.activeColumn === columnIndex) {\n this.clickCount++;\n if (this.clickCount === 3 && this.removableSort) {\n this.activeColumn = null;\n this.clickCount = 0;\n this.tableData = [...this.originalTableData];\n }\n }\n else {\n this.activeColumn = columnIndex;\n this.clickCount = 1;\n }\n // add the .active class to the clicked header cell\n const thElements = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"th\");\n thElements.forEach((thElement, index) => {\n if (index === columnIndex) {\n thElement.classList.add(\"active\");\n }\n else {\n thElement.classList.remove(\"active\");\n }\n });\n }\n }\n getIcon(columnIndex) {\n if (this.activeColumn !== columnIndex) {\n return html `\n \n `;\n }\n else {\n return this.sortAsc\n ? html `\n \n `\n : html `\n \n `;\n }\n }\n render() {\n return html `\n \n \n \n \n ${this.tableHeaders.map((header, index) => html `\n this.handleHeaderClick(index)}\n //TODO aria-sort \n >\n ${header} ${this.sort ? this.getIcon(index) : null}\n \n `)}\n \n \n \n ${this.tableData.map(row => html `\n \n ${row.map((cell) => html `${cell}`)}\n \n `)}\n \n \n \n `;\n }\n}\nSgdsTable.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"striped\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"bordered\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"borderless\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"hover\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTable.prototype, \"size\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTable.prototype, \"variant\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"sort\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTable.prototype, \"removableSort\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTable.prototype, \"responsive\", void 0);\n__decorate([\n property({ type: Array })\n], SgdsTable.prototype, \"tableHeaders\", void 0);\n__decorate([\n property({ type: Array })\n], SgdsTable.prototype, \"tableData\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"sortColumn\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"sortAsc\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"activeColumn\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"sortClickCount\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"clickCount\", void 0);\n__decorate([\n state()\n], SgdsTable.prototype, \"originalTableData\", void 0);\n\nexport { SgdsTable, SgdsTable as default };\n//# sourceMappingURL=sgds-table.js.map\n","import { SgdsTable } from './sgds-table.js';\n\ncustomElements.define(\"sgds-table\", SgdsTable);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host .textarea-resize-none{resize:none}:host .textarea-resize-vertical{resize:vertical}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-textarea2.js.map\n","import { __decorate } from 'tslib';\nimport { query, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { defaultValue } from '../../utils/defaultvalue.js';\nimport { FormSubmitController } from '../../utils/form.js';\nimport genId from '../../utils/generateId.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-textarea2.js';\n\n/**\n * @summary Text areas allow for the collection of input longer than a single line.\n *\n * @event sgds-change - Emitted when an alteration to the control's value is committed by the user.\n * @event sgds-input - Emitted when the control receives input and its value changes.\n * @event sgds-focus - Emitted when textarea is in focus.\n * @event sgds-blur - Emitted when textarea loses focus.\n */\nclass SgdsTextarea extends SgdsElement {\n constructor() {\n super(...arguments);\n /**@internal */\n this.formSubmitController = new FormSubmitController(this);\n /**The textarea's label */\n this.label = \"label\";\n /**The textarea's value attribute. */\n this.value = \"\";\n /**Enables spell checking on the textarea */\n this.spellcheck = false;\n /** The number of rows to display by default. */\n this.rows = 4;\n /**The textarea's placeholder text. */\n this.placeholder = \"Placeholder\";\n /**Feedback text for error state when validated */\n this.invalidFeedback = \"\";\n /**Autofocus the textarea */\n this.autofocus = false;\n /**Disables the textarea. */\n this.disabled = false;\n /**Makes the textarea a required field. */\n this.required = false;\n /** Makes the textarea readonly. */\n this.readonly = false;\n /** Controls how the textarea can be resized. */\n this.resize = \"vertical\";\n /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */\n this.defaultValue = \"\";\n /** Allows invalidFeedback, invalid and valid styles to be visible with the input */\n this.hasFeedback = false;\n /**@internal */\n this.invalid = false;\n /**@internal */\n this.valid = false;\n /** @internal The textarea's unique id */\n this.textareaId = genId(\"textarea\", \"input\");\n }\n connectedCallback() {\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver(() => this.setTextareaHeight());\n this.updateComplete.then(() => {\n this.setTextareaHeight();\n this.resizeObserver.observe(this.textarea);\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.resizeObserver.unobserve(this.textarea);\n }\n /** Sets focus on the textarea. */\n focus(options) {\n this.textarea.focus(options);\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.textarea.reportValidity();\n }\n /** Selects all the text in the textarea. */\n select() {\n this.textarea.select();\n }\n handleInvalid(e) {\n e.preventDefault();\n this.invalid = true;\n }\n handleChange(event) {\n this.value = this.textarea.value;\n this.emit(event);\n }\n handleFocus() {\n this.emit(\"sgds-focus\");\n }\n handleBlur() {\n this.emit(\"sgds-blur\");\n }\n handleKeyDown(event) {\n const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === \"Enter\" && !hasModifier) {\n setTimeout(() => {\n if (!event.defaultPrevented) {\n this.formSubmitController.submit();\n }\n });\n }\n }\n handleRowsChange() {\n this.setTextareaHeight();\n }\n setTextareaHeight() {\n if (this.resize === \"auto\") {\n this.textarea.style.height = \"auto\";\n this.textarea.style.height = `${this.textarea.scrollHeight}px`;\n }\n else {\n this.textarea.style.height = undefined;\n }\n }\n handleDisabledChange() {\n // Disabled form controls are always valid, so we need to recheck validity when the state changes\n this.textarea.disabled = this.disabled;\n this.invalid = !this.textarea.checkValidity();\n }\n handleValueChange() {\n this.invalid = !this.textarea.checkValidity();\n this.valid = this.textarea.checkValidity();\n this.updateComplete.then(() => this.setTextareaHeight());\n if (!this.required && this.value === \"\") {\n this.valid = false;\n }\n }\n render() {\n // if maxlength is defined\n const wordCount = html `
    ${this.value.length}/${this.maxlength}
    `;\n return html `\n
    \n \n ${this.maxlength > 0 ? wordCount : undefined}\n
    \n\n this.handleChange(\"sgds-input\")}\n @change=${() => this.handleChange(\"sgds-change\")}\n @invalid=${(e) => this.handleInvalid(e)}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n >\n \n\n ${this.hasFeedback\n ? html `
    ${this.invalidFeedback}
    `\n : \"\"}\n `;\n }\n}\nSgdsTextarea.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\"textarea.form-control\")\n], SgdsTextarea.prototype, \"textarea\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"label\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"name\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"textareaClasses\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"value\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsTextarea.prototype, \"minlength\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsTextarea.prototype, \"maxlength\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"spellcheck\", void 0);\n__decorate([\n property({ type: Number })\n], SgdsTextarea.prototype, \"rows\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"placeholder\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsTextarea.prototype, \"invalidFeedback\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"autofocus\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"required\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"readonly\", void 0);\n__decorate([\n property()\n], SgdsTextarea.prototype, \"resize\", void 0);\n__decorate([\n property()\n], SgdsTextarea.prototype, \"inputmode\", void 0);\n__decorate([\n property()\n], SgdsTextarea.prototype, \"autocorrect\", void 0);\n__decorate([\n defaultValue()\n], SgdsTextarea.prototype, \"defaultValue\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsTextarea.prototype, \"hasFeedback\", void 0);\n__decorate([\n state()\n], SgdsTextarea.prototype, \"invalid\", void 0);\n__decorate([\n state()\n], SgdsTextarea.prototype, \"valid\", void 0);\n__decorate([\n watch(\"rows\", { waitUntilFirstUpdate: true })\n], SgdsTextarea.prototype, \"handleRowsChange\", null);\n__decorate([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SgdsTextarea.prototype, \"handleDisabledChange\", null);\n__decorate([\n watch(\"value\", { waitUntilFirstUpdate: true })\n], SgdsTextarea.prototype, \"handleValueChange\", null);\n\nexport { SgdsTextarea, SgdsTextarea as default };\n//# sourceMappingURL=sgds-textarea.js.map\n","import { SgdsTextarea } from './sgds-textarea.js';\n\ncustomElements.define(\"sgds-textarea\", SgdsTextarea);\n//# sourceMappingURL=index.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--toast-icon-margin-right:0.5rem}slot[name=icon]::slotted(svg){margin-right:var(--toast-icon-margin-right)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-toast2.js.map\n","import { __decorate } from 'tslib';\nimport { query, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport { animateTo } from '../../utils/animate.js';\nimport { setDefaultAnimation, getAnimation } from '../../utils/animation-registry.js';\nimport { waitForEvent } from '../../utils/event.js';\nimport { watch } from '../../utils/watch.js';\nimport css_248z from './sgds-toast2.js';\n\n/**\n * @summary Toast allows you to convey quick messaging notifications to the user.\n *\n * @slot default - The content to pass into toast's body\n * @slot icon - The slot to pass in icon to toast's header\n * @slot duration - When required, pass in the duration since toast appeared to this slot\n *\n * @event sgds-show - Emitted on show.\n * @event sgds-after-show - Emitted on show after animation has completed.\n * @event sgds-hide - Emitted on hide.\n * @event sgds-after-hide - Emitted on hide after animation has completed.\n *\n * @cssproperty --toast-icon-margin-right - The margin-right between toast's icon and title in its header. Defaults to 0.5rem\n */\nclass SgdsToast extends SgdsElement {\n constructor() {\n super(...arguments);\n /** Controls the appearance of toast */\n this.show = false;\n /** The header title of toast. It is required to assign a title to toast */\n this.title = \"Title\";\n /** Controls whether the toast has fade animation during its appearance/disappearance */\n this.noAnimation = false;\n /** Controls if the toast will hide itself after the delay time. Works with delay property */\n this.autohide = false;\n /** The amount of time taken for toast to disappear after its first render. It takes effect only when autohide is set to true */\n this.delay = 5000;\n }\n /** Shows the toast */\n async showToast() {\n if (this.show) {\n return;\n }\n this.show = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n /** Hide the toast */\n async hideToast() {\n if (!this.show) {\n return;\n }\n this.show = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n /** @internal */\n handleCloseClick() {\n this.show = false;\n this.emit(\"sgds-close\");\n }\n /**@internal */\n async handleShowChange() {\n if (this.show) {\n this.emit(\"sgds-show\");\n this.toast.hidden = !this.show;\n const toastAnimation = getAnimation(this, \"toast.show\");\n !this.noAnimation && (await animateTo(this.toast, toastAnimation.keyframes, toastAnimation.options));\n this.emit(\"sgds-after-show\");\n }\n else {\n this.emit(\"sgds-hide\");\n const toastAnimation = getAnimation(this, \"toast.hide\");\n !this.noAnimation && (await animateTo(this.toast, toastAnimation.keyframes, toastAnimation.options));\n this.emit(\"sgds-after-hide\");\n this.toast.hidden = !this.show;\n }\n }\n firstUpdated() {\n this.toast.hidden = !this.show;\n }\n render() {\n if (this.autohide && this.show) {\n setTimeout(() => {\n this.show = false;\n }, this.delay);\n }\n return html `\n \n
    \n \n ${this.title}\n \n \n
    \n
    \n \n `;\n }\n}\nSgdsToast.styles = [SgdsElement.styles, css_248z];\n__decorate([\n query(\"div.toast\")\n], SgdsToast.prototype, \"toast\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsToast.prototype, \"show\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToast.prototype, \"title\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsToast.prototype, \"noAnimation\", void 0);\n__decorate([\n property({ type: Boolean, reflect: true })\n], SgdsToast.prototype, \"autohide\", void 0);\n__decorate([\n property({ type: Number, reflect: true })\n], SgdsToast.prototype, \"delay\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToast.prototype, \"variant\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToast.prototype, \"toastClasses\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToast.prototype, \"bg\", void 0);\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToast.prototype, \"status\", void 0);\n__decorate([\n watch(\"show\", { waitUntilFirstUpdate: true })\n], SgdsToast.prototype, \"handleShowChange\", null);\nsetDefaultAnimation(\"toast.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 400, easing: \"ease\" }\n});\nsetDefaultAnimation(\"toast.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 400, easing: \"ease\" }\n});\n\nexport { SgdsToast, SgdsToast as default };\n//# sourceMappingURL=sgds-toast.js.map\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--toast-container-slot-elements-gap:0.5rem}slot{display:flex;flex-direction:column;gap:var(--toast-container-slot-elements-gap)}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-toast-container2.js.map\n","import { __decorate } from 'tslib';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit/static-html.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport mergeDeep from '../../utils/mergeDeep.js';\nimport css_248z from './sgds-toast-container2.js';\n\n/**\n * @summary ToastContainer is the container component to position `sgds-toast` in screen. When there is multiple toasts in the container, the toast components are stacked vertically.\n *\n * @slot default - The slot for `sgds-toast` elements\n *\n * @cssproperty --toast-container-slot-elements-gap - The gap between multiple `sgds-toast` elements. Defaults to 0.5rem\n */\nclass SgdsToastContainer extends SgdsElement {\n render() {\n const generatePositionCssTokenObj = (position) => {\n if (!position)\n return {};\n const arrayOfCssTokensObj = [\n positionClasses[position].top,\n positionClasses[position].start,\n positionClasses[position].translate\n ]\n .filter(cssToken => !!cssToken)\n .map(truthyCssToken => ({ [`${truthyCssToken}`]: true }));\n return Object.assign({}, ...arrayOfCssTokensObj);\n };\n return html `\n \n \n \n `;\n }\n}\nSgdsToastContainer.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String, reflect: true })\n], SgdsToastContainer.prototype, \"position\", void 0);\nconst positionClasses = {\n \"top-start\": {\n top: \"top-0\",\n start: \"start-50\",\n translate: \"translate-middle-x\"\n },\n \"top-center\": {\n top: \"top-0\",\n start: \"start-50\",\n translate: \"translate-middle-x\"\n },\n \"top-end\": { top: \"top-0\", start: \"end-0\", translate: null },\n \"middle-start\": { top: \"top-50\", start: \"start-0\", translate: \"translate-middle-y\" },\n \"middle-center\": { top: \"top-50\", start: \"start-50\", translate: \"translate-middle\" },\n \"middle-end\": { top: \"top-50\", start: \"end-0\", translate: \"translate-middle-y\" },\n \"bottom-start\": { top: \"bottom-0\", start: \"start-0\", translate: null },\n \"bottom-center\": { top: \"bottom-0\", start: \"start-50\", translate: \"translate-middle-x\" },\n \"bottom-end\": { top: \"bottom-0\", start: \"end-0\", translate: null }\n};\n\nexport { SgdsToastContainer, SgdsToastContainer as default };\n//# sourceMappingURL=sgds-toast-container.js.map\n","import { SgdsToast } from './sgds-toast.js';\nimport { SgdsToastContainer } from './sgds-toast-container.js';\n\ncustomElements.define(\"sgds-toast\", SgdsToast);\ncustomElements.define(\"sgds-toast-container\", SgdsToastContainer);\n//# sourceMappingURL=index.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
    '\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
    ' +\n '
    ' +\n '
    ' +\n '
    ',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._popper = null\n this._templateFactory = null\n this._newContent = null\n\n // Protected\n this.tip = null\n\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n this._activeTrigger.click = !this._activeTrigger.click\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposePopper()\n super.dispose()\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n const { container } = this._config\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n this._popper = this._createPopper(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposePopper()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n // TODO: remove this check in v6\n if (!tip) {\n return null\n }\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposePopper()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element])\n const attachment = AttachmentMap[placement.toUpperCase()]\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element])\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n }\n }\n ]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n","import { css } from 'lit';\n\nvar css_248z = css`:host{--tooltip-max-width:20rem;display:inline-block}.tooltip-inner{max-width:var(--tooltip-max-width)}div{max-width:fit-content}`;\n\nexport { css_248z as default };\n//# sourceMappingURL=sgds-tooltip2.js.map\n","import { __decorate } from 'tslib';\nimport Tooltip from 'bootstrap/js/src/tooltip';\nimport { html } from 'lit';\nimport { property, state, queryAssignedElements } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport SgdsElement from '../../base/sgds-element.js';\nimport css_248z from './sgds-tooltip2.js';\n\n/**\n * @summary Tooltips display more information when users hover over, focus on, or interact with an element.\n * @slot default - The element to target the tooltip to.\n *\n * @cssproperty --tooltip-max-width - Sets the tooltips max width. Default to 20rem.\n */\nclass SgdsTooltip extends SgdsElement {\n constructor() {\n super(...arguments);\n this.myTooltip = createRef();\n this.bsTooltip = null;\n /** The tooltip's content. Content has to be textual */\n this.content = \"\";\n /** The placement of tooltip relative to its target */\n this.placement = \"top\";\n /** The method to invoke the tooltip. `hover focus` is the default value which allows tooltip to be triggered via mouse hover and keyboard focus. Add `tabindex=0 `for HTMLelements that are not tabbable. For `click` method, the tooltip is trigger via mouse clicking and it instantiates with a close button */\n this.trigger = \"hover focus\";\n }\n _handleSlotChange() {\n // For a11y purpose\n this.tooltipTargetElements.forEach(el => el.setAttribute(\"data-sgds-tooltip\", this.content));\n }\n initializeTooltip() {\n var _a;\n // refer to Bootstrap's Tooltip options\n // Feature: Add close button when prop trigger === 'click'\n //useless to modify the \"template\" as BsTooltip \"title\" option will override anything that is within .tooltip-inner\n //HTML method insertAdjacentText() is use to add the text content before close button but it requires a parent\n // Only way is to modify BsTooltip's title with \"sanitize: false\" to add the close button\n // When trigger is a \"click\", tooltipContainer will be created and modify BsTooltip's \"title\", adding a close button\n if (this.trigger === \"click\") {\n this.closableContainer = document.createElement(\"div\");\n this.closableContainer.classList.add(\"d-flex\");\n this.closableContainer.classList.add(\"gap-4\");\n this.closableContainer.classList.add(\"text-start\");\n const closeBtn = document.createElement(\"button\");\n closeBtn.classList.add(\"btn-close\");\n closeBtn.classList.add(\"btn-close-white\");\n closeBtn.classList.add(\"mt-1\");\n closeBtn.setAttribute(\"aria-label\", \"Close\");\n this.closableContainer.appendChild(closeBtn);\n this.closableContainer.insertAdjacentText(\"afterbegin\", this.content);\n (_a = this.shadowRoot.querySelector(\".btn-close\")) === null || _a === void 0 ? void 0 : _a.addEventListener(\"click\", () => this.hide());\n }\n this.tooltipConfig = {\n popperConfig: (defaultConfig) => {\n this.popperConfig = defaultConfig;\n const defaultModifiers = defaultConfig.modifiers;\n const newModifiers = defaultModifiers.map(mod => {\n if (mod.name === \"flip\") {\n mod.options.fallbackPlacements = [];\n }\n return mod;\n });\n this.popperConfig.modifiers = newModifiers;\n return this.popperConfig;\n },\n placement: this.placement,\n trigger: this.trigger,\n title: this.trigger === \"click\" ? this.closableContainer : this.content,\n html: true,\n sanitize: false, // to allow button element,\n container: this.shadowRoot.querySelector(\"div\") // tooltip to appear inside the shadow root of sgds-tooltip instead of anywhere in the DOM, so that scoped styles can apply\n };\n this.bsTooltip = new Tooltip(this.myTooltip.value, this.tooltipConfig);\n }\n firstUpdated() {\n this.initializeTooltip();\n this.myTooltip.value.addEventListener(\"show.bs.tooltip\", () => {\n this.emit(\"sgds-show\");\n });\n this.myTooltip.value.addEventListener(\"shown.bs.tooltip\", () => {\n this.emit(\"sgds-after-show\");\n });\n this.myTooltip.value.addEventListener(\"hide.bs.tooltip\", () => {\n this.emit(\"sgds-hide\");\n });\n this.myTooltip.value.addEventListener(\"hidden.bs.tooltip\", () => {\n this.emit(\"sgds-after-hide\");\n });\n }\n /** Hides the Tooltip */\n hide() {\n this.bsTooltip.hide();\n }\n /** Shows the Tooltip */\n show() {\n this.bsTooltip.show();\n }\n render() {\n return html `\n
    \n \n
    \n `;\n }\n}\nSgdsTooltip.styles = [SgdsElement.styles, css_248z];\n__decorate([\n property({ type: String })\n], SgdsTooltip.prototype, \"content\", void 0);\n__decorate([\n property({ type: String })\n], SgdsTooltip.prototype, \"placement\", void 0);\n__decorate([\n property({ type: String })\n], SgdsTooltip.prototype, \"trigger\", void 0);\n__decorate([\n state()\n], SgdsTooltip.prototype, \"popperConfig\", void 0);\n__decorate([\n queryAssignedElements()\n], SgdsTooltip.prototype, \"tooltipTargetElements\", void 0);\n\nexport { SgdsTooltip, SgdsTooltip as default };\n//# sourceMappingURL=sgds-tooltip.js.map\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { SgdsTooltip } from './sgds-tooltip.js';\n\ncustomElements.define(\"sgds-tooltip\", SgdsTooltip);\n//# sourceMappingURL=index.js.map\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","\n import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./swiper-bundle.min.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./swiper-bundle.min.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\n\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a