@haiilo/catalyst 0.13.0 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalyst/catalyst.css +1 -1
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/index.esm.js +1 -1
- package/dist/catalyst/{p-4ced6c7c.entry.js → p-45547af1.entry.js} +3 -3
- package/dist/catalyst/p-45547af1.entry.js.map +1 -0
- package/dist/catalyst/{p-f88f8914.js → p-933b6a7a.js} +2 -2
- package/dist/catalyst/p-933b6a7a.js.map +1 -0
- package/dist/catalyst/{p-659073b5.js → p-a255bd64.js} +2 -2
- package/dist/catalyst/p-a255bd64.js.map +1 -0
- package/dist/catalyst/scss/core/_toast.scss +22 -12
- package/dist/cjs/cat-alert_22.cjs.entry.js +56 -12
- package/dist/cjs/cat-alert_22.cjs.entry.js.map +1 -1
- package/dist/cjs/{cat-notification-444c9ea0.js → cat-notification-6a438ad1.js} +44 -45
- package/dist/cjs/cat-notification-6a438ad1.js.map +1 -0
- package/dist/cjs/catalyst.cjs.js +2 -2
- package/dist/cjs/{index-936b777e.js → index-c7955116.js} +12 -1
- package/dist/cjs/index-c7955116.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/components/cat-alert/cat-alert.css +24 -14
- package/dist/collection/components/cat-alert/cat-alert.js +49 -1
- package/dist/collection/components/cat-alert/cat-alert.js.map +1 -1
- package/dist/collection/components/cat-checkbox/cat-checkbox.js +9 -6
- package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +1 -1
- package/dist/collection/components/cat-input/cat-input.js +17 -12
- package/dist/collection/components/cat-input/cat-input.js.map +1 -1
- package/dist/collection/components/cat-input/input-type.js +2 -0
- package/dist/collection/components/cat-input/input-type.js.map +1 -0
- package/dist/collection/components/cat-notification/cat-notification.js +43 -44
- package/dist/collection/components/cat-notification/cat-notification.js.map +1 -1
- package/dist/collection/components/cat-tab/cat-tab.js +7 -7
- package/dist/collection/components/cat-tab/cat-tab.js.map +1 -1
- package/dist/collection/components/cat-tabs/cat-tabs.js +19 -2
- package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
- package/dist/collection/components/cat-toast-demo/cat-toast-demo.js +12 -1
- package/dist/collection/components/cat-toast-demo/cat-toast-demo.js.map +1 -1
- package/dist/collection/components/cat-toggle/cat-toggle.js +9 -6
- package/dist/collection/components/cat-toggle/cat-toggle.js.map +1 -1
- package/dist/collection/scss/core/_toast.scss +22 -12
- package/dist/components/cat-alert.js +23 -4
- package/dist/components/cat-alert.js.map +1 -1
- package/dist/components/cat-checkbox.js +7 -4
- package/dist/components/cat-checkbox.js.map +1 -1
- package/dist/components/cat-input.js +3 -3
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-tab.js +7 -7
- package/dist/components/cat-tab.js.map +1 -1
- package/dist/components/cat-tabs.js +19 -2
- package/dist/components/cat-tabs.js.map +1 -1
- package/dist/components/cat-toast-demo.js +55 -45
- package/dist/components/cat-toast-demo.js.map +1 -1
- package/dist/components/cat-toggle.js +7 -4
- package/dist/components/cat-toggle.js.map +1 -1
- package/dist/esm/cat-alert_22.entry.js +56 -12
- package/dist/esm/cat-alert_22.entry.js.map +1 -1
- package/dist/esm/{cat-notification-953c785d.js → cat-notification-5b6a2cd9.js} +44 -45
- package/dist/esm/cat-notification-5b6a2cd9.js.map +1 -0
- package/dist/esm/catalyst.js +2 -2
- package/dist/esm/{index-41ceb7da.js → index-17d2bcf3.js} +12 -1
- package/dist/esm/index-17d2bcf3.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/types/components/cat-alert/cat-alert.d.ts +9 -0
- package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +1 -1
- package/dist/types/components/cat-input/cat-input.d.ts +6 -5
- package/dist/types/components/cat-input/input-type.d.ts +1 -0
- package/dist/types/components/cat-notification/cat-notification.d.ts +9 -4
- package/dist/types/components/cat-tabs/cat-tabs.d.ts +5 -1
- package/dist/types/components/cat-toggle/cat-toggle.d.ts +1 -1
- package/dist/types/components.d.ts +31 -14
- package/package.json +4 -4
- package/dist/catalyst/p-4ced6c7c.entry.js.map +0 -1
- package/dist/catalyst/p-659073b5.js.map +0 -1
- package/dist/catalyst/p-f88f8914.js.map +0 -1
- package/dist/cjs/cat-notification-444c9ea0.js.map +0 -1
- package/dist/cjs/index-936b777e.js.map +0 -1
- package/dist/esm/cat-notification-953c785d.js.map +0 -1
- package/dist/esm/index-41ceb7da.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"cat-alert.cat-avatar.cat-badge.cat-button.cat-card.cat-checkbox.cat-icon.cat-input.cat-menu.cat-modal.cat-radio.cat-radio-group.cat-scrollable.cat-select.cat-skeleton.cat-spinner.cat-tab.cat-tabs.cat-textarea.cat-toast-demo.cat-toggle.cat-tooltip.entry.cjs.js","mappings":"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","names":["h","Host","log","nextUniqueId","CatIconRegistry","CatI18nRegistry","computePosition","focusTrap.createFocusTrap","Symbol_observable","Symbol_iterator","iterator","autosize","NotificationsService","isTouchScreen"],"sources":["./src/components/cat-alert/cat-alert.scss?tag=cat-alert&encapsulation=shadow","./src/components/cat-alert/cat-alert.tsx","./src/utils/load-img.ts","./src/components/cat-avatar/cat-avatar.scss?tag=cat-avatar&encapsulation=shadow","./src/components/cat-avatar/cat-avatar.tsx","./src/components/cat-badge/cat-badge.scss?tag=cat-badge&encapsulation=shadow","./src/components/cat-badge/cat-badge.tsx","./src/utils/breakpoints.ts","./src/utils/platform.ts","./src/utils/media-matcher.ts","./src/components/cat-button/cat-button.scss?tag=cat-button&encapsulation=shadow","./src/components/cat-button/cat-button.tsx","./src/components/cat-card/cat-card.scss?tag=cat-card&encapsulation=shadow","./src/components/cat-card/cat-card.tsx","./src/components/cat-form-hint/cat-form-hint.tsx","./src/components/cat-checkbox/cat-checkbox.scss?tag=cat-checkbox&encapsulation=shadow","./src/components/cat-checkbox/cat-checkbox.tsx","./src/components/cat-icon/cat-icon.scss?tag=cat-icon&encapsulation=shadow","./src/components/cat-icon/cat-icon.tsx","./src/components/cat-input/cat-input.scss?tag=cat-input&encapsulation=shadow","./src/components/cat-input/cat-input.tsx","../node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","./src/utils/first-tabbable.ts","./src/components/cat-menu/cat-menu.scss?tag=cat-menu&encapsulation=shadow","./src/components/cat-menu/cat-menu.tsx","./src/components/cat-modal/cat-modal.scss?tag=cat-modal&encapsulation=shadow","./src/components/cat-modal/cat-modal.tsx","./src/components/cat-radio/cat-radio.scss?tag=cat-radio&encapsulation=shadow","./src/components/cat-radio/cat-radio.tsx","./src/components/cat-radio-group/cat-radio-group.scss?tag=cat-radio-group&encapsulation=shadow","./src/components/cat-radio-group/cat-radio-group.tsx","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/args.js","../node_modules/tslib/tslib.es6.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./src/components/cat-scrollable/cat-scrollable.scss?tag=cat-scrollable&encapsulation=shadow","./src/components/cat-scrollable/cat-scrollable.tsx","../node_modules/choices.js/public/assets/scripts/choices.js","./src/components/cat-select/cat-select.scss?tag=cat-select&encapsulation=shadow","./src/components/cat-select/cat-select.tsx","./src/components/cat-skeleton/cat-skeleton.scss?tag=cat-skeleton&encapsulation=shadow","./src/components/cat-skeleton/cat-skeleton.tsx","./src/components/cat-spinner/cat-spinner.scss?tag=cat-spinner&encapsulation=shadow","./src/components/cat-spinner/cat-spinner.tsx","./src/components/cat-tab/cat-tab.scss?tag=cat-tab&encapsulation=shadow","./src/components/cat-tab/cat-tab.tsx","./src/components/cat-tabs/cat-tabs.scss?tag=cat-tabs&encapsulation=shadow","./src/components/cat-tabs/cat-tabs.tsx","../node_modules/autosize/dist/autosize.esm.js","./src/components/cat-textarea/cat-textarea.scss?tag=cat-textarea&encapsulation=shadow","./src/components/cat-textarea/cat-textarea.tsx","./src/components/cat-toast-demo/cat-toast-demo.scss?tag=cat-toast-demo","./src/components/cat-toast-demo/cat-toast-demo.tsx","./src/components/cat-toggle/cat-toggle.scss?tag=cat-toggle&encapsulation=shadow","./src/components/cat-toggle/cat-toggle.tsx","./src/utils/is-touch-screen.ts","./src/components/cat-tooltip/cat-tooltip.scss?tag=cat-tooltip&encapsulation=shadow","./src/components/cat-tooltip/cat-tooltip.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host(:focus-visible) {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.alert {\n font: inherit;\n color: cat-token-wrap(var(--text));\n background-color: cat-token-wrap(var(--bg), $alpha: 0.1);\n box-shadow: inset 0 0 0 1px cat-token-wrap(var(--border), $alpha: 0.2);\n border-radius: cat-border-radius('m');\n padding: 0.75rem 1rem;\n}\n\n::slotted(:last-child) {\n margin-bottom: 0 !important;\n}\n\n// ----- theme\n\n@mixin theme($theme) {\n .alert-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --border: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --border: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Informs user about important changes or conditions in the interface. Use this\n * component if you need to capture user’s attention in a prominent way.\n *\n * @part alert - The alert element.\n */\n@Component({\n tag: 'cat-alert',\n styleUrl: 'cat-alert.scss',\n shadow: true\n})\nexport class CatAlert {\n /**\n * The color palette of the alert.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n render() {\n return (\n <Host tabindex=\"0\" role={this.role}>\n <div\n part=\"alert\"\n class={{\n alert: true,\n [`alert-${this.color}`]: Boolean(this.color)\n }}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n\n private get role() {\n switch (this.color) {\n case 'danger':\n case 'warning':\n return 'alert';\n default:\n return 'status';\n }\n }\n}\n","/**\n * Loads an image and wraps the result in a promise.\n *\n * @param src the image URL\n * @returns a promise\n */\nconst loadImg = (src: string): Promise<Event> => {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', resolve);\n image.addEventListener('error', reject);\n image.src = src;\n });\n};\n\nexport default loadImg;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$avatar-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n /**\n * @prop --cat-avatar-bg: The background color of the avatar.\n * @prop --cat-avatar-fill: The text color of the avatar.\n * @prop --cat-avatar-size: The size of the avatar.\n * @prop --cat-avatar-font-size: The font size of the avatar.\n */\n display: inline-block;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('m');\n text-decoration: inherit;\n color: var(--cat-avatar-fill, cat-token('color.ui.font.avatar'));\n background-color: var(--cat-avatar-bg, cat-token('color.ui.background.avatar'));\n background-size: cover;\n background-position: center;\n white-space: nowrap;\n overflow: hidden;\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.avatar-round {\n border-radius: 50%;\n}\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .avatar-#{$size} {\n width: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n height: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n line-height: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n font-size: var(--cat-avatar-font-size, cat-body-font-size($fontSize));\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 's');\n@include size('m', 'm');\n@include size('l', 'l');\n@include size('xl', 'xl');\n","import { Component, h, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport loadImg from '../../utils/load-img';\n\n/**\n * Avatars are used to represent a person or object.\n */\n@Component({\n tag: 'cat-avatar',\n styleUrl: 'cat-avatar.scss',\n shadow: true\n})\nexport class CatAvatar {\n @State() backgroundImage?: string;\n\n /**\n * The size of the avatar.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round avatar edges.\n */\n @Prop() round = false;\n\n /**\n * The label of the avatar.\n */\n @Prop() label = '';\n\n /**\n * Custom initials for the avatar.\n */\n @Prop() initials?: string;\n\n /**\n * An optional avatar image.\n */\n @Prop() src?: string;\n\n /**\n * An icon to be used instead of the initials.\n */\n @Prop() icon?: string;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n @Watch('src')\n onSrcChanged(value?: string): void {\n if (value) {\n loadImg(value).then(\n () => (this.backgroundImage = `url(${value})`),\n () => (this.backgroundImage = undefined)\n );\n } else {\n this.backgroundImage = undefined;\n }\n }\n\n componentWillLoad(): void {\n this.onSrcChanged(this.src);\n }\n\n componentWillRender(): void {\n if (!this.label) {\n log.warn('[A11y] Missing ARIA label on avatar', this);\n }\n }\n\n render() {\n if (this.url) {\n return (\n <a href={this.url} target={this.urlTarget} style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </a>\n );\n } else {\n return (\n <span style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </span>\n );\n }\n }\n\n private get content() {\n return !this.backgroundImage\n ? [this.icon ? <cat-icon icon={this.icon} size={this.size}></cat-icon> : this.getInitials()]\n : [];\n }\n\n private get cssStyle() {\n return { 'background-image': this.backgroundImage };\n }\n\n private get cssClass() {\n return {\n avatar: true,\n 'avatar-round': this.round,\n [`avatar-${this.size}`]: Boolean(this.size)\n };\n }\n\n private getInitials(): string {\n return (\n this.initials ??\n (this.label ?? '')\n .split(' ')\n .map(n => n[0])\n .join('')\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$badge-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n display: inline-flex;\n max-width: 100%;\n vertical-align: baseline;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.badge {\n font: inherit;\n flex: 1 1 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('s');\n text-decoration: none;\n width: 100%;\n box-sizing: border-box;\n line-height: 1;\n white-space: nowrap;\n\n slot {\n display: inline-block;\n @include cat-ellipsis;\n }\n}\n\n// ----- round\n\n.badge-round {\n border-radius: 10rem;\n}\n\n// ----- theme\n\n.badge-filled {\n background-color: cat-token-wrap(var(--bg));\n color: cat-token-wrap(var(--fill));\n font-weight: 600;\n @include cat-font-smooth;\n}\n\n$-outline: inset 0 0 0 1px cat-token-wrap(var(--border), $alpha: 0.2);\n\n.badge-outlined {\n background-color: cat-token('color.ui.background.body');\n box-shadow: $-outline;\n color: cat-token-wrap(var(--text));\n}\n\n@mixin theme($theme) {\n .badge-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fill', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --border: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --border: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .badge-#{$size} {\n height: cat-token('size.badge.height.#{$size}');\n min-width: map.get($badge-sizes, $size);\n font-size: cat-token('size.badge.font.#{$size}');\n padding: 0 cat-token('size.badge.padding.horizontal.#{$size}');\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 's');\n@include size('m', 'm');\n@include size('l', 'l');\n@include size('xl', 'xl');\n\n// ----- pulse\n\n$-pulse-0: 0 0 0 0 cat-token-wrap(var(--bg));\n$-pulse-70: transparent 0 0 0 0.5rem;\n$-pulse-100: transparent 0 0 0 0;\n\n.badge-pulse {\n &.badge-filled {\n animation: 1.5s ease 0s infinite normal none running pulse;\n }\n\n &.badge-outlined {\n animation: 1.5s ease 0s infinite normal none running pulse-outlined;\n }\n}\n\n@keyframes pulse {\n 0% {\n box-shadow: $-pulse-0;\n }\n\n 70% {\n box-shadow: $-pulse-70;\n }\n\n 100% {\n box-shadow: $-pulse-100;\n }\n}\n\n@keyframes pulse-outlined {\n 0% {\n box-shadow: $-pulse-0, $-outline;\n }\n\n 70% {\n box-shadow: $-pulse-70, $-outline;\n }\n\n 100% {\n box-shadow: $-pulse-100, $-outline;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Badges are used to inform users of the status of an object or of an action\n * that’s been taken.\n *\n * @part badge - The badge element.\n */\n@Component({\n tag: 'cat-badge',\n styleUrl: 'cat-badge.scss',\n shadow: true\n})\nexport class CatBadge {\n /**\n * The rendering style of the badge.\n */\n @Prop() variant: 'filled' | 'outlined' = 'filled';\n\n /**\n * The color palette of the badge.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n /**\n * The size of the badge.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round badge edges.\n */\n @Prop() round = false;\n\n /**\n * Draw attention to the badge with a subtle animation.\n */\n @Prop() pulse = false;\n\n render() {\n return (\n <span\n part=\"badge\"\n class={{\n badge: true,\n 'badge-round': this.round,\n 'badge-pulse': this.pulse,\n [`badge-${this.variant}`]: Boolean(this.variant),\n [`badge-${this.color}`]: Boolean(this.color),\n [`badge-${this.size}`]: Boolean(this.size)\n }}\n >\n <slot></slot>\n </span>\n );\n }\n}\n","const _breakpoints = ['xs', 's', 'm', 'l', 'xl'] as const;\n\nexport type Breakpoint = typeof _breakpoints[number];\n\nexport const Breakpoints: { [breakpoint in Breakpoint]: string } = {\n xs: '(max-width: 539.98px)',\n s: '(max-width: 767.98px)',\n m: '(max-width: 991.98px)',\n l: '(max-width: 1199.98px)',\n xl: '(max-width: 1399.98px)'\n};\n\nexport function isBreakpoint(value: unknown): value is Breakpoint {\n return typeof value === 'string' && _breakpoints.includes(value as Breakpoint);\n}\n","// https://github.com/angular/components/blob/master/src/cdk/platform/platform.ts\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\nexport class Platform {\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = /(msie|trident)/i.test(navigator.userAgent);\n\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !!((window as any).chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT;\n\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n WEBKIT: boolean = /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n FIREFOX: boolean = /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n SAFARI: boolean = /safari/i.test(navigator.userAgent) && this.WEBKIT;\n}\n","import log from 'loglevel';\nimport { Platform } from './platform';\n\n// https://github.com/angular/components/blob/master/src/cdk/layout/media-matcher.ts\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility: Set<string> = new Set<string>();\n\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode: HTMLStyleElement | undefined;\n\n/** A utility for calling matchMedia queries. */\nexport class MediaMatcher {\n private _platform;\n private _matchMedia: (query: string) => MediaQueryList;\n\n constructor() {\n this._platform = new Platform();\n this._matchMedia = window.matchMedia.bind(window);\n }\n\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query: string): MediaQueryList {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n }\n}\n\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query: string) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n } catch (e) {\n log.error(e);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$button-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n display: inline-block;\n max-width: 100%;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.cat-button {\n position: relative;\n font: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: cat-border-radius('m');\n text-decoration: none;\n width: 100%;\n box-sizing: border-box;\n cursor: pointer;\n transition: color cat-token('time.transition.s') linear, border-color cat-token('time.transition.s') linear,\n background-color cat-token('time.transition.s') linear, box-shadow cat-token('time.transition.s') linear;\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n// ----- content\n\n.cat-button-content {\n // flex: 1 1 auto;\n // text-align: center;\n\n .cat-button-ellipsed & {\n @include cat-ellipsis;\n }\n}\n\n// ----- disabled\n\n.cat-button-disabled {\n @include cat-disabled;\n}\n\n// ----- round\n\n.cat-button-round {\n border-radius: 10rem;\n}\n\n// ----- loading\n\n.cat-button-loading {\n cursor: default;\n\n cat-spinner {\n position: absolute;\n }\n\n > *:not(cat-spinner) {\n visibility: hidden;\n }\n}\n\n// ----- theme\n\n.cat-button-filled {\n background-color: cat-token-wrap(var(--bg));\n color: cat-token-wrap(var(--fill));\n font-weight: 600;\n @include cat-font-smooth;\n}\n\n.cat-button-outlined {\n background-color: cat-token('color.ui.background.body');\n box-shadow: inset 0 0 0 1px cat-token-wrap(var(--base), $alpha: 0.2);\n color: cat-token-wrap(var(--text));\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n background-color: cat-token-wrap(var(--base), $alpha: 0.05);\n }\n\n &:active:not(.cat-button-disabled):not(.cat-button-loading) {\n background-color: cat-token-wrap(var(--base), $alpha: 0.1);\n }\n}\n\n.cat-button-text {\n background-color: transparent;\n color: cat-token-wrap(var(--text));\n text-decoration: $cat-link-text-decoration;\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n text-decoration: $cat-button-text-decoration-hover;\n background-color: rgba(var(--base), 0.05);\n }\n}\n\n@mixin theme($theme) {\n .cat-button-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fill', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --base: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --base: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n --bg: #{cat-token('color.theme.#{$theme}.bgHover', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fillHover', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.textHover', $wrap: false)};\n }\n\n &:active:not(.cat-button-disabled):not(.cat-button-loading) {\n --bg: #{cat-token('color.theme.#{$theme}.bgActive', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fillActive', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.textActive', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n\n// ----- size\n\n@mixin size($size, $fontSize, $padding) {\n $-line-height: cat-body-line-height($fontSize);\n\n $-total-height: map.get($button-sizes, $size);\n $-padding-v: ($-total-height - $-line-height) * 0.5;\n $-padding-h: $padding;\n\n .cat-button-#{$size} {\n min-width: map.get($button-sizes, $size);\n padding: $-padding-v $-padding-h;\n\n @include cat-body($fontSize);\n\n .cat-button-prefix {\n margin-right: 0.25rem;\n }\n\n .cat-button-suffix {\n margin-left: 0.25rem;\n }\n\n // normalize icon size for line height\n @if $fontSize == 'm' {\n cat-icon {\n margin-top: -0.125rem;\n margin-bottom: -0.125rem;\n }\n }\n\n &.cat-button-icon {\n width: $-total-height;\n padding-left: 0;\n padding-right: 0;\n }\n\n :host-context(nav) & {\n padding-left: $cat-nav-padding-horizontal;\n padding-right: $cat-nav-padding-horizontal;\n }\n }\n\n :host(.cat-button-pull[size='#{$size}']) {\n margin: $-padding-v * -1 $-padding-h * -1;\n }\n\n :host(.cat-button-pull-h[size='#{$size}']) {\n margin-left: $-padding-h * -1;\n margin-right: $-padding-h * -1;\n }\n\n :host(.cat-button-pull-v[size='#{$size}']) {\n margin-top: $-padding-v * -1;\n margin-bottom: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-t[size='#{$size}']) {\n margin-top: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-l[size='#{$size}']) {\n margin-left: $-padding-h * -1;\n }\n\n :host(.cat-button-pull-b[size='#{$size}']) {\n margin-bottom: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-r[size='#{$size}']) {\n margin-right: $-padding-h * -1;\n }\n}\n\n:host(.cat-button-pull:not([size])) {\n margin: -0.625rem -0.75rem;\n}\n\n:host(.cat-button-pull-h:not([size])) {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n}\n\n:host(.cat-button-pull-v:not([size])) {\n margin-top: -0.625rem;\n margin-bottom: -0.625rem;\n}\n\n:host(.cat-button-pull-t:not([size])) {\n margin-top: -0.625rem;\n}\n\n:host(.cat-button-pull-l:not([size])) {\n margin-left: -0.75rem;\n}\n\n:host(.cat-button-pull-b:not([size])) {\n margin-bottom: -0.625rem;\n}\n\n:host(.cat-button-pull-r:not([size])) {\n margin-right: -0.75rem;\n}\n\n@include size('xs', 's', 0.25rem);\n@include size('s', 'm', 0.5rem);\n@include size('m', 'm', 0.75rem);\n@include size('l', 'm', 1rem);\n@include size('xl', 'l', 1.25rem);\n\n// -- active state\n\n.cat-button-active::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 0.25rem;\n height: 100%;\n background: cat-token-wrap(var(--base));\n}\n\n// ----- context\n\n:host-context(nav) {\n width: 100%;\n\n .cat-button {\n box-shadow: none;\n border-radius: 0;\n justify-content: left;\n\n &:focus-visible {\n outline-offset: -2px;\n }\n }\n}\n\n:host(.cat-text-left) .cat-button {\n justify-content: left;\n}\n\n:host(.cat-text-right) .cat-button {\n justify-content: right;\n}\n","import { Component, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport { Breakpoint, Breakpoints, isBreakpoint } from '../../utils/breakpoints';\nimport { MediaMatcher } from '../../utils/media-matcher';\n\n/**\n * Buttons are used for interface actions. Primary style should be used only\n * once per view for main call-to-action.\n *\n * @part button - The native anchor or button element.\n * @part content - The textual content of the button.\n * @part prefix - The prefix icon.\n * @part suffix - The suffix icon.\n */\n@Component({\n tag: 'cat-button',\n styleUrl: 'cat-button.scss',\n shadow: true\n})\nexport class CatButton {\n private button!: HTMLButtonElement | HTMLAnchorElement;\n private mediaMatcher?: MediaMatcher;\n private mediaQueryList?: MediaQueryList;\n private mediaQueryListener?: (event: MediaQueryListEvent) => void;\n\n @State() _iconOnly = true;\n\n /**\n * The rendering style of the button.\n */\n @Prop() variant: 'filled' | 'outlined' | 'text' = 'outlined';\n\n /**\n * The color palette of the button.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'secondary';\n\n /**\n * Show an active status indicator on the left side of the button.\n */\n @Prop() active = false;\n\n /**\n * The size of the button.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * The name of the button, which gets paired with the button's value when\n * submitted as part of a form. Corresponds with the native HTML name\n * attribute.\n */\n @Prop() name?: string;\n\n /**\n * The value of the button, which gets paired with the button's name when\n * submitted as part of a form. Corresponds with the native HTML value\n * attribute.\n */\n @Prop() value?: string;\n\n /**\n * Specifies that the button should be disabled. A disabled button is unusable\n * and un-clickable. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * Displays the button in a loading state with a spinner. Just like a disabled\n * button, an inactive button is unusable and un-clickable. However, it\n * retains the current focus state.\n */\n @Prop() loading = false;\n\n /**\n * Allows the button to submit a form.\n */\n @Prop() submit = false;\n\n /**\n * Disables ellipse overflowing button content.\n */\n @Prop() noEllipsis = false;\n\n /**\n * Use round button edges.\n */\n @Prop() round = false;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n /**\n * The name of an icon to be displayed in the button.\n */\n @Prop() icon?: string;\n\n /**\n * Hide the actual button content and only display the icon.\n */\n @Prop() iconOnly: boolean | Breakpoint = false;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * Adds a unique identifier for the button. Please note that with this\n * particular component this ID is added inside the web component. If you need\n * an ID on the HTML element, use the regular `id` attribute instead.\n */\n @Prop() buttonId?: string;\n\n /**\n * Adds accessible label for the button that is only shown for screen\n * readers. Typically, this label text replaces the visible text on the\n * button for users who use assistive technology.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n @Watch('iconOnly')\n onIconOnlyChanged(value: boolean | Breakpoint): void {\n // teardown\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.mediaQueryList?.removeEventListener('change', this.mediaQueryListener!);\n this.mediaQueryList = undefined;\n this.mediaQueryListener = undefined;\n // setup\n if (isBreakpoint(value)) {\n this.mediaMatcher ??= new MediaMatcher();\n this.mediaQueryList = this.mediaMatcher.matchMedia(Breakpoints[value]);\n this.mediaQueryListener = (event: MediaQueryListEvent) => (this._iconOnly = event.matches);\n this.mediaQueryList.addEventListener('change', this.mediaQueryListener);\n this._iconOnly = this.mediaQueryList.matches;\n } else {\n this._iconOnly = value;\n }\n }\n\n /**\n * Emitted when the button is clicked.\n */\n @Event() catClick!: EventEmitter<MouseEvent>;\n\n /**\n * Emitted when the button received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the button loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad(): void {\n this.onIconOnlyChanged(this.iconOnly);\n }\n\n componentWillRender(): void {\n if (this.isIconButton && !this.a11yLabel) {\n log.warn('[A11y] Missing ARIA label on icon button', this);\n }\n }\n\n @Listen('click')\n haltDisabledEvents(event: Event): void {\n if (this.disabled || this.loading) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n /**\n * Sets focus on the button. Use this method instead of `button.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.button.focus(options);\n }\n\n render() {\n if (this.url) {\n return (\n <a\n ref={el => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? undefined : this.url}\n target={this.urlTarget}\n aria-disabled={this.disabled ? 'true' : null}\n aria-label={this.a11yLabel}\n id={this.buttonId}\n part=\"button\"\n class={{\n 'cat-button': true,\n 'cat-button-icon': this.isIconButton,\n 'cat-button-round': this.round,\n 'cat-button-loading': this.loading,\n 'cat-button-disabled': this.disabled,\n 'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,\n [`cat-button-${this.variant}`]: Boolean(this.variant),\n [`cat-button-${this.color}`]: Boolean(this.color),\n [`cat-button-${this.size}`]: Boolean(this.size)\n }}\n onClick={this.onClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n >\n {this.content}\n </a>\n );\n } else {\n return (\n <button\n ref={el => (this.button = el as HTMLButtonElement)}\n type={this.submit ? 'submit' : 'button'}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : null}\n aria-label={this.a11yLabel}\n id={this.buttonId}\n part=\"button\"\n class={{\n 'cat-button': true,\n 'cat-button-active': this.active,\n 'cat-button-icon': this.isIconButton,\n 'cat-button-round': this.round ?? this.isIconButton,\n 'cat-button-loading': this.loading,\n 'cat-button-disabled': this.disabled,\n 'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,\n [`cat-button-${this.variant}`]: Boolean(this.variant),\n [`cat-button-${this.color}`]: Boolean(this.color),\n [`cat-button-${this.size}`]: Boolean(this.size)\n }}\n onClick={this.onClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n >\n {this.content}\n </button>\n );\n }\n }\n\n private get iconSize(): 'xs' | 's' | 'm' | 'l' | 'xl' {\n switch (this.size) {\n case 'xs':\n return 's';\n default:\n return 'l';\n }\n }\n\n private get spinnerSize(): 'xs' | 's' | 'm' | 'l' | 'xl' {\n switch (this.size) {\n case 'xs':\n return 'xs';\n default:\n return 'm';\n }\n }\n\n private get isIconButton() {\n return Boolean(this.icon) && this._iconOnly;\n }\n\n private get hasPrefixIcon() {\n return Boolean(this.icon) && !this._iconOnly && !this.iconRight;\n }\n\n private get hasSuffixIcon() {\n return Boolean(this.icon) && !this._iconOnly && this.iconRight;\n }\n\n private get content() {\n return [\n this.hasPrefixIcon ? (\n <cat-icon icon={this.icon} size={this.iconSize} class=\"cat-button-prefix\" part=\"prefix\"></cat-icon>\n ) : null,\n this.isIconButton ? (\n <cat-icon icon={this.icon} size={this.iconSize}></cat-icon>\n ) : (\n <span class=\"cat-button-content\" part=\"content\">\n <slot></slot>\n </span>\n ),\n this.hasSuffixIcon ? (\n <cat-icon icon={this.icon} size={this.iconSize} class=\"cat-button-suffix\" part=\"suffix\"></cat-icon>\n ) : null,\n this.loading ? <cat-spinner size={this.spinnerSize}></cat-spinner> : null\n ];\n }\n\n private onClick(event: MouseEvent) {\n this.catClick.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n$-padding: 1.25rem;\n\n:host {\n display: block;\n margin-bottom: $cat-body-margin-bottom;\n border-radius: cat-border-radius('l');\n background-color: cat-token('color.ui.background.body');\n padding: $-padding;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n::slotted(nav) {\n margin: #{$cat-body-margin-bottom * 0.5 - $-padding} #{-$-padding} !important;\n}\n\n::slotted(:last-child) {\n margin-bottom: 0;\n}\n\n// --- pull out helper classes\n\n::slotted(.cat-card-pull) {\n margin: -$-padding !important;\n width: calc(100% + #{2 * $-padding}) !important;\n height: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-h) {\n margin-left: -$-padding !important;\n margin-right: -$-padding !important;\n width: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-v) {\n margin-top: -$-padding !important;\n margin-bottom: -$-padding !important;\n height: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-t) {\n margin-top: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-l) {\n margin-left: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-r) {\n margin-right: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-b) {\n margin-bottom: -$-padding !important;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * Cards are surfaces that display content and actions on a single topic. They\n * should be easy to scan for relevant and actionable information.\n */\n@Component({\n tag: 'cat-card',\n styleUrl: 'cat-card.scss',\n shadow: true\n})\nexport class CatCard {\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","import { h, FunctionalComponent } from '@stencil/core';\n\n/**\n * Properties of CatFormHint.\n *\n * @property hint - Optional hint text(s) of the form field.\n * @property slottedHint - Optional hint element of the form field.\n */\ninterface CatFormHintProps {\n hint?: string | string[];\n slottedHint?: HTMLSlotElement;\n}\n\n/**\n * CatFormHint is a functional component that represents the hint area of form elements.\n *\n * @param props - {@link CatFormHintProps}\n * @return a JSX.Element\n */\nexport const CatFormHint: FunctionalComponent<CatFormHintProps> = props => {\n const { hint, slottedHint } = props;\n return (\n <div class=\"hint-section\">\n {[\n hint &&\n (Array.isArray(hint) ? hint.map(item => <p class=\"input-hint\">{item}</p>) : <p class=\"input-hint\">{hint}</p>),\n slottedHint\n ]}\n </div>\n );\n};\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n$checkbox-width: 1.25rem;\n$checkbox-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n flex: 0 1 auto;\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n @include cat-select(none);\n cursor: pointer;\n position: relative;\n}\n\n.label-left {\n flex-direction: row-reverse;\n\n input {\n right: 1px;\n left: unset;\n }\n}\n\ninput {\n position: absolute;\n width: $checkbox-width;\n height: $checkbox-height;\n margin: 0;\n opacity: 0;\n cursor: inherit;\n left: 1px;\n top: 0.5px;\n}\n\n.box {\n flex: 0 0 auto;\n display: flex;\n position: relative;\n height: $checkbox-height;\n width: $checkbox-width;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.input');\n border-radius: cat-border-radius(s);\n transition: background-color cat-token('time.transition.s') ease, border-color cat-token('time.transition.s') ease;\n pointer-events: none;\n\n svg {\n fill: none;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all cat-token('time.transition.s') ease;\n width: 70%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.99);\n }\n\n :checked + & {\n background-color: cat-token('color.theme.primary.bg');\n border-color: cat-token('color.theme.primary.bg');\n stroke: cat-token('color.theme.primary.fill');\n\n .check {\n stroke-dashoffset: 0;\n }\n }\n\n :indeterminate + & {\n background-color: cat-token('color.theme.primary.bg');\n border-color: cat-token('color.theme.primary.bg');\n stroke: cat-token('color.theme.primary.fill');\n\n .dash {\n stroke-dashoffset: 0;\n }\n }\n\n :focus-visible + & {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Checkboxes are used to let a user choose one or more options from a limited\n * number of options.\n *\n * @slot hint - Optional hint element to be displayed with the checkbox.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part checkbox - The checkbox element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-checkbox',\n styleUrls: ['cat-checkbox.scss'],\n shadow: true\n})\nexport class CatCheckbox {\n private readonly id = `cat-checkbox-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Checked state of the checkbox\n */\n @Prop() checked = false;\n\n /**\n * Disabled state of the checkbox\n */\n @Prop() disabled = false;\n\n /**\n * Indeterminate state of the checkbox\n */\n @Prop() indeterminate = false;\n\n /**\n * Label of the checkbox which is presented in the UI\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the checkbox\n */\n @Prop() required = false;\n\n /**\n * The value of the checkbox\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * Optional hint text(s) to be displayed with the checkbox.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the checkbox.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the checked status of the checkbox is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the checkbox received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the checkbox loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentDidLoad() {\n if (this.input && this.indeterminate) {\n this.input.indeterminate = true;\n }\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on checkbox', this);\n }\n }\n\n /**\n * Sets focus on the checkbox. Use this method instead of `checkbox.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n >\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"box\" aria-hidden=\"true\" part=\"checkbox\">\n <svg class=\"check\" viewBox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n <svg class=\"dash\" viewBox=\"0 0 12 10\">\n <polyline points=\"1.5 5 10.5 5\"></polyline>\n </svg>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.input.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$icon-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n /**\n * @prop --cat-icon-ratio: The aspect ratio of the avatar.\n */\n display: inline-flex;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\nspan {\n display: inline-flex;\n}\n\nsvg {\n fill: currentColor;\n stroke: none;\n transform-origin: center center;\n height: 1em;\n width: calc(var(--cat-icon-ratio, 1) * 1em);\n}\n\n// ----- size\n\n@mixin size($size) {\n .icon-#{$size} svg {\n font-size: map.get($icon-sizes, $size);\n }\n}\n\n@include size('xs');\n@include size('s');\n@include size('m');\n@include size('l');\n@include size('xl');\n","import { Component, h, Prop } from '@stencil/core';\nimport { CatIconRegistry } from './cat-icon-registry';\n\n/**\n * Icons are used to provide additional meaning or in places where text label\n * doesn't fit.\n *\n * @part icon - The span element wrapping the SVG icon.\n */\n@Component({\n tag: 'cat-icon',\n styleUrl: 'cat-icon.scss',\n shadow: true\n})\nexport class CatIcon {\n private readonly iconRegistry = CatIconRegistry.getInstance();\n\n /**\n * The name of the icon.\n */\n @Prop() icon = '';\n\n /**\n * The size of the icon.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'inline' = 'm';\n\n /**\n * Adds accessible label for the icon that is only shown for screen\n * readers. The `aria-hidden` attribute will be set if no label is present.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n render() {\n return (\n <span\n innerHTML={this.iconRegistry.getIcon(this.icon)}\n aria-label={this.a11yLabel}\n aria-hidden={this.a11yLabel ? null : 'true'}\n part=\"icon\"\n class={{\n icon: true,\n [`icon-${this.size}`]: this.size !== 'inline'\n }}\n ></span>\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.input-wrapper {\n display: flex;\n align-items: stretch;\n gap: 0.75rem;\n padding: 0 0.75rem;\n height: 2.5rem;\n overflow: hidden;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n box-shadow: 0 0 0 1px cat-token('color.ui.border.input');\n transition: box-shadow cat-token('time.transition.s') linear;\n\n &.input-round {\n border-radius: 10rem;\n }\n\n &.input-disabled {\n background: cat-token('color.ui.background.inputDisabled');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &:not(.input-disabled) {\n &:hover {\n box-shadow: 0 0 0 2px cat-token('color.ui.border.input');\n }\n\n &:focus-within {\n outline: 2px solid cat-token('color.ui.border.focus');\n }\n }\n}\n\nlabel {\n align-self: flex-start;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\n.text-prefix,\n.text-suffix {\n display: inline-flex;\n align-items: center;\n @include cat-select(none);\n}\n\n.text-prefix {\n border-right: 1px solid cat-token('color.ui.border.input');\n padding-right: 0.75rem;\n}\n\n.text-suffix {\n border-left: 1px solid cat-token('color.ui.border.input');\n padding-left: 0.75rem;\n}\n\n.icon-prefix,\n.icon-suffix {\n align-self: center;\n}\n\n.input-inner-wrapper {\n display: flex;\n position: relative;\n flex: 1 1 auto;\n}\n\ninput {\n font: inherit;\n margin: 0;\n padding: 0;\n width: 100%;\n min-width: 0;\n border: none;\n outline: none;\n background: none;\n\n .input-disabled & {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &.has-clearable {\n padding-right: 1.5rem;\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n}\n\n.clearable {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nlet nextUniqueId = 0;\n\n/**\n * Inputs are used to allow users to provide text input when the expected input\n * is short. As well as plain text, Input supports various types of text,\n * including passwords and numbers.\n *\n * @slot hint - Optional hint element to be displayed with the input.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n * @part prefix - The text prefix.\n * @part suffix - The text suffix.\n */\n@Component({\n tag: 'cat-input',\n styleUrl: 'cat-input.scss',\n shadow: true\n})\nexport class CatInput {\n private readonly i18n = CatI18nRegistry.getInstance();\n private readonly id = `cat-input-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text(s) to be displayed with the input.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * The label for the input.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum value for numeric values.\n */\n @Prop() max?: number;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum value for numeric values.\n */\n @Prop() min?: number;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name = '';\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Use round input edges.\n */\n @Prop() round = false;\n\n /**\n * Type of form control.\n */\n @Prop() type: 'text' | 'email' | 'password' | 'tel' | 'url' | 'search' | 'number' = 'text';\n\n /**\n * The value of the control.\n */\n @Prop({ mutable: true }) value?: string | number;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on input', this);\n }\n }\n\n /**\n * Sets focus on the input. Use this method instead of `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.value = '';\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n ({this.i18n.t('input.optional')})\n </span>\n )}\n </span>\n </label>\n )}\n <div\n class={{\n 'input-wrapper': true,\n 'input-round': this.round,\n 'input-disabled': this.disabled\n }}\n onClick={() => this.input.focus()}\n >\n {this.textPrefix && (\n <span class=\"text-prefix\" part=\"prefix\">\n {this.textPrefix}\n </span>\n )}\n {this.icon && !this.iconRight && <cat-icon icon={this.icon} class=\"icon-prefix\" size=\"l\"></cat-icon>}\n <div class=\"input-inner-wrapper\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n class={{\n 'has-clearable': this.clearable && !this.disabled\n }}\n autocomplete={this.autoComplete}\n disabled={this.disabled}\n max={this.max}\n maxlength={this.maxLength}\n min={this.max}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n type={this.type}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n ></input>\n {this.clearable && !this.disabled && this.value && (\n <cat-button\n class=\"clearable\"\n icon=\"cross-circle-outlined\"\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={this.i18n.t('input.clear')}\n onClick={this.clear.bind(this)}\n ></cat-button>\n )}\n </div>\n {this.icon && this.iconRight && <cat-icon icon={this.icon} class=\"icon-suffix\" size=\"l\"></cat-icon>}\n {this.textSuffix && (\n <span class=\"text-suffix\" part=\"suffix\">\n {this.textSuffix}\n </span>\n )}\n </div>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.input.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","function getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: { ...middlewareData[name],\n ...data\n }\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(middlewareArguments, options) {\n var _await$platform$isEle;\n\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects[elementContext]); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\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}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\n\n/**\n * Automatically chooses the `placement` which has the most space available.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP = (_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.index) != null ? _middlewareData$autoP : 0;\n const currentPlacement = placements[currentIndex];\n\n if (currentPlacement == null) {\n return {};\n }\n\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP3 = (_middlewareData$autoP4 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP4.overflows) != null ? _middlewareData$autoP3 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n const resetPlacement = placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement;\n\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\n/**\n * Changes the placement of the floating element to one that will fit if the\n * initially specified `placement` does not.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = side === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip2;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0].placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n\n return {};\n }\n\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (_temp) {\n let {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = _temp === void 0 ? {} : _temp;\n return {\n name: 'hide',\n\n async fn(middlewareArguments) {\n const {\n rects\n } = middlewareArguments;\n\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n\n case 'escaped':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n\n default:\n {\n return {};\n }\n }\n }\n\n };\n};\n\nfunction convertValueToCoords(placement, rects, value, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value; // eslint-disable-next-line prefer-const\n\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n/**\n * Displaces the floating element from its reference element.\n * @see https://floating-ui.com/docs/offset\n */\n\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const diffCoords = convertValueToCoords(placement, rects, value, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Shifts the floating element in order to keep it in view when it will overflow\n * a clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({ ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\n/**\n * Provides data to change the size of the floating element. For instance,\n * prevent it from overflowing its clipping boundary or match the width of the\n * reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n const {\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n let heightSide;\n let widthSide;\n\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n const prevDimensions = await platform.getDimensions(elements.floating);\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n\n if (prevDimensions.width !== nextDimensions.width || prevDimensions.height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) != null ? _await$platform$getCl : [];\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // 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 return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\nfunction isLayoutViewport() {\n // Not Safari\n return !/^((?!chrome|android).)*safari/i.test(navigator.userAgent); // Feature detection for this fails in various ways\n // • Always-visible scrollbar or not\n // • Width of <html>, etc.\n // const vV = win.visualViewport;\n // return vV ? Math.abs(win.innerWidth / vV.scale - vV.width) < 0.5 : true;\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction 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 const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let 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 const win = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n const x = (clientRect.left + (addVisualOffsets ? win.visualViewport.offsetLeft : 0)) / scaleX;\n const y = (clientRect.top + (addVisualOffsets ? win.visualViewport.offsetTop : 0)) / scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent), strategy === 'fixed');\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.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}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\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\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let 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' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n\n const rect = getBoundingClientRect(element);\n return {\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n\n if (['html', 'body', '#document'].includes(getNodeName(parentNode))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n const target = isBody ? [win].concat(win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []) : scrollableAncestor;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getOverflowAncestors(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : 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 let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, false, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingAncestor(element, clippingParent, strategy) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element, strategy));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent, strategy);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping ancestor\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingAncestors(element) {\n const clippingAncestors = getOverflowAncestors(element);\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array<Element>\n\n\n return clippingAncestors.filter(clippingAncestors => isElement(clippingAncestors) && contains(clippingAncestors, clipperElement) && getNodeName(clippingAncestors) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors\n\n\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const mainClippingAncestors = boundary === 'clippingAncestors' ? getClippingAncestors(element) : [].concat(boundary);\n const clippingAncestors = [...mainClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, 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 }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize: _ancestorResize = true,\n elementResize: _elementResize = true,\n animationFrame = false\n } = options;\n let cleanedUp = false;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestorResize = _ancestorResize && !animationFrame;\n const elementResize = _elementResize && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n\n if (elementResize) {\n observer = new ResizeObserver(update);\n isElement(reference) && observer.observe(reference);\n observer.observe(floating);\n }\n\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n\n if (animationFrame) {\n frameLoop();\n }\n\n function frameLoop() {\n if (cleanedUp) {\n return;\n }\n\n const nextRefRect = getBoundingClientRect(reference);\n\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n\n return () => {\n var _observer;\n\n cleanedUp = true;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\nexport { autoUpdate, computePosition, getOverflowAncestors };\n","/*!\n* tabbable 5.3.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n if (shadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // didn't find it sitting in an undisclosed shadow (or shadows are disabled) so now we\n // can just test to see if it would normally be visible or not\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n\n\n return !node.getClientRects().length;\n } else if (displayCheck === 'non-zero-area') {\n return isZeroArea(node);\n }\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 6.8.1\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, isFocusable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\n\n\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\n\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n\n\n var findContainerIndex = function findContainerIndex(element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n optionValue = optionValue.apply(void 0, params);\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(deactivateOptions, 'onDeactivate');\n var onPostDeactivate = getOption(deactivateOptions, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(deactivateOptions, 'checkCanReturnFocus');\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus = getOption(deactivateOptions, 'returnFocus', 'returnFocusOnDeactivate');\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import { FocusableElement, tabbable } from 'tabbable';\n\ntype Container = Element | FocusableElement | null;\n\nconst firstTabbable = (container?: Container): FocusableElement | undefined => {\n return (container ? tabbable(container, { includeContainer: true, getShadowRoot: true }) : []).shift();\n};\n\nexport default firstTabbable;\n","@import 'variables';\n@import 'mixins';\n\n$-min-width: 8rem;\n$-max-width: 16rem;\n$-min-height: 2rem;\n$-max-height: calc(100vh - 48px);\n\n:host {\n display: contents;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.content {\n padding-top: $cat-body-margin-bottom * 0.5;\n padding-bottom: $cat-body-margin-bottom * 0.5;\n position: absolute;\n background: cat-token('color.ui.background.body');\n display: none;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n min-width: $-min-width;\n max-width: $-max-width;\n min-height: $-min-height;\n max-height: $-max-height;\n @include cat-elevation(1);\n border-radius: cat-border-radius('m');\n z-index: $cat-menu-z-index;\n}\n","import { autoUpdate, computePosition, flip, offset, Placement } from '@floating-ui/dom';\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\nimport * as focusTrap from 'focus-trap';\nimport { FocusableElement, tabbable } from 'tabbable';\nimport firstTabbable from '../../utils/first-tabbable';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-menu',\n styleUrl: 'cat-menu.scss',\n shadow: true\n})\nexport class CatMenu {\n private static readonly OFFSET = 4;\n private readonly id = nextUniqueId++;\n private triggerSlot?: Element;\n private trigger?: FocusableElement;\n private content?: HTMLElement;\n private trap?: focusTrap.FocusTrap;\n private keyListener?: (event: KeyboardEvent) => void;\n\n /**\n * The placement of the menu.\n */\n @Prop() placement: Placement = 'bottom-start';\n\n /**\n * Emitted when the menu is opened.\n */\n @Event() catOpen!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the menu is closed.\n */\n @Event() catClose!: EventEmitter<FocusEvent>;\n\n @Listen('catClick')\n clickHandler(event: CustomEvent<MouseEvent>) {\n // hide menu on button click\n if (this.content && event.composedPath().includes(this.content)) {\n this.trap?.deactivate();\n this.hide();\n }\n }\n\n componentDidLoad(): void {\n this.trigger = firstTabbable(this.triggerSlot);\n this.trigger?.setAttribute('aria-haspopup', 'true');\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.trigger?.setAttribute('aria-controls', this.contentId);\n this.content?.setAttribute('id', this.contentId);\n if (this.trigger && this.content) {\n this.trigger?.addEventListener('click', () => this.show());\n autoUpdate(this.trigger, this.content, () => this.update());\n }\n\n this.keyListener = event => {\n if (this.content && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n const targetElements = tabbable(this.content, { includeContainer: false, getShadowRoot: true });\n const activeElement = firstTabbable(document.activeElement);\n const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;\n const activeOff = event.key === 'ArrowDown' ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].focus();\n event.preventDefault();\n }\n };\n document.addEventListener('keydown', this.keyListener);\n }\n\n disconnectedCallback(): void {\n if (this.keyListener) {\n document.removeEventListener('keydown', this.keyListener);\n }\n }\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\" ref={el => (this.triggerSlot = el)}></slot>\n <div class=\"content\" ref={el => (this.content = el)}>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n\n private get contentId() {\n return `cat-menu-${this.id}`;\n }\n\n private show() {\n if (this.content) {\n this.content.style.display = 'block';\n this.trigger?.setAttribute('aria-expanded', 'true');\n this.catOpen.emit();\n this.trap = this.trap\n ? this.trap.updateContainerElements(this.content)\n : focusTrap.createFocusTrap(this.content, {\n tabbableOptions: {\n getShadowRoot: true\n },\n allowOutsideClick: true,\n clickOutsideDeactivates: event => !this.content || !event.composedPath().includes(this.content),\n onPostDeactivate: () => this.hide()\n });\n this.trap.activate();\n }\n }\n\n private hide() {\n if (this.content) {\n this.content.style.display = '';\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.catClose.emit();\n }\n }\n\n private update() {\n if (this.trigger && this.content) {\n computePosition(this.trigger, this.content, {\n placement: this.placement,\n middleware: [offset(CatMenu.OFFSET), flip()]\n }).then(({ x, y }) => {\n if (this.content) {\n Object.assign(this.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.modal-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgb(cat-token('color.ui.background.modal.wrapper'), 60%);\n z-index: 2;\n display: flex;\n\n &[aria-hidden='true'] {\n display: none;\n }\n}\n\n.modal {\n margin: auto;\n z-index: 2;\n position: relative;\n background-color: cat-token('color.ui.background.modal.body');\n border-radius: cat-border-radius('l');\n max-width: 100%;\n padding: 32px;\n}\n\n.modal-header {\n display: flex;\n justify-content: end;\n align-self: stretch;\n\n .close-button::part(button) {\n box-shadow: unset;\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n margin: 16px 0;\n}\n\n@mixin size($size) {\n .modal-#{$size} {\n width: cat-token('size.modal.#{$size}');\n }\n}\n\n@include size('s');\n@include size('m');\n@include size('l');\n","import { Component, Element, h, Method, Prop, State } from '@stencil/core';\nimport * as focusTrap from 'focus-trap';\nimport firstTabbable from '../../utils/first-tabbable';\n\n@Component({\n tag: 'cat-modal',\n styleUrl: 'cat-modal.scss',\n shadow: true\n})\nexport class CatModal {\n private trap?: focusTrap.FocusTrap;\n private modal?: HTMLElement;\n private closeButton?: HTMLElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() isVisible = false;\n\n /**\n * The size of the modal.\n */\n @Prop() size: 's' | 'm' | 'l' = 'm';\n\n componentDidLoad(): void {\n if (this.modal) {\n this.trap = focusTrap.createFocusTrap(this.modal, {\n tabbableOptions: {\n getShadowRoot: true\n },\n initialFocus: firstTabbable(this.closeButton),\n allowOutsideClick: true,\n clickOutsideDeactivates: event => !this.modal || !event.composedPath().includes(this.modal),\n onDeactivate: () => (this.isVisible = false),\n setReturnFocus: previousActiveElement =>\n previousActiveElement instanceof HTMLElement\n ? (firstTabbable(previousActiveElement) as HTMLElement)\n : previousActiveElement\n });\n }\n }\n\n componentDidUpdate(): void {\n if (this.isVisible) this.trap?.activate();\n this.updateAccessibility(this.hostElement);\n }\n\n /**\n * Shows the modal.\n */\n @Method()\n async show(): Promise<void> {\n this.isVisible = true;\n }\n\n render() {\n return (\n <div aria-modal role=\"dialog\" aria-hidden={!this.isVisible ? 'true' : 'false'} class=\"modal-wrapper\">\n <div ref={el => (this.modal = el)} class={{ modal: true, [`modal-${this.size}`]: Boolean(this.size) }}>\n <div class=\"modal-header\">\n <cat-button\n ref={el => (this.closeButton = el)}\n icon=\"cross-outlined\"\n class=\"close-button\"\n size=\"s\"\n iconOnly\n a11yLabel=\"close\"\n onCatClick={this.onClick.bind(this)}\n ></cat-button>\n </div>\n <div class=\"modal-content\">\n <slot></slot>\n </div>\n </div>\n </div>\n );\n }\n\n private onClick() {\n this.trap?.deactivate();\n }\n\n private updateAccessibility(element: HTMLElement) {\n if (element.parentElement) {\n Array.from(element.parentElement.children).forEach(elementSibling => {\n if (elementSibling !== element) {\n this.isVisible\n ? elementSibling.setAttribute('aria-hidden', 'true')\n : elementSibling.removeAttribute('aria-hidden');\n }\n });\n\n if (element.parentElement !== document.body) {\n this.updateAccessibility(element.parentElement);\n }\n }\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\n.radio {\n display: flex;\n position: relative;\n align-self: flex-start;\n}\n\n.circle {\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n background-color: cat-token('color.theme.primary.bg');\n border-radius: 10rem;\n top: calc(50% - 0.375rem);\n left: calc(50% - 0.375rem);\n visibility: hidden;\n pointer-events: none;\n}\n\ninput {\n margin: 0;\n width: 1.25rem;\n height: 1.25rem;\n appearance: none;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.input');\n border-radius: 10rem;\n cursor: inherit;\n\n &:checked {\n border-color: cat-token('color.theme.primary.bg');\n\n + .circle {\n visibility: visible;\n }\n }\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n\n input {\n background-color: cat-token('color.ui.background.inputDisabled');\n\n &:checked {\n border-color: cat-token('color.ui.border.input');\n }\n }\n\n .circle {\n background-color: cat-token('color.ui.border.input');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Radio Buttons are graphical interface elements that allow user to choose\n * only one of a predefined set of mutually exclusive options.\n *\n * @slot hint - Optional hint element to be displayed with the radio.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-radio',\n styleUrl: 'cat-radio.scss',\n shadow: true\n})\nexport class CatRadio {\n private readonly id = `cat-radio-${++nextUniqueId}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Whether this radio is checked.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Whether this radio is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the radio that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the radio component.\n */\n @Prop() name?: string;\n\n /**\n * Whether the radio is required.\n */\n @Prop() required = false;\n\n /**\n * The value of the radio component.\n */\n @Prop() value?: string;\n\n /**\n * Optional hint text(s) to be displayed with the radio.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the radio component.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the radio is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the radio received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on radio', this);\n }\n }\n\n /**\n * Sets focus on the radio. Use this method instead of `radio.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n >\n <span class=\"radio\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"circle\"></span>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onChange(event: Event) {\n this.checked = true;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * A group of radio buttons.\n */\n@Component({\n tag: 'cat-radio-group',\n styleUrl: 'cat-radio-group.scss',\n shadow: true\n})\nexport class CatRadioGroup {\n private catRadioGroup: HTMLCatRadioElement[] = [];\n\n @Element() hostElement!: HTMLElement;\n\n /**\n * The name of the radio group component.\n */\n @Prop() name?: string;\n\n /**\n * The value of the radio group.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * Whether this radio group is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Adds an accessible label for the radio group that\n * it is only shown in assistive technologies, like screen readers.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n /**\n * Whether the label of the radios should appear to the left of them.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the radio group loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n @Watch('name')\n onNameChanged(newName?: string) {\n this.catRadioGroup.forEach(catRadio => {\n catRadio.name = newName;\n });\n }\n\n @Watch('value')\n onValueChanged(newValue?: string) {\n this.catRadioGroup.forEach(catRadio => {\n catRadio.checked = catRadio.value === newValue;\n });\n this.updateTabIndex();\n }\n\n @Watch('disabled')\n onDisabledChanged(disabled: boolean) {\n this.catRadioGroup.forEach(catRadio => {\n if (disabled) {\n catRadio.disabled = disabled;\n }\n });\n }\n\n @Watch('labelLeft')\n onLabelLeftChanged(labelLeft: boolean) {\n this.catRadioGroup.forEach(catRadio => {\n if (labelLeft) {\n catRadio.labelLeft = labelLeft;\n }\n });\n }\n\n componentDidLoad(): void {\n this.catRadioGroup = Array.from(this.hostElement.querySelectorAll(`cat-radio`));\n this.onNameChanged(this.name);\n this.onValueChanged(this.value);\n this.onDisabledChanged(this.disabled);\n this.onLabelLeftChanged(this.labelLeft);\n }\n\n @Listen('keydown')\n onKeydown(event: KeyboardEvent): void {\n if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key) && this.catRadioGroup.length) {\n const targetElements = this.catRadioGroup.filter(catRadio => !catRadio.disabled);\n const activeElement = document.activeElement as HTMLCatRadioElement;\n const activeIdx = this.catRadioGroup.findIndex(catRadio => catRadio === activeElement);\n const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].setFocus();\n targetElements[targetIdx].shadowRoot?.querySelector('input')?.click();\n this.updateTabIndex();\n event.preventDefault();\n }\n }\n\n @Listen('input')\n onInput(event: MouseEvent): void {\n const catRadioElement = this.catRadioGroup.find(value => value === event.target);\n this.value = catRadioElement?.value;\n this.catChange.emit();\n }\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent): void {\n if (!event.relatedTarget) {\n this.catBlur.emit(event);\n }\n }\n\n render() {\n return (\n <div role=\"radiogroup\" aria-label={this.a11yLabel}>\n <slot></slot>\n </div>\n );\n }\n\n private updateTabIndex() {\n if (this.catRadioGroup.length) {\n this.catRadioGroup.forEach(value => value.shadowRoot?.querySelector('input')?.setAttribute('tabindex', '-1'));\n const checkedRadioIndex = this.catRadioGroup.findIndex(value => value.checked);\n this.catRadioGroup[checkedRadioIndex >= 0 ? checkedRadioIndex : 0].shadowRoot\n ?.querySelector('input')\n ?.setAttribute('tabindex', '0');\n }\n }\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n//# sourceMappingURL=OperatorSubscriber.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","@import 'variables';\n\n:host {\n overflow: hidden;\n position: relative;\n display: flex;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n// ----- Scroll shadows\n\n%shadow {\n position: absolute;\n transition: $cat-scrollable-shadow-transition;\n}\n\n.shadow-top {\n @extend %shadow;\n z-index: 2;\n width: 100%;\n top: 0;\n}\n\n.shadow-left {\n @extend %shadow;\n z-index: 4;\n height: 100%;\n left: 0;\n}\n\n.shadow-right {\n @extend %shadow;\n z-index: 4;\n height: 100%;\n right: 0;\n}\n\n.shadow-bottom {\n @extend %shadow;\n z-index: 2;\n width: 100%;\n bottom: 0;\n}\n\n// ----- Component\n\n.scrollable-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n\n &.cat-scrollable-top .shadow-top,\n &.cat-scrollable-bottom .shadow-bottom,\n &.cat-scrollable-left .shadow-left,\n &.cat-scrollable-right .shadow-right {\n box-shadow: $cat-scrollable-shadow;\n }\n}\n\n.scrollable-content {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n\n &.scroll-x {\n overflow-x: auto;\n }\n\n &.scroll-y {\n overflow-y: auto;\n }\n\n &.no-overscroll {\n overscroll-behavior: contain;\n }\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\n\n/**\n * An element to display scrollable content.\n */\n@Component({\n tag: 'cat-scrollable',\n styleUrl: 'cat-scrollable.scss',\n shadow: true\n})\nexport class CatScrollable {\n scrollElement?: HTMLElement;\n scrollWrapperElement?: HTMLElement;\n private readonly init = new Subject<void>();\n private readonly destroyed = new Subject<void>();\n private scrolled!: Observable<Event>;\n\n /** Flags to disable/enable scroll shadowX. */\n @Prop()\n noShadowX = false;\n\n /** Flags to disable/enable scroll shadowY. */\n @Prop()\n noShadowY = false;\n\n /** Flags to disable/enable overflowX. */\n @Prop()\n noOverflowX = false;\n\n /** Flags to disable/enable overflowY. */\n @Prop()\n noOverflowY = false;\n\n /** Flag to disable/enable overscroll behavior. */\n @Prop()\n noOverscroll = false;\n\n /**\n * Flag to not fire an initial event after content initialization.\n */\n @Prop() noScrolledInit = false;\n\n /**\n * Buffer to be used to calculate the scroll distance.\n */\n @Prop() scrolledBuffer = 0;\n\n /**\n * Emitted when the content is fully scrolled to the top.\n */\n @Event() scrolledTop!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the left.\n */\n @Event() scrolledLeft!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the right.\n */\n @Event() scrolledRight!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the bottom.\n */\n @Event() scrolledBottom!: EventEmitter<void>;\n\n componentDidRender() {\n if (this.scrollElement) {\n this.scrolled = fromEvent(this.scrollElement, 'scroll').pipe(takeUntil(this.destroyed));\n }\n this.attachEmitter('left', this.scrolledLeft, this.scrolledBuffer);\n this.attachEmitter('right', this.scrolledRight, this.scrolledBuffer);\n this.attachEmitter('bottom', this.scrolledBottom, this.scrolledBuffer);\n this.attachEmitter('top', this.scrolledTop, this.scrolledBuffer);\n merge(this.init, this.scrolled)\n .pipe(\n map(() => ({\n top: this.getScrollOffset('top') > 0,\n left: this.getScrollOffset('left') > 0,\n right: this.getScrollOffset('right') > 0,\n bottom: this.getScrollOffset('bottom') > 0\n })),\n distinctUntilChanged(),\n takeUntil(this.destroyed)\n )\n .subscribe(({ top, left, right, bottom }) => {\n this.toggleClass('cat-scrollable-top', top);\n this.toggleClass('cat-scrollable-left', left);\n this.toggleClass('cat-scrollable-right', right);\n this.toggleClass('cat-scrollable-bottom', bottom);\n });\n }\n\n componentDidLoad() {\n if (!this.noScrolledInit) {\n this.init.next();\n }\n }\n\n disconnectedCallback() {\n this.init.complete();\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n render() {\n return [\n <div class=\"scrollable-wrapper\" ref={el => (this.scrollWrapperElement = el)}>\n {!this.noShadowY && <div class=\"shadow-top\"></div>}\n {!this.noShadowX && <div class=\"shadow-left\"></div>}\n {!this.noShadowX && <div class=\"shadow-right\"></div>}\n {!this.noShadowY && <div class=\"shadow-bottom\"></div>}\n </div>,\n <div\n ref={el => (this.scrollElement = el)}\n class={{\n 'scrollable-content': true,\n 'scroll-x': !this.noOverflowX,\n 'scroll-y': !this.noOverflowY,\n 'no-overscroll': this.noOverscroll\n }}\n >\n <slot></slot>\n </div>\n ];\n }\n\n private attachEmitter(from: 'top' | 'left' | 'right' | 'bottom', emitter: EventEmitter<void>, buffer: number) {\n merge(this.init, this.scrolled)\n .pipe(map(() => this.getScrollOffset(from)))\n .pipe(map(offset => offset <= buffer))\n .pipe(distinctUntilChanged())\n .pipe(filter(isLower => isLower))\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => emitter.emit());\n }\n\n private getScrollOffset(from: 'top' | 'left' | 'right' | 'bottom') {\n if (this.scrollElement) {\n switch (from) {\n case 'top':\n return this.scrollElement.scrollTop;\n case 'left':\n return this.scrollElement.scrollLeft;\n case 'right':\n return this.scrollElement.scrollWidth - this.scrollElement.clientWidth - this.scrollElement.scrollLeft;\n case 'bottom':\n return this.scrollElement.scrollHeight - this.scrollElement.clientHeight - this.scrollElement.scrollTop;\n default:\n return 0;\n }\n }\n return 0;\n }\n\n private toggleClass(name: string, value: boolean) {\n if (value) {\n this.scrollWrapperElement?.classList.add(name);\n } else {\n this.scrollWrapperElement?.classList.remove(name);\n }\n }\n}\n","/*! choices.js v10.1.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n\telse\n\t\troot[\"Choices\"] = factory();\n})(window, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 282:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addChoice = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n groupId = _a.groupId,\n disabled = _a.disabled,\n elementId = _a.elementId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n\nexports.addChoice = addChoice;\n\nvar filterChoices = function (results) {\n return {\n type: constants_1.ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\n\nexports.filterChoices = filterChoices;\n\nvar activateChoices = function (active) {\n if (active === void 0) {\n active = true;\n }\n\n return {\n type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\n\nexports.activateChoices = activateChoices;\n\nvar clearChoices = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_CHOICES\n };\n};\n\nexports.clearChoices = clearChoices;\n\n/***/ }),\n\n/***/ 783:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addGroup = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addGroup = function (_a) {\n var value = _a.value,\n id = _a.id,\n active = _a.active,\n disabled = _a.disabled;\n return {\n type: constants_1.ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};\n\nexports.addGroup = addGroup;\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.highlightItem = exports.removeItem = exports.addItem = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addItem = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n choiceId = _a.choiceId,\n groupId = _a.groupId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n\nexports.addItem = addItem;\n\nvar removeItem = function (id, choiceId) {\n return {\n type: constants_1.ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\n\nexports.removeItem = removeItem;\n\nvar highlightItem = function (id, highlighted) {\n return {\n type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};\n\nexports.highlightItem = highlightItem;\n\n/***/ }),\n\n/***/ 137:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setIsLoading = exports.resetTo = exports.clearAll = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar clearAll = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_ALL\n };\n};\n\nexports.clearAll = clearAll;\n\nvar resetTo = function (state) {\n return {\n type: constants_1.ACTION_TYPES.RESET_TO,\n state: state\n };\n};\n\nexports.resetTo = resetTo;\n\nvar setIsLoading = function (isLoading) {\n return {\n type: constants_1.ACTION_TYPES.SET_IS_LOADING,\n isLoading: isLoading\n };\n};\n\nexports.setIsLoading = setIsLoading;\n\n/***/ }),\n\n/***/ 373:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar deepmerge_1 = __importDefault(__webpack_require__(996));\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nvar fuse_js_1 = __importDefault(__webpack_require__(221));\n\nvar choices_1 = __webpack_require__(282);\n\nvar groups_1 = __webpack_require__(783);\n\nvar items_1 = __webpack_require__(464);\n\nvar misc_1 = __webpack_require__(137);\n\nvar components_1 = __webpack_require__(520);\n\nvar constants_1 = __webpack_require__(883);\n\nvar defaults_1 = __webpack_require__(789);\n\nvar utils_1 = __webpack_require__(799);\n\nvar reducers_1 = __webpack_require__(655);\n\nvar store_1 = __importDefault(__webpack_require__(744));\n\nvar templates_1 = __importDefault(__webpack_require__(686));\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\n\n\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson<josh@joshuajohnson.co.uk>\n */\n\nvar Choices =\n/** @class */\nfunction () {\n function Choices(element, userConfig) {\n var _this = this;\n\n if (element === void 0) {\n element = '[data-choice]';\n }\n\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n if (userConfig.allowHTML === undefined) {\n console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.');\n }\n\n this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function (_, sourceArray) {\n return __spreadArray([], sourceArray, true);\n }\n });\n var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);\n\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n\n this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n\n if (!['auto', 'always'].includes(\"\".concat(this.config.renderSelectedChoices))) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n\n if (this._isTextElement) {\n this.passedElement = new components_1.WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new components_1.WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function (data) {\n return _this._templates.option(data);\n }\n });\n }\n\n this.initialised = false;\n this._store = new store_1.default();\n this._initialState = reducers_1.defaultState;\n this._currentState = reducers_1.defaultState;\n this._prevState = reducers_1.defaultState;\n this._currentValue = '';\n this._canSearch = !!this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n */\n\n this._direction = this.passedElement.dir;\n\n if (!this._direction) {\n var elementDirection = window.getComputedStyle(this.passedElement.element).direction;\n var documentDirection = window.getComputedStyle(document.documentElement).direction;\n\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n\n this._idNames = {\n itemChoice: 'item-choice'\n };\n\n if (this._isSelectElement) {\n // Assign preset groups from passed element\n this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element\n\n this._presetOptions = this.passedElement.options;\n } // Assign preset choices from passed object\n\n\n this._presetChoices = this.config.choices; // Assign preset items from passed object first\n\n this._presetItems = this.config.items; // Add any values passed from attribute\n\n if (this.passedElement.value && this._isTextElement) {\n var splitValues = this.passedElement.value.split(this.config.delimiter);\n this._presetItems = this._presetItems.concat(splitValues);\n } // Create array of choices from option elements\n\n\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (option) {\n _this._presetChoices.push({\n value: option.value,\n label: option.innerHTML,\n selected: !!option.selected,\n disabled: option.disabled || option.parentNode.disabled,\n placeholder: option.value === '' || option.hasAttribute('placeholder'),\n customProperties: option.dataset['custom-properties']\n });\n });\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onSelectKey = this._onSelectKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently\n\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised', {\n element: element\n });\n }\n\n this.initialised = true;\n return;\n } // Let's go\n\n\n this.init();\n }\n\n Object.defineProperty(Choices, \"defaults\", {\n get: function () {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n\n get templates() {\n return templates_1.default;\n }\n\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Choices.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n\n this._createElements();\n\n this._createStructure();\n\n this._store.subscribe(this._render);\n\n this._render();\n\n this._addEventListeners();\n\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function\n\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n\n Choices.prototype.destroy = function () {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n\n this._templates = templates_1.default;\n this.initialised = false;\n };\n\n Choices.prototype.enable = function () {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n };\n\n Choices.prototype.disable = function () {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n };\n\n Choices.prototype.highlightItem = function (item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n\n return this;\n };\n\n Choices.prototype.unhighlightItem = function (item) {\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, false));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n\n Choices.prototype.highlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.highlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.unhighlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.unhighlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItemsByValue = function (value) {\n var _this = this;\n\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItems = function (excludedId) {\n var _this = this;\n\n this._store.activeItems.filter(function (_a) {\n var id = _a.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeHighlightedItems = function (runEvent) {\n var _this = this;\n\n if (runEvent === void 0) {\n runEvent = false;\n }\n\n this._store.highlightedActiveItems.forEach(function (item) {\n _this._removeItem(item); // If this action was performed by the user\n // trigger the event\n\n\n if (runEvent) {\n _this._triggerChange(item.value);\n }\n });\n\n return this;\n };\n\n Choices.prototype.showDropdown = function (preventInputFocus) {\n var _this = this;\n\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.show();\n\n _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);\n\n if (!preventInputFocus && _this._canSearch) {\n _this.input.focus();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.hideDropdown = function (preventInputBlur) {\n var _this = this;\n\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.hide();\n\n _this.containerOuter.close();\n\n if (!preventInputBlur && _this._canSearch) {\n _this.input.removeActiveDescendant();\n\n _this.input.blur();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.getValue = function (valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n };\n\n Choices.prototype.setValue = function (items) {\n var _this = this;\n\n if (!this.initialised) {\n return this;\n }\n\n items.forEach(function (value) {\n return _this._setChoiceOrItem(value);\n });\n return this;\n };\n\n Choices.prototype.setChoiceByValue = function (value) {\n var _this = this;\n\n if (!this.initialised || this._isTextElement) {\n return this;\n } // If only one value has been passed, convert to array\n\n\n var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and\n\n choiceValue.forEach(function (val) {\n return _this._findAndSelectChoiceByValue(val);\n });\n return this;\n };\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n\n\n Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this = this;\n\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n\n if (value === void 0) {\n value = 'value';\n }\n\n if (label === void 0) {\n label = 'label';\n }\n\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n } // Clear choices if needed\n\n\n if (replaceChoices) {\n this.clearChoices();\n }\n\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher_1 = choicesArrayOrFetcher(this);\n\n if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line no-promise-executor-return\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this._handleLoadingState(true);\n }).then(function () {\n return fetcher_1;\n }).then(function (data) {\n return _this.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this._handleLoadingState(false);\n }).then(function () {\n return _this;\n });\n } // function returned something else than promise, let's check if it's an array of choices\n\n\n if (!Array.isArray(fetcher_1)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(typeof fetcher_1));\n } // recursion with results, it's sync and choices were cleared already\n\n\n return this.setChoices(fetcher_1, value, label, false);\n }\n\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n\n this.containerOuter.removeLoadingState();\n\n this._startLoading();\n\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this._addGroup({\n id: groupOrChoice.id ? parseInt(\"\".concat(groupOrChoice.id), 10) : null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n var choice = groupOrChoice;\n\n _this._addChoice({\n value: choice[value],\n label: choice[label],\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: choice.customProperties\n });\n }\n });\n\n this._stopLoading();\n\n return this;\n };\n\n Choices.prototype.clearChoices = function () {\n this._store.dispatch((0, choices_1.clearChoices)());\n\n return this;\n };\n\n Choices.prototype.clearStore = function () {\n this._store.dispatch((0, misc_1.clearAll)());\n\n return this;\n };\n\n Choices.prototype.clearInput = function () {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n\n return this;\n };\n\n Choices.prototype._render = function () {\n if (this._store.isLoading()) {\n return;\n }\n\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n };\n\n Choices.prototype._renderChoices = function () {\n var _this = this;\n\n var _a = this._store,\n activeGroups = _a.activeGroups,\n activeChoices = _a.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this.choiceList.scrollToTop();\n });\n } // If we have grouped options\n\n\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n } // If we have choices to show\n\n\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them\n\n\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n\n this._highlightChoice();\n } else {\n var notice = this._getTemplate('notice', canAddItem.notice);\n\n this.choiceList.append(notice);\n }\n } else {\n // Otherwise show a notice\n var dropdownItem = void 0;\n var notice = void 0;\n\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n };\n\n Choices.prototype._renderItems = function () {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear(); // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n\n var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them\n\n\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n\n Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n var getGroupChoices = function (group) {\n return choices.filter(function (choice) {\n if (_this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n\n return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n }; // If sorting is enabled, filter groups\n\n\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this._getTemplate('choiceGroup', group);\n\n fragment.appendChild(dropdownGroup);\n\n _this._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n\n Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n if (withinGroup === void 0) {\n withinGroup = false;\n } // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n\n\n var _a = this.config,\n renderSelectedChoices = _a.renderSelectedChoices,\n searchResultLimit = _a.searchResultLimit,\n renderChoiceLimit = _a.renderChoiceLimit;\n var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;\n\n var appendChoice = function (choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;\n\n if (shouldRender) {\n var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);\n\n fragment.appendChild(dropdownItem);\n }\n };\n\n var rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n } // Split array into placeholders and \"normal\" choices\n\n\n var _b = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _b.placeholderChoices,\n normalChoices = _b.normalChoices; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n var choiceLimit = rendererableChoices.length; // Prepend placeholeder\n\n var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n } // Add each choice to dropdown within range\n\n\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return fragment;\n };\n\n Choices.prototype._createItemsFragment = function (items, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n } // Create fragment to add elements to\n\n\n var _a = this.config,\n shouldSortItems = _a.shouldSortItems,\n sorter = _a.sorter,\n removeItemButton = _a.removeItemButton; // If sorting is enabled, filter items\n\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items.map(function (_a) {\n var value = _a.value;\n return value;\n }).join(this.config.delimiter);\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n var addItemToFragment = function (item) {\n // Create new list element\n var listItem = _this._getTemplate('item', item, removeItemButton); // Append it to list\n\n\n fragment.appendChild(listItem);\n }; // Add each list item to list\n\n\n items.forEach(addItemToFragment);\n return fragment;\n };\n\n Choices.prototype._triggerChange = function (value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(constants_1.EVENTS.change, {\n value: value\n });\n };\n\n Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n\n this._triggerChange(placeholderChoice.value);\n };\n\n Choices.prototype._handleButtonAction = function (activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n\n var itemId = element.parentNode && element.parentNode.dataset.id;\n var itemToRemove = itemId && activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n });\n\n if (!itemToRemove) {\n return;\n } // Remove item associated with button\n\n\n this._removeItem(itemToRemove);\n\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement && this._store.placeholderChoice) {\n this._selectPlaceholderChoice(this._store.placeholderChoice);\n }\n };\n\n Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {\n var _this = this;\n\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n\n var passedId = element.dataset.id; // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n\n activeItems.forEach(function (item) {\n if (item.id === parseInt(\"\".concat(passedId), 10) && !item.highlighted) {\n _this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this.unhighlightItem(item);\n }\n }); // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n\n this.input.focus();\n };\n\n Choices.prototype._handleChoiceAction = function (activeItems, element) {\n if (!activeItems || !element) {\n return;\n } // If we are clicking on an option\n\n\n var id = element.dataset.id;\n\n var choice = id && this._store.getChoiceById(id);\n\n if (!choice) {\n return;\n }\n\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;\n var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode\n\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(constants_1.EVENTS.choice, {\n choice: choice\n });\n\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput(); // We want to close the dropdown if we are dealing with a single select box\n\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._handleBackspace = function (activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n }); // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n\n this._removeItem(lastItem);\n\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n\n this.removeHighlightedItems(true);\n }\n };\n\n Choices.prototype._startLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(true));\n };\n\n Choices.prototype._stopLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(false));\n };\n\n Choices.prototype._handleLoadingState = function (setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n\n if (placeholderItem) {\n this.itemList.append(placeholderItem);\n }\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n if (placeholderItem) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n }\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n\n Choices.prototype._handleSearch = function (value) {\n if (!this.input.isFocussed) {\n return;\n }\n\n var choices = this._store.choices;\n var _a = this.config,\n searchFloor = _a.searchFloor,\n searchChoices = _a.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n }); // Check that we have a value to search and the input was an alphanumeric character\n\n if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event\n\n this.passedElement.triggerEvent(constants_1.EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n };\n\n Choices.prototype._canAddItem = function (activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);\n\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice: notice\n };\n };\n\n Choices.prototype._searchChoices = function (value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n } // If new value matches the desired length and is not the same as the current value with a space\n\n\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n var options = Object.assign(this.config.fuseOptions, {\n keys: __spreadArray([], this.config.searchFields, true),\n includeMatches: true\n });\n var fuse = new fuse_js_1.default(haystack, options);\n var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303\n\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n\n this._store.dispatch((0, choices_1.filterChoices)(results));\n\n return results.length;\n };\n\n Choices.prototype._addEventListeners = function () {\n var documentElement = document.documentElement; // capture events - can cancel event processing or propagation\n\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation`\n\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n\n this.input.addEventListeners();\n };\n\n Choices.prototype._removeEventListeners = function () {\n var documentElement = document.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n };\n\n Choices.prototype._onKeyDown = function (event) {\n var keyCode = event.keyCode;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n var wasAlphaNumericChar = /[a-zA-Z0-9-_ ]/.test(keyString);\n var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,\n DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,\n ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,\n A_KEY = constants_1.KEY_CODES.A_KEY,\n ESC_KEY = constants_1.KEY_CODES.ESC_KEY,\n UP_KEY = constants_1.KEY_CODES.UP_KEY,\n DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n\n if (!this._isTextElement && !hasActiveDropdown && wasAlphaNumericChar) {\n this.showDropdown();\n\n if (!this.input.isFocussed) {\n /*\n We update the input value with the pressed key as\n the input was not focussed at the time of key press\n therefore does not have the value of the key.\n */\n this.input.value += keyString.toLowerCase();\n }\n }\n\n switch (keyCode) {\n case A_KEY:\n return this._onSelectKey(event, hasItems);\n\n case ENTER_KEY:\n return this._onEnterKey(event, activeItems, hasActiveDropdown);\n\n case ESC_KEY:\n return this._onEscapeKey(hasActiveDropdown);\n\n case UP_KEY:\n case PAGE_UP_KEY:\n case DOWN_KEY:\n case PAGE_DOWN_KEY:\n return this._onDirectionKey(event, hasActiveDropdown);\n\n case DELETE_KEY:\n case BACK_KEY:\n return this._onDeleteKey(event, activeItems, hasFocusedInput);\n\n default:\n }\n };\n\n Choices.prototype._onKeyUp = function (_a) {\n var target = _a.target,\n keyCode = _a.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n var backKey = constants_1.KEY_CODES.BACK_KEY,\n deleteKey = constants_1.KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;\n var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n } else if (canSearch) {\n this._handleSearch(this.input.rawValue);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n };\n\n Choices.prototype._onSelectKey = function (event, hasItems) {\n var ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If CTRL + A or CMD + A have been pressed and there are items to select\n\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n\n Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {\n var target = event.target;\n var enterKey = constants_1.KEY_CODES.ENTER_KEY;\n var targetWasButton = target && target.hasAttribute('data-button');\n\n if (this._isTextElement && target && target.value) {\n var value = this.input.value;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n if (canAddItem.response) {\n this.hideDropdown(true);\n\n this._addItem({\n value: value\n });\n\n this._triggerChange(value);\n\n this.clearInput();\n }\n }\n\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n\n Choices.prototype._onEscapeKey = function (hasActiveDropdown) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {\n var keyCode = event.keyCode,\n metaKey = event.metaKey;\n var downKey = constants_1.KEY_CODES.DOWN_KEY,\n pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,\n pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options\n\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl = void 0;\n\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n\n if (currentEl) {\n nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n\n this._highlightChoice(nextEl);\n } // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {\n var target = event.target; // If backspace or delete key is pressed and the input has no value\n\n if (!this._isSelectOneElement && !target.value && hasFocusedInput) {\n this._handleBackspace(activeItems);\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onTouchMove = function () {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n\n Choices.prototype._onTouchEnd = function (event) {\n var target = (event || event.touches[0]).target;\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n } // Prevents focus event firing\n\n\n event.stopPropagation();\n }\n\n this._wasTap = true;\n };\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n */\n\n\n Choices.prototype._onMouseDown = function (event) {\n var target = event.target;\n\n if (!(target instanceof HTMLElement)) {\n return;\n } // If we have our mouse down on the scrollbar and are on IE11...\n\n\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice = this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n\n if (target === this.input.element) {\n return;\n }\n\n var item = target.closest('[data-button],[data-item],[data-choice]');\n\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n\n event.preventDefault();\n };\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n\n\n Choices.prototype._onMouseOver = function (_a) {\n var target = _a.target;\n\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n\n Choices.prototype._onClick = function (_a) {\n var target = _a.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n\n Choices.prototype._onFocus = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var focusWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (!focusWasWithinContainer) {\n return;\n }\n\n var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.addFocusState();\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.addFocusState();\n\n if (target === _this.input.element) {\n _this.showDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n\n\n _this.containerOuter.addFocusState();\n }\n }, _b);\n focusActions[this.passedElement.element.type]();\n };\n\n Choices.prototype._onBlur = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var blurWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var activeItems = this._store.activeItems;\n var hasHighlightedItems_1 = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.removeFocusState();\n\n if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n _this.hideDropdown(true);\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n }\n }, _b);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n\n Choices.prototype._onFormReset = function () {\n this._store.dispatch((0, misc_1.resetTo)(this._initialState));\n };\n\n Choices.prototype._highlightChoice = function (el) {\n var _this = this;\n\n if (el === void 0) {\n el = null;\n }\n\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n\n if (!choices.length) {\n return;\n }\n\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState))); // Remove any highlighted choices\n\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {\n el: passedEl\n });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n\n Choices.prototype._addItem = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.choiceId,\n choiceId = _c === void 0 ? -1 : _c,\n _d = _a.groupId,\n groupId = _d === void 0 ? -1 : _d,\n _e = _a.customProperties,\n customProperties = _e === void 0 ? {} : _e,\n _f = _a.placeholder,\n placeholder = _f === void 0 ? false : _f,\n _g = _a.keyCode,\n keyCode = _g === void 0 ? -1 : _g;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it\n\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n } // If an appended value has been passed, append it\n\n\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch((0, items_1.addItem)({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n } // Trigger change event\n\n\n this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null,\n keyCode: keyCode\n });\n };\n\n Choices.prototype._removeItem = function (item) {\n var id = item.id,\n value = item.value,\n label = item.label,\n customProperties = item.customProperties,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n if (!id || !choiceId) {\n return;\n }\n\n this._store.dispatch((0, items_1.removeItem)(id, choiceId));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null\n });\n };\n\n Choices.prototype._addChoice = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.isSelected,\n isSelected = _c === void 0 ? false : _c,\n _d = _a.isDisabled,\n isDisabled = _d === void 0 ? false : _d,\n _e = _a.groupId,\n groupId = _e === void 0 ? -1 : _e,\n _f = _a.customProperties,\n customProperties = _f === void 0 ? {} : _f,\n _g = _a.placeholder,\n placeholder = _g === void 0 ? false : _g,\n _h = _a.keyCode,\n keyCode = _h === void 0 ? -1 : _h;\n\n if (typeof value === 'undefined' || value === null) {\n return;\n } // Generate unique id\n\n\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n\n this._store.dispatch((0, choices_1.addChoice)({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n\n Choices.prototype._addGroup = function (_a) {\n var _this = this;\n\n var group = _a.group,\n id = _a.id,\n _b = _a.valueKey,\n valueKey = _b === void 0 ? 'value' : _b,\n _c = _a.labelKey,\n labelKey = _c === void 0 ? 'label' : _c;\n var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n\n var addGroupChoices = function (choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n\n _this._addChoice({\n value: choice[valueKey],\n label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n\n Choices.prototype._getTemplate = function (template) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false));\n };\n\n Choices.prototype._createTemplates = function () {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);\n }\n\n this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);\n };\n\n Choices.prototype._createElements = function () {\n this.containerOuter = new components_1.Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new components_1.Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new components_1.Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new components_1.List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new components_1.List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new components_1.Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n\n Choices.prototype._createStructure = function () {\n // Hide original element\n this.passedElement.conceal(); // Wrap input in container preserving DOM ordering\n\n this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container\n\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n\n this._startLoading();\n\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n\n this._stopLoading();\n }\n\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n\n Choices.prototype._addPredefinedGroups = function (groups) {\n var _this = this; // If we have a placeholder option\n\n\n var placeholderChoice = this.passedElement.placeholderOption;\n\n if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n\n groups.forEach(function (group) {\n return _this._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n\n Choices.prototype._addPredefinedChoices = function (choices) {\n var _this = this; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var _a = choice.value,\n value = _a === void 0 ? '' : _a,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n\n if (_this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!isSelected,\n isDisabled: !!isDisabled,\n placeholder: !!placeholder,\n customProperties: customProperties\n });\n }\n } else {\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: customProperties\n });\n }\n });\n };\n\n Choices.prototype._addPredefinedItems = function (items) {\n var _this = this;\n\n items.forEach(function (item) {\n if (typeof item === 'object' && item.value) {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n\n if (typeof item === 'string') {\n _this._addItem({\n value: item\n });\n }\n });\n };\n\n Choices.prototype._setChoiceOrItem = function (item) {\n var _this = this;\n\n var itemType = (0, utils_1.getType)(item).toLowerCase();\n var handleType = {\n object: function () {\n if (!item.value) {\n return;\n } // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n\n\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function () {\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n\n Choices.prototype._findAndSelectChoiceByValue = function (value) {\n var _this = this;\n\n var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected\n\n var foundChoice = choices.find(function (choice) {\n return _this.config.valueComparer(choice.value, value);\n });\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n\n Choices.prototype._generatePlaceholderValue = function () {\n if (this._isSelectElement && this.passedElement.placeholderOption) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : null;\n }\n\n var _a = this.config,\n placeholder = _a.placeholder,\n placeholderValue = _a.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n\n return null;\n };\n\n return Choices;\n}();\n\nexports[\"default\"] = Choices;\n\n/***/ }),\n\n/***/ 613:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar constants_1 = __webpack_require__(883);\n\nvar Container =\n/** @class */\nfunction () {\n function Container(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n position = _a.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Container.prototype.addEventListeners = function () {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n\n Container.prototype.removeEventListeners = function () {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n */\n\n\n Container.prototype.shouldFlip = function (dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n } // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n\n\n var shouldFlip = false;\n\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n };\n\n Container.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Container.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Container.prototype.open = function (dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n\n Container.prototype.close = function () {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false; // A dropdown flips if it does not have space within the page\n\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n\n Container.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Container.prototype.addFocusState = function () {\n this.element.classList.add(this.classNames.focusState);\n };\n\n Container.prototype.removeFocusState = function () {\n this.element.classList.remove(this.classNames.focusState);\n };\n\n Container.prototype.enable = function () {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n\n this.isDisabled = false;\n };\n\n Container.prototype.disable = function () {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n\n this.isDisabled = true;\n };\n\n Container.prototype.wrap = function (element) {\n (0, utils_1.wrap)(element, this.element);\n };\n\n Container.prototype.unwrap = function (element) {\n if (this.element.parentNode) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element); // Remove this element\n\n this.element.parentNode.removeChild(this.element);\n }\n };\n\n Container.prototype.addLoadingState = function () {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n\n Container.prototype.removeLoadingState = function () {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n\n Container.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Container.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Container;\n}();\n\nexports[\"default\"] = Container;\n\n/***/ }),\n\n/***/ 217:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar Dropdown =\n/** @class */\nfunction () {\n function Dropdown(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n\n Object.defineProperty(Dropdown.prototype, \"distanceFromTopWindow\", {\n /**\n * Bottom position of dropdown in viewport coordinates\n */\n get: function () {\n return this.element.getBoundingClientRect().bottom;\n },\n enumerable: false,\n configurable: true\n });\n\n Dropdown.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n /**\n * Show dropdown to user by adding active state class\n */\n\n\n Dropdown.prototype.show = function () {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n };\n /**\n * Hide dropdown from user\n */\n\n\n Dropdown.prototype.hide = function () {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n\n return Dropdown;\n}();\n\nexports[\"default\"] = Dropdown;\n\n/***/ }),\n\n/***/ 520:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;\n\nvar dropdown_1 = __importDefault(__webpack_require__(217));\n\nexports.Dropdown = dropdown_1.default;\n\nvar container_1 = __importDefault(__webpack_require__(613));\n\nexports.Container = container_1.default;\n\nvar input_1 = __importDefault(__webpack_require__(11));\n\nexports.Input = input_1.default;\n\nvar list_1 = __importDefault(__webpack_require__(624));\n\nexports.List = list_1.default;\n\nvar wrapped_input_1 = __importDefault(__webpack_require__(541));\n\nexports.WrappedInput = wrapped_input_1.default;\n\nvar wrapped_select_1 = __importDefault(__webpack_require__(982));\n\nexports.WrappedSelect = wrapped_select_1.default;\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar constants_1 = __webpack_require__(883);\n\nvar Input =\n/** @class */\nfunction () {\n function Input(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n preventPaste = _a.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element.isEqualNode(document.activeElement);\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Object.defineProperty(Input.prototype, \"placeholder\", {\n set: function (placeholder) {\n this.element.placeholder = placeholder;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n get: function () {\n return (0, utils_1.sanitise)(this.element.value);\n },\n set: function (value) {\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"rawValue\", {\n get: function () {\n return this.element.value;\n },\n enumerable: false,\n configurable: true\n });\n\n Input.prototype.addEventListeners = function () {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n\n Input.prototype.removeEventListeners = function () {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n\n Input.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n\n Input.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n\n Input.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Input.prototype.blur = function () {\n if (this.isFocussed) {\n this.element.blur();\n }\n };\n\n Input.prototype.clear = function (setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n };\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n\n\n Input.prototype.setWidth = function () {\n // Resize input to contents or placeholder\n var _a = this.element,\n style = _a.style,\n value = _a.value,\n placeholder = _a.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n };\n\n Input.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Input.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Input.prototype._onInput = function () {\n if (this.type !== constants_1.SELECT_ONE_TYPE) {\n this.setWidth();\n }\n };\n\n Input.prototype._onPaste = function (event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n\n Input.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Input.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Input;\n}();\n\nexports[\"default\"] = Input;\n\n/***/ }),\n\n/***/ 624:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar constants_1 = __webpack_require__(883);\n\nvar List =\n/** @class */\nfunction () {\n function List(_a) {\n var element = _a.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n\n List.prototype.clear = function () {\n this.element.innerHTML = '';\n };\n\n List.prototype.append = function (node) {\n this.element.appendChild(node);\n };\n\n List.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n\n List.prototype.hasChildren = function () {\n return this.element.hasChildNodes();\n };\n\n List.prototype.scrollToTop = function () {\n this.element.scrollTop = 0;\n };\n\n List.prototype.scrollToChildElement = function (element, direction) {\n var _this = this;\n\n if (!element) {\n return;\n }\n\n var listHeight = this.element.offsetHeight; // Scroll position of dropdown\n\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent\n\n var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position\n\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n };\n\n List.prototype._scrollDown = function (scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n };\n\n List.prototype._scrollUp = function (scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n };\n\n List.prototype._animateScroll = function (destination, direction) {\n var _this = this;\n\n var strength = constants_1.SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n };\n\n return List;\n}();\n\nexports[\"default\"] = List;\n\n/***/ }),\n\n/***/ 730:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar WrappedElement =\n/** @class */\nfunction () {\n function WrappedElement(_a) {\n var element = _a.element,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n Object.defineProperty(WrappedElement.prototype, \"isActive\", {\n get: function () {\n return this.element.dataset.choice === 'active';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"dir\", {\n get: function () {\n return this.element.dir;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedElement.prototype.conceal = function () {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true; // Remove element from tab index\n\n this.element.tabIndex = -1; // Backup original styles if any\n\n var origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('data-choice', 'active');\n };\n\n WrappedElement.prototype.reveal = function () {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex'); // Recover original styles if any\n\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n\n this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n WrappedElement.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n\n WrappedElement.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n\n WrappedElement.prototype.triggerEvent = function (eventType, data) {\n (0, utils_1.dispatchEvent)(this.element, eventType, data);\n };\n\n return WrappedElement;\n}();\n\nexports[\"default\"] = WrappedElement;\n\n/***/ }),\n\n/***/ 541:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\n\nvar WrappedInput =\n/** @class */\nfunction (_super) {\n __extends(WrappedInput, _super);\n\n function WrappedInput(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n delimiter = _a.delimiter;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.delimiter = delimiter;\n return _this;\n }\n\n Object.defineProperty(WrappedInput.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n this.element.setAttribute('value', value);\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n return WrappedInput;\n}(wrapped_element_1.default);\n\nexports[\"default\"] = WrappedInput;\n\n/***/ }),\n\n/***/ 982:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\n\nvar WrappedSelect =\n/** @class */\nfunction (_super) {\n __extends(WrappedSelect, _super);\n\n function WrappedSelect(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n template = _a.template;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.template = template;\n return _this;\n }\n\n Object.defineProperty(WrappedSelect.prototype, \"placeholderOption\", {\n get: function () {\n return this.element.querySelector('option[value=\"\"]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"optionGroups\", {\n get: function () {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"options\", {\n get: function () {\n return Array.from(this.element.options);\n },\n set: function (options) {\n var _this = this;\n\n var fragment = document.createDocumentFragment();\n\n var addOptionToFragment = function (data) {\n // Create a standard select option\n var option = _this.template(data); // Append it to fragment\n\n\n fragment.appendChild(option);\n }; // Add each list item to list\n\n\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedSelect.prototype.appendDocFragment = function (fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n\n return WrappedSelect;\n}(wrapped_element_1.default);\n\nexports[\"default\"] = WrappedSelect;\n\n/***/ }),\n\n/***/ 883:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;\nexports.EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n unhighlightItem: 'unhighlightItem'\n};\nexports.ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n RESET_TO: 'RESET_TO',\n SET_IS_LOADING: 'SET_IS_LOADING'\n};\nexports.KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nexports.TEXT_TYPE = 'text';\nexports.SELECT_ONE_TYPE = 'select-one';\nexports.SELECT_MULTIPLE_TYPE = 'select-multiple';\nexports.SCROLLING_SPEED = 4;\n\n/***/ }),\n\n/***/ 789:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;\n\nvar utils_1 = __webpack_require__(799);\n\nexports.DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\nexports.DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n allowHTML: true,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: utils_1.sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function (value) {\n return \"Press Enter to add <b>\\\"\".concat((0, utils_1.sanitise)(value), \"\\\"</b>\");\n },\n maxItemText: function (maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function (value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n labelId: '',\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: exports.DEFAULT_CLASSNAMES\n};\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 978:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 948:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 359:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 533:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 187:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n__exportStar(__webpack_require__(18), exports);\n\n__exportStar(__webpack_require__(978), exports);\n\n__exportStar(__webpack_require__(948), exports);\n\n__exportStar(__webpack_require__(359), exports);\n\n__exportStar(__webpack_require__(285), exports);\n\n__exportStar(__webpack_require__(533), exports);\n\n__exportStar(__webpack_require__(287), exports);\n\n__exportStar(__webpack_require__(132), exports);\n\n__exportStar(__webpack_require__(837), exports);\n\n__exportStar(__webpack_require__(598), exports);\n\n__exportStar(__webpack_require__(369), exports);\n\n__exportStar(__webpack_require__(37), exports);\n\n__exportStar(__webpack_require__(47), exports);\n\n__exportStar(__webpack_require__(923), exports);\n\n__exportStar(__webpack_require__(876), exports);\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 837:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 598:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 369:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 923:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 876:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 799:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;\n\nvar getRandomNumber = function (min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n\nexports.getRandomNumber = getRandomNumber;\n\nvar generateChars = function (length) {\n return Array.from({\n length: length\n }, function () {\n return (0, exports.getRandomNumber)(0, 36).toString(36);\n }).join('');\n};\n\nexports.generateChars = generateChars;\n\nvar generateId = function (element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n};\n\nexports.generateId = generateId;\n\nvar getType = function (obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n\nexports.getType = getType;\n\nvar isType = function (type, obj) {\n return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;\n};\n\nexports.isType = isType;\n\nvar wrap = function (element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n\n return wrapper.appendChild(element);\n};\n\nexports.wrap = wrap;\n\nvar getAdjacentEl = function (startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling[prop];\n }\n\n return sibling;\n};\n\nexports.getAdjacentEl = getAdjacentEl;\n\nvar isScrolledIntoView = function (element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n if (!element) {\n return false;\n }\n\n var isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n\nexports.isScrolledIntoView = isScrolledIntoView;\n\nvar sanitise = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n return value.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<').replace(/\"/g, '"');\n};\n\nexports.sanitise = sanitise;\n\nexports.strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n\n return firldChild;\n };\n}();\n\nvar sortByAlpha = function (_a, _b) {\n var value = _a.value,\n _c = _a.label,\n label = _c === void 0 ? value : _c;\n var value2 = _b.value,\n _d = _b.label,\n label2 = _d === void 0 ? value2 : _d;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\n\nexports.sortByAlpha = sortByAlpha;\n\nvar sortByScore = function (a, b) {\n var _a = a.score,\n scoreA = _a === void 0 ? 0 : _a;\n var _b = b.score,\n scoreB = _b === void 0 ? 0 : _b;\n return scoreA - scoreB;\n};\n\nexports.sortByScore = sortByScore;\n\nvar dispatchEvent = function (element, type, customArgs) {\n if (customArgs === void 0) {\n customArgs = null;\n }\n\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\n\nexports.dispatchEvent = dispatchEvent;\n\nvar existsInArray = function (array, value, key) {\n if (key === void 0) {\n key = 'value';\n }\n\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n};\n\nexports.existsInArray = existsInArray;\n\nvar cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n\nexports.cloneObject = cloneObject;\n/**\n * Returns an array of keys present on the first but missing on the second object\n */\n\nvar diff = function (a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};\n\nexports.diff = diff;\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction choices(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n var addChoiceAction = action;\n var choice = {\n id: addChoiceAction.id,\n elementId: addChoiceAction.elementId,\n groupId: addChoiceAction.groupId,\n value: addChoiceAction.value,\n label: addChoiceAction.label || addChoiceAction.value,\n disabled: addChoiceAction.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: addChoiceAction.customProperties,\n placeholder: addChoiceAction.placeholder || false\n };\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n\n return __spreadArray(__spreadArray([], state, true), [choice], false);\n }\n\n case 'ADD_ITEM':\n {\n var addItemAction_1 = action; // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n\n if (addItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(addItemAction_1.choiceId), 10)) {\n choice.selected = true;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM':\n {\n var removeItemAction_1 = action; // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n\n if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(removeItemAction_1.choiceId), 10)) {\n choice.selected = false;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES':\n {\n var filterChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj; // Set active state based on whether choice is\n // within filtered results\n\n choice.active = filterChoicesAction_1.results.some(function (_a) {\n var item = _a.item,\n score = _a.score;\n\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n\n return false;\n });\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES':\n {\n var activateChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n choice.active = activateChoicesAction_1.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES':\n {\n return exports.defaultState;\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = choices;\n\n/***/ }),\n\n/***/ 871:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction groups(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_GROUP':\n {\n var addGroupAction = action;\n return __spreadArray(__spreadArray([], state, true), [{\n id: addGroupAction.id,\n value: addGroupAction.value,\n active: addGroupAction.active,\n disabled: addGroupAction.disabled\n }], false);\n }\n\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = groups;\n\n/***/ }),\n\n/***/ 655:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\n\nvar redux_1 = __webpack_require__(857);\n\nvar items_1 = __importDefault(__webpack_require__(52));\n\nvar groups_1 = __importDefault(__webpack_require__(871));\n\nvar choices_1 = __importDefault(__webpack_require__(273));\n\nvar loading_1 = __importDefault(__webpack_require__(502));\n\nvar utils_1 = __webpack_require__(799);\n\nexports.defaultState = {\n groups: [],\n items: [],\n choices: [],\n loading: false\n};\nvar appReducer = (0, redux_1.combineReducers)({\n items: items_1.default,\n groups: groups_1.default,\n choices: choices_1.default,\n loading: loading_1.default\n});\n\nvar rootReducer = function (passedState, action) {\n var state = passedState; // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n\n if (action.type === 'CLEAR_ALL') {\n state = exports.defaultState;\n } else if (action.type === 'RESET_TO') {\n return (0, utils_1.cloneObject)(action.state);\n }\n\n return appReducer(state, action);\n};\n\nexports[\"default\"] = rootReducer;\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction items(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_ITEM':\n {\n var addItemAction = action; // Add object to items array\n\n var newState = __spreadArray(__spreadArray([], state, true), [{\n id: addItemAction.id,\n choiceId: addItemAction.choiceId,\n groupId: addItemAction.groupId,\n value: addItemAction.value,\n label: addItemAction.label,\n active: true,\n highlighted: false,\n customProperties: addItemAction.customProperties,\n placeholder: addItemAction.placeholder || false,\n keyCode: null\n }], false);\n\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.active = false;\n }\n\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM':\n {\n var highlightItemAction_1 = action;\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === highlightItemAction_1.id) {\n item.highlighted = highlightItemAction_1.highlighted;\n }\n\n return item;\n });\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = items;\n\n/***/ }),\n\n/***/ 502:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = false;\n\nvar general = function (state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return action.isLoading;\n }\n\n default:\n {\n return state;\n }\n }\n};\n\nexports[\"default\"] = general;\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nvar redux_1 = __webpack_require__(857);\n\nvar index_1 = __importDefault(__webpack_require__(655));\n\nvar Store =\n/** @class */\nfunction () {\n function Store() {\n this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n */\n\n\n Store.prototype.subscribe = function (onChange) {\n this._store.subscribe(onChange);\n };\n /**\n * Dispatch event to store (wrapped Redux method)\n */\n\n\n Store.prototype.dispatch = function (action) {\n this._store.dispatch(action);\n };\n\n Object.defineProperty(Store.prototype, \"state\", {\n /**\n * Get store object (wrapping Redux method)\n */\n get: function () {\n return this._store.getState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"items\", {\n /**\n * Get items from store\n */\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeItems\", {\n /**\n * Get active items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"highlightedActiveItems\", {\n /**\n * Get highlighted items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"choices\", {\n /**\n * Get choices from store\n */\n get: function () {\n return this.state.choices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeChoices\", {\n /**\n * Get active choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"selectableChoices\", {\n /**\n * Get selectable choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"searchableChoices\", {\n /**\n * Get choices that can be searched (excluding placeholders)\n */\n get: function () {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"placeholderChoice\", {\n /**\n * Get placeholder choice from store\n */\n get: function () {\n return __spreadArray([], this.choices, true).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"groups\", {\n /**\n * Get groups from store\n */\n get: function () {\n return this.state.groups;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeGroups\", {\n /**\n * Get active groups from store\n */\n get: function () {\n var _a = this,\n groups = _a.groups,\n choices = _a.choices;\n\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get loading state from store\n */\n\n Store.prototype.isLoading = function () {\n return this.state.loading;\n };\n /**\n * Get single choice by it's ID\n */\n\n\n Store.prototype.getChoiceById = function (id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n };\n /**\n * Get group by group id\n */\n\n\n Store.prototype.getGroupById = function (id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n\n return Store;\n}();\n\nexports[\"default\"] = Store;\n\n/***/ }),\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar templates = {\n containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) {\n var containerOuter = _a.classNames.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n\n if (dir) {\n div.dir = dir;\n }\n\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n\n if (labelId) {\n div.setAttribute('aria-labeledby', labelId);\n }\n\n return div;\n },\n containerInner: function (_a) {\n var containerInner = _a.classNames.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n itemList: function (_a, isSelectOneElement) {\n var _b = _a.classNames,\n list = _b.list,\n listSingle = _b.listSingle,\n listItems = _b.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n placeholder: function (_a, value) {\n var _b;\n\n var allowHTML = _a.allowHTML,\n placeholder = _a.classNames.placeholder;\n return Object.assign(document.createElement('div'), (_b = {\n className: placeholder\n }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b));\n },\n item: function (_a, _b, removeItemButton) {\n var _c, _d;\n\n var allowHTML = _a.allowHTML,\n _e = _a.classNames,\n item = _e.item,\n button = _e.button,\n highlightedState = _e.highlightedState,\n itemSelectable = _e.itemSelectable,\n placeholder = _e.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n customProperties = _b.customProperties,\n active = _b.active,\n disabled = _b.disabled,\n highlighted = _b.highlighted,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n className: item\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c));\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), (_d = {\n type: 'button',\n className: button\n }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d));\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n\n return div;\n },\n choiceList: function (_a, isSelectOneElement) {\n var list = _a.classNames.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n\n div.setAttribute('role', 'listbox');\n return div;\n },\n choiceGroup: function (_a, _b) {\n var _c;\n\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n group = _d.group,\n groupHeading = _d.groupHeading,\n itemDisabled = _d.itemDisabled;\n var id = _b.id,\n value = _b.value,\n disabled = _b.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n div.appendChild(Object.assign(document.createElement('div'), (_c = {\n className: groupHeading\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c)));\n return div;\n },\n choice: function (_a, _b, selectText) {\n var _c;\n\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n item = _d.item,\n itemChoice = _d.itemChoice,\n itemSelectable = _d.itemSelectable,\n selectedState = _d.selectedState,\n itemDisabled = _d.itemDisabled,\n placeholder = _d.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n groupId = _b.groupId,\n elementId = _b.elementId,\n isDisabled = _b.disabled,\n isSelected = _b.selected,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n id: elementId\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = \"\".concat(item, \" \").concat(itemChoice), _c));\n\n if (isSelected) {\n div.classList.add(selectedState);\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n\n return div;\n },\n input: function (_a, placeholderValue) {\n var _b = _a.classNames,\n input = _b.input,\n inputCloned = _b.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'search',\n name: 'search_terms',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n dropdown: function (_a) {\n var _b = _a.classNames,\n list = _b.list,\n listDropdown = _b.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n notice: function (_a, innerText, type) {\n var _b;\n\n var allowHTML = _a.allowHTML,\n _c = _a.classNames,\n item = _c.item,\n itemChoice = _c.itemChoice,\n noResults = _c.noResults,\n noChoices = _c.noChoices;\n\n if (type === void 0) {\n type = '';\n }\n\n var classes = [item, itemChoice];\n\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n\n return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b));\n },\n option: function (_a) {\n var label = _a.label,\n value = _a.value,\n customProperties = _a.customProperties,\n active = _a.active,\n disabled = _a.disabled;\n var opt = new Option(label, value, false, active);\n\n if (customProperties) {\n opt.dataset.customProperties = \"\".concat(customProperties);\n }\n\n opt.disabled = !!disabled;\n return opt;\n }\n};\nexports[\"default\"] = templates;\n\n/***/ }),\n\n/***/ 996:\n/***/ (function(module) {\n\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n\n/***/ 221:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Fuse; }\n/* harmony export */ });\n/**\n * Fuse.js v6.5.3 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2021 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n }\n\n return { path, id, weight, src }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array<String>\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array<Object>\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n // console.log(key)\n let value = this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (!isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {}\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array<Object>\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.5.3';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\n\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"__DO_NOT_USE__ActionTypes\": function() { return /* binding */ ActionTypes; },\n \"applyMiddleware\": function() { return /* binding */ applyMiddleware; },\n \"bindActionCreators\": function() { return /* binding */ bindActionCreators; },\n \"combineReducers\": function() { return /* binding */ combineReducers; },\n \"compose\": function() { return /* binding */ compose; },\n \"createStore\": function() { return /* binding */ createStore; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (false) {}\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error( true ? formatProdErrorMessage(0) : 0);\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(1) : 0);\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(2) : 0);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(3) : 0);\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error( true ? formatProdErrorMessage(4) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(5) : 0);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(6) : 0);\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error( true ? formatProdErrorMessage(7) : 0);\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(8) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(9) : 0);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(10) : 0);\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error( true ? formatProdErrorMessage(11) : 0);\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(12) : 0);\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(13) : 0);\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) { var warningMessage; }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error( true ? formatProdErrorMessage(14) : 0);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error( true ? formatProdErrorMessage(16) : 0);\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error( true ? formatProdErrorMessage(15) : 0);\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2(_objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373);\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(883);\n/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(789);\n/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(686);\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default()));\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","@use 'sass:color';\n@use 'variables' as *;\n@use 'mixins' as *;\n@use '~choices.js/src/styles/base';\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n align-self: flex-start;\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\n$choices-selector: 'choices' !default;\n$choices-font-size-lg: 16px !default;\n$choices-font-size-md: 15px !default;\n$choices-font-size-sm: 12px !default;\n$choices-border-radius: 4px !default;\n$choices-border-radius-item: 2px !default;\n$choices-bg-color: #fff !default;\n$choices-bg-color-disabled: #eaeaea !default;\n$choices-bg-color-dropdown: #fff !default;\n$choices-text-color: #333 !default;\n$choices-keyline-color: #d7dbe0 !default;\n$choices-primary-color: rgba(105, 118, 135, 10%) !default;\n$choices-disabled-color: #eaeaea !default;\n$choices-highlight-color: $choices-primary-color !default;\n$choices-button-dimension: 10px !default;\n$choices-button-offset: 12px !default;\n$choices-icon-cross: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEuMjc1MzIgMC4zOTEzNzFDMS4wMzEyNCAwLjE0NzI5NCAwLjYzNTUxIDAuMTQ3Mjk0IDAuMzkxNDMyIDAuMzkxMzcxQzAuMTQ3MzU1IDAuNjM1NDQ5IDAuMTQ3MzU1IDEuMDMxMTggMC4zOTE0MzIgMS4yNzUyNUw0LjExNjE2IDQuOTk5OThMMC4zOTE0MzIgOC43MjQ3QzAuMTQ3MzU1IDguOTY4NzggMC4xNDczNTUgOS4zNjQ1MSAwLjM5MTQzMiA5LjYwODU5QzAuNjM1NTEgOS44NTI2NyAxLjAzMTI0IDkuODUyNjcgMS4yNzUzMiA5LjYwODU5TDUuMDAwMDQgNS44ODM4Nkw4LjcyNDc3IDkuNjA4NTlDOC45Njg4NCA5Ljg1MjY3IDkuMzY0NTcgOS44NTI2NyA5LjYwODY1IDkuNjA4NTlDOS44NTI3MyA5LjM2NDUxIDkuODUyNzMgOC45Njg3OCA5LjYwODY1IDguNzI0N0w1Ljg4MzkyIDQuOTk5OThMOS42MDg2NSAxLjI3NTI1QzkuODUyNzMgMS4wMzExOCA5Ljg1MjczIDAuNjM1NDQ5IDkuNjA4NjUgMC4zOTEzNzFDOS4zNjQ1NyAwLjE0NzI5NCA4Ljk2ODg0IDAuMTQ3Mjk0IDguNzI0NzcgMC4zOTEzNzFMNS4wMDAwNCA0LjExNjFMMS4yNzUzMiAwLjM5MTM3MVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=') !default;\n$choices-icon-cross-inverse: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNDY5NjcgNi40Njk2N0M2Ljc2MjU2IDYuMTc2NzggNy4yMzc0NCA2LjE3Njc4IDcuNTMwMzMgNi40Njk2N0wxMCA4LjkzOTM0TDEyLjQ2OTcgNi40Njk2N0MxMi43NjI2IDYuMTc2NzggMTMuMjM3NCA2LjE3Njc4IDEzLjUzMDMgNi40Njk2N0MxMy44MjMyIDYuNzYyNTYgMTMuODIzMiA3LjIzNzQ0IDEzLjUzMDMgNy41MzAzM0wxMS4wNjA3IDEwTDEzLjUzMDMgMTIuNDY5N0MxMy44MjMyIDEyLjc2MjYgMTMuODIzMiAxMy4yMzc0IDEzLjUzMDMgMTMuNTMwM0MxMy4yMzc0IDEzLjgyMzIgMTIuNzYyNiAxMy44MjMyIDEyLjQ2OTcgMTMuNTMwM0wxMCAxMS4wNjA3TDcuNTMwMzMgMTMuNTMwM0M3LjIzNzQ0IDEzLjgyMzIgNi43NjI1NiAxMy44MjMyIDYuNDY5NjcgMTMuNTMwM0M2LjE3Njc4IDEzLjIzNzQgNi4xNzY3OCAxMi43NjI2IDYuNDY5NjcgMTIuNDY5N0w4LjkzOTM0IDEwTDYuNDY5NjcgNy41MzAzM0M2LjE3Njc4IDcuMjM3NDQgNi4xNzY3OCA2Ljc2MjU2IDYuNDY5NjcgNi40Njk2N1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMC4yNUM0LjYxNTIyIDAuMjUgMC4yNSA0LjYxNTIyIDAuMjUgMTBDMC4yNSAxNS4zODQ4IDQuNjE1MjIgMTkuNzUgMTAgMTkuNzVDMTUuMzg0OCAxOS43NSAxOS43NSAxNS4zODQ4IDE5Ljc1IDEwQzE5Ljc1IDQuNjE1MjIgMTUuMzg0OCAwLjI1IDEwIDAuMjVaTTEuNzUgMTBDMS43NSA1LjQ0MzY1IDUuNDQzNjUgMS43NSAxMCAxLjc1QzE0LjU1NjMgMS43NSAxOC4yNSA1LjQ0MzY1IDE4LjI1IDEwQzE4LjI1IDE0LjU1NjMgMTQuNTU2MyAxOC4yNSAxMCAxOC4yNUM1LjQ0MzY1IDE4LjI1IDEuNzUgMTQuNTU2MyAxLjc1IDEwWiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==') !default;\n$choices-z-index: 1;\n$choices-chevron-bg: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEyIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMC40Njk2NyAwLjQ2OTY3QzAuNzYyNTYzIDAuMTc2Nzc3IDEuMjM3NDQgMC4xNzY3NzcgMS41MzAzMyAwLjQ2OTY3TDYgNC45MzkzNEwxMC40Njk3IDAuNDY5NjcxQzEwLjc2MjYgMC4xNzY3NzggMTEuMjM3NCAwLjE3Njc3OCAxMS41MzAzIDAuNDY5NjcxQzExLjgyMzIgMC43NjI1NjQgMTEuODIzMiAxLjIzNzQ0IDExLjUzMDMgMS41MzAzM0w2LjUzMDMzIDYuNTMwMzNDNi4yMzc0NCA2LjgyMzIyIDUuNzYyNTYgNi44MjMyMiA1LjQ2OTY3IDYuNTMwMzNMMC40Njk2NyAxLjUzMDMzQzAuMTc2Nzc3IDEuMjM3NDQgMC4xNzY3NzcgMC43NjI1NjMgMC40Njk2NyAwLjQ2OTY3WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==');\n$choices-search-icon: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjUgMC4yNUMzLjk0MzY1IDAuMjUgMC4yNSAzLjk0MzY1IDAuMjUgOC41QzAuMjUgMTMuMDU2MyAzLjk0MzY1IDE2Ljc1IDguNSAxNi43NUMxMC41MjU1IDE2Ljc1IDEyLjM4MDUgMTYuMDIwMSAxMy44MTYzIDE0LjgwODlDMTMuODUyNiAxNC44ODkyIDEzLjkwMzcgMTQuOTY0NCAxMy45Njk3IDE1LjAzMDNMMTYuNDY5NyAxNy41MzAzQzE2Ljc2MjYgMTcuODIzMiAxNy4yMzc0IDE3LjgyMzIgMTcuNTMwMyAxNy41MzAzQzE3LjgyMzIgMTcuMjM3NCAxNy44MjMyIDE2Ljc2MjYgMTcuNTMwMyAxNi40Njk3TDE1LjAzMDMgMTMuOTY5N0MxNC45NjQ0IDEzLjkwMzcgMTQuODg5MiAxMy44NTI2IDE0LjgwODkgMTMuODE2M0MxNi4wMjAxIDEyLjM4MDUgMTYuNzUgMTAuNTI1NSAxNi43NSA4LjVDMTYuNzUgMy45NDM2NSAxMy4wNTYzIDAuMjUgOC41IDAuMjVaTTEuNzUgOC41QzEuNzUgNC43NzIwOCA0Ljc3MjA4IDEuNzUgOC41IDEuNzVDMTIuMjI3OSAxLjc1IDE1LjI1IDQuNzcyMDggMTUuMjUgOC41QzE1LjI1IDEyLjIyNzkgMTIuMjI3OSAxNS4yNSA4LjUgMTUuMjVDNC43NzIwOCAxNS4yNSAxLjc1IDEyLjIyNzkgMS43NSA4LjVaIiBmaWxsPSIjNjk3Njg3Ii8+Cjwvc3ZnPgo=');\n\n.#{$choices-selector} {\n position: relative;\n overflow: hidden;\n font-size: $choices-font-size-lg;\n\n &.is-focused,\n &:focus {\n outline: none;\n box-shadow: 0 1px 4px 0 #101d3033;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.is-open {\n overflow: visible;\n }\n\n &.is-disabled {\n .#{$choices-selector}__inner,\n .#{$choices-selector}__input {\n background-color: $choices-bg-color-disabled;\n cursor: not-allowed;\n user-select: none;\n }\n .#{$choices-selector}__item {\n cursor: not-allowed;\n }\n }\n\n [hidden] {\n display: none !important;\n }\n}\n\n.#{$choices-selector}[data-type*='select-one'] {\n cursor: pointer;\n\n .#{$choices-selector}__list--dropdown .#{$choices-selector}__list {\n padding-top: 0.5rem;\n }\n\n .#{$choices-selector}__input {\n display: block;\n width: 100%;\n padding: 12px 16px 12px 40px;\n border-bottom: 1px solid $choices-keyline-color;\n margin: 0;\n color: #000;\n background: #fff $choices-search-icon no-repeat left 12px center;\n\n &::before {\n content: 'abc';\n }\n }\n .#{$choices-selector}__button {\n background-image: $choices-icon-cross-inverse;\n padding: 0;\n background-size: 20px;\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -10px;\n margin-right: 35px;\n height: 20px;\n width: 20px;\n\n &:focus {\n box-shadow: 0 0 0 2px $choices-highlight-color;\n }\n }\n .#{$choices-selector}__item[data-value=''] .#{$choices-selector}__button {\n display: none;\n }\n\n .#{$choices-selector}__item {\n @include cat-ellipsis;\n }\n\n &[dir='rtl'] {\n &::after {\n left: 11.5px;\n right: auto;\n }\n .#{$choices-selector}__button {\n right: auto;\n left: 0;\n margin-left: 35px;\n margin-right: 0;\n }\n }\n}\n\n.#{$choices-selector}[data-type*='select-multiple'],\n.#{$choices-selector}[data-type*='text'] {\n .#{$choices-selector}__inner {\n cursor: text;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n padding: 4px 60px 4px 4px;\n gap: 4px;\n }\n\n .#{$choices-selector}__item {\n cat-checkbox {\n @include cat-ellipsis;\n margin: 0;\n\n &::part(label) {\n @include cat-ellipsis;\n }\n }\n }\n\n .#{$choices-selector}__input {\n min-width: 1ch;\n width: 1ch;\n }\n\n .#{$choices-selector}__button {\n position: relative;\n display: inline-block;\n padding-left: $choices-button-offset * 2;\n background-image: $choices-icon-cross;\n background-size: $choices-button-dimension;\n width: $choices-button-dimension;\n line-height: 1;\n opacity: 0.75;\n border-radius: 0;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n }\n\n cat-button {\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -20px;\n margin-right: 25px;\n\n &::part(button) {\n box-shadow: unset;\n background-color: transparent;\n }\n }\n\n &[dir='rtl'] {\n .#{$choices-selector}__inner {\n padding-right: 4px;\n padding-left: 60px;\n }\n\n cat-button {\n right: auto;\n left: 0;\n margin-left: 25px;\n margin-right: 0;\n }\n }\n}\n\n.#{$choices-selector}[data-type*='select-one'],\n.#{$choices-selector}[data-type*='select-multiple'] {\n &::after {\n content: '';\n width: 12px;\n height: 6.5px;\n background-image: $choices-chevron-bg;\n position: absolute;\n right: 11.5px;\n top: 50%;\n margin-top: -2.5px;\n pointer-events: none;\n transition: transform cat-token('time.transition.m') linear;\n }\n\n &[dir='rtl'] {\n &::after {\n left: 11.5px;\n right: auto;\n }\n }\n\n &.is-open::after {\n transform: rotate(180deg);\n transition: transform cat-token('time.transition.m') linear;\n }\n}\n\n.#{$choices-selector}__inner {\n display: inline-block;\n vertical-align: top;\n width: 100%;\n background-color: $choices-bg-color;\n border: 1px solid $choices-keyline-color;\n border-radius: $choices-border-radius;\n font-size: $choices-font-size-md;\n min-height: 40px;\n overflow: hidden;\n\n .is-open & {\n border-radius: $choices-border-radius $choices-border-radius 0 0;\n }\n\n .is-flipped.is-open & {\n border-radius: 0 0 $choices-border-radius $choices-border-radius;\n }\n}\n\n.#{$choices-selector}__list {\n margin: 0;\n padding-left: 0;\n list-style: none;\n\n &[aria-expanded] {\n @extend %choices-dropdown;\n }\n}\n\n.#{$choices-selector}__list--single {\n display: flex;\n padding: 9px 50px 9px 12px;\n width: 100%;\n\n [dir='rtl'] & {\n padding-right: 12px;\n padding-left: 50px;\n }\n .#{$choices-selector}__item {\n width: 100%;\n }\n}\n\n.#{$choices-selector}__list--multiple {\n display: contents;\n\n .#{$choices-selector}__item {\n @include cat-body('m', 600);\n\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border-radius: $choices-border-radius-item;\n padding: 5px 8px 5px 4px;\n background-color: $choices-primary-color;\n color: #000;\n word-break: break-all;\n box-sizing: border-box;\n\n &[data-deletable] {\n padding-right: 5px;\n }\n\n [dir='rtl'] & {\n margin-right: 0;\n margin-left: 3.75px;\n }\n\n &.is-highlighted {\n background-color: color.adjust($choices-primary-color, $lightness: -5%);\n }\n\n .is-disabled & {\n background-color: color.adjust($choices-disabled-color, $lightness: -25%);\n }\n }\n}\n\n%choices-dropdown {\n visibility: hidden;\n z-index: $choices-z-index;\n position: absolute;\n width: 100%;\n background-color: $choices-bg-color-dropdown;\n border: 1px solid $choices-keyline-color;\n top: 100%;\n margin-top: -1px;\n overflow: hidden;\n word-break: break-all;\n will-change: visibility;\n box-shadow: 0 2px 4px 0 #101d3033;\n border-bottom-left-radius: $choices-border-radius;\n border-bottom-right-radius: $choices-border-radius;\n\n &.is-active {\n visibility: visible;\n }\n\n .is-flipped & {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: -1px;\n border-radius: 0.25rem 0.25rem 0 0;\n }\n .#{$choices-selector}__list {\n position: relative;\n max-height: 300px;\n padding: 8px 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n will-change: scroll-position;\n }\n .#{$choices-selector}__item {\n @include cat-body('m', 500);\n position: relative;\n padding: 10px;\n min-height: 40px;\n\n [dir='rtl'] & {\n text-align: right;\n }\n }\n .#{$choices-selector}__item--selectable {\n @media (min-width: 640px) {\n &[data-select-text]:not([data-select-text='']) {\n padding-right: 100px;\n\n [dir='rtl'] & {\n padding-right: 10px;\n }\n }\n\n &::after {\n content: attr(data-select-text);\n font-size: $choices-font-size-sm;\n opacity: 0;\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n [dir='rtl'] & {\n text-align: right;\n padding-left: 100px;\n\n &::after {\n right: auto;\n left: 10px;\n }\n }\n }\n\n &.is-highlighted {\n background-color: rgba(105, 118, 135, 5%);\n\n &::after {\n opacity: 0.5;\n }\n }\n }\n}\n\n.#{$choices-selector}__list--dropdown {\n @extend %choices-dropdown;\n}\n\n.#{$choices-selector}__item {\n cursor: default;\n border-left: 3px solid transparent;\n transition: cat-token('time.transition.m') linear;\n}\n\n.#{$choices-selector}__item--selectable {\n cursor: pointer;\n}\n\n.#{$choices-selector}__item--selected {\n border-color: cat-token('color.theme.primary.bg');\n}\n\n.#{$choices-selector}__item--disabled {\n cursor: not-allowed;\n user-select: none;\n opacity: 0.5;\n}\n\n.#{$choices-selector}__heading {\n font-weight: 600;\n font-size: $choices-font-size-sm;\n padding: 10px;\n border-bottom: 1px solid color.adjust($choices-keyline-color, $lightness: 10%);\n color: color.adjust(#333, $lightness: 30%);\n}\n\n.#{$choices-selector}__button {\n text-indent: -9999px;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.#{$choices-selector}__input {\n display: inline-block;\n vertical-align: baseline;\n background-color: cat-token('color.ui.background.body');\n font-size: $choices-font-size-md;\n font-family: cat-body-font-family();\n border: 0;\n border-radius: 0;\n max-width: 100%;\n padding: 7px 0 4px 2px;\n\n &:focus {\n outline: 0;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n [dir='rtl'] & {\n padding-right: 2px;\n padding-left: 0;\n }\n}\n\n.#{$choices-selector}__placeholder {\n opacity: 0.5;\n}\n\n.#{$choices-selector}__group {\n padding: 8px 16px;\n height: 34px;\n\n .#{$choices-selector}__heading {\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 18px;\n padding: unset;\n border-bottom: 0;\n color: #697687;\n }\n\n &:not(:first-child) {\n border-top: 1px solid color.adjust($choices-keyline-color, $lightness: 10%);\n margin-top: 8px;\n }\n}\n\n.d-flex {\n display: flex;\n}\n\n.align-items-center {\n align-items: center;\n}\n\n.choices-option-icon {\n width: 20px;\n aspect-ratio: 1;\n border-radius: cat-border-radius('s');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch, Listen } from '@stencil/core';\nimport Choices, { Choice, ClassNames, Item, Options } from 'choices.js';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nlet nextUniqueId = 0;\n\nconst getOptionTemplate = (data: Item): string => {\n if (data.customProperties?.imageUrl) {\n return `\n <div class=\"d-flex align-items-center\">\n <img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />\n ${data.label}\n </div>\n `;\n }\n return `<cat-checkbox label=\"${data.label}\" checked=\"${data.selected}\"></cat-checkbox>`;\n};\n\n/**\n * A single option in the select.\n */\nexport type CatSelectItem = Pick<Choice, 'label' | 'value' | 'customProperties'>;\n\n/**\n * Select lets user choose one option from an options menu. Consider using\n * select when you have 6 or more options. Select component supports any content\n * type.\n *\n * @slot hint - Optional hint element to be displayed with the select.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-select',\n styleUrl: 'cat-select.scss',\n shadow: true\n})\nexport class CatSelect {\n private readonly i18n = CatI18nRegistry.getInstance();\n private readonly id = `cat-select-${nextUniqueId++}`;\n private resetItemsOnNextValueChange = true;\n\n private choice?: Choices;\n private choicesElement?: HTMLElement;\n private choiceInner?: Element;\n private choiceDropdown?: Element;\n private selectElement?: HTMLSelectElement;\n private removeElement?: HTMLCatButtonElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * The label for the select.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * The available options for the input.\n */\n @Prop() items: CatSelectItem[] = [];\n\n /**\n * The value of the select.\n */\n @Prop({ mutable: true }) value?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n\n /**\n * Disable the select.\n */\n @Prop() disabled = false;\n\n /**\n * Enable multiple selection.\n */\n @Prop() multiple = false;\n\n /**\n * The placeholder for the select.\n */\n @Prop() placeholder = '';\n\n /**\n * Whether the dropdown should appear above `(top)` or below `(bottom)` the\n * input. By default, if there is not enough space within the window the\n * dropdown will appear above the input, otherwise below it.\n */\n @Prop() position: 'auto' | 'top' | 'bottom' = 'auto';\n\n /**\n * Enable search for the select.\n */\n @Prop() search = false;\n\n /**\n * Optional hint text(s) to be displayed with the select.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the search is triggered.\n */\n @Event() catSearch!: EventEmitter;\n\n /**\n * Emitted when scrolled to the bottom.\n */\n @Event() catScrolledBottom!: EventEmitter;\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n @Watch('items')\n setChoicesHandler(items: CatSelectItem[]) {\n const isSelected = (item: CatSelectItem) => this.value?.includes(item.value);\n const choices = items.map(item => ({ ...item, selected: isSelected(item) }));\n this.choice?.setChoices(choices, 'value', 'label', true);\n\n const vItems = this.choice?.getValue() || [];\n const vItemsArray = (Array.isArray(vItems) ? vItems : [vItems]) as Item[];\n const value = this.value || [];\n const vItemValues = [...value];\n\n // remove duplicate items\n this.choice?.unhighlightAll();\n vItemsArray.forEach(vItem => {\n const index = vItemValues.indexOf(vItem.value);\n if (index > -1) {\n vItemValues.splice(index, 1);\n } else {\n vItem.choiceId = -1; // disconnect item from choice\n this.choice?.highlightItem(vItem, false);\n }\n });\n this.choice?.removeHighlightedItems(false);\n }\n\n @Watch('value')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setValueHandler(value?: any) {\n if (this.resetItemsOnNextValueChange) {\n this.choice?.removeActiveItems(-1);\n }\n this.resetItemsOnNextValueChange = true;\n this.choice?.setChoiceByValue(value);\n this.multiple && this.updateRemoveItemButtonVisibility();\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on select', this);\n }\n }\n\n componentDidLoad(): void {\n this.init();\n const attachedInternals: ElementInternals | undefined = this.hostElement.attachInternals?.();\n if (attachedInternals) {\n const root = attachedInternals.shadowRoot;\n this.choicesElement = root?.querySelector('.choices') || undefined;\n this.choiceInner = root?.querySelector('.choices__inner') || undefined;\n this.choiceDropdown = root?.querySelector('.choices__list--dropdown')?.firstElementChild || undefined;\n }\n this.choicesElement?.addEventListener('click', this.resetFocus.bind(this));\n this.choiceInner?.addEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.addEventListener('hideDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.addEventListener('showDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.addEventListener('removeItem', this.resetFocus.bind(this));\n this.selectElement?.addEventListener('change', this.onChange.bind(this));\n this.selectElement?.addEventListener('search', this.onSearch.bind(this));\n this.choiceDropdown?.addEventListener('scroll', this.onScrolledBottom.bind(this));\n if (this.multiple) {\n this.selectElement?.addEventListener('choice', this.onChoice.bind(this));\n this.createRemoveItemButton();\n }\n }\n\n disconnectedCallback(): void {\n this.choice?.destroy();\n this.choice = undefined;\n this.choicesElement?.removeEventListener('click', this.resetFocus.bind(this));\n this.choiceInner?.removeEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.removeEventListener('hideDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.removeEventListener('showDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.removeEventListener('removeItem', this.resetFocus.bind(this));\n this.selectElement?.removeEventListener('change', this.onChange.bind(this));\n this.selectElement?.removeEventListener('search', this.onSearch.bind(this));\n this.choiceDropdown?.removeEventListener('scroll', this.onScrolledBottom.bind(this));\n if (this.multiple) {\n this.removeElement?.removeEventListener('choice', this.onChoice.bind(this));\n }\n }\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent): void {\n this.catBlur.emit(event);\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n ({this.i18n.t('input.optional')})\n </span>\n )}\n </span>\n </label>\n )}\n <select\n id={this.id}\n ref={el => (this.selectElement = el)}\n multiple={this.multiple}\n disabled={this.disabled}\n ></select>\n {this.hintSection}\n </Host>\n );\n }\n\n private init() {\n const component = this; // eslint-disable-line @typescript-eslint/no-this-alias\n const removeItemText = (value: string) => this.i18n.t('select.removeItem', { value });\n const config = {\n allowHTML: true,\n removeItemButton: true,\n duplicateItemsAllowed: false,\n delimiter: '',\n paste: false,\n searchEnabled: this.search,\n searchChoices: false,\n position: this.position,\n resetScrollPosition: false,\n placeholder: !!this.placeholder,\n placeholderValue: this.placeholder || '',\n searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),\n renderSelectedChoices: 'always' as 'auto' | 'always',\n loadingText: this.i18n.t('select.loading'),\n noResultsText: this.i18n.t('select.noResults'),\n noChoicesText: this.i18n.t('select.noChoices'),\n itemSelectText: this.i18n.t('select.selectItem'),\n addItemText: (value: string) => this.i18n.t('select.addItem', { value }),\n maxItemText: (maxItemCount: number) => this.i18n.t('select.maxItem', { maxItemCount }),\n uniqueItemText: this.i18n.t('select.uniqueItem'),\n customAddItemText: this.i18n.t('select.customAddItem'),\n callbackOnInit: function () {\n const choice = this as unknown as Choices;\n choice.setChoices(component.items, 'value', 'label', true);\n choice.setChoiceByValue(component.value);\n }\n };\n\n const configSingle = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />`\n : '';\n return strToEl(\n `\n <div class=\"${classNames.item} ${\n data.highlighted ? classNames.highlightedState : classNames.itemSelectable\n } ${data.placeholder ? classNames.placeholder : ''}\" data-item data-id=\"${data.id}\" data-value=\"${\n data.value\n }\" ${data.active ? 'aria-selected=\"true\"' : ''} ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${template}</span> ${data.label}\n <button type=\"button\"\n class=\"${classNames.button}\"\n aria-label=\"${removeItemText(data.label)}\"\n data-button>${removeItemText(data.label)}</button>\n </div>\n `\n );\n }\n };\n }\n };\n\n const configMultiple = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n const itemSelectText = config.itemSelectText;\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem;\" />`\n : '';\n return strToEl(\n `<div class=\"\n ${classNames.item}\n ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\n ${data.placeholder ? classNames.placeholder : ''}\"\n data-item data-id=\"${data.id}\" data-value=\"${data.value}\"\n ${data.active ? 'aria-selected=\"true\"' : ''}\n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${template}\n ${data.label}\n <button type=\"button\"\n class=\"${classNames.button}\"\n aria-label=\"${removeItemText(data.label)}\"\n data-button>${removeItemText(data.label)}</button>\n </div>`\n );\n },\n choice: function ({ classNames }: { classNames: ClassNames }, data: Item) {\n const template = getOptionTemplate(data);\n const className = `${String(classNames.item)} ${String(classNames.itemChoice)}\n ${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}\n ${data.selected ? 'choices__item--selected' : ''}`;\n return strToEl(\n `<div class=\"${className}\"\n data-select-text=\"${itemSelectText}\"\n data-choice data-id=\"${String(data.id)}\" data-value=\"${String(data.value)}\"\n ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'}\n ${data.groupId && data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"'}>\n ${template}\n </div>`\n );\n }\n };\n }\n };\n\n const settings: Partial<Options> = this.multiple\n ? { ...config, ...configMultiple }\n : { ...config, ...configSingle };\n this.choice = new Choices(this.selectElement, settings);\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onChange() {\n this.resetItemsOnNextValueChange = false;\n this.value = this.choice?.getValue(true);\n this.catChange.emit(this.value);\n }\n\n private showMultipleFocus() {\n if (this.multiple && this.isFocused() && !this.choicesElement?.classList.contains('is-focused')) {\n this.choicesElement?.classList.add('is-focused');\n }\n }\n\n private resetFocus() {\n if (!this.isFocused()) {\n if (!this.choicesElement?.hasAttribute('tabindex')) {\n this.choicesElement?.setAttribute('tabindex', '0');\n }\n this.choicesElement?.focus();\n }\n }\n\n private isFocused() {\n return document.activeElement === this.hostElement;\n }\n\n private onChoice(event: Event) {\n const customEvent = event as CustomEvent<{ choice: Choice }>;\n const choice = customEvent.detail.choice;\n if (choice.selected) {\n this.choice?.removeActiveItemsByValue(choice.value);\n this.onChange();\n }\n }\n\n private onSearch(event: Event) {\n const customEvent = event as CustomEvent<{ value: string }>;\n this.catSearch.emit(customEvent.detail.value);\n }\n\n private onScrolledBottom() {\n const scrolledBottom =\n this.choiceDropdown?.scrollHeight ===\n (this.choiceDropdown?.scrollTop || 0) + (this.choiceDropdown?.clientHeight || 0);\n if (scrolledBottom) {\n this.catScrolledBottom.emit();\n }\n }\n\n private showDropdownHandler() {\n !this.disabled && this.choice?.showDropdown();\n }\n\n private createRemoveItemButton() {\n this.removeElement = document.createElement('cat-button') as HTMLCatButtonElement;\n this.removeElement.icon = 'cross-circle-outlined';\n this.removeElement.iconOnly = true;\n this.removeElement.a11yLabel = this.i18n.t('select.removeItem');\n this.updateRemoveItemButtonVisibility();\n this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));\n this.choiceInner?.appendChild(this.removeElement);\n }\n\n private updateRemoveItemButtonVisibility() {\n if (this.value?.length) {\n this.removeElement?.removeAttribute('hidden');\n } else {\n this.removeElement?.setAttribute('hidden', 'true');\n }\n }\n\n private onRemoveItemButtonClick(event: Event) {\n event.stopPropagation();\n this.choice?.removeActiveItems(-1);\n this.onChange();\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$skeleton-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n /**\n * @prop --background: The background color of the skeleton.\n * @prop --highlight: The highlight color of the skeleton.\n * @prop --speed: The animation speed.\n */\n display: flex;\n flex-direction: column;\n position: relative;\n\n --background: #{cat-token('color.ui.background.skeleton')};\n --highlight: #{cat-token('color.ui.background.skeletonHighlight')};\n --speed: 2s;\n}\n\n:host([variant='square']),\n:host([variant='circle']) {\n display: inline-flex;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([variant='head']) {\n margin-bottom: $cat-head-margin-bottom;\n}\n\n:host([variant='body']) {\n margin-bottom: $cat-body-margin-bottom;\n}\n\n.skeleton {\n display: block;\n border-radius: cat-border-radius('m');\n background: var(--background);\n}\n\n.skeleton-circle {\n border-radius: 10rem;\n}\n\n// ----- size\n\n@mixin size($size, $lvl) {\n $-text-offset: 4px;\n .skeleton-#{$size} {\n &.skeleton-rectangle {\n width: var(--width, 100%);\n height: var(--height, map.get($skeleton-sizes, $size));\n }\n\n &.skeleton-square,\n &.skeleton-circle {\n width: var(--width, map.get($skeleton-sizes, $size));\n height: var(--height, map.get($skeleton-sizes, $size));\n }\n\n &.skeleton-head,\n &.skeleton-body {\n width: var(--width, var(--line-width, 100%));\n }\n\n &.skeleton-head {\n height: calc(#{cat-head-font-size($lvl)} - #{$-text-offset});\n margin: calc((#{cat-head-line-height($lvl)} - #{cat-head-font-size($lvl)} + #{$-text-offset}) * 0.5) 0;\n }\n\n &.skeleton-body {\n height: calc(#{cat-body-font-size($size)} - #{$-text-offset});\n margin: calc((#{cat-body-line-height($size)} - #{cat-body-font-size($size)} + #{$-text-offset}) * 0.5) 0;\n }\n }\n}\n\n@include size('xs', 5);\n@include size('s', 4);\n@include size('m', 3);\n@include size('l', 2);\n@include size('xl', 1);\n\n// ----- animation\n\n.skeleton-sheen {\n background: linear-gradient(90deg, var(--background) 33%, var(--highlight) 50%, var(--background) 66%)\n var(--background);\n background-size: 300% 100%;\n animation: sheen var(--speed) ease-in-out infinite;\n}\n\n.skeleton-pulse {\n position: relative;\n overflow: hidden;\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: var(--highlight);\n animation: var(--speed) ease-in-out 0.5s infinite normal none running pulse;\n opacity: 0;\n }\n}\n\n@keyframes sheen {\n 0% {\n background-position: right;\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: 1;\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * Skeletons are used to show where content will eventually be drawn.\n */\n@Component({\n tag: 'cat-skeleton',\n styleUrl: 'cat-skeleton.scss',\n shadow: true\n})\nexport class CatSkeleton {\n /**\n * The animation style of the skeleton.\n */\n @Prop() effect: 'plain' | 'sheen' | 'pulse' = 'sheen';\n\n /**\n * The rendering style of the skeleton.\n */\n @Prop() variant: 'rectangle' | 'square' | 'circle' | 'head' | 'body' = 'rectangle';\n\n /**\n * The size of the skeleton. If the variant is set to \"head\", the size values\n * \"xs\" to \"xl\" translate to the head levels `h1` to `h5`.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * The number of text lines to be rendered for \"head\" and \"body\" variants.\n * Defaults to 1 for \"head\" and 3 for \"body\". Will be ignored for other\n * variants.\n */\n @Prop() lines?: number;\n\n render() {\n return (\n <Host>\n {Array.from(Array(this.count)).map(() => (\n <div\n style={this.style}\n class={{\n skeleton: true,\n [`skeleton-${this.effect}`]: Boolean(this.effect),\n [`skeleton-${this.variant}`]: Boolean(this.variant),\n [`skeleton-${this.size}`]: Boolean(this.size)\n }}\n ></div>\n ))}\n </Host>\n );\n }\n\n private get count() {\n switch (this.variant) {\n case 'head':\n return Math.max(1, this.lines || 1);\n case 'body':\n return Math.max(1, this.lines || 3);\n default:\n return 1;\n }\n }\n\n private get style() {\n return this.variant === 'head' || this.variant === 'body'\n ? {\n '--line-width': `${this.random(50, 100)}%`\n }\n : undefined;\n }\n\n private random(min: number, max: number) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$spinner-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n display: inline-flex;\n vertical-align: middle;\n @include cat-select(none);\n\n &[hidden] {\n display: none;\n }\n}\n\nspan {\n display: inline-flex;\n}\n\nsvg {\n fill: none;\n stroke: currentColor;\n stroke-dasharray: 135px;\n stroke-dashoffset: 95px;\n stroke-linecap: round;\n stroke-width: 5px;\n transform-origin: center center;\n animation: spin 0.75s cubic-bezier(0.4, 0.15, 0.6, 0.85) infinite;\n width: 1em;\n height: 1em;\n}\n\n// ----- sizes\n\n@mixin size($size) {\n .spinner-#{$size} svg {\n font-size: map.get($spinner-sizes, $size);\n }\n}\n\n@include size('xs');\n@include size('s');\n@include size('m');\n@include size('l');\n@include size('xl');\n\n// ----- animation\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Spinners are used to indicate users that their action is being processed.\n */\n@Component({\n tag: 'cat-spinner',\n styleUrl: 'cat-spinner.scss',\n shadow: true\n})\nexport class CatSpinner {\n /**\n * The size of the spinner.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'inline' = 'm';\n\n /**\n * Adds accessible label for the spinner that is only shown for screen\n * readers. The `aria-hidden` attribute will be set if no label is present.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n render() {\n return (\n <span\n aria-label={this.a11yLabel}\n aria-hidden={this.a11yLabel ? null : 'true'}\n class={{\n [`spinner-${this.size}`]: this.size !== 'inline'\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n <circle cx=\"24\" cy=\"24\" r=\"21.5\"></circle>\n </svg>\n </span>\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n","import { Component, h, Prop, Event, EventEmitter, Listen, Host, Element } from '@stencil/core';\nimport { Breakpoint } from '../../utils/breakpoints';\n\nlet nextUniqueId = 0;\n\n/**\n * A single tab inside a tabs component.\n */\n@Component({\n tag: 'cat-tab',\n styleUrl: 'cat-tab.scss',\n shadow: true\n})\nexport class CatTab {\n @Element() hostElement!: HTMLElement;\n\n /**\n * The label of the tab.\n */\n @Prop() label = '';\n\n /**\n * The name of an icon to be displayed in the tab.\n */\n @Prop() icon?: string;\n\n /**\n * Hide the actual button content and only display the tab.\n */\n @Prop() iconOnly: boolean | Breakpoint = false;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n /**\n * Specifies that the tab should be deactivated.\n */\n @Prop() deactivated = false;\n\n /**\n * Emitted when tab is clicked.\n */\n @Event() tabClick!: EventEmitter<MouseEvent>;\n\n connectedCallback() {\n if (!this.hostElement.id) {\n this.hostElement.id = `cat-tab-${nextUniqueId++}`;\n }\n }\n\n @Listen('click')\n onClick(event: MouseEvent) {\n this.tabClick.emit(event);\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: flex;\n flex-direction: row;\n box-shadow: inset 0 -1px 0 0 cat-token('color.ui.border.tabs');\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([tabs-align='center']) {\n justify-content: center;\n}\n\n:host([tabs-align='right']) {\n justify-content: end;\n}\n\n:host([tabs-align='justify']) {\n cat-button {\n flex: 1 0 auto;\n }\n}\n\n.tab {\n padding: 0.5rem;\n\n &.tab-active {\n box-shadow: inset 0 -3px 0 0 cat-token('color.ui.border.activeTab');\n }\n}\n","import { Component, h, Element, State, Watch, Listen, Host, Prop } from '@stencil/core';\n\n/**\n * Tabs are used to display multiple panels to be contained within a single\n * window, using tabs as a navigational element.\n *\n * @part tab - The header of the tab.\n */\n@Component({\n tag: 'cat-tabs',\n styleUrl: 'cat-tabs.scss',\n shadow: true\n})\nexport class CatTabs {\n private tabs: HTMLCatTabElement[] = [];\n private buttons: HTMLCatButtonElement[] = [];\n\n @Element() hostElement!: HTMLElement;\n\n @State() activeTabId?: string;\n\n /**\n * The ID of the active tab.\n */\n @Prop() activeTab = '';\n\n /**\n * The alignment of the tabs.\n */\n @Prop() tabsAlign: 'left' | 'center' | 'right' | 'justify' = 'left';\n\n @Watch('activeTabId')\n onActiveTabChanged(newActiveTab: string): void {\n const activeTab = this.tabs.find(value => value.id === newActiveTab);\n activeTab?.click();\n }\n\n componentWillLoad(): void {\n this.tabs = Array.from(this.hostElement.querySelectorAll('cat-tab'));\n if (this.tabs.length) {\n this.activeTabId = this.activeTab;\n }\n }\n\n @Listen('keydown')\n onKeydown(event: KeyboardEvent): void {\n if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {\n const targetElements = this.buttons.filter(button => !button.disabled);\n const activeElement = this.hostElement.shadowRoot?.activeElement as HTMLCatButtonElement;\n const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;\n const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].setFocus();\n event.preventDefault();\n }\n }\n\n render() {\n return (\n <Host>\n {this.tabs.map((tab: HTMLCatTabElement) => {\n return (\n <cat-button\n ref={el => el && this.updateButtonsRef(el)}\n buttonId={tab.id}\n role=\"tab\"\n part=\"tab\"\n class={{\n tab: true,\n 'tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)\n }}\n color={this.activeTabId && tab.id === this.activeTabId ? 'primary' : 'secondary'}\n variant=\"text\"\n icon={tab.icon}\n iconOnly={tab.iconOnly}\n iconRight={tab.iconRight}\n url={tab.url}\n disabled={tab.deactivated}\n urlTarget={tab.urlTarget}\n onCatClick={() => (this.activeTabId = tab.id)}\n >\n {tab.label}\n </cat-button>\n );\n })}\n </Host>\n );\n }\n\n private updateButtonsRef(button: HTMLCatButtonElement) {\n const indexOf = this.buttons.indexOf(button);\n\n if (indexOf >= 0) {\n this.buttons[indexOf] = button;\n } else {\n this.buttons.push(button);\n }\n }\n}\n","var e,t,n=\"function\"==typeof Map?new Map:(e=[],t=[],{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,o){-1===e.indexOf(n)&&(e.push(n),t.push(o))},delete:function(n){var o=e.indexOf(n);o>-1&&(e.splice(o,1),t.splice(o,1))}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event(\"test\")}catch(e){o=function(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!1),t}}function r(e){var t=n.get(e);t&&t.destroy()}function i(e){var t=n.get(e);t&&t.update()}var l=null;\"undefined\"==typeof window||\"function\"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&\"TEXTAREA\"===e.nodeName&&!n.has(e)){var t,r=null,i=null,l=null,d=function(){e.clientWidth!==i&&c()},a=function(t){window.removeEventListener(\"resize\",d,!1),e.removeEventListener(\"input\",c,!1),e.removeEventListener(\"keyup\",c,!1),e.removeEventListener(\"autosize:destroy\",a,!1),e.removeEventListener(\"autosize:update\",c,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),n.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener(\"autosize:destroy\",a,!1),\"onpropertychange\"in e&&\"oninput\"in e&&e.addEventListener(\"keyup\",c,!1),window.addEventListener(\"resize\",d,!1),e.addEventListener(\"input\",c,!1),e.addEventListener(\"autosize:update\",c,!1),e.style.overflowX=\"hidden\",e.style.wordWrap=\"break-word\",n.set(e,{destroy:a,update:c}),\"vertical\"===(t=window.getComputedStyle(e,null)).resize?e.style.resize=\"none\":\"both\"===t.resize&&(e.style.resize=\"horizontal\"),r=\"content-box\"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(r)&&(r=0),c()}function u(t){var n=e.style.width;e.style.width=\"0px\",e.style.width=n,e.style.overflowY=t}function s(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height=\"\",e.style.height=e.scrollHeight+r+\"px\",i=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function c(){s();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(r<t?\"hidden\"===n.overflowY&&(u(\"scroll\"),s(),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):\"hidden\"!==n.overflowY&&(u(\"hidden\"),s(),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),l!==r){l=r;var i=o(\"autosize:resized\");try{e.dispatchEvent(i)}catch(e){}}}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],r),e},l.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],i),e});var d=l;export default d;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n align-self: flex-start;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\ntextarea {\n margin: 0;\n padding: 0.625rem 0.75rem;\n min-height: 2.5rem;\n font: inherit;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n border: none;\n box-shadow: 0 0 0 1px cat-token('color.ui.border.input');\n transition: box-shadow cat-token('time.transition.s') linear;\n\n &:disabled {\n background: cat-token('color.ui.background.inputDisabled');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n resize: none;\n }\n\n &:hover:not(:disabled) {\n box-shadow: 0 0 0 2px cat-token('color.ui.border.input');\n }\n\n &:focus {\n outline: 2px solid cat-token('color.ui.border.focus');\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport autosize from 'autosize';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Textarea specifies a control that allows user to write text over multiple\n * rows. Used when the expected user input is long. For shorter input, use the\n * input component.\n *\n * @slot hint - Optional hint element to be displayed with the textarea.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-textarea',\n styleUrl: 'cat-textarea.scss',\n shadow: true\n})\nexport class CatTextarea {\n private readonly id = `cat-textarea-${nextUniqueId++}`;\n private textarea!: HTMLTextAreaElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Whether the textarea is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text(s) to be displayed with the textarea.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The label for the textarea.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name = '';\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Specifies the initial number of lines in the textarea.\n */\n @Prop() rows = 3;\n\n /**\n * The initial value of the control.\n */\n @Prop({ mutable: true }) value?: string | number;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the textarea received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the textarea loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on textarea', this);\n }\n }\n\n componentDidLoad(): void {\n autosize(this.textarea);\n }\n\n /**\n * Sets focus on the textarea. Use this method instead of `textarea.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.textarea.focus(options);\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n (Optional)\n </span>\n )}\n </span>\n </label>\n )}\n <textarea\n ref={el => (this.textarea = el as HTMLTextAreaElement)}\n id={this.id}\n disabled={this.disabled}\n maxlength={this.maxLength}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n rows={this.rows}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n ></textarea>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.textarea.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n",":host {\n display: block;\n}\n","import { Component, h } from '@stencil/core';\nimport { NotificationsService, ToastOptions } from '../cat-notification/cat-notification';\n\n/**\n * Toast Component Demo\n *\n * @part toast - The content of the toast.\n */\n@Component({\n tag: 'cat-toast-demo',\n styleUrl: 'cat-toast-demo.scss'\n})\nexport class CatToastDemo {\n render() {\n return <cat-button onClick={this.onClick.bind(this)}>Show Notifications</cat-button>;\n }\n\n private onClick() {\n const infoOptions: Partial<ToastOptions> = {\n position: 'top-left'\n };\n const errorOptions: Partial<ToastOptions> = {\n position: 'top-center',\n type: 'error'\n };\n const errorOptions2: Partial<ToastOptions> = {\n position: 'bottom-left',\n type: 'error'\n };\n const successOptions3: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success'\n };\n const template = document.createElement('template');\n template.innerHTML = `<div style=\"padding: 7px 30px 7px 10px\">Custom HTML Node Content</div>`;\n const successOptions4: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success',\n content: template.content.firstChild as HTMLElement\n };\n\n NotificationsService.error('Default Click');\n NotificationsService.error('Long default title, long default title, long default title, long default title');\n NotificationsService.info('Info Click', 'Info message', infoOptions);\n NotificationsService.success('', ' ', successOptions4);\n NotificationsService.error('Error Title', ' ', errorOptions);\n NotificationsService.error(\n 'Error 2 Title',\n 'Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message,Very long message, Very long message, Very long message, Very long message, Very long message, ',\n errorOptions2\n );\n NotificationsService.success('Success Title - very long title without message', ' ', successOptions3);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n$toggle-width: 2rem;\n$toggle-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n flex: 0 1 auto;\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n @include cat-select(none);\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\ninput {\n position: absolute;\n margin: 0;\n width: $toggle-width;\n height: $toggle-height;\n opacity: 0;\n cursor: inherit;\n}\n\n.toggle {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: $toggle-width;\n height: $toggle-height;\n border-radius: 10rem;\n background-color: cat-token('color.ui.border.input');\n transition: background-color cat-token('time.transition.s') ease;\n pointer-events: none;\n\n :checked + & {\n background-color: cat-token('color.theme.primary.bg');\n }\n\n :focus-visible + & {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 1rem;\n height: 1rem;\n background: #fff;\n border-radius: 10rem;\n transform: translateX(calc(2px - 0.5rem));\n transition: transform cat-token('time.transition.s') linear;\n @include cat-elevation(1);\n\n :checked + & {\n transform: translateX(calc(-2px + 0.5rem));\n }\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Toggles are graphical interface switches that give user control over a\n * feature or option that can be turned on or off.\n *\n * @slot hint - Optional hint element to be displayed with the toggle.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part toggle - The toggle element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-toggle',\n styleUrls: ['cat-toggle.scss'],\n shadow: true\n})\nexport class CatToggle {\n private readonly id = `cat-toggle-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Checked state of the toggle.\n */\n @Prop() checked = false;\n\n /**\n * Disabled state of the toggle.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the toggle that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the toggle.\n */\n @Prop() required = false;\n\n /**\n * The value of the toggle\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * Optional hint text(s) to be displayed with the toggle.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the toggle.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the checked status of the toggle is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the toggle received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on toggle', this);\n }\n }\n\n /**\n * Sets focus on the toggle. Use this method instead of `toggle.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n >\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n class=\"form-check-input\"\n role=\"switch\"\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"toggle\" part=\"toggle\"></span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.input.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\nexport default isTouchDevice;\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n$-max-width: 16rem;\n$-box-shadow: rgb(0 0 0 / 8%) 0 1px 8px 0;\n\n:host {\n display: contents;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.tooltip {\n position: absolute;\n @include cat-body('s', 500);\n padding: 0.75rem;\n background-color: cat-token('color.ui.background.tooltip');\n border-radius: cat-border-radius('m');\n color: cat-token('color.ui.font.tooltip');\n transition: opacity cat-token('time.transition.m') linear, visibility cat-token('time.transition.m') linear;\n visibility: hidden;\n opacity: 0;\n box-shadow: $-box-shadow;\n z-index: $cat-tooltip-z-index;\n max-width: $-max-width;\n\n &-show {\n opacity: 1;\n visibility: visible;\n }\n}\n\n.tooltip-trigger {\n display: inline-block;\n\n &:focus {\n outline: none;\n }\n}\n","import { Component, h, Host, Listen, Prop } from '@stencil/core';\nimport { autoUpdate, computePosition, flip, offset, Placement } from '@floating-ui/dom';\nimport isTouchScreen from '../../utils/is-touch-screen';\nimport firstTabbable from '../../utils/first-tabbable';\nimport { FocusableElement } from 'tabbable';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-tooltip',\n styleUrl: 'cat-tooltip.scss',\n shadow: true\n})\nexport class CatTooltip {\n private static readonly OFFSET = 4;\n private readonly id = `cat-tooltip-${nextUniqueId++}`;\n private tooltip?: HTMLElement;\n private triggerElement?: HTMLElement;\n private trigger?: FocusableElement;\n private showTimeout?: number;\n private hideTimeout?: number;\n private touchTimeout?: number;\n\n /**\n * The content of the tooltip.\n */\n @Prop() content = '';\n\n /**\n * Specifies that the tooltip should be disabled. A disabled tooltip is unusable,\n * and invisible. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * The placement of the tooltip.\n */\n @Prop() placement: Placement = 'top';\n\n /**\n * The delay time for showing tooltip in ms.\n */\n @Prop() showDelay = 500;\n\n /**\n * The delay time for hiding tooltip in ms.\n */\n @Prop() hideDelay = 0;\n\n /**\n * The duration of tap to show the tooltip.\n */\n @Prop() longTouchDuration = 1000;\n\n @Listen('keydown')\n handleKeyDown({ key }: KeyboardEvent) {\n key === 'Escape' && this.hideListener();\n }\n\n componentDidLoad(): void {\n this.trigger = firstTabbable(this.triggerElement) || this.triggerElement;\n if (!this.isTabbable) {\n this.trigger?.setAttribute('tabindex', '0');\n }\n if (this.trigger && this.tooltip) {\n autoUpdate(this.trigger, this.tooltip, () => this.update());\n }\n\n if (isTouchScreen) {\n window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.addEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.addEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.addEventListener('focusin', this.showListener.bind(this));\n this.trigger?.addEventListener('focusout', this.hideListener.bind(this));\n this.trigger?.addEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.addEventListener('mouseleave', this.hideListener.bind(this));\n }\n }\n\n disconnectedCallback(): void {\n if (isTouchScreen) {\n window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.removeEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.removeEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.removeEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.removeEventListener('mouseleave', this.hideListener.bind(this));\n this.trigger?.removeEventListener('focusin', this.showListener.bind(this));\n this.trigger?.removeEventListener('focusout', this.hideListener.bind(this));\n }\n }\n\n render() {\n return (\n <Host>\n <div ref={el => (this.triggerElement = el)} aria-describedby={this.id} class=\"tooltip-trigger\">\n <slot />\n </div>\n {this.content && !this.disabled && (\n <div ref={el => (this.tooltip = el)} id={this.id} class=\"tooltip\">\n {this.content}\n </div>\n )}\n </Host>\n );\n }\n\n private get isTabbable() {\n return firstTabbable(this.trigger);\n }\n\n private update() {\n if (this.trigger && this.tooltip) {\n computePosition(this.trigger, this.tooltip, {\n placement: this.placement,\n middleware: [offset(CatTooltip.OFFSET), flip()]\n }).then(({ x, y }) => {\n if (this.tooltip) {\n Object.assign(this.tooltip.style, {\n left: `${Math.max(0, x)}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n\n private showListener() {\n window.clearTimeout(this.hideTimeout);\n this.showTimeout = window.setTimeout(() => {\n this.tooltip?.classList.add('tooltip-show');\n }, this.showDelay);\n }\n\n private hideListener() {\n window.clearTimeout(this.showTimeout);\n this.hideTimeout = window.setTimeout(() => {\n this.tooltip?.classList.remove('tooltip-show');\n }, this.hideDelay);\n }\n\n private touchStartListener(event: Event) {\n event.stopPropagation();\n this.touchTimeout = window.setTimeout(() => {\n this.tooltip?.classList.add('tooltip-show');\n }, this.longTouchDuration);\n }\n\n private touchEndListener() {\n if (this.touchTimeout) {\n window.clearTimeout(this.touchTimeout);\n }\n }\n\n private windowTouchStartListener() {\n this.tooltip?.classList.remove('tooltip-show');\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"cat-alert.cat-avatar.cat-badge.cat-button.cat-card.cat-checkbox.cat-icon.cat-input.cat-menu.cat-modal.cat-radio.cat-radio-group.cat-scrollable.cat-select.cat-skeleton.cat-spinner.cat-tab.cat-tabs.cat-textarea.cat-toast-demo.cat-toggle.cat-tooltip.entry.cjs.js","mappings":"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","names":["h","Host","log","nextUniqueId","CatIconRegistry","CatI18nRegistry","computePosition","focusTrap.createFocusTrap","Symbol_observable","Symbol_iterator","iterator","autosize","NotificationsService","isTouchScreen"],"sources":["./src/components/cat-alert/cat-alert.scss?tag=cat-alert&encapsulation=shadow","./src/components/cat-alert/cat-alert.tsx","./src/utils/load-img.ts","./src/components/cat-avatar/cat-avatar.scss?tag=cat-avatar&encapsulation=shadow","./src/components/cat-avatar/cat-avatar.tsx","./src/components/cat-badge/cat-badge.scss?tag=cat-badge&encapsulation=shadow","./src/components/cat-badge/cat-badge.tsx","./src/utils/breakpoints.ts","./src/utils/platform.ts","./src/utils/media-matcher.ts","./src/components/cat-button/cat-button.scss?tag=cat-button&encapsulation=shadow","./src/components/cat-button/cat-button.tsx","./src/components/cat-card/cat-card.scss?tag=cat-card&encapsulation=shadow","./src/components/cat-card/cat-card.tsx","./src/components/cat-form-hint/cat-form-hint.tsx","./src/components/cat-checkbox/cat-checkbox.scss?tag=cat-checkbox&encapsulation=shadow","./src/components/cat-checkbox/cat-checkbox.tsx","./src/components/cat-icon/cat-icon.scss?tag=cat-icon&encapsulation=shadow","./src/components/cat-icon/cat-icon.tsx","./src/components/cat-input/cat-input.scss?tag=cat-input&encapsulation=shadow","./src/components/cat-input/cat-input.tsx","../node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","./src/utils/first-tabbable.ts","./src/components/cat-menu/cat-menu.scss?tag=cat-menu&encapsulation=shadow","./src/components/cat-menu/cat-menu.tsx","./src/components/cat-modal/cat-modal.scss?tag=cat-modal&encapsulation=shadow","./src/components/cat-modal/cat-modal.tsx","./src/components/cat-radio/cat-radio.scss?tag=cat-radio&encapsulation=shadow","./src/components/cat-radio/cat-radio.tsx","./src/components/cat-radio-group/cat-radio-group.scss?tag=cat-radio-group&encapsulation=shadow","./src/components/cat-radio-group/cat-radio-group.tsx","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/args.js","../node_modules/tslib/tslib.es6.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./src/components/cat-scrollable/cat-scrollable.scss?tag=cat-scrollable&encapsulation=shadow","./src/components/cat-scrollable/cat-scrollable.tsx","../node_modules/choices.js/public/assets/scripts/choices.js","./src/components/cat-select/cat-select.scss?tag=cat-select&encapsulation=shadow","./src/components/cat-select/cat-select.tsx","./src/components/cat-skeleton/cat-skeleton.scss?tag=cat-skeleton&encapsulation=shadow","./src/components/cat-skeleton/cat-skeleton.tsx","./src/components/cat-spinner/cat-spinner.scss?tag=cat-spinner&encapsulation=shadow","./src/components/cat-spinner/cat-spinner.tsx","./src/components/cat-tab/cat-tab.scss?tag=cat-tab&encapsulation=shadow","./src/components/cat-tab/cat-tab.tsx","./src/components/cat-tabs/cat-tabs.scss?tag=cat-tabs&encapsulation=shadow","./src/components/cat-tabs/cat-tabs.tsx","../node_modules/autosize/dist/autosize.esm.js","./src/components/cat-textarea/cat-textarea.scss?tag=cat-textarea&encapsulation=shadow","./src/components/cat-textarea/cat-textarea.tsx","./src/components/cat-toast-demo/cat-toast-demo.scss?tag=cat-toast-demo","./src/components/cat-toast-demo/cat-toast-demo.tsx","./src/components/cat-toggle/cat-toggle.scss?tag=cat-toggle&encapsulation=shadow","./src/components/cat-toggle/cat-toggle.tsx","./src/utils/is-touch-screen.ts","./src/components/cat-tooltip/cat-tooltip.scss?tag=cat-tooltip&encapsulation=shadow","./src/components/cat-tooltip/cat-tooltip.tsx"],"sourcesContent":["@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host(:focus-visible) {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.alert {\n font: inherit;\n background-color: cat-token-wrap(var(--bg), $alpha: 0.1);\n border-radius: cat-border-radius('l');\n padding: 1.25rem;\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n}\n\n.content {\n align-self: center;\n}\n\n::slotted(:last-child) {\n margin-bottom: 0 !important;\n}\n\n// ----- theme\n\n@mixin theme($theme) {\n .alert-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n\n cat-icon {\n color: cat-token('color.ui.font.alert.#{$theme}');\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Informs user about important changes or conditions in the interface. Use this\n * component if you need to capture user’s attention in a prominent way.\n *\n * @part alert - The alert element.\n */\n@Component({\n tag: 'cat-alert',\n styleUrl: 'cat-alert.scss',\n shadow: true\n})\nexport class CatAlert {\n private readonly mapIcon: Map<string, string> = new Map([\n ['primary', 'star-circle-filled'],\n ['secondary', 'clock-filled'],\n ['success', 'check-circle-filled'],\n ['warning', 'danger-filled'],\n ['danger', 'cross-circle-filled']\n ]);\n\n /**\n * The color palette of the alert.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n /**\n * The name of an icon to be displayed in the alert.\n */\n @Prop() icon?: string;\n\n /**\n * Whether the icon of the alert is deactivated.\n */\n @Prop() noIcon = false;\n\n render() {\n return (\n <Host tabindex=\"0\" role={this.role}>\n <div\n part=\"alert\"\n class={{\n alert: true,\n [`alert-${this.color}`]: Boolean(this.color)\n }}\n >\n {!this.noIcon && <cat-icon size=\"l\" icon={this.icon ? this.icon : this.mapIcon.get(this.color)}></cat-icon>}\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n\n private get role() {\n switch (this.color) {\n case 'danger':\n case 'warning':\n return 'alert';\n default:\n return 'status';\n }\n }\n}\n","/**\n * Loads an image and wraps the result in a promise.\n *\n * @param src the image URL\n * @returns a promise\n */\nconst loadImg = (src: string): Promise<Event> => {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', resolve);\n image.addEventListener('error', reject);\n image.src = src;\n });\n};\n\nexport default loadImg;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$avatar-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n /**\n * @prop --cat-avatar-bg: The background color of the avatar.\n * @prop --cat-avatar-fill: The text color of the avatar.\n * @prop --cat-avatar-size: The size of the avatar.\n * @prop --cat-avatar-font-size: The font size of the avatar.\n */\n display: inline-block;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('m');\n text-decoration: inherit;\n color: var(--cat-avatar-fill, cat-token('color.ui.font.avatar'));\n background-color: var(--cat-avatar-bg, cat-token('color.ui.background.avatar'));\n background-size: cover;\n background-position: center;\n white-space: nowrap;\n overflow: hidden;\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.avatar-round {\n border-radius: 50%;\n}\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .avatar-#{$size} {\n width: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n height: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n line-height: var(--cat-avatar-size, map.get($avatar-sizes, $size));\n font-size: var(--cat-avatar-font-size, cat-body-font-size($fontSize));\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 's');\n@include size('m', 'm');\n@include size('l', 'l');\n@include size('xl', 'xl');\n","import { Component, h, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport loadImg from '../../utils/load-img';\n\n/**\n * Avatars are used to represent a person or object.\n */\n@Component({\n tag: 'cat-avatar',\n styleUrl: 'cat-avatar.scss',\n shadow: true\n})\nexport class CatAvatar {\n @State() backgroundImage?: string;\n\n /**\n * The size of the avatar.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round avatar edges.\n */\n @Prop() round = false;\n\n /**\n * The label of the avatar.\n */\n @Prop() label = '';\n\n /**\n * Custom initials for the avatar.\n */\n @Prop() initials?: string;\n\n /**\n * An optional avatar image.\n */\n @Prop() src?: string;\n\n /**\n * An icon to be used instead of the initials.\n */\n @Prop() icon?: string;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n @Watch('src')\n onSrcChanged(value?: string): void {\n if (value) {\n loadImg(value).then(\n () => (this.backgroundImage = `url(${value})`),\n () => (this.backgroundImage = undefined)\n );\n } else {\n this.backgroundImage = undefined;\n }\n }\n\n componentWillLoad(): void {\n this.onSrcChanged(this.src);\n }\n\n componentWillRender(): void {\n if (!this.label) {\n log.warn('[A11y] Missing ARIA label on avatar', this);\n }\n }\n\n render() {\n if (this.url) {\n return (\n <a href={this.url} target={this.urlTarget} style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </a>\n );\n } else {\n return (\n <span style={this.cssStyle} class={this.cssClass} aria-label={this.label}>\n {this.content}\n </span>\n );\n }\n }\n\n private get content() {\n return !this.backgroundImage\n ? [this.icon ? <cat-icon icon={this.icon} size={this.size}></cat-icon> : this.getInitials()]\n : [];\n }\n\n private get cssStyle() {\n return { 'background-image': this.backgroundImage };\n }\n\n private get cssClass() {\n return {\n avatar: true,\n 'avatar-round': this.round,\n [`avatar-${this.size}`]: Boolean(this.size)\n };\n }\n\n private getInitials(): string {\n return (\n this.initials ??\n (this.label ?? '')\n .split(' ')\n .map(n => n[0])\n .join('')\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$badge-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n display: inline-flex;\n max-width: 100%;\n vertical-align: baseline;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.badge {\n font: inherit;\n flex: 1 1 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: cat-border-radius('s');\n text-decoration: none;\n width: 100%;\n box-sizing: border-box;\n line-height: 1;\n white-space: nowrap;\n\n slot {\n display: inline-block;\n @include cat-ellipsis;\n }\n}\n\n// ----- round\n\n.badge-round {\n border-radius: 10rem;\n}\n\n// ----- theme\n\n.badge-filled {\n background-color: cat-token-wrap(var(--bg));\n color: cat-token-wrap(var(--fill));\n font-weight: 600;\n @include cat-font-smooth;\n}\n\n$-outline: inset 0 0 0 1px cat-token-wrap(var(--border), $alpha: 0.2);\n\n.badge-outlined {\n background-color: cat-token('color.ui.background.body');\n box-shadow: $-outline;\n color: cat-token-wrap(var(--text));\n}\n\n@mixin theme($theme) {\n .badge-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fill', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --border: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --border: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n\n// ----- size\n\n@mixin size($size, $fontSize) {\n .badge-#{$size} {\n height: cat-token('size.badge.height.#{$size}');\n min-width: map.get($badge-sizes, $size);\n font-size: cat-token('size.badge.font.#{$size}');\n padding: 0 cat-token('size.badge.padding.horizontal.#{$size}');\n }\n}\n\n@include size('xs', 'xs');\n@include size('s', 's');\n@include size('m', 'm');\n@include size('l', 'l');\n@include size('xl', 'xl');\n\n// ----- pulse\n\n$-pulse-0: 0 0 0 0 cat-token-wrap(var(--bg));\n$-pulse-70: transparent 0 0 0 0.5rem;\n$-pulse-100: transparent 0 0 0 0;\n\n.badge-pulse {\n &.badge-filled {\n animation: 1.5s ease 0s infinite normal none running pulse;\n }\n\n &.badge-outlined {\n animation: 1.5s ease 0s infinite normal none running pulse-outlined;\n }\n}\n\n@keyframes pulse {\n 0% {\n box-shadow: $-pulse-0;\n }\n\n 70% {\n box-shadow: $-pulse-70;\n }\n\n 100% {\n box-shadow: $-pulse-100;\n }\n}\n\n@keyframes pulse-outlined {\n 0% {\n box-shadow: $-pulse-0, $-outline;\n }\n\n 70% {\n box-shadow: $-pulse-70, $-outline;\n }\n\n 100% {\n box-shadow: $-pulse-100, $-outline;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Badges are used to inform users of the status of an object or of an action\n * that’s been taken.\n *\n * @part badge - The badge element.\n */\n@Component({\n tag: 'cat-badge',\n styleUrl: 'cat-badge.scss',\n shadow: true\n})\nexport class CatBadge {\n /**\n * The rendering style of the badge.\n */\n @Prop() variant: 'filled' | 'outlined' = 'filled';\n\n /**\n * The color palette of the badge.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'primary';\n\n /**\n * The size of the badge.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * Use round badge edges.\n */\n @Prop() round = false;\n\n /**\n * Draw attention to the badge with a subtle animation.\n */\n @Prop() pulse = false;\n\n render() {\n return (\n <span\n part=\"badge\"\n class={{\n badge: true,\n 'badge-round': this.round,\n 'badge-pulse': this.pulse,\n [`badge-${this.variant}`]: Boolean(this.variant),\n [`badge-${this.color}`]: Boolean(this.color),\n [`badge-${this.size}`]: Boolean(this.size)\n }}\n >\n <slot></slot>\n </span>\n );\n }\n}\n","const _breakpoints = ['xs', 's', 'm', 'l', 'xl'] as const;\n\nexport type Breakpoint = typeof _breakpoints[number];\n\nexport const Breakpoints: { [breakpoint in Breakpoint]: string } = {\n xs: '(max-width: 539.98px)',\n s: '(max-width: 767.98px)',\n m: '(max-width: 991.98px)',\n l: '(max-width: 1199.98px)',\n xl: '(max-width: 1399.98px)'\n};\n\nexport function isBreakpoint(value: unknown): value is Breakpoint {\n return typeof value === 'string' && _breakpoints.includes(value as Breakpoint);\n}\n","// https://github.com/angular/components/blob/master/src/cdk/platform/platform.ts\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\nexport class Platform {\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = /(msie|trident)/i.test(navigator.userAgent);\n\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !!((window as any).chrome || hasV8BreakIterator) && typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT;\n\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n WEBKIT: boolean = /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n FIREFOX: boolean = /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n SAFARI: boolean = /safari/i.test(navigator.userAgent) && this.WEBKIT;\n}\n","import log from 'loglevel';\nimport { Platform } from './platform';\n\n// https://github.com/angular/components/blob/master/src/cdk/layout/media-matcher.ts\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility: Set<string> = new Set<string>();\n\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode: HTMLStyleElement | undefined;\n\n/** A utility for calling matchMedia queries. */\nexport class MediaMatcher {\n private _platform;\n private _matchMedia: (query: string) => MediaQueryList;\n\n constructor() {\n this._platform = new Platform();\n this._matchMedia = window.matchMedia.bind(window);\n }\n\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query: string): MediaQueryList {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n }\n}\n\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query: string) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n } catch (e) {\n log.error(e);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$button-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n display: inline-block;\n max-width: 100%;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.cat-button {\n position: relative;\n font: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: cat-border-radius('m');\n text-decoration: none;\n width: 100%;\n box-sizing: border-box;\n cursor: pointer;\n transition: color cat-token('time.transition.s') linear, border-color cat-token('time.transition.s') linear,\n background-color cat-token('time.transition.s') linear, box-shadow cat-token('time.transition.s') linear;\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n// ----- content\n\n.cat-button-content {\n // flex: 1 1 auto;\n // text-align: center;\n\n .cat-button-ellipsed & {\n @include cat-ellipsis;\n }\n}\n\n// ----- disabled\n\n.cat-button-disabled {\n @include cat-disabled;\n}\n\n// ----- round\n\n.cat-button-round {\n border-radius: 10rem;\n}\n\n// ----- loading\n\n.cat-button-loading {\n cursor: default;\n\n cat-spinner {\n position: absolute;\n }\n\n > *:not(cat-spinner) {\n visibility: hidden;\n }\n}\n\n// ----- theme\n\n.cat-button-filled {\n background-color: cat-token-wrap(var(--bg));\n color: cat-token-wrap(var(--fill));\n font-weight: 600;\n @include cat-font-smooth;\n}\n\n.cat-button-outlined {\n background-color: cat-token('color.ui.background.body');\n box-shadow: inset 0 0 0 1px cat-token-wrap(var(--base), $alpha: 0.2);\n color: cat-token-wrap(var(--text));\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n background-color: cat-token-wrap(var(--base), $alpha: 0.05);\n }\n\n &:active:not(.cat-button-disabled):not(.cat-button-loading) {\n background-color: cat-token-wrap(var(--base), $alpha: 0.1);\n }\n}\n\n.cat-button-text {\n background-color: transparent;\n color: cat-token-wrap(var(--text));\n text-decoration: $cat-link-text-decoration;\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n text-decoration: $cat-button-text-decoration-hover;\n background-color: rgba(var(--base), 0.05);\n }\n}\n\n@mixin theme($theme) {\n .cat-button-#{$theme} {\n --bg: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fill', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n @if $theme == 'secondary' {\n --base: #{cat-token('color.theme.#{$theme}.bg', $wrap: false)};\n } @else {\n --base: #{cat-token('color.theme.#{$theme}.text', $wrap: false)};\n }\n\n &:hover:not(.cat-button-disabled):not(.cat-button-loading) {\n --bg: #{cat-token('color.theme.#{$theme}.bgHover', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fillHover', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.textHover', $wrap: false)};\n }\n\n &:active:not(.cat-button-disabled):not(.cat-button-loading) {\n --bg: #{cat-token('color.theme.#{$theme}.bgActive', $wrap: false)};\n --fill: #{cat-token('color.theme.#{$theme}.fillActive', $wrap: false)};\n --text: #{cat-token('color.theme.#{$theme}.textActive', $wrap: false)};\n }\n }\n}\n\n@include theme('primary');\n@include theme('secondary');\n@include theme('success');\n@include theme('warning');\n@include theme('danger');\n\n// ----- size\n\n@mixin size($size, $fontSize, $padding) {\n $-line-height: cat-body-line-height($fontSize);\n\n $-total-height: map.get($button-sizes, $size);\n $-padding-v: ($-total-height - $-line-height) * 0.5;\n $-padding-h: $padding;\n\n .cat-button-#{$size} {\n min-width: map.get($button-sizes, $size);\n padding: $-padding-v $-padding-h;\n\n @include cat-body($fontSize);\n\n .cat-button-prefix {\n margin-right: 0.25rem;\n }\n\n .cat-button-suffix {\n margin-left: 0.25rem;\n }\n\n // normalize icon size for line height\n @if $fontSize == 'm' {\n cat-icon {\n margin-top: -0.125rem;\n margin-bottom: -0.125rem;\n }\n }\n\n &.cat-button-icon {\n width: $-total-height;\n padding-left: 0;\n padding-right: 0;\n }\n\n :host-context(nav) & {\n padding-left: $cat-nav-padding-horizontal;\n padding-right: $cat-nav-padding-horizontal;\n }\n }\n\n :host(.cat-button-pull[size='#{$size}']) {\n margin: $-padding-v * -1 $-padding-h * -1;\n }\n\n :host(.cat-button-pull-h[size='#{$size}']) {\n margin-left: $-padding-h * -1;\n margin-right: $-padding-h * -1;\n }\n\n :host(.cat-button-pull-v[size='#{$size}']) {\n margin-top: $-padding-v * -1;\n margin-bottom: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-t[size='#{$size}']) {\n margin-top: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-l[size='#{$size}']) {\n margin-left: $-padding-h * -1;\n }\n\n :host(.cat-button-pull-b[size='#{$size}']) {\n margin-bottom: $-padding-v * -1;\n }\n\n :host(.cat-button-pull-r[size='#{$size}']) {\n margin-right: $-padding-h * -1;\n }\n}\n\n:host(.cat-button-pull:not([size])) {\n margin: -0.625rem -0.75rem;\n}\n\n:host(.cat-button-pull-h:not([size])) {\n margin-left: -0.75rem;\n margin-right: -0.75rem;\n}\n\n:host(.cat-button-pull-v:not([size])) {\n margin-top: -0.625rem;\n margin-bottom: -0.625rem;\n}\n\n:host(.cat-button-pull-t:not([size])) {\n margin-top: -0.625rem;\n}\n\n:host(.cat-button-pull-l:not([size])) {\n margin-left: -0.75rem;\n}\n\n:host(.cat-button-pull-b:not([size])) {\n margin-bottom: -0.625rem;\n}\n\n:host(.cat-button-pull-r:not([size])) {\n margin-right: -0.75rem;\n}\n\n@include size('xs', 's', 0.25rem);\n@include size('s', 'm', 0.5rem);\n@include size('m', 'm', 0.75rem);\n@include size('l', 'm', 1rem);\n@include size('xl', 'l', 1.25rem);\n\n// -- active state\n\n.cat-button-active::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 0.25rem;\n height: 100%;\n background: cat-token-wrap(var(--base));\n}\n\n// ----- context\n\n:host-context(nav) {\n width: 100%;\n\n .cat-button {\n box-shadow: none;\n border-radius: 0;\n justify-content: left;\n\n &:focus-visible {\n outline-offset: -2px;\n }\n }\n}\n\n:host(.cat-text-left) .cat-button {\n justify-content: left;\n}\n\n:host(.cat-text-right) .cat-button {\n justify-content: right;\n}\n","import { Component, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport log from 'loglevel';\nimport { Breakpoint, Breakpoints, isBreakpoint } from '../../utils/breakpoints';\nimport { MediaMatcher } from '../../utils/media-matcher';\n\n/**\n * Buttons are used for interface actions. Primary style should be used only\n * once per view for main call-to-action.\n *\n * @part button - The native anchor or button element.\n * @part content - The textual content of the button.\n * @part prefix - The prefix icon.\n * @part suffix - The suffix icon.\n */\n@Component({\n tag: 'cat-button',\n styleUrl: 'cat-button.scss',\n shadow: true\n})\nexport class CatButton {\n private button!: HTMLButtonElement | HTMLAnchorElement;\n private mediaMatcher?: MediaMatcher;\n private mediaQueryList?: MediaQueryList;\n private mediaQueryListener?: (event: MediaQueryListEvent) => void;\n\n @State() _iconOnly = true;\n\n /**\n * The rendering style of the button.\n */\n @Prop() variant: 'filled' | 'outlined' | 'text' = 'outlined';\n\n /**\n * The color palette of the button.\n */\n @Prop() color: 'primary' | 'secondary' | 'danger' | 'success' | 'warning' = 'secondary';\n\n /**\n * Show an active status indicator on the left side of the button.\n */\n @Prop() active = false;\n\n /**\n * The size of the button.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * The name of the button, which gets paired with the button's value when\n * submitted as part of a form. Corresponds with the native HTML name\n * attribute.\n */\n @Prop() name?: string;\n\n /**\n * The value of the button, which gets paired with the button's name when\n * submitted as part of a form. Corresponds with the native HTML value\n * attribute.\n */\n @Prop() value?: string;\n\n /**\n * Specifies that the button should be disabled. A disabled button is unusable\n * and un-clickable. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * Displays the button in a loading state with a spinner. Just like a disabled\n * button, an inactive button is unusable and un-clickable. However, it\n * retains the current focus state.\n */\n @Prop() loading = false;\n\n /**\n * Allows the button to submit a form.\n */\n @Prop() submit = false;\n\n /**\n * Disables ellipse overflowing button content.\n */\n @Prop() noEllipsis = false;\n\n /**\n * Use round button edges.\n */\n @Prop() round = false;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop() urlTarget?: '_blank' | '_self';\n\n /**\n * The name of an icon to be displayed in the button.\n */\n @Prop() icon?: string;\n\n /**\n * Hide the actual button content and only display the icon.\n */\n @Prop() iconOnly: boolean | Breakpoint = false;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * Adds a unique identifier for the button. Please note that with this\n * particular component this ID is added inside the web component. If you need\n * an ID on the HTML element, use the regular `id` attribute instead.\n */\n @Prop() buttonId?: string;\n\n /**\n * Adds accessible label for the button that is only shown for screen\n * readers. Typically, this label text replaces the visible text on the\n * button for users who use assistive technology.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n @Watch('iconOnly')\n onIconOnlyChanged(value: boolean | Breakpoint): void {\n // teardown\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.mediaQueryList?.removeEventListener('change', this.mediaQueryListener!);\n this.mediaQueryList = undefined;\n this.mediaQueryListener = undefined;\n // setup\n if (isBreakpoint(value)) {\n this.mediaMatcher ??= new MediaMatcher();\n this.mediaQueryList = this.mediaMatcher.matchMedia(Breakpoints[value]);\n this.mediaQueryListener = (event: MediaQueryListEvent) => (this._iconOnly = event.matches);\n this.mediaQueryList.addEventListener('change', this.mediaQueryListener);\n this._iconOnly = this.mediaQueryList.matches;\n } else {\n this._iconOnly = value;\n }\n }\n\n /**\n * Emitted when the button is clicked.\n */\n @Event() catClick!: EventEmitter<MouseEvent>;\n\n /**\n * Emitted when the button received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the button loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillLoad(): void {\n this.onIconOnlyChanged(this.iconOnly);\n }\n\n componentWillRender(): void {\n if (this.isIconButton && !this.a11yLabel) {\n log.warn('[A11y] Missing ARIA label on icon button', this);\n }\n }\n\n @Listen('click')\n haltDisabledEvents(event: Event): void {\n if (this.disabled || this.loading) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n /**\n * Sets focus on the button. Use this method instead of `button.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.button.focus(options);\n }\n\n render() {\n if (this.url) {\n return (\n <a\n ref={el => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? undefined : this.url}\n target={this.urlTarget}\n aria-disabled={this.disabled ? 'true' : null}\n aria-label={this.a11yLabel}\n id={this.buttonId}\n part=\"button\"\n class={{\n 'cat-button': true,\n 'cat-button-icon': this.isIconButton,\n 'cat-button-round': this.round,\n 'cat-button-loading': this.loading,\n 'cat-button-disabled': this.disabled,\n 'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,\n [`cat-button-${this.variant}`]: Boolean(this.variant),\n [`cat-button-${this.color}`]: Boolean(this.color),\n [`cat-button-${this.size}`]: Boolean(this.size)\n }}\n onClick={this.onClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n >\n {this.content}\n </a>\n );\n } else {\n return (\n <button\n ref={el => (this.button = el as HTMLButtonElement)}\n type={this.submit ? 'submit' : 'button'}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-disabled={this.disabled ? 'true' : null}\n aria-label={this.a11yLabel}\n id={this.buttonId}\n part=\"button\"\n class={{\n 'cat-button': true,\n 'cat-button-active': this.active,\n 'cat-button-icon': this.isIconButton,\n 'cat-button-round': this.round ?? this.isIconButton,\n 'cat-button-loading': this.loading,\n 'cat-button-disabled': this.disabled,\n 'cat-button-ellipsed': !this.noEllipsis && !this.isIconButton,\n [`cat-button-${this.variant}`]: Boolean(this.variant),\n [`cat-button-${this.color}`]: Boolean(this.color),\n [`cat-button-${this.size}`]: Boolean(this.size)\n }}\n onClick={this.onClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n >\n {this.content}\n </button>\n );\n }\n }\n\n private get iconSize(): 'xs' | 's' | 'm' | 'l' | 'xl' {\n switch (this.size) {\n case 'xs':\n return 's';\n default:\n return 'l';\n }\n }\n\n private get spinnerSize(): 'xs' | 's' | 'm' | 'l' | 'xl' {\n switch (this.size) {\n case 'xs':\n return 'xs';\n default:\n return 'm';\n }\n }\n\n private get isIconButton() {\n return Boolean(this.icon) && this._iconOnly;\n }\n\n private get hasPrefixIcon() {\n return Boolean(this.icon) && !this._iconOnly && !this.iconRight;\n }\n\n private get hasSuffixIcon() {\n return Boolean(this.icon) && !this._iconOnly && this.iconRight;\n }\n\n private get content() {\n return [\n this.hasPrefixIcon ? (\n <cat-icon icon={this.icon} size={this.iconSize} class=\"cat-button-prefix\" part=\"prefix\"></cat-icon>\n ) : null,\n this.isIconButton ? (\n <cat-icon icon={this.icon} size={this.iconSize}></cat-icon>\n ) : (\n <span class=\"cat-button-content\" part=\"content\">\n <slot></slot>\n </span>\n ),\n this.hasSuffixIcon ? (\n <cat-icon icon={this.icon} size={this.iconSize} class=\"cat-button-suffix\" part=\"suffix\"></cat-icon>\n ) : null,\n this.loading ? <cat-spinner size={this.spinnerSize}></cat-spinner> : null\n ];\n }\n\n private onClick(event: MouseEvent) {\n this.catClick.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n$-padding: 1.25rem;\n\n:host {\n display: block;\n margin-bottom: $cat-body-margin-bottom;\n border-radius: cat-border-radius('l');\n background-color: cat-token('color.ui.background.body');\n padding: $-padding;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n::slotted(nav) {\n margin: #{$cat-body-margin-bottom * 0.5 - $-padding} #{-$-padding} !important;\n}\n\n::slotted(:last-child) {\n margin-bottom: 0;\n}\n\n// --- pull out helper classes\n\n::slotted(.cat-card-pull) {\n margin: -$-padding !important;\n width: calc(100% + #{2 * $-padding}) !important;\n height: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-h) {\n margin-left: -$-padding !important;\n margin-right: -$-padding !important;\n width: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-v) {\n margin-top: -$-padding !important;\n margin-bottom: -$-padding !important;\n height: calc(100% + #{2 * $-padding}) !important;\n}\n\n::slotted(.cat-card-pull-t) {\n margin-top: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-l) {\n margin-left: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-r) {\n margin-right: -$-padding !important;\n}\n\n::slotted(.cat-card-pull-b) {\n margin-bottom: -$-padding !important;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * Cards are surfaces that display content and actions on a single topic. They\n * should be easy to scan for relevant and actionable information.\n */\n@Component({\n tag: 'cat-card',\n styleUrl: 'cat-card.scss',\n shadow: true\n})\nexport class CatCard {\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","import { h, FunctionalComponent } from '@stencil/core';\n\n/**\n * Properties of CatFormHint.\n *\n * @property hint - Optional hint text(s) of the form field.\n * @property slottedHint - Optional hint element of the form field.\n */\ninterface CatFormHintProps {\n hint?: string | string[];\n slottedHint?: HTMLSlotElement;\n}\n\n/**\n * CatFormHint is a functional component that represents the hint area of form elements.\n *\n * @param props - {@link CatFormHintProps}\n * @return a JSX.Element\n */\nexport const CatFormHint: FunctionalComponent<CatFormHintProps> = props => {\n const { hint, slottedHint } = props;\n return (\n <div class=\"hint-section\">\n {[\n hint &&\n (Array.isArray(hint) ? hint.map(item => <p class=\"input-hint\">{item}</p>) : <p class=\"input-hint\">{hint}</p>),\n slottedHint\n ]}\n </div>\n );\n};\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n$checkbox-width: 1.25rem;\n$checkbox-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n flex: 0 1 auto;\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n @include cat-select(none);\n cursor: pointer;\n position: relative;\n}\n\n.label-left {\n flex-direction: row-reverse;\n\n input {\n right: 1px;\n left: unset;\n }\n}\n\ninput {\n position: absolute;\n width: $checkbox-width;\n height: $checkbox-height;\n margin: 0;\n opacity: 0;\n cursor: inherit;\n left: 1px;\n top: 0.5px;\n}\n\n.box {\n flex: 0 0 auto;\n display: flex;\n position: relative;\n height: $checkbox-height;\n width: $checkbox-width;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.input');\n border-radius: cat-border-radius(s);\n transition: background-color cat-token('time.transition.s') ease, border-color cat-token('time.transition.s') ease;\n pointer-events: none;\n\n svg {\n fill: none;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all cat-token('time.transition.s') ease;\n width: 70%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.99);\n }\n\n :checked + & {\n background-color: cat-token('color.theme.primary.bg');\n border-color: cat-token('color.theme.primary.bg');\n stroke: cat-token('color.theme.primary.fill');\n\n .check {\n stroke-dashoffset: 0;\n }\n }\n\n :indeterminate + & {\n background-color: cat-token('color.theme.primary.bg');\n border-color: cat-token('color.theme.primary.bg');\n stroke: cat-token('color.theme.primary.fill');\n\n .dash {\n stroke-dashoffset: 0;\n }\n }\n\n :focus-visible + & {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Checkboxes are used to let a user choose one or more options from a limited\n * number of options.\n *\n * @slot hint - Optional hint element to be displayed with the checkbox.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part checkbox - The checkbox element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-checkbox',\n styleUrls: ['cat-checkbox.scss'],\n shadow: true\n})\nexport class CatCheckbox {\n private readonly id = `cat-checkbox-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Checked state of the checkbox\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Disabled state of the checkbox\n */\n @Prop() disabled = false;\n\n /**\n * Indeterminate state of the checkbox\n */\n @Prop() indeterminate = false;\n\n /**\n * Label of the checkbox which is presented in the UI\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the checkbox\n */\n @Prop() required = false;\n\n /**\n * The value of the checkbox\n */\n @Prop({ mutable: true }) value?: string | boolean;\n\n /**\n * Optional hint text(s) to be displayed with the checkbox.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the checkbox.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the checked status of the checkbox is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the checkbox received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the checkbox loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentDidLoad() {\n if (this.input && this.indeterminate) {\n this.input.indeterminate = true;\n }\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on checkbox', this);\n }\n }\n\n /**\n * Sets focus on the checkbox. Use this method instead of `checkbox.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n >\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value !== undefined ? String(this.value) : this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"box\" aria-hidden=\"true\" part=\"checkbox\">\n <svg class=\"check\" viewBox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n <svg class=\"dash\" viewBox=\"0 0 12 10\">\n <polyline points=\"1.5 5 10.5 5\"></polyline>\n </svg>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.checked = this.input.checked;\n\n if (!this.value || typeof this.value === 'boolean') {\n this.value = this.checked;\n }\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$icon-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n /**\n * @prop --cat-icon-ratio: The aspect ratio of the avatar.\n */\n display: inline-flex;\n vertical-align: middle;\n @include cat-select(none);\n}\n\n:host([hidden]) {\n display: none;\n}\n\nspan {\n display: inline-flex;\n}\n\nsvg {\n fill: currentColor;\n stroke: none;\n transform-origin: center center;\n height: 1em;\n width: calc(var(--cat-icon-ratio, 1) * 1em);\n}\n\n// ----- size\n\n@mixin size($size) {\n .icon-#{$size} svg {\n font-size: map.get($icon-sizes, $size);\n }\n}\n\n@include size('xs');\n@include size('s');\n@include size('m');\n@include size('l');\n@include size('xl');\n","import { Component, h, Prop } from '@stencil/core';\nimport { CatIconRegistry } from './cat-icon-registry';\n\n/**\n * Icons are used to provide additional meaning or in places where text label\n * doesn't fit.\n *\n * @part icon - The span element wrapping the SVG icon.\n */\n@Component({\n tag: 'cat-icon',\n styleUrl: 'cat-icon.scss',\n shadow: true\n})\nexport class CatIcon {\n private readonly iconRegistry = CatIconRegistry.getInstance();\n\n /**\n * The name of the icon.\n */\n @Prop() icon = '';\n\n /**\n * The size of the icon.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'inline' = 'm';\n\n /**\n * Adds accessible label for the icon that is only shown for screen\n * readers. The `aria-hidden` attribute will be set if no label is present.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n render() {\n return (\n <span\n innerHTML={this.iconRegistry.getIcon(this.icon)}\n aria-label={this.a11yLabel}\n aria-hidden={this.a11yLabel ? null : 'true'}\n part=\"icon\"\n class={{\n icon: true,\n [`icon-${this.size}`]: this.size !== 'inline'\n }}\n ></span>\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.input-wrapper {\n display: flex;\n align-items: stretch;\n gap: 0.75rem;\n padding: 0 0.75rem;\n height: 2.5rem;\n overflow: hidden;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n box-shadow: 0 0 0 1px cat-token('color.ui.border.input');\n transition: box-shadow cat-token('time.transition.s') linear;\n\n &.input-round {\n border-radius: 10rem;\n }\n\n &.input-disabled {\n background: cat-token('color.ui.background.inputDisabled');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &:not(.input-disabled) {\n &:hover {\n box-shadow: 0 0 0 2px cat-token('color.ui.border.input');\n }\n\n &:focus-within {\n outline: 2px solid cat-token('color.ui.border.focus');\n }\n }\n}\n\nlabel {\n align-self: flex-start;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\n.text-prefix,\n.text-suffix {\n display: inline-flex;\n align-items: center;\n @include cat-select(none);\n}\n\n.text-prefix {\n border-right: 1px solid cat-token('color.ui.border.input');\n padding-right: 0.75rem;\n}\n\n.text-suffix {\n border-left: 1px solid cat-token('color.ui.border.input');\n padding-left: 0.75rem;\n}\n\n.icon-prefix,\n.icon-suffix {\n align-self: center;\n}\n\n.input-inner-wrapper {\n display: flex;\n position: relative;\n flex: 1 1 auto;\n}\n\ninput {\n font: inherit;\n margin: 0;\n padding: 0;\n width: 100%;\n min-width: 0;\n border: none;\n outline: none;\n background: none;\n\n .input-disabled & {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n }\n\n &.has-clearable {\n padding-right: 1.5rem;\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n}\n\n.clearable {\n position: absolute;\n top: calc(50% - 1rem);\n right: -0.5rem;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\nimport { InputType } from './input-type';\n\nlet nextUniqueId = 0;\n\n/**\n * Inputs are used to allow users to provide text input when the expected input\n * is short. As well as plain text, Input supports various types of text,\n * including passwords and numbers.\n *\n * @slot hint - Optional hint element to be displayed with the input.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n * @part prefix - The text prefix.\n * @part suffix - The text suffix.\n */\n@Component({\n tag: 'cat-input',\n styleUrl: 'cat-input.scss',\n shadow: true\n})\nexport class CatInput {\n private readonly i18n = CatI18nRegistry.getInstance();\n private readonly id = `cat-input-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Hint for form autofill feature.\n */\n @Prop() autoComplete?: string;\n\n /**\n * Whether the input should show a clear button.\n */\n @Prop() clearable = false;\n\n /**\n * Whether the input is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text(s) to be displayed with the input.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The name of an icon to be displayed in the input.\n */\n @Prop() icon?: string;\n\n /**\n * Display the icon on the right.\n */\n @Prop() iconRight = false;\n\n /**\n * The label for the input.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum value for date, time and numeric values.\n */\n @Prop() max?: number | string;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum value for date, time and numeric values.\n */\n @Prop() min?: number | string;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name = '';\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * A textual prefix to be displayed in the input.\n */\n @Prop() textPrefix?: string;\n\n /**\n * A textual suffix to be displayed in the input.\n */\n @Prop() textSuffix?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Use round input edges.\n */\n @Prop() round = false;\n\n /**\n * Type of form control.\n */\n @Prop() type: InputType = 'text';\n\n /**\n * The value of the control.\n */\n @Prop({ mutable: true }) value?: string | number;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the input received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on input', this);\n }\n }\n\n /**\n * Sets focus on the input. Use this method instead of `input.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n /**\n * Clear the input.\n */\n @Method()\n async clear(): Promise<void> {\n this.value = '';\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n ({this.i18n.t('input.optional')})\n </span>\n )}\n </span>\n </label>\n )}\n <div\n class={{\n 'input-wrapper': true,\n 'input-round': this.round,\n 'input-disabled': this.disabled\n }}\n onClick={() => this.input.focus()}\n >\n {this.textPrefix && (\n <span class=\"text-prefix\" part=\"prefix\">\n {this.textPrefix}\n </span>\n )}\n {this.icon && !this.iconRight && <cat-icon icon={this.icon} class=\"icon-prefix\" size=\"l\"></cat-icon>}\n <div class=\"input-inner-wrapper\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n class={{\n 'has-clearable': this.clearable && !this.disabled\n }}\n autocomplete={this.autoComplete}\n disabled={this.disabled}\n max={this.max}\n maxlength={this.maxLength}\n min={this.min}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n type={this.type}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n ></input>\n {this.clearable && !this.disabled && this.value && (\n <cat-button\n class=\"clearable\"\n icon=\"cross-circle-outlined\"\n icon-only=\"true\"\n size=\"s\"\n variant=\"text\"\n a11y-label={this.i18n.t('input.clear')}\n onClick={this.clear.bind(this)}\n ></cat-button>\n )}\n </div>\n {this.icon && this.iconRight && <cat-icon icon={this.icon} class=\"icon-suffix\" size=\"l\"></cat-icon>}\n {this.textSuffix && (\n <span class=\"text-suffix\" part=\"suffix\">\n {this.textSuffix}\n </span>\n )}\n </div>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.input.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","function getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: { ...middlewareData[name],\n ...data\n }\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(middlewareArguments, options) {\n var _await$platform$isEle;\n\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects[elementContext]); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\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}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Positions an inner element of the floating element such that it is centered\n * to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\n\n/**\n * Automatically chooses the `placement` which has the most space available.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP = (_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.index) != null ? _middlewareData$autoP : 0;\n const currentPlacement = placements[currentIndex];\n\n if (currentPlacement == null) {\n return {};\n }\n\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP3 = (_middlewareData$autoP4 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP4.overflows) != null ? _middlewareData$autoP3 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n const resetPlacement = placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement;\n\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\n/**\n * Changes the placement of the floating element to one that will fit if the\n * initially specified `placement` does not.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = side === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip2;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0].placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n\n return {};\n }\n\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (_temp) {\n let {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = _temp === void 0 ? {} : _temp;\n return {\n name: 'hide',\n\n async fn(middlewareArguments) {\n const {\n rects\n } = middlewareArguments;\n\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n\n case 'escaped':\n {\n const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n\n default:\n {\n return {};\n }\n }\n }\n\n };\n};\n\nfunction convertValueToCoords(placement, rects, value, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value; // eslint-disable-next-line prefer-const\n\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n/**\n * Displaces the floating element from its reference element.\n * @see https://floating-ui.com/docs/offset\n */\n\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const diffCoords = convertValueToCoords(placement, rects, value, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Shifts the floating element in order to keep it in view when it will overflow\n * a clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({ ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\n/**\n * Provides data to change the size of the floating element. For instance,\n * prevent it from overflowing its clipping boundary or match the width of the\n * reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n const {\n placement,\n rects,\n platform,\n elements\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n let heightSide;\n let widthSide;\n\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n const prevDimensions = await platform.getDimensions(elements.floating);\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n\n if (prevDimensions.width !== nextDimensions.width || prevDimensions.height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) != null ? _await$platform$getCl : [];\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // 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 return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\nfunction isLayoutViewport() {\n // Not Safari\n return !/^((?!chrome|android).)*safari/i.test(navigator.userAgent); // Feature detection for this fails in various ways\n // • Always-visible scrollbar or not\n // • Width of <html>, etc.\n // const vV = win.visualViewport;\n // return vV ? Math.abs(win.innerWidth / vV.scale - vV.width) < 0.5 : true;\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction 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 const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let 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 const win = isElement(element) ? getWindow(element) : window;\n const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n const x = (clientRect.left + (addVisualOffsets ? win.visualViewport.offsetLeft : 0)) / scaleX;\n const y = (clientRect.top + (addVisualOffsets ? win.visualViewport.offsetTop : 0)) / scaleY;\n const width = clientRect.width / scaleX;\n const height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent), strategy === 'fixed');\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.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}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\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\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let 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' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n\n const rect = getBoundingClientRect(element);\n return {\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n\n if (['html', 'body', '#document'].includes(getNodeName(parentNode))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n const target = isBody ? [win].concat(win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []) : scrollableAncestor;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getOverflowAncestors(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : 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 let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, false, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingAncestor(element, clippingParent, strategy) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element, strategy));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent, strategy);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping ancestor\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingAncestors(element) {\n const clippingAncestors = getOverflowAncestors(element);\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array<Element>\n\n\n return clippingAncestors.filter(clippingAncestors => isElement(clippingAncestors) && contains(clippingAncestors, clipperElement) && getNodeName(clippingAncestors) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors\n\n\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const mainClippingAncestors = boundary === 'clippingAncestors' ? getClippingAncestors(element) : [].concat(boundary);\n const clippingAncestors = [...mainClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, 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 }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize: _ancestorResize = true,\n elementResize: _elementResize = true,\n animationFrame = false\n } = options;\n let cleanedUp = false;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestorResize = _ancestorResize && !animationFrame;\n const elementResize = _elementResize && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n\n if (elementResize) {\n observer = new ResizeObserver(update);\n isElement(reference) && observer.observe(reference);\n observer.observe(floating);\n }\n\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n\n if (animationFrame) {\n frameLoop();\n }\n\n function frameLoop() {\n if (cleanedUp) {\n return;\n }\n\n const nextRefRect = getBoundingClientRect(reference);\n\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n\n return () => {\n var _observer;\n\n cleanedUp = true;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\nexport { autoUpdate, computePosition, getOverflowAncestors };\n","/*!\n* tabbable 5.3.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n if (shadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // didn't find it sitting in an undisclosed shadow (or shadows are disabled) so now we\n // can just test to see if it would normally be visible or not\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n\n\n return !node.getClientRects().length;\n } else if (displayCheck === 'non-zero-area') {\n return isZeroArea(node);\n }\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 6.8.1\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, isFocusable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\n\n\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\n\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n\n\n var findContainerIndex = function findContainerIndex(element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n optionValue = optionValue.apply(void 0, params);\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(deactivateOptions, 'onDeactivate');\n var onPostDeactivate = getOption(deactivateOptions, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(deactivateOptions, 'checkCanReturnFocus');\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus = getOption(deactivateOptions, 'returnFocus', 'returnFocusOnDeactivate');\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import { FocusableElement, tabbable } from 'tabbable';\n\ntype Container = Element | FocusableElement | null;\n\nconst firstTabbable = (container?: Container): FocusableElement | undefined => {\n return (container ? tabbable(container, { includeContainer: true, getShadowRoot: true }) : []).shift();\n};\n\nexport default firstTabbable;\n","@import 'variables';\n@import 'mixins';\n\n$-min-width: 8rem;\n$-max-width: 16rem;\n$-min-height: 2rem;\n$-max-height: calc(100vh - 48px);\n\n:host {\n display: contents;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.content {\n padding-top: $cat-body-margin-bottom * 0.5;\n padding-bottom: $cat-body-margin-bottom * 0.5;\n position: absolute;\n background: cat-token('color.ui.background.body');\n display: none;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n min-width: $-min-width;\n max-width: $-max-width;\n min-height: $-min-height;\n max-height: $-max-height;\n @include cat-elevation(1);\n border-radius: cat-border-radius('m');\n z-index: $cat-menu-z-index;\n}\n","import { autoUpdate, computePosition, flip, offset, Placement } from '@floating-ui/dom';\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\nimport * as focusTrap from 'focus-trap';\nimport { FocusableElement, tabbable } from 'tabbable';\nimport firstTabbable from '../../utils/first-tabbable';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-menu',\n styleUrl: 'cat-menu.scss',\n shadow: true\n})\nexport class CatMenu {\n private static readonly OFFSET = 4;\n private readonly id = nextUniqueId++;\n private triggerSlot?: Element;\n private trigger?: FocusableElement;\n private content?: HTMLElement;\n private trap?: focusTrap.FocusTrap;\n private keyListener?: (event: KeyboardEvent) => void;\n\n /**\n * The placement of the menu.\n */\n @Prop() placement: Placement = 'bottom-start';\n\n /**\n * Emitted when the menu is opened.\n */\n @Event() catOpen!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the menu is closed.\n */\n @Event() catClose!: EventEmitter<FocusEvent>;\n\n @Listen('catClick')\n clickHandler(event: CustomEvent<MouseEvent>) {\n // hide menu on button click\n if (this.content && event.composedPath().includes(this.content)) {\n this.trap?.deactivate();\n this.hide();\n }\n }\n\n componentDidLoad(): void {\n this.trigger = firstTabbable(this.triggerSlot);\n this.trigger?.setAttribute('aria-haspopup', 'true');\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.trigger?.setAttribute('aria-controls', this.contentId);\n this.content?.setAttribute('id', this.contentId);\n if (this.trigger && this.content) {\n this.trigger?.addEventListener('click', () => this.show());\n autoUpdate(this.trigger, this.content, () => this.update());\n }\n\n this.keyListener = event => {\n if (this.content && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n const targetElements = tabbable(this.content, { includeContainer: false, getShadowRoot: true });\n const activeElement = firstTabbable(document.activeElement);\n const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;\n const activeOff = event.key === 'ArrowDown' ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].focus();\n event.preventDefault();\n }\n };\n document.addEventListener('keydown', this.keyListener);\n }\n\n disconnectedCallback(): void {\n if (this.keyListener) {\n document.removeEventListener('keydown', this.keyListener);\n }\n }\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\" ref={el => (this.triggerSlot = el)}></slot>\n <div class=\"content\" ref={el => (this.content = el)}>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n\n private get contentId() {\n return `cat-menu-${this.id}`;\n }\n\n private show() {\n if (this.content) {\n this.content.style.display = 'block';\n this.trigger?.setAttribute('aria-expanded', 'true');\n this.catOpen.emit();\n this.trap = this.trap\n ? this.trap.updateContainerElements(this.content)\n : focusTrap.createFocusTrap(this.content, {\n tabbableOptions: {\n getShadowRoot: true\n },\n allowOutsideClick: true,\n clickOutsideDeactivates: event => !this.content || !event.composedPath().includes(this.content),\n onPostDeactivate: () => this.hide()\n });\n this.trap.activate();\n }\n }\n\n private hide() {\n if (this.content) {\n this.content.style.display = '';\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.catClose.emit();\n }\n }\n\n private update() {\n if (this.trigger && this.content) {\n computePosition(this.trigger, this.content, {\n placement: this.placement,\n middleware: [offset(CatMenu.OFFSET), flip()]\n }).then(({ x, y }) => {\n if (this.content) {\n Object.assign(this.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.modal-wrapper {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgb(cat-token('color.ui.background.modal.wrapper'), 60%);\n z-index: 2;\n display: flex;\n\n &[aria-hidden='true'] {\n display: none;\n }\n}\n\n.modal {\n margin: auto;\n z-index: 2;\n position: relative;\n background-color: cat-token('color.ui.background.modal.body');\n border-radius: cat-border-radius('l');\n max-width: 100%;\n padding: 32px;\n}\n\n.modal-header {\n display: flex;\n justify-content: end;\n align-self: stretch;\n\n .close-button::part(button) {\n box-shadow: unset;\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n margin: 16px 0;\n}\n\n@mixin size($size) {\n .modal-#{$size} {\n width: cat-token('size.modal.#{$size}');\n }\n}\n\n@include size('s');\n@include size('m');\n@include size('l');\n","import { Component, Element, h, Method, Prop, State } from '@stencil/core';\nimport * as focusTrap from 'focus-trap';\nimport firstTabbable from '../../utils/first-tabbable';\n\n@Component({\n tag: 'cat-modal',\n styleUrl: 'cat-modal.scss',\n shadow: true\n})\nexport class CatModal {\n private trap?: focusTrap.FocusTrap;\n private modal?: HTMLElement;\n private closeButton?: HTMLElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() isVisible = false;\n\n /**\n * The size of the modal.\n */\n @Prop() size: 's' | 'm' | 'l' = 'm';\n\n componentDidLoad(): void {\n if (this.modal) {\n this.trap = focusTrap.createFocusTrap(this.modal, {\n tabbableOptions: {\n getShadowRoot: true\n },\n initialFocus: firstTabbable(this.closeButton),\n allowOutsideClick: true,\n clickOutsideDeactivates: event => !this.modal || !event.composedPath().includes(this.modal),\n onDeactivate: () => (this.isVisible = false),\n setReturnFocus: previousActiveElement =>\n previousActiveElement instanceof HTMLElement\n ? (firstTabbable(previousActiveElement) as HTMLElement)\n : previousActiveElement\n });\n }\n }\n\n componentDidUpdate(): void {\n if (this.isVisible) this.trap?.activate();\n this.updateAccessibility(this.hostElement);\n }\n\n /**\n * Shows the modal.\n */\n @Method()\n async show(): Promise<void> {\n this.isVisible = true;\n }\n\n render() {\n return (\n <div aria-modal role=\"dialog\" aria-hidden={!this.isVisible ? 'true' : 'false'} class=\"modal-wrapper\">\n <div ref={el => (this.modal = el)} class={{ modal: true, [`modal-${this.size}`]: Boolean(this.size) }}>\n <div class=\"modal-header\">\n <cat-button\n ref={el => (this.closeButton = el)}\n icon=\"cross-outlined\"\n class=\"close-button\"\n size=\"s\"\n iconOnly\n a11yLabel=\"close\"\n onCatClick={this.onClick.bind(this)}\n ></cat-button>\n </div>\n <div class=\"modal-content\">\n <slot></slot>\n </div>\n </div>\n </div>\n );\n }\n\n private onClick() {\n this.trap?.deactivate();\n }\n\n private updateAccessibility(element: HTMLElement) {\n if (element.parentElement) {\n Array.from(element.parentElement.children).forEach(elementSibling => {\n if (elementSibling !== element) {\n this.isVisible\n ? elementSibling.setAttribute('aria-hidden', 'true')\n : elementSibling.removeAttribute('aria-hidden');\n }\n });\n\n if (element.parentElement !== document.body) {\n this.updateAccessibility(element.parentElement);\n }\n }\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\n.radio {\n display: flex;\n position: relative;\n align-self: flex-start;\n}\n\n.circle {\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n background-color: cat-token('color.theme.primary.bg');\n border-radius: 10rem;\n top: calc(50% - 0.375rem);\n left: calc(50% - 0.375rem);\n visibility: hidden;\n pointer-events: none;\n}\n\ninput {\n margin: 0;\n width: 1.25rem;\n height: 1.25rem;\n appearance: none;\n background-color: cat-token('color.ui.background.input');\n border: 1px solid cat-token('color.ui.border.input');\n border-radius: 10rem;\n cursor: inherit;\n\n &:checked {\n border-color: cat-token('color.theme.primary.bg');\n\n + .circle {\n visibility: visible;\n }\n }\n\n &:focus-visible {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n\n input {\n background-color: cat-token('color.ui.background.inputDisabled');\n\n &:checked {\n border-color: cat-token('color.ui.border.input');\n }\n }\n\n .circle {\n background-color: cat-token('color.ui.border.input');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Radio Buttons are graphical interface elements that allow user to choose\n * only one of a predefined set of mutually exclusive options.\n *\n * @slot hint - Optional hint element to be displayed with the radio.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-radio',\n styleUrl: 'cat-radio.scss',\n shadow: true\n})\nexport class CatRadio {\n private readonly id = `cat-radio-${++nextUniqueId}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Whether this radio is checked.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Whether this radio is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the radio that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the radio component.\n */\n @Prop() name?: string;\n\n /**\n * Whether the radio is required.\n */\n @Prop() required = false;\n\n /**\n * The value of the radio component.\n */\n @Prop() value?: string;\n\n /**\n * Optional hint text(s) to be displayed with the radio.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the radio component.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the radio is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the radio received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on radio', this);\n }\n }\n\n /**\n * Sets focus on the radio. Use this method instead of `radio.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n >\n <span class=\"radio\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"circle\"></span>\n </span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onChange(event: Event) {\n this.checked = true;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * A group of radio buttons.\n */\n@Component({\n tag: 'cat-radio-group',\n styleUrl: 'cat-radio-group.scss',\n shadow: true\n})\nexport class CatRadioGroup {\n private catRadioGroup: HTMLCatRadioElement[] = [];\n\n @Element() hostElement!: HTMLElement;\n\n /**\n * The name of the radio group component.\n */\n @Prop() name?: string;\n\n /**\n * The value of the radio group.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * Whether this radio group is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Adds an accessible label for the radio group that\n * it is only shown in assistive technologies, like screen readers.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n /**\n * Whether the label of the radios should appear to the left of them.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the radio group loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n @Watch('name')\n onNameChanged(newName?: string) {\n this.catRadioGroup.forEach(catRadio => {\n catRadio.name = newName;\n });\n }\n\n @Watch('value')\n onValueChanged(newValue?: string) {\n this.catRadioGroup.forEach(catRadio => {\n catRadio.checked = catRadio.value === newValue;\n });\n this.updateTabIndex();\n }\n\n @Watch('disabled')\n onDisabledChanged(disabled: boolean) {\n this.catRadioGroup.forEach(catRadio => {\n if (disabled) {\n catRadio.disabled = disabled;\n }\n });\n }\n\n @Watch('labelLeft')\n onLabelLeftChanged(labelLeft: boolean) {\n this.catRadioGroup.forEach(catRadio => {\n if (labelLeft) {\n catRadio.labelLeft = labelLeft;\n }\n });\n }\n\n componentDidLoad(): void {\n this.catRadioGroup = Array.from(this.hostElement.querySelectorAll(`cat-radio`));\n this.onNameChanged(this.name);\n this.onValueChanged(this.value);\n this.onDisabledChanged(this.disabled);\n this.onLabelLeftChanged(this.labelLeft);\n }\n\n @Listen('keydown')\n onKeydown(event: KeyboardEvent): void {\n if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key) && this.catRadioGroup.length) {\n const targetElements = this.catRadioGroup.filter(catRadio => !catRadio.disabled);\n const activeElement = document.activeElement as HTMLCatRadioElement;\n const activeIdx = this.catRadioGroup.findIndex(catRadio => catRadio === activeElement);\n const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].setFocus();\n targetElements[targetIdx].shadowRoot?.querySelector('input')?.click();\n this.updateTabIndex();\n event.preventDefault();\n }\n }\n\n @Listen('input')\n onInput(event: MouseEvent): void {\n const catRadioElement = this.catRadioGroup.find(value => value === event.target);\n this.value = catRadioElement?.value;\n this.catChange.emit();\n }\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent): void {\n if (!event.relatedTarget) {\n this.catBlur.emit(event);\n }\n }\n\n render() {\n return (\n <div role=\"radiogroup\" aria-label={this.a11yLabel}>\n <slot></slot>\n </div>\n );\n }\n\n private updateTabIndex() {\n if (this.catRadioGroup.length) {\n this.catRadioGroup.forEach(value => value.shadowRoot?.querySelector('input')?.setAttribute('tabindex', '-1'));\n const checkedRadioIndex = this.catRadioGroup.findIndex(value => value.checked);\n this.catRadioGroup[checkedRadioIndex >= 0 ? checkedRadioIndex : 0].shadowRoot\n ?.querySelector('input')\n ?.setAttribute('tabindex', '0');\n }\n }\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n//# sourceMappingURL=OperatorSubscriber.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n//# sourceMappingURL=fromEvent.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","@import 'variables';\n\n:host {\n overflow: hidden;\n position: relative;\n display: flex;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n// ----- Scroll shadows\n\n%shadow {\n position: absolute;\n transition: $cat-scrollable-shadow-transition;\n}\n\n.shadow-top {\n @extend %shadow;\n z-index: 2;\n width: 100%;\n top: 0;\n}\n\n.shadow-left {\n @extend %shadow;\n z-index: 4;\n height: 100%;\n left: 0;\n}\n\n.shadow-right {\n @extend %shadow;\n z-index: 4;\n height: 100%;\n right: 0;\n}\n\n.shadow-bottom {\n @extend %shadow;\n z-index: 2;\n width: 100%;\n bottom: 0;\n}\n\n// ----- Component\n\n.scrollable-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n\n &.cat-scrollable-top .shadow-top,\n &.cat-scrollable-bottom .shadow-bottom,\n &.cat-scrollable-left .shadow-left,\n &.cat-scrollable-right .shadow-right {\n box-shadow: $cat-scrollable-shadow;\n }\n}\n\n.scrollable-content {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n\n &.scroll-x {\n overflow-x: auto;\n }\n\n &.scroll-y {\n overflow-y: auto;\n }\n\n &.no-overscroll {\n overscroll-behavior: contain;\n }\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { fromEvent, merge, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\n\n/**\n * An element to display scrollable content.\n */\n@Component({\n tag: 'cat-scrollable',\n styleUrl: 'cat-scrollable.scss',\n shadow: true\n})\nexport class CatScrollable {\n scrollElement?: HTMLElement;\n scrollWrapperElement?: HTMLElement;\n private readonly init = new Subject<void>();\n private readonly destroyed = new Subject<void>();\n private scrolled!: Observable<Event>;\n\n /** Flags to disable/enable scroll shadowX. */\n @Prop()\n noShadowX = false;\n\n /** Flags to disable/enable scroll shadowY. */\n @Prop()\n noShadowY = false;\n\n /** Flags to disable/enable overflowX. */\n @Prop()\n noOverflowX = false;\n\n /** Flags to disable/enable overflowY. */\n @Prop()\n noOverflowY = false;\n\n /** Flag to disable/enable overscroll behavior. */\n @Prop()\n noOverscroll = false;\n\n /**\n * Flag to not fire an initial event after content initialization.\n */\n @Prop() noScrolledInit = false;\n\n /**\n * Buffer to be used to calculate the scroll distance.\n */\n @Prop() scrolledBuffer = 0;\n\n /**\n * Emitted when the content is fully scrolled to the top.\n */\n @Event() scrolledTop!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the left.\n */\n @Event() scrolledLeft!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the right.\n */\n @Event() scrolledRight!: EventEmitter<void>;\n\n /**\n * Emitted when the content is fully scrolled to the bottom.\n */\n @Event() scrolledBottom!: EventEmitter<void>;\n\n componentDidRender() {\n if (this.scrollElement) {\n this.scrolled = fromEvent(this.scrollElement, 'scroll').pipe(takeUntil(this.destroyed));\n }\n this.attachEmitter('left', this.scrolledLeft, this.scrolledBuffer);\n this.attachEmitter('right', this.scrolledRight, this.scrolledBuffer);\n this.attachEmitter('bottom', this.scrolledBottom, this.scrolledBuffer);\n this.attachEmitter('top', this.scrolledTop, this.scrolledBuffer);\n merge(this.init, this.scrolled)\n .pipe(\n map(() => ({\n top: this.getScrollOffset('top') > 0,\n left: this.getScrollOffset('left') > 0,\n right: this.getScrollOffset('right') > 0,\n bottom: this.getScrollOffset('bottom') > 0\n })),\n distinctUntilChanged(),\n takeUntil(this.destroyed)\n )\n .subscribe(({ top, left, right, bottom }) => {\n this.toggleClass('cat-scrollable-top', top);\n this.toggleClass('cat-scrollable-left', left);\n this.toggleClass('cat-scrollable-right', right);\n this.toggleClass('cat-scrollable-bottom', bottom);\n });\n }\n\n componentDidLoad() {\n if (!this.noScrolledInit) {\n this.init.next();\n }\n }\n\n disconnectedCallback() {\n this.init.complete();\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n render() {\n return [\n <div class=\"scrollable-wrapper\" ref={el => (this.scrollWrapperElement = el)}>\n {!this.noShadowY && <div class=\"shadow-top\"></div>}\n {!this.noShadowX && <div class=\"shadow-left\"></div>}\n {!this.noShadowX && <div class=\"shadow-right\"></div>}\n {!this.noShadowY && <div class=\"shadow-bottom\"></div>}\n </div>,\n <div\n ref={el => (this.scrollElement = el)}\n class={{\n 'scrollable-content': true,\n 'scroll-x': !this.noOverflowX,\n 'scroll-y': !this.noOverflowY,\n 'no-overscroll': this.noOverscroll\n }}\n >\n <slot></slot>\n </div>\n ];\n }\n\n private attachEmitter(from: 'top' | 'left' | 'right' | 'bottom', emitter: EventEmitter<void>, buffer: number) {\n merge(this.init, this.scrolled)\n .pipe(map(() => this.getScrollOffset(from)))\n .pipe(map(offset => offset <= buffer))\n .pipe(distinctUntilChanged())\n .pipe(filter(isLower => isLower))\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => emitter.emit());\n }\n\n private getScrollOffset(from: 'top' | 'left' | 'right' | 'bottom') {\n if (this.scrollElement) {\n switch (from) {\n case 'top':\n return this.scrollElement.scrollTop;\n case 'left':\n return this.scrollElement.scrollLeft;\n case 'right':\n return this.scrollElement.scrollWidth - this.scrollElement.clientWidth - this.scrollElement.scrollLeft;\n case 'bottom':\n return this.scrollElement.scrollHeight - this.scrollElement.clientHeight - this.scrollElement.scrollTop;\n default:\n return 0;\n }\n }\n return 0;\n }\n\n private toggleClass(name: string, value: boolean) {\n if (value) {\n this.scrollWrapperElement?.classList.add(name);\n } else {\n this.scrollWrapperElement?.classList.remove(name);\n }\n }\n}\n","/*! choices.js v10.1.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n\telse\n\t\troot[\"Choices\"] = factory();\n})(window, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 282:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addChoice = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n groupId = _a.groupId,\n disabled = _a.disabled,\n elementId = _a.elementId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n\nexports.addChoice = addChoice;\n\nvar filterChoices = function (results) {\n return {\n type: constants_1.ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\n\nexports.filterChoices = filterChoices;\n\nvar activateChoices = function (active) {\n if (active === void 0) {\n active = true;\n }\n\n return {\n type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\n\nexports.activateChoices = activateChoices;\n\nvar clearChoices = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_CHOICES\n };\n};\n\nexports.clearChoices = clearChoices;\n\n/***/ }),\n\n/***/ 783:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addGroup = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addGroup = function (_a) {\n var value = _a.value,\n id = _a.id,\n active = _a.active,\n disabled = _a.disabled;\n return {\n type: constants_1.ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};\n\nexports.addGroup = addGroup;\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.highlightItem = exports.removeItem = exports.addItem = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar addItem = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n choiceId = _a.choiceId,\n groupId = _a.groupId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n\nexports.addItem = addItem;\n\nvar removeItem = function (id, choiceId) {\n return {\n type: constants_1.ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\n\nexports.removeItem = removeItem;\n\nvar highlightItem = function (id, highlighted) {\n return {\n type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};\n\nexports.highlightItem = highlightItem;\n\n/***/ }),\n\n/***/ 137:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setIsLoading = exports.resetTo = exports.clearAll = void 0;\n\nvar constants_1 = __webpack_require__(883);\n\nvar clearAll = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_ALL\n };\n};\n\nexports.clearAll = clearAll;\n\nvar resetTo = function (state) {\n return {\n type: constants_1.ACTION_TYPES.RESET_TO,\n state: state\n };\n};\n\nexports.resetTo = resetTo;\n\nvar setIsLoading = function (isLoading) {\n return {\n type: constants_1.ACTION_TYPES.SET_IS_LOADING,\n isLoading: isLoading\n };\n};\n\nexports.setIsLoading = setIsLoading;\n\n/***/ }),\n\n/***/ 373:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar deepmerge_1 = __importDefault(__webpack_require__(996));\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nvar fuse_js_1 = __importDefault(__webpack_require__(221));\n\nvar choices_1 = __webpack_require__(282);\n\nvar groups_1 = __webpack_require__(783);\n\nvar items_1 = __webpack_require__(464);\n\nvar misc_1 = __webpack_require__(137);\n\nvar components_1 = __webpack_require__(520);\n\nvar constants_1 = __webpack_require__(883);\n\nvar defaults_1 = __webpack_require__(789);\n\nvar utils_1 = __webpack_require__(799);\n\nvar reducers_1 = __webpack_require__(655);\n\nvar store_1 = __importDefault(__webpack_require__(744));\n\nvar templates_1 = __importDefault(__webpack_require__(686));\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\n\n\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson<josh@joshuajohnson.co.uk>\n */\n\nvar Choices =\n/** @class */\nfunction () {\n function Choices(element, userConfig) {\n var _this = this;\n\n if (element === void 0) {\n element = '[data-choice]';\n }\n\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n if (userConfig.allowHTML === undefined) {\n console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.');\n }\n\n this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function (_, sourceArray) {\n return __spreadArray([], sourceArray, true);\n }\n });\n var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);\n\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n\n this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n\n if (!['auto', 'always'].includes(\"\".concat(this.config.renderSelectedChoices))) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n\n if (this._isTextElement) {\n this.passedElement = new components_1.WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new components_1.WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function (data) {\n return _this._templates.option(data);\n }\n });\n }\n\n this.initialised = false;\n this._store = new store_1.default();\n this._initialState = reducers_1.defaultState;\n this._currentState = reducers_1.defaultState;\n this._prevState = reducers_1.defaultState;\n this._currentValue = '';\n this._canSearch = !!this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n */\n\n this._direction = this.passedElement.dir;\n\n if (!this._direction) {\n var elementDirection = window.getComputedStyle(this.passedElement.element).direction;\n var documentDirection = window.getComputedStyle(document.documentElement).direction;\n\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n\n this._idNames = {\n itemChoice: 'item-choice'\n };\n\n if (this._isSelectElement) {\n // Assign preset groups from passed element\n this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element\n\n this._presetOptions = this.passedElement.options;\n } // Assign preset choices from passed object\n\n\n this._presetChoices = this.config.choices; // Assign preset items from passed object first\n\n this._presetItems = this.config.items; // Add any values passed from attribute\n\n if (this.passedElement.value && this._isTextElement) {\n var splitValues = this.passedElement.value.split(this.config.delimiter);\n this._presetItems = this._presetItems.concat(splitValues);\n } // Create array of choices from option elements\n\n\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (option) {\n _this._presetChoices.push({\n value: option.value,\n label: option.innerHTML,\n selected: !!option.selected,\n disabled: option.disabled || option.parentNode.disabled,\n placeholder: option.value === '' || option.hasAttribute('placeholder'),\n customProperties: option.dataset['custom-properties']\n });\n });\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onSelectKey = this._onSelectKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently\n\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised', {\n element: element\n });\n }\n\n this.initialised = true;\n return;\n } // Let's go\n\n\n this.init();\n }\n\n Object.defineProperty(Choices, \"defaults\", {\n get: function () {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n\n get templates() {\n return templates_1.default;\n }\n\n });\n },\n enumerable: false,\n configurable: true\n });\n\n Choices.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n\n this._createElements();\n\n this._createStructure();\n\n this._store.subscribe(this._render);\n\n this._render();\n\n this._addEventListeners();\n\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function\n\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n\n Choices.prototype.destroy = function () {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n\n this._templates = templates_1.default;\n this.initialised = false;\n };\n\n Choices.prototype.enable = function () {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n };\n\n Choices.prototype.disable = function () {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n };\n\n Choices.prototype.highlightItem = function (item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n\n return this;\n };\n\n Choices.prototype.unhighlightItem = function (item) {\n if (!item || !item.id) {\n return this;\n }\n\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch((0, items_1.highlightItem)(id, false));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n\n Choices.prototype.highlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.highlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.unhighlightAll = function () {\n var _this = this;\n\n this._store.items.forEach(function (item) {\n return _this.unhighlightItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItemsByValue = function (value) {\n var _this = this;\n\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeActiveItems = function (excludedId) {\n var _this = this;\n\n this._store.activeItems.filter(function (_a) {\n var id = _a.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n\n return this;\n };\n\n Choices.prototype.removeHighlightedItems = function (runEvent) {\n var _this = this;\n\n if (runEvent === void 0) {\n runEvent = false;\n }\n\n this._store.highlightedActiveItems.forEach(function (item) {\n _this._removeItem(item); // If this action was performed by the user\n // trigger the event\n\n\n if (runEvent) {\n _this._triggerChange(item.value);\n }\n });\n\n return this;\n };\n\n Choices.prototype.showDropdown = function (preventInputFocus) {\n var _this = this;\n\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.show();\n\n _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);\n\n if (!preventInputFocus && _this._canSearch) {\n _this.input.focus();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.hideDropdown = function (preventInputBlur) {\n var _this = this;\n\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this.dropdown.hide();\n\n _this.containerOuter.close();\n\n if (!preventInputBlur && _this._canSearch) {\n _this.input.removeActiveDescendant();\n\n _this.input.blur();\n }\n\n _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});\n });\n return this;\n };\n\n Choices.prototype.getValue = function (valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n };\n\n Choices.prototype.setValue = function (items) {\n var _this = this;\n\n if (!this.initialised) {\n return this;\n }\n\n items.forEach(function (value) {\n return _this._setChoiceOrItem(value);\n });\n return this;\n };\n\n Choices.prototype.setChoiceByValue = function (value) {\n var _this = this;\n\n if (!this.initialised || this._isTextElement) {\n return this;\n } // If only one value has been passed, convert to array\n\n\n var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and\n\n choiceValue.forEach(function (val) {\n return _this._findAndSelectChoiceByValue(val);\n });\n return this;\n };\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n\n\n Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this = this;\n\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n\n if (value === void 0) {\n value = 'value';\n }\n\n if (label === void 0) {\n label = 'label';\n }\n\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n } // Clear choices if needed\n\n\n if (replaceChoices) {\n this.clearChoices();\n }\n\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher_1 = choicesArrayOrFetcher(this);\n\n if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line no-promise-executor-return\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this._handleLoadingState(true);\n }).then(function () {\n return fetcher_1;\n }).then(function (data) {\n return _this.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this._handleLoadingState(false);\n }).then(function () {\n return _this;\n });\n } // function returned something else than promise, let's check if it's an array of choices\n\n\n if (!Array.isArray(fetcher_1)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(typeof fetcher_1));\n } // recursion with results, it's sync and choices were cleared already\n\n\n return this.setChoices(fetcher_1, value, label, false);\n }\n\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n\n this.containerOuter.removeLoadingState();\n\n this._startLoading();\n\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this._addGroup({\n id: groupOrChoice.id ? parseInt(\"\".concat(groupOrChoice.id), 10) : null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n var choice = groupOrChoice;\n\n _this._addChoice({\n value: choice[value],\n label: choice[label],\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: choice.customProperties\n });\n }\n });\n\n this._stopLoading();\n\n return this;\n };\n\n Choices.prototype.clearChoices = function () {\n this._store.dispatch((0, choices_1.clearChoices)());\n\n return this;\n };\n\n Choices.prototype.clearStore = function () {\n this._store.dispatch((0, misc_1.clearAll)());\n\n return this;\n };\n\n Choices.prototype.clearInput = function () {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n\n return this;\n };\n\n Choices.prototype._render = function () {\n if (this._store.isLoading()) {\n return;\n }\n\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n };\n\n Choices.prototype._renderChoices = function () {\n var _this = this;\n\n var _a = this._store,\n activeGroups = _a.activeGroups,\n activeChoices = _a.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this.choiceList.scrollToTop();\n });\n } // If we have grouped options\n\n\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n } // If we have choices to show\n\n\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them\n\n\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n\n this._highlightChoice();\n } else {\n var notice = this._getTemplate('notice', canAddItem.notice);\n\n this.choiceList.append(notice);\n }\n } else {\n // Otherwise show a notice\n var dropdownItem = void 0;\n var notice = void 0;\n\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n };\n\n Choices.prototype._renderItems = function () {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear(); // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n\n var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them\n\n\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n\n Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n var getGroupChoices = function (group) {\n return choices.filter(function (choice) {\n if (_this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n\n return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n }; // If sorting is enabled, filter groups\n\n\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this._getTemplate('choiceGroup', group);\n\n fragment.appendChild(dropdownGroup);\n\n _this._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n\n Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n\n if (withinGroup === void 0) {\n withinGroup = false;\n } // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n\n\n var _a = this.config,\n renderSelectedChoices = _a.renderSelectedChoices,\n searchResultLimit = _a.searchResultLimit,\n renderChoiceLimit = _a.renderChoiceLimit;\n var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;\n\n var appendChoice = function (choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;\n\n if (shouldRender) {\n var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);\n\n fragment.appendChild(dropdownItem);\n }\n };\n\n var rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n } // Split array into placeholders and \"normal\" choices\n\n\n var _b = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _b.placeholderChoices,\n normalChoices = _b.normalChoices; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n var choiceLimit = rendererableChoices.length; // Prepend placeholeder\n\n var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n } // Add each choice to dropdown within range\n\n\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return fragment;\n };\n\n Choices.prototype._createItemsFragment = function (items, fragment) {\n var _this = this;\n\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n } // Create fragment to add elements to\n\n\n var _a = this.config,\n shouldSortItems = _a.shouldSortItems,\n sorter = _a.sorter,\n removeItemButton = _a.removeItemButton; // If sorting is enabled, filter items\n\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items.map(function (_a) {\n var value = _a.value;\n return value;\n }).join(this.config.delimiter);\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n var addItemToFragment = function (item) {\n // Create new list element\n var listItem = _this._getTemplate('item', item, removeItemButton); // Append it to list\n\n\n fragment.appendChild(listItem);\n }; // Add each list item to list\n\n\n items.forEach(addItemToFragment);\n return fragment;\n };\n\n Choices.prototype._triggerChange = function (value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(constants_1.EVENTS.change, {\n value: value\n });\n };\n\n Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n\n this._triggerChange(placeholderChoice.value);\n };\n\n Choices.prototype._handleButtonAction = function (activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n\n var itemId = element.parentNode && element.parentNode.dataset.id;\n var itemToRemove = itemId && activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n });\n\n if (!itemToRemove) {\n return;\n } // Remove item associated with button\n\n\n this._removeItem(itemToRemove);\n\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement && this._store.placeholderChoice) {\n this._selectPlaceholderChoice(this._store.placeholderChoice);\n }\n };\n\n Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {\n var _this = this;\n\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n\n var passedId = element.dataset.id; // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n\n activeItems.forEach(function (item) {\n if (item.id === parseInt(\"\".concat(passedId), 10) && !item.highlighted) {\n _this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this.unhighlightItem(item);\n }\n }); // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n\n this.input.focus();\n };\n\n Choices.prototype._handleChoiceAction = function (activeItems, element) {\n if (!activeItems || !element) {\n return;\n } // If we are clicking on an option\n\n\n var id = element.dataset.id;\n\n var choice = id && this._store.getChoiceById(id);\n\n if (!choice) {\n return;\n }\n\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;\n var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode\n\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(constants_1.EVENTS.choice, {\n choice: choice\n });\n\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput(); // We want to close the dropdown if we are dealing with a single select box\n\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._handleBackspace = function (activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n }); // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n\n this._removeItem(lastItem);\n\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n\n this.removeHighlightedItems(true);\n }\n };\n\n Choices.prototype._startLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(true));\n };\n\n Choices.prototype._stopLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(false));\n };\n\n Choices.prototype._handleLoadingState = function (setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n\n if (placeholderItem) {\n this.itemList.append(placeholderItem);\n }\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n if (placeholderItem) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n }\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n\n Choices.prototype._handleSearch = function (value) {\n if (!this.input.isFocussed) {\n return;\n }\n\n var choices = this._store.choices;\n var _a = this.config,\n searchFloor = _a.searchFloor,\n searchChoices = _a.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n }); // Check that we have a value to search and the input was an alphanumeric character\n\n if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event\n\n this.passedElement.triggerEvent(constants_1.EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n };\n\n Choices.prototype._canAddItem = function (activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);\n\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice: notice\n };\n };\n\n Choices.prototype._searchChoices = function (value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n } // If new value matches the desired length and is not the same as the current value with a space\n\n\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n var options = Object.assign(this.config.fuseOptions, {\n keys: __spreadArray([], this.config.searchFields, true),\n includeMatches: true\n });\n var fuse = new fuse_js_1.default(haystack, options);\n var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303\n\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n\n this._store.dispatch((0, choices_1.filterChoices)(results));\n\n return results.length;\n };\n\n Choices.prototype._addEventListeners = function () {\n var documentElement = document.documentElement; // capture events - can cancel event processing or propagation\n\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation`\n\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n\n this.input.addEventListeners();\n };\n\n Choices.prototype._removeEventListeners = function () {\n var documentElement = document.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n };\n\n Choices.prototype._onKeyDown = function (event) {\n var keyCode = event.keyCode;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n var wasAlphaNumericChar = /[a-zA-Z0-9-_ ]/.test(keyString);\n var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,\n DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,\n ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,\n A_KEY = constants_1.KEY_CODES.A_KEY,\n ESC_KEY = constants_1.KEY_CODES.ESC_KEY,\n UP_KEY = constants_1.KEY_CODES.UP_KEY,\n DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n\n if (!this._isTextElement && !hasActiveDropdown && wasAlphaNumericChar) {\n this.showDropdown();\n\n if (!this.input.isFocussed) {\n /*\n We update the input value with the pressed key as\n the input was not focussed at the time of key press\n therefore does not have the value of the key.\n */\n this.input.value += keyString.toLowerCase();\n }\n }\n\n switch (keyCode) {\n case A_KEY:\n return this._onSelectKey(event, hasItems);\n\n case ENTER_KEY:\n return this._onEnterKey(event, activeItems, hasActiveDropdown);\n\n case ESC_KEY:\n return this._onEscapeKey(hasActiveDropdown);\n\n case UP_KEY:\n case PAGE_UP_KEY:\n case DOWN_KEY:\n case PAGE_DOWN_KEY:\n return this._onDirectionKey(event, hasActiveDropdown);\n\n case DELETE_KEY:\n case BACK_KEY:\n return this._onDeleteKey(event, activeItems, hasFocusedInput);\n\n default:\n }\n };\n\n Choices.prototype._onKeyUp = function (_a) {\n var target = _a.target,\n keyCode = _a.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n var backKey = constants_1.KEY_CODES.BACK_KEY,\n deleteKey = constants_1.KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;\n var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n\n this._store.dispatch((0, choices_1.activateChoices)(true));\n } else if (canSearch) {\n this._handleSearch(this.input.rawValue);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n };\n\n Choices.prototype._onSelectKey = function (event, hasItems) {\n var ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If CTRL + A or CMD + A have been pressed and there are items to select\n\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n\n Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {\n var target = event.target;\n var enterKey = constants_1.KEY_CODES.ENTER_KEY;\n var targetWasButton = target && target.hasAttribute('data-button');\n\n if (this._isTextElement && target && target.value) {\n var value = this.input.value;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n if (canAddItem.response) {\n this.hideDropdown(true);\n\n this._addItem({\n value: value\n });\n\n this._triggerChange(value);\n\n this.clearInput();\n }\n }\n\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n\n Choices.prototype._onEscapeKey = function (hasActiveDropdown) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n\n Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {\n var keyCode = event.keyCode,\n metaKey = event.metaKey;\n var downKey = constants_1.KEY_CODES.DOWN_KEY,\n pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,\n pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options\n\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl = void 0;\n\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n\n if (currentEl) {\n nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n\n this._highlightChoice(nextEl);\n } // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {\n var target = event.target; // If backspace or delete key is pressed and the input has no value\n\n if (!this._isSelectOneElement && !target.value && hasFocusedInput) {\n this._handleBackspace(activeItems);\n\n event.preventDefault();\n }\n };\n\n Choices.prototype._onTouchMove = function () {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n\n Choices.prototype._onTouchEnd = function (event) {\n var target = (event || event.touches[0]).target;\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n } // Prevents focus event firing\n\n\n event.stopPropagation();\n }\n\n this._wasTap = true;\n };\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n */\n\n\n Choices.prototype._onMouseDown = function (event) {\n var target = event.target;\n\n if (!(target instanceof HTMLElement)) {\n return;\n } // If we have our mouse down on the scrollbar and are on IE11...\n\n\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice = this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n\n if (target === this.input.element) {\n return;\n }\n\n var item = target.closest('[data-button],[data-item],[data-choice]');\n\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n\n event.preventDefault();\n };\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n\n\n Choices.prototype._onMouseOver = function (_a) {\n var target = _a.target;\n\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n\n Choices.prototype._onClick = function (_a) {\n var target = _a.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n\n Choices.prototype._onFocus = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var focusWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (!focusWasWithinContainer) {\n return;\n }\n\n var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.addFocusState();\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.addFocusState();\n\n if (target === _this.input.element) {\n _this.showDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n\n\n _this.containerOuter.addFocusState();\n }\n }, _b);\n focusActions[this.passedElement.element.type]();\n };\n\n Choices.prototype._onBlur = function (_a) {\n var _b;\n\n var _this = this;\n\n var target = _a.target;\n var blurWasWithinContainer = target && this.containerOuter.element.contains(target);\n\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var activeItems = this._store.activeItems;\n var hasHighlightedItems_1 = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.removeFocusState();\n\n if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n\n _this.hideDropdown(true);\n\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n }\n }, _b);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n\n Choices.prototype._onFormReset = function () {\n this._store.dispatch((0, misc_1.resetTo)(this._initialState));\n };\n\n Choices.prototype._highlightChoice = function (el) {\n var _this = this;\n\n if (el === void 0) {\n el = null;\n }\n\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n\n if (!choices.length) {\n return;\n }\n\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState))); // Remove any highlighted choices\n\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {\n el: passedEl\n });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n\n Choices.prototype._addItem = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.choiceId,\n choiceId = _c === void 0 ? -1 : _c,\n _d = _a.groupId,\n groupId = _d === void 0 ? -1 : _d,\n _e = _a.customProperties,\n customProperties = _e === void 0 ? {} : _e,\n _f = _a.placeholder,\n placeholder = _f === void 0 ? false : _f,\n _g = _a.keyCode,\n keyCode = _g === void 0 ? -1 : _g;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it\n\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n } // If an appended value has been passed, append it\n\n\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch((0, items_1.addItem)({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n } // Trigger change event\n\n\n this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null,\n keyCode: keyCode\n });\n };\n\n Choices.prototype._removeItem = function (item) {\n var id = item.id,\n value = item.value,\n label = item.label,\n customProperties = item.customProperties,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n if (!id || !choiceId) {\n return;\n }\n\n this._store.dispatch((0, items_1.removeItem)(id, choiceId));\n\n this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null\n });\n };\n\n Choices.prototype._addChoice = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.isSelected,\n isSelected = _c === void 0 ? false : _c,\n _d = _a.isDisabled,\n isDisabled = _d === void 0 ? false : _d,\n _e = _a.groupId,\n groupId = _e === void 0 ? -1 : _e,\n _f = _a.customProperties,\n customProperties = _f === void 0 ? {} : _f,\n _g = _a.placeholder,\n placeholder = _g === void 0 ? false : _g,\n _h = _a.keyCode,\n keyCode = _h === void 0 ? -1 : _h;\n\n if (typeof value === 'undefined' || value === null) {\n return;\n } // Generate unique id\n\n\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n\n this._store.dispatch((0, choices_1.addChoice)({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n\n Choices.prototype._addGroup = function (_a) {\n var _this = this;\n\n var group = _a.group,\n id = _a.id,\n _b = _a.valueKey,\n valueKey = _b === void 0 ? 'value' : _b,\n _c = _a.labelKey,\n labelKey = _c === void 0 ? 'label' : _c;\n var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n\n var addGroupChoices = function (choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n\n _this._addChoice({\n value: choice[valueKey],\n label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n\n Choices.prototype._getTemplate = function (template) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false));\n };\n\n Choices.prototype._createTemplates = function () {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);\n }\n\n this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);\n };\n\n Choices.prototype._createElements = function () {\n this.containerOuter = new components_1.Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new components_1.Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new components_1.Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new components_1.List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new components_1.List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new components_1.Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n\n Choices.prototype._createStructure = function () {\n // Hide original element\n this.passedElement.conceal(); // Wrap input in container preserving DOM ordering\n\n this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container\n\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n\n this._startLoading();\n\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n\n this._stopLoading();\n }\n\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n\n Choices.prototype._addPredefinedGroups = function (groups) {\n var _this = this; // If we have a placeholder option\n\n\n var placeholderChoice = this.passedElement.placeholderOption;\n\n if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n\n groups.forEach(function (group) {\n return _this._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n\n Choices.prototype._addPredefinedChoices = function (choices) {\n var _this = this; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var _a = choice.value,\n value = _a === void 0 ? '' : _a,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n\n if (_this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!isSelected,\n isDisabled: !!isDisabled,\n placeholder: !!placeholder,\n customProperties: customProperties\n });\n }\n } else {\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: customProperties\n });\n }\n });\n };\n\n Choices.prototype._addPredefinedItems = function (items) {\n var _this = this;\n\n items.forEach(function (item) {\n if (typeof item === 'object' && item.value) {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n\n if (typeof item === 'string') {\n _this._addItem({\n value: item\n });\n }\n });\n };\n\n Choices.prototype._setChoiceOrItem = function (item) {\n var _this = this;\n\n var itemType = (0, utils_1.getType)(item).toLowerCase();\n var handleType = {\n object: function () {\n if (!item.value) {\n return;\n } // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n\n\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function () {\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n\n Choices.prototype._findAndSelectChoiceByValue = function (value) {\n var _this = this;\n\n var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected\n\n var foundChoice = choices.find(function (choice) {\n return _this.config.valueComparer(choice.value, value);\n });\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n\n Choices.prototype._generatePlaceholderValue = function () {\n if (this._isSelectElement && this.passedElement.placeholderOption) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : null;\n }\n\n var _a = this.config,\n placeholder = _a.placeholder,\n placeholderValue = _a.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n\n return null;\n };\n\n return Choices;\n}();\n\nexports[\"default\"] = Choices;\n\n/***/ }),\n\n/***/ 613:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar constants_1 = __webpack_require__(883);\n\nvar Container =\n/** @class */\nfunction () {\n function Container(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n position = _a.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Container.prototype.addEventListeners = function () {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n\n Container.prototype.removeEventListeners = function () {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n */\n\n\n Container.prototype.shouldFlip = function (dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n } // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n\n\n var shouldFlip = false;\n\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n };\n\n Container.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Container.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Container.prototype.open = function (dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n\n Container.prototype.close = function () {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false; // A dropdown flips if it does not have space within the page\n\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n\n Container.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Container.prototype.addFocusState = function () {\n this.element.classList.add(this.classNames.focusState);\n };\n\n Container.prototype.removeFocusState = function () {\n this.element.classList.remove(this.classNames.focusState);\n };\n\n Container.prototype.enable = function () {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n\n this.isDisabled = false;\n };\n\n Container.prototype.disable = function () {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n\n this.isDisabled = true;\n };\n\n Container.prototype.wrap = function (element) {\n (0, utils_1.wrap)(element, this.element);\n };\n\n Container.prototype.unwrap = function (element) {\n if (this.element.parentNode) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element); // Remove this element\n\n this.element.parentNode.removeChild(this.element);\n }\n };\n\n Container.prototype.addLoadingState = function () {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n\n Container.prototype.removeLoadingState = function () {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n\n Container.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Container.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Container;\n}();\n\nexports[\"default\"] = Container;\n\n/***/ }),\n\n/***/ 217:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar Dropdown =\n/** @class */\nfunction () {\n function Dropdown(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n\n Object.defineProperty(Dropdown.prototype, \"distanceFromTopWindow\", {\n /**\n * Bottom position of dropdown in viewport coordinates\n */\n get: function () {\n return this.element.getBoundingClientRect().bottom;\n },\n enumerable: false,\n configurable: true\n });\n\n Dropdown.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n /**\n * Show dropdown to user by adding active state class\n */\n\n\n Dropdown.prototype.show = function () {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n };\n /**\n * Hide dropdown from user\n */\n\n\n Dropdown.prototype.hide = function () {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n\n return Dropdown;\n}();\n\nexports[\"default\"] = Dropdown;\n\n/***/ }),\n\n/***/ 520:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;\n\nvar dropdown_1 = __importDefault(__webpack_require__(217));\n\nexports.Dropdown = dropdown_1.default;\n\nvar container_1 = __importDefault(__webpack_require__(613));\n\nexports.Container = container_1.default;\n\nvar input_1 = __importDefault(__webpack_require__(11));\n\nexports.Input = input_1.default;\n\nvar list_1 = __importDefault(__webpack_require__(624));\n\nexports.List = list_1.default;\n\nvar wrapped_input_1 = __importDefault(__webpack_require__(541));\n\nexports.WrappedInput = wrapped_input_1.default;\n\nvar wrapped_select_1 = __importDefault(__webpack_require__(982));\n\nexports.WrappedSelect = wrapped_select_1.default;\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar constants_1 = __webpack_require__(883);\n\nvar Input =\n/** @class */\nfunction () {\n function Input(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n preventPaste = _a.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element.isEqualNode(document.activeElement);\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n Object.defineProperty(Input.prototype, \"placeholder\", {\n set: function (placeholder) {\n this.element.placeholder = placeholder;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n get: function () {\n return (0, utils_1.sanitise)(this.element.value);\n },\n set: function (value) {\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"rawValue\", {\n get: function () {\n return this.element.value;\n },\n enumerable: false,\n configurable: true\n });\n\n Input.prototype.addEventListeners = function () {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n\n Input.prototype.removeEventListeners = function () {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n\n Input.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n\n Input.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n\n Input.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n\n Input.prototype.blur = function () {\n if (this.isFocussed) {\n this.element.blur();\n }\n };\n\n Input.prototype.clear = function (setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n };\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n\n\n Input.prototype.setWidth = function () {\n // Resize input to contents or placeholder\n var _a = this.element,\n style = _a.style,\n value = _a.value,\n placeholder = _a.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n };\n\n Input.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n\n Input.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n\n Input.prototype._onInput = function () {\n if (this.type !== constants_1.SELECT_ONE_TYPE) {\n this.setWidth();\n }\n };\n\n Input.prototype._onPaste = function (event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n\n Input.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n\n Input.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n\n return Input;\n}();\n\nexports[\"default\"] = Input;\n\n/***/ }),\n\n/***/ 624:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar constants_1 = __webpack_require__(883);\n\nvar List =\n/** @class */\nfunction () {\n function List(_a) {\n var element = _a.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n\n List.prototype.clear = function () {\n this.element.innerHTML = '';\n };\n\n List.prototype.append = function (node) {\n this.element.appendChild(node);\n };\n\n List.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n\n List.prototype.hasChildren = function () {\n return this.element.hasChildNodes();\n };\n\n List.prototype.scrollToTop = function () {\n this.element.scrollTop = 0;\n };\n\n List.prototype.scrollToChildElement = function (element, direction) {\n var _this = this;\n\n if (!element) {\n return;\n }\n\n var listHeight = this.element.offsetHeight; // Scroll position of dropdown\n\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent\n\n var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position\n\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n };\n\n List.prototype._scrollDown = function (scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n };\n\n List.prototype._scrollUp = function (scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n };\n\n List.prototype._animateScroll = function (destination, direction) {\n var _this = this;\n\n var strength = constants_1.SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n };\n\n return List;\n}();\n\nexports[\"default\"] = List;\n\n/***/ }),\n\n/***/ 730:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar utils_1 = __webpack_require__(799);\n\nvar WrappedElement =\n/** @class */\nfunction () {\n function WrappedElement(_a) {\n var element = _a.element,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n Object.defineProperty(WrappedElement.prototype, \"isActive\", {\n get: function () {\n return this.element.dataset.choice === 'active';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"dir\", {\n get: function () {\n return this.element.dir;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedElement.prototype.conceal = function () {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true; // Remove element from tab index\n\n this.element.tabIndex = -1; // Backup original styles if any\n\n var origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('data-choice', 'active');\n };\n\n WrappedElement.prototype.reveal = function () {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex'); // Recover original styles if any\n\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n\n this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n WrappedElement.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n\n WrappedElement.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n\n WrappedElement.prototype.triggerEvent = function (eventType, data) {\n (0, utils_1.dispatchEvent)(this.element, eventType, data);\n };\n\n return WrappedElement;\n}();\n\nexports[\"default\"] = WrappedElement;\n\n/***/ }),\n\n/***/ 541:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\n\nvar WrappedInput =\n/** @class */\nfunction (_super) {\n __extends(WrappedInput, _super);\n\n function WrappedInput(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n delimiter = _a.delimiter;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.delimiter = delimiter;\n return _this;\n }\n\n Object.defineProperty(WrappedInput.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n this.element.setAttribute('value', value);\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n return WrappedInput;\n}(wrapped_element_1.default);\n\nexports[\"default\"] = WrappedInput;\n\n/***/ }),\n\n/***/ 982:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\n\nvar WrappedSelect =\n/** @class */\nfunction (_super) {\n __extends(WrappedSelect, _super);\n\n function WrappedSelect(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n template = _a.template;\n\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n\n _this.template = template;\n return _this;\n }\n\n Object.defineProperty(WrappedSelect.prototype, \"placeholderOption\", {\n get: function () {\n return this.element.querySelector('option[value=\"\"]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"optionGroups\", {\n get: function () {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"options\", {\n get: function () {\n return Array.from(this.element.options);\n },\n set: function (options) {\n var _this = this;\n\n var fragment = document.createDocumentFragment();\n\n var addOptionToFragment = function (data) {\n // Create a standard select option\n var option = _this.template(data); // Append it to fragment\n\n\n fragment.appendChild(option);\n }; // Add each list item to list\n\n\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n },\n enumerable: false,\n configurable: true\n });\n\n WrappedSelect.prototype.appendDocFragment = function (fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n\n return WrappedSelect;\n}(wrapped_element_1.default);\n\nexports[\"default\"] = WrappedSelect;\n\n/***/ }),\n\n/***/ 883:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;\nexports.EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n unhighlightItem: 'unhighlightItem'\n};\nexports.ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n RESET_TO: 'RESET_TO',\n SET_IS_LOADING: 'SET_IS_LOADING'\n};\nexports.KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nexports.TEXT_TYPE = 'text';\nexports.SELECT_ONE_TYPE = 'select-one';\nexports.SELECT_MULTIPLE_TYPE = 'select-multiple';\nexports.SCROLLING_SPEED = 4;\n\n/***/ }),\n\n/***/ 789:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;\n\nvar utils_1 = __webpack_require__(799);\n\nexports.DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\nexports.DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n allowHTML: true,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: utils_1.sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function (value) {\n return \"Press Enter to add <b>\\\"\".concat((0, utils_1.sanitise)(value), \"\\\"</b>\");\n },\n maxItemText: function (maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function (value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n labelId: '',\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: exports.DEFAULT_CLASSNAMES\n};\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 978:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 948:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 359:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 533:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 187:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n__exportStar(__webpack_require__(18), exports);\n\n__exportStar(__webpack_require__(978), exports);\n\n__exportStar(__webpack_require__(948), exports);\n\n__exportStar(__webpack_require__(359), exports);\n\n__exportStar(__webpack_require__(285), exports);\n\n__exportStar(__webpack_require__(533), exports);\n\n__exportStar(__webpack_require__(287), exports);\n\n__exportStar(__webpack_require__(132), exports);\n\n__exportStar(__webpack_require__(837), exports);\n\n__exportStar(__webpack_require__(598), exports);\n\n__exportStar(__webpack_require__(369), exports);\n\n__exportStar(__webpack_require__(37), exports);\n\n__exportStar(__webpack_require__(47), exports);\n\n__exportStar(__webpack_require__(923), exports);\n\n__exportStar(__webpack_require__(876), exports);\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 837:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 598:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 369:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 923:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 876:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 799:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;\n\nvar getRandomNumber = function (min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n\nexports.getRandomNumber = getRandomNumber;\n\nvar generateChars = function (length) {\n return Array.from({\n length: length\n }, function () {\n return (0, exports.getRandomNumber)(0, 36).toString(36);\n }).join('');\n};\n\nexports.generateChars = generateChars;\n\nvar generateId = function (element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n};\n\nexports.generateId = generateId;\n\nvar getType = function (obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n\nexports.getType = getType;\n\nvar isType = function (type, obj) {\n return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;\n};\n\nexports.isType = isType;\n\nvar wrap = function (element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n\n return wrapper.appendChild(element);\n};\n\nexports.wrap = wrap;\n\nvar getAdjacentEl = function (startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling[prop];\n }\n\n return sibling;\n};\n\nexports.getAdjacentEl = getAdjacentEl;\n\nvar isScrolledIntoView = function (element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n\n if (!element) {\n return false;\n }\n\n var isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n\nexports.isScrolledIntoView = isScrolledIntoView;\n\nvar sanitise = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n return value.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<').replace(/\"/g, '"');\n};\n\nexports.sanitise = sanitise;\n\nexports.strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n\n return firldChild;\n };\n}();\n\nvar sortByAlpha = function (_a, _b) {\n var value = _a.value,\n _c = _a.label,\n label = _c === void 0 ? value : _c;\n var value2 = _b.value,\n _d = _b.label,\n label2 = _d === void 0 ? value2 : _d;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\n\nexports.sortByAlpha = sortByAlpha;\n\nvar sortByScore = function (a, b) {\n var _a = a.score,\n scoreA = _a === void 0 ? 0 : _a;\n var _b = b.score,\n scoreB = _b === void 0 ? 0 : _b;\n return scoreA - scoreB;\n};\n\nexports.sortByScore = sortByScore;\n\nvar dispatchEvent = function (element, type, customArgs) {\n if (customArgs === void 0) {\n customArgs = null;\n }\n\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\n\nexports.dispatchEvent = dispatchEvent;\n\nvar existsInArray = function (array, value, key) {\n if (key === void 0) {\n key = 'value';\n }\n\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n};\n\nexports.existsInArray = existsInArray;\n\nvar cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n\nexports.cloneObject = cloneObject;\n/**\n * Returns an array of keys present on the first but missing on the second object\n */\n\nvar diff = function (a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};\n\nexports.diff = diff;\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction choices(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n var addChoiceAction = action;\n var choice = {\n id: addChoiceAction.id,\n elementId: addChoiceAction.elementId,\n groupId: addChoiceAction.groupId,\n value: addChoiceAction.value,\n label: addChoiceAction.label || addChoiceAction.value,\n disabled: addChoiceAction.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: addChoiceAction.customProperties,\n placeholder: addChoiceAction.placeholder || false\n };\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n\n return __spreadArray(__spreadArray([], state, true), [choice], false);\n }\n\n case 'ADD_ITEM':\n {\n var addItemAction_1 = action; // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n\n if (addItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(addItemAction_1.choiceId), 10)) {\n choice.selected = true;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM':\n {\n var removeItemAction_1 = action; // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n\n if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(\"\".concat(removeItemAction_1.choiceId), 10)) {\n choice.selected = false;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES':\n {\n var filterChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj; // Set active state based on whether choice is\n // within filtered results\n\n choice.active = filterChoicesAction_1.results.some(function (_a) {\n var item = _a.item,\n score = _a.score;\n\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n\n return false;\n });\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES':\n {\n var activateChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n choice.active = activateChoicesAction_1.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES':\n {\n return exports.defaultState;\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = choices;\n\n/***/ }),\n\n/***/ 871:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction groups(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_GROUP':\n {\n var addGroupAction = action;\n return __spreadArray(__spreadArray([], state, true), [{\n id: addGroupAction.id,\n value: addGroupAction.value,\n active: addGroupAction.active,\n disabled: addGroupAction.disabled\n }], false);\n }\n\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = groups;\n\n/***/ }),\n\n/***/ 655:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\n\nvar redux_1 = __webpack_require__(857);\n\nvar items_1 = __importDefault(__webpack_require__(52));\n\nvar groups_1 = __importDefault(__webpack_require__(871));\n\nvar choices_1 = __importDefault(__webpack_require__(273));\n\nvar loading_1 = __importDefault(__webpack_require__(502));\n\nvar utils_1 = __webpack_require__(799);\n\nexports.defaultState = {\n groups: [],\n items: [],\n choices: [],\n loading: false\n};\nvar appReducer = (0, redux_1.combineReducers)({\n items: items_1.default,\n groups: groups_1.default,\n choices: choices_1.default,\n loading: loading_1.default\n});\n\nvar rootReducer = function (passedState, action) {\n var state = passedState; // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n\n if (action.type === 'CLEAR_ALL') {\n state = exports.defaultState;\n } else if (action.type === 'RESET_TO') {\n return (0, utils_1.cloneObject)(action.state);\n }\n\n return appReducer(state, action);\n};\n\nexports[\"default\"] = rootReducer;\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\n\nfunction items(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'ADD_ITEM':\n {\n var addItemAction = action; // Add object to items array\n\n var newState = __spreadArray(__spreadArray([], state, true), [{\n id: addItemAction.id,\n choiceId: addItemAction.choiceId,\n groupId: addItemAction.groupId,\n value: addItemAction.value,\n label: addItemAction.label,\n active: true,\n highlighted: false,\n customProperties: addItemAction.customProperties,\n placeholder: addItemAction.placeholder || false,\n keyCode: null\n }], false);\n\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.active = false;\n }\n\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM':\n {\n var highlightItemAction_1 = action;\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === highlightItemAction_1.id) {\n item.highlighted = highlightItemAction_1.highlighted;\n }\n\n return item;\n });\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nexports[\"default\"] = items;\n\n/***/ }),\n\n/***/ 502:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = false;\n\nvar general = function (state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n\n if (action === void 0) {\n action = {};\n }\n\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return action.isLoading;\n }\n\n default:\n {\n return state;\n }\n }\n};\n\nexports[\"default\"] = general;\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (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\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nvar redux_1 = __webpack_require__(857);\n\nvar index_1 = __importDefault(__webpack_require__(655));\n\nvar Store =\n/** @class */\nfunction () {\n function Store() {\n this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n */\n\n\n Store.prototype.subscribe = function (onChange) {\n this._store.subscribe(onChange);\n };\n /**\n * Dispatch event to store (wrapped Redux method)\n */\n\n\n Store.prototype.dispatch = function (action) {\n this._store.dispatch(action);\n };\n\n Object.defineProperty(Store.prototype, \"state\", {\n /**\n * Get store object (wrapping Redux method)\n */\n get: function () {\n return this._store.getState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"items\", {\n /**\n * Get items from store\n */\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeItems\", {\n /**\n * Get active items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"highlightedActiveItems\", {\n /**\n * Get highlighted items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"choices\", {\n /**\n * Get choices from store\n */\n get: function () {\n return this.state.choices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeChoices\", {\n /**\n * Get active choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"selectableChoices\", {\n /**\n * Get selectable choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"searchableChoices\", {\n /**\n * Get choices that can be searched (excluding placeholders)\n */\n get: function () {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"placeholderChoice\", {\n /**\n * Get placeholder choice from store\n */\n get: function () {\n return __spreadArray([], this.choices, true).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"groups\", {\n /**\n * Get groups from store\n */\n get: function () {\n return this.state.groups;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeGroups\", {\n /**\n * Get active groups from store\n */\n get: function () {\n var _a = this,\n groups = _a.groups,\n choices = _a.choices;\n\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get loading state from store\n */\n\n Store.prototype.isLoading = function () {\n return this.state.loading;\n };\n /**\n * Get single choice by it's ID\n */\n\n\n Store.prototype.getChoiceById = function (id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n };\n /**\n * Get group by group id\n */\n\n\n Store.prototype.getGroupById = function (id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n\n return Store;\n}();\n\nexports[\"default\"] = Store;\n\n/***/ }),\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar templates = {\n containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) {\n var containerOuter = _a.classNames.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n\n if (dir) {\n div.dir = dir;\n }\n\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n\n if (labelId) {\n div.setAttribute('aria-labeledby', labelId);\n }\n\n return div;\n },\n containerInner: function (_a) {\n var containerInner = _a.classNames.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n itemList: function (_a, isSelectOneElement) {\n var _b = _a.classNames,\n list = _b.list,\n listSingle = _b.listSingle,\n listItems = _b.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n placeholder: function (_a, value) {\n var _b;\n\n var allowHTML = _a.allowHTML,\n placeholder = _a.classNames.placeholder;\n return Object.assign(document.createElement('div'), (_b = {\n className: placeholder\n }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b));\n },\n item: function (_a, _b, removeItemButton) {\n var _c, _d;\n\n var allowHTML = _a.allowHTML,\n _e = _a.classNames,\n item = _e.item,\n button = _e.button,\n highlightedState = _e.highlightedState,\n itemSelectable = _e.itemSelectable,\n placeholder = _e.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n customProperties = _b.customProperties,\n active = _b.active,\n disabled = _b.disabled,\n highlighted = _b.highlighted,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n className: item\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c));\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), (_d = {\n type: 'button',\n className: button\n }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d));\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n\n return div;\n },\n choiceList: function (_a, isSelectOneElement) {\n var list = _a.classNames.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n\n div.setAttribute('role', 'listbox');\n return div;\n },\n choiceGroup: function (_a, _b) {\n var _c;\n\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n group = _d.group,\n groupHeading = _d.groupHeading,\n itemDisabled = _d.itemDisabled;\n var id = _b.id,\n value = _b.value,\n disabled = _b.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n div.appendChild(Object.assign(document.createElement('div'), (_c = {\n className: groupHeading\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c)));\n return div;\n },\n choice: function (_a, _b, selectText) {\n var _c;\n\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n item = _d.item,\n itemChoice = _d.itemChoice,\n itemSelectable = _d.itemSelectable,\n selectedState = _d.selectedState,\n itemDisabled = _d.itemDisabled,\n placeholder = _d.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n groupId = _b.groupId,\n elementId = _b.elementId,\n isDisabled = _b.disabled,\n isSelected = _b.selected,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n id: elementId\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = \"\".concat(item, \" \").concat(itemChoice), _c));\n\n if (isSelected) {\n div.classList.add(selectedState);\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n\n return div;\n },\n input: function (_a, placeholderValue) {\n var _b = _a.classNames,\n input = _b.input,\n inputCloned = _b.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'search',\n name: 'search_terms',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n dropdown: function (_a) {\n var _b = _a.classNames,\n list = _b.list,\n listDropdown = _b.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n notice: function (_a, innerText, type) {\n var _b;\n\n var allowHTML = _a.allowHTML,\n _c = _a.classNames,\n item = _c.item,\n itemChoice = _c.itemChoice,\n noResults = _c.noResults,\n noChoices = _c.noChoices;\n\n if (type === void 0) {\n type = '';\n }\n\n var classes = [item, itemChoice];\n\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n\n return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b));\n },\n option: function (_a) {\n var label = _a.label,\n value = _a.value,\n customProperties = _a.customProperties,\n active = _a.active,\n disabled = _a.disabled;\n var opt = new Option(label, value, false, active);\n\n if (customProperties) {\n opt.dataset.customProperties = \"\".concat(customProperties);\n }\n\n opt.disabled = !!disabled;\n return opt;\n }\n};\nexports[\"default\"] = templates;\n\n/***/ }),\n\n/***/ 996:\n/***/ (function(module) {\n\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n\n/***/ 221:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Fuse; }\n/* harmony export */ });\n/**\n * Fuse.js v6.5.3 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2021 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n }\n\n return { path, id, weight, src }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array<String>\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array<Object>\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n // console.log(key)\n let value = this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (!isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {}\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array<Object>\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.5.3';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\n\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"__DO_NOT_USE__ActionTypes\": function() { return /* binding */ ActionTypes; },\n \"applyMiddleware\": function() { return /* binding */ applyMiddleware; },\n \"bindActionCreators\": function() { return /* binding */ bindActionCreators; },\n \"combineReducers\": function() { return /* binding */ combineReducers; },\n \"compose\": function() { return /* binding */ compose; },\n \"createStore\": function() { return /* binding */ createStore; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (false) {}\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error( true ? formatProdErrorMessage(0) : 0);\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(1) : 0);\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(2) : 0);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(3) : 0);\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error( true ? formatProdErrorMessage(4) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(5) : 0);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(6) : 0);\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error( true ? formatProdErrorMessage(7) : 0);\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(8) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(9) : 0);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(10) : 0);\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error( true ? formatProdErrorMessage(11) : 0);\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(12) : 0);\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(13) : 0);\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) { var warningMessage; }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error( true ? formatProdErrorMessage(14) : 0);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error( true ? formatProdErrorMessage(16) : 0);\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error( true ? formatProdErrorMessage(15) : 0);\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2(_objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373);\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(883);\n/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(789);\n/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(686);\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default()));\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","@use 'sass:color';\n@use 'variables' as *;\n@use 'mixins' as *;\n@use '~choices.js/src/styles/base';\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n align-self: flex-start;\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\n$choices-selector: 'choices' !default;\n$choices-font-size-lg: 16px !default;\n$choices-font-size-md: 15px !default;\n$choices-font-size-sm: 12px !default;\n$choices-border-radius: 4px !default;\n$choices-border-radius-item: 2px !default;\n$choices-bg-color: #fff !default;\n$choices-bg-color-disabled: #eaeaea !default;\n$choices-bg-color-dropdown: #fff !default;\n$choices-text-color: #333 !default;\n$choices-keyline-color: #d7dbe0 !default;\n$choices-primary-color: rgba(105, 118, 135, 10%) !default;\n$choices-disabled-color: #eaeaea !default;\n$choices-highlight-color: $choices-primary-color !default;\n$choices-button-dimension: 10px !default;\n$choices-button-offset: 12px !default;\n$choices-icon-cross: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEuMjc1MzIgMC4zOTEzNzFDMS4wMzEyNCAwLjE0NzI5NCAwLjYzNTUxIDAuMTQ3Mjk0IDAuMzkxNDMyIDAuMzkxMzcxQzAuMTQ3MzU1IDAuNjM1NDQ5IDAuMTQ3MzU1IDEuMDMxMTggMC4zOTE0MzIgMS4yNzUyNUw0LjExNjE2IDQuOTk5OThMMC4zOTE0MzIgOC43MjQ3QzAuMTQ3MzU1IDguOTY4NzggMC4xNDczNTUgOS4zNjQ1MSAwLjM5MTQzMiA5LjYwODU5QzAuNjM1NTEgOS44NTI2NyAxLjAzMTI0IDkuODUyNjcgMS4yNzUzMiA5LjYwODU5TDUuMDAwMDQgNS44ODM4Nkw4LjcyNDc3IDkuNjA4NTlDOC45Njg4NCA5Ljg1MjY3IDkuMzY0NTcgOS44NTI2NyA5LjYwODY1IDkuNjA4NTlDOS44NTI3MyA5LjM2NDUxIDkuODUyNzMgOC45Njg3OCA5LjYwODY1IDguNzI0N0w1Ljg4MzkyIDQuOTk5OThMOS42MDg2NSAxLjI3NTI1QzkuODUyNzMgMS4wMzExOCA5Ljg1MjczIDAuNjM1NDQ5IDkuNjA4NjUgMC4zOTEzNzFDOS4zNjQ1NyAwLjE0NzI5NCA4Ljk2ODg0IDAuMTQ3Mjk0IDguNzI0NzcgMC4zOTEzNzFMNS4wMDAwNCA0LjExNjFMMS4yNzUzMiAwLjM5MTM3MVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=') !default;\n$choices-icon-cross-inverse: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNDY5NjcgNi40Njk2N0M2Ljc2MjU2IDYuMTc2NzggNy4yMzc0NCA2LjE3Njc4IDcuNTMwMzMgNi40Njk2N0wxMCA4LjkzOTM0TDEyLjQ2OTcgNi40Njk2N0MxMi43NjI2IDYuMTc2NzggMTMuMjM3NCA2LjE3Njc4IDEzLjUzMDMgNi40Njk2N0MxMy44MjMyIDYuNzYyNTYgMTMuODIzMiA3LjIzNzQ0IDEzLjUzMDMgNy41MzAzM0wxMS4wNjA3IDEwTDEzLjUzMDMgMTIuNDY5N0MxMy44MjMyIDEyLjc2MjYgMTMuODIzMiAxMy4yMzc0IDEzLjUzMDMgMTMuNTMwM0MxMy4yMzc0IDEzLjgyMzIgMTIuNzYyNiAxMy44MjMyIDEyLjQ2OTcgMTMuNTMwM0wxMCAxMS4wNjA3TDcuNTMwMzMgMTMuNTMwM0M3LjIzNzQ0IDEzLjgyMzIgNi43NjI1NiAxMy44MjMyIDYuNDY5NjcgMTMuNTMwM0M2LjE3Njc4IDEzLjIzNzQgNi4xNzY3OCAxMi43NjI2IDYuNDY5NjcgMTIuNDY5N0w4LjkzOTM0IDEwTDYuNDY5NjcgNy41MzAzM0M2LjE3Njc4IDcuMjM3NDQgNi4xNzY3OCA2Ljc2MjU2IDYuNDY5NjcgNi40Njk2N1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMC4yNUM0LjYxNTIyIDAuMjUgMC4yNSA0LjYxNTIyIDAuMjUgMTBDMC4yNSAxNS4zODQ4IDQuNjE1MjIgMTkuNzUgMTAgMTkuNzVDMTUuMzg0OCAxOS43NSAxOS43NSAxNS4zODQ4IDE5Ljc1IDEwQzE5Ljc1IDQuNjE1MjIgMTUuMzg0OCAwLjI1IDEwIDAuMjVaTTEuNzUgMTBDMS43NSA1LjQ0MzY1IDUuNDQzNjUgMS43NSAxMCAxLjc1QzE0LjU1NjMgMS43NSAxOC4yNSA1LjQ0MzY1IDE4LjI1IDEwQzE4LjI1IDE0LjU1NjMgMTQuNTU2MyAxOC4yNSAxMCAxOC4yNUM1LjQ0MzY1IDE4LjI1IDEuNzUgMTQuNTU2MyAxLjc1IDEwWiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==') !default;\n$choices-z-index: 1;\n$choices-chevron-bg: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEyIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMC40Njk2NyAwLjQ2OTY3QzAuNzYyNTYzIDAuMTc2Nzc3IDEuMjM3NDQgMC4xNzY3NzcgMS41MzAzMyAwLjQ2OTY3TDYgNC45MzkzNEwxMC40Njk3IDAuNDY5NjcxQzEwLjc2MjYgMC4xNzY3NzggMTEuMjM3NCAwLjE3Njc3OCAxMS41MzAzIDAuNDY5NjcxQzExLjgyMzIgMC43NjI1NjQgMTEuODIzMiAxLjIzNzQ0IDExLjUzMDMgMS41MzAzM0w2LjUzMDMzIDYuNTMwMzNDNi4yMzc0NCA2LjgyMzIyIDUuNzYyNTYgNi44MjMyMiA1LjQ2OTY3IDYuNTMwMzNMMC40Njk2NyAxLjUzMDMzQzAuMTc2Nzc3IDEuMjM3NDQgMC4xNzY3NzcgMC43NjI1NjMgMC40Njk2NyAwLjQ2OTY3WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==');\n$choices-search-icon: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjUgMC4yNUMzLjk0MzY1IDAuMjUgMC4yNSAzLjk0MzY1IDAuMjUgOC41QzAuMjUgMTMuMDU2MyAzLjk0MzY1IDE2Ljc1IDguNSAxNi43NUMxMC41MjU1IDE2Ljc1IDEyLjM4MDUgMTYuMDIwMSAxMy44MTYzIDE0LjgwODlDMTMuODUyNiAxNC44ODkyIDEzLjkwMzcgMTQuOTY0NCAxMy45Njk3IDE1LjAzMDNMMTYuNDY5NyAxNy41MzAzQzE2Ljc2MjYgMTcuODIzMiAxNy4yMzc0IDE3LjgyMzIgMTcuNTMwMyAxNy41MzAzQzE3LjgyMzIgMTcuMjM3NCAxNy44MjMyIDE2Ljc2MjYgMTcuNTMwMyAxNi40Njk3TDE1LjAzMDMgMTMuOTY5N0MxNC45NjQ0IDEzLjkwMzcgMTQuODg5MiAxMy44NTI2IDE0LjgwODkgMTMuODE2M0MxNi4wMjAxIDEyLjM4MDUgMTYuNzUgMTAuNTI1NSAxNi43NSA4LjVDMTYuNzUgMy45NDM2NSAxMy4wNTYzIDAuMjUgOC41IDAuMjVaTTEuNzUgOC41QzEuNzUgNC43NzIwOCA0Ljc3MjA4IDEuNzUgOC41IDEuNzVDMTIuMjI3OSAxLjc1IDE1LjI1IDQuNzcyMDggMTUuMjUgOC41QzE1LjI1IDEyLjIyNzkgMTIuMjI3OSAxNS4yNSA4LjUgMTUuMjVDNC43NzIwOCAxNS4yNSAxLjc1IDEyLjIyNzkgMS43NSA4LjVaIiBmaWxsPSIjNjk3Njg3Ii8+Cjwvc3ZnPgo=');\n\n.#{$choices-selector} {\n position: relative;\n overflow: hidden;\n font-size: $choices-font-size-lg;\n\n &.is-focused,\n &:focus {\n outline: none;\n box-shadow: 0 1px 4px 0 #101d3033;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.is-open {\n overflow: visible;\n }\n\n &.is-disabled {\n .#{$choices-selector}__inner,\n .#{$choices-selector}__input {\n background-color: $choices-bg-color-disabled;\n cursor: not-allowed;\n user-select: none;\n }\n .#{$choices-selector}__item {\n cursor: not-allowed;\n }\n }\n\n [hidden] {\n display: none !important;\n }\n}\n\n.#{$choices-selector}[data-type*='select-one'] {\n cursor: pointer;\n\n .#{$choices-selector}__list--dropdown .#{$choices-selector}__list {\n padding-top: 0.5rem;\n }\n\n .#{$choices-selector}__input {\n display: block;\n width: 100%;\n padding: 12px 16px 12px 40px;\n border-bottom: 1px solid $choices-keyline-color;\n margin: 0;\n color: #000;\n background: #fff $choices-search-icon no-repeat left 12px center;\n\n &::before {\n content: 'abc';\n }\n }\n .#{$choices-selector}__button {\n background-image: $choices-icon-cross-inverse;\n padding: 0;\n background-size: 20px;\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -10px;\n margin-right: 35px;\n height: 20px;\n width: 20px;\n\n &:focus {\n box-shadow: 0 0 0 2px $choices-highlight-color;\n }\n }\n .#{$choices-selector}__item[data-value=''] .#{$choices-selector}__button {\n display: none;\n }\n\n .#{$choices-selector}__item {\n @include cat-ellipsis;\n }\n\n &[dir='rtl'] {\n &::after {\n left: 11.5px;\n right: auto;\n }\n .#{$choices-selector}__button {\n right: auto;\n left: 0;\n margin-left: 35px;\n margin-right: 0;\n }\n }\n}\n\n.#{$choices-selector}[data-type*='select-multiple'],\n.#{$choices-selector}[data-type*='text'] {\n .#{$choices-selector}__inner {\n cursor: text;\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n padding: 4px 60px 4px 4px;\n gap: 4px;\n }\n\n .#{$choices-selector}__item {\n cat-checkbox {\n @include cat-ellipsis;\n margin: 0;\n\n &::part(label) {\n @include cat-ellipsis;\n }\n }\n }\n\n .#{$choices-selector}__input {\n min-width: 1ch;\n width: 1ch;\n }\n\n .#{$choices-selector}__button {\n position: relative;\n display: inline-block;\n padding-left: $choices-button-offset * 2;\n background-image: $choices-icon-cross;\n background-size: $choices-button-dimension;\n width: $choices-button-dimension;\n line-height: 1;\n opacity: 0.75;\n border-radius: 0;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n }\n\n cat-button {\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -20px;\n margin-right: 25px;\n\n &::part(button) {\n box-shadow: unset;\n background-color: transparent;\n }\n }\n\n &[dir='rtl'] {\n .#{$choices-selector}__inner {\n padding-right: 4px;\n padding-left: 60px;\n }\n\n cat-button {\n right: auto;\n left: 0;\n margin-left: 25px;\n margin-right: 0;\n }\n }\n}\n\n.#{$choices-selector}[data-type*='select-one'],\n.#{$choices-selector}[data-type*='select-multiple'] {\n &::after {\n content: '';\n width: 12px;\n height: 6.5px;\n background-image: $choices-chevron-bg;\n position: absolute;\n right: 11.5px;\n top: 50%;\n margin-top: -2.5px;\n pointer-events: none;\n transition: transform cat-token('time.transition.m') linear;\n }\n\n &[dir='rtl'] {\n &::after {\n left: 11.5px;\n right: auto;\n }\n }\n\n &.is-open::after {\n transform: rotate(180deg);\n transition: transform cat-token('time.transition.m') linear;\n }\n}\n\n.#{$choices-selector}__inner {\n display: inline-block;\n vertical-align: top;\n width: 100%;\n background-color: $choices-bg-color;\n border: 1px solid $choices-keyline-color;\n border-radius: $choices-border-radius;\n font-size: $choices-font-size-md;\n min-height: 40px;\n overflow: hidden;\n\n .is-open & {\n border-radius: $choices-border-radius $choices-border-radius 0 0;\n }\n\n .is-flipped.is-open & {\n border-radius: 0 0 $choices-border-radius $choices-border-radius;\n }\n}\n\n.#{$choices-selector}__list {\n margin: 0;\n padding-left: 0;\n list-style: none;\n\n &[aria-expanded] {\n @extend %choices-dropdown;\n }\n}\n\n.#{$choices-selector}__list--single {\n display: flex;\n padding: 9px 50px 9px 12px;\n width: 100%;\n\n [dir='rtl'] & {\n padding-right: 12px;\n padding-left: 50px;\n }\n .#{$choices-selector}__item {\n width: 100%;\n }\n}\n\n.#{$choices-selector}__list--multiple {\n display: contents;\n\n .#{$choices-selector}__item {\n @include cat-body('m', 600);\n\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border-radius: $choices-border-radius-item;\n padding: 5px 8px 5px 4px;\n background-color: $choices-primary-color;\n color: #000;\n word-break: break-all;\n box-sizing: border-box;\n\n &[data-deletable] {\n padding-right: 5px;\n }\n\n [dir='rtl'] & {\n margin-right: 0;\n margin-left: 3.75px;\n }\n\n &.is-highlighted {\n background-color: color.adjust($choices-primary-color, $lightness: -5%);\n }\n\n .is-disabled & {\n background-color: color.adjust($choices-disabled-color, $lightness: -25%);\n }\n }\n}\n\n%choices-dropdown {\n visibility: hidden;\n z-index: $choices-z-index;\n position: absolute;\n width: 100%;\n background-color: $choices-bg-color-dropdown;\n border: 1px solid $choices-keyline-color;\n top: 100%;\n margin-top: -1px;\n overflow: hidden;\n word-break: break-all;\n will-change: visibility;\n box-shadow: 0 2px 4px 0 #101d3033;\n border-bottom-left-radius: $choices-border-radius;\n border-bottom-right-radius: $choices-border-radius;\n\n &.is-active {\n visibility: visible;\n }\n\n .is-flipped & {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: -1px;\n border-radius: 0.25rem 0.25rem 0 0;\n }\n .#{$choices-selector}__list {\n position: relative;\n max-height: 300px;\n padding: 8px 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n will-change: scroll-position;\n }\n .#{$choices-selector}__item {\n @include cat-body('m', 500);\n position: relative;\n padding: 10px;\n min-height: 40px;\n\n [dir='rtl'] & {\n text-align: right;\n }\n }\n .#{$choices-selector}__item--selectable {\n @media (min-width: 640px) {\n &[data-select-text]:not([data-select-text='']) {\n padding-right: 100px;\n\n [dir='rtl'] & {\n padding-right: 10px;\n }\n }\n\n &::after {\n content: attr(data-select-text);\n font-size: $choices-font-size-sm;\n opacity: 0;\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n [dir='rtl'] & {\n text-align: right;\n padding-left: 100px;\n\n &::after {\n right: auto;\n left: 10px;\n }\n }\n }\n\n &.is-highlighted {\n background-color: rgba(105, 118, 135, 5%);\n\n &::after {\n opacity: 0.5;\n }\n }\n }\n}\n\n.#{$choices-selector}__list--dropdown {\n @extend %choices-dropdown;\n}\n\n.#{$choices-selector}__item {\n cursor: default;\n border-left: 3px solid transparent;\n transition: cat-token('time.transition.m') linear;\n}\n\n.#{$choices-selector}__item--selectable {\n cursor: pointer;\n}\n\n.#{$choices-selector}__item--selected {\n border-color: cat-token('color.theme.primary.bg');\n}\n\n.#{$choices-selector}__item--disabled {\n cursor: not-allowed;\n user-select: none;\n opacity: 0.5;\n}\n\n.#{$choices-selector}__heading {\n font-weight: 600;\n font-size: $choices-font-size-sm;\n padding: 10px;\n border-bottom: 1px solid color.adjust($choices-keyline-color, $lightness: 10%);\n color: color.adjust(#333, $lightness: 30%);\n}\n\n.#{$choices-selector}__button {\n text-indent: -9999px;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.#{$choices-selector}__input {\n display: inline-block;\n vertical-align: baseline;\n background-color: cat-token('color.ui.background.body');\n font-size: $choices-font-size-md;\n font-family: cat-body-font-family();\n border: 0;\n border-radius: 0;\n max-width: 100%;\n padding: 7px 0 4px 2px;\n\n &:focus {\n outline: 0;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n [dir='rtl'] & {\n padding-right: 2px;\n padding-left: 0;\n }\n}\n\n.#{$choices-selector}__placeholder {\n opacity: 0.5;\n}\n\n.#{$choices-selector}__group {\n padding: 8px 16px;\n height: 34px;\n\n .#{$choices-selector}__heading {\n font-style: normal;\n font-weight: 700;\n font-size: 14px;\n line-height: 18px;\n padding: unset;\n border-bottom: 0;\n color: #697687;\n }\n\n &:not(:first-child) {\n border-top: 1px solid color.adjust($choices-keyline-color, $lightness: 10%);\n margin-top: 8px;\n }\n}\n\n.d-flex {\n display: flex;\n}\n\n.align-items-center {\n align-items: center;\n}\n\n.choices-option-icon {\n width: 20px;\n aspect-ratio: 1;\n border-radius: cat-border-radius('s');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch, Listen } from '@stencil/core';\nimport Choices, { Choice, ClassNames, Item, Options } from 'choices.js';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nlet nextUniqueId = 0;\n\nconst getOptionTemplate = (data: Item): string => {\n if (data.customProperties?.imageUrl) {\n return `\n <div class=\"d-flex align-items-center\">\n <img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />\n ${data.label}\n </div>\n `;\n }\n return `<cat-checkbox label=\"${data.label}\" checked=\"${data.selected}\"></cat-checkbox>`;\n};\n\n/**\n * A single option in the select.\n */\nexport type CatSelectItem = Pick<Choice, 'label' | 'value' | 'customProperties'>;\n\n/**\n * Select lets user choose one option from an options menu. Consider using\n * select when you have 6 or more options. Select component supports any content\n * type.\n *\n * @slot hint - Optional hint element to be displayed with the select.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-select',\n styleUrl: 'cat-select.scss',\n shadow: true\n})\nexport class CatSelect {\n private readonly i18n = CatI18nRegistry.getInstance();\n private readonly id = `cat-select-${nextUniqueId++}`;\n private resetItemsOnNextValueChange = true;\n\n private choice?: Choices;\n private choicesElement?: HTMLElement;\n private choiceInner?: Element;\n private choiceDropdown?: Element;\n private selectElement?: HTMLSelectElement;\n private removeElement?: HTMLCatButtonElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * The label for the select.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * The available options for the input.\n */\n @Prop() items: CatSelectItem[] = [];\n\n /**\n * The value of the select.\n */\n @Prop({ mutable: true }) value?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n\n /**\n * Disable the select.\n */\n @Prop() disabled = false;\n\n /**\n * Enable multiple selection.\n */\n @Prop() multiple = false;\n\n /**\n * The placeholder for the select.\n */\n @Prop() placeholder = '';\n\n /**\n * Whether the dropdown should appear above `(top)` or below `(bottom)` the\n * input. By default, if there is not enough space within the window the\n * dropdown will appear above the input, otherwise below it.\n */\n @Prop() position: 'auto' | 'top' | 'bottom' = 'auto';\n\n /**\n * Enable search for the select.\n */\n @Prop() search = false;\n\n /**\n * Optional hint text(s) to be displayed with the select.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the search is triggered.\n */\n @Event() catSearch!: EventEmitter;\n\n /**\n * Emitted when scrolled to the bottom.\n */\n @Event() catScrolledBottom!: EventEmitter;\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n @Watch('items')\n setChoicesHandler(items: CatSelectItem[]) {\n const isSelected = (item: CatSelectItem) => this.value?.includes(item.value);\n const choices = items.map(item => ({ ...item, selected: isSelected(item) }));\n this.choice?.setChoices(choices, 'value', 'label', true);\n\n const vItems = this.choice?.getValue() || [];\n const vItemsArray = (Array.isArray(vItems) ? vItems : [vItems]) as Item[];\n const value = this.value || [];\n const vItemValues = [...value];\n\n // remove duplicate items\n this.choice?.unhighlightAll();\n vItemsArray.forEach(vItem => {\n const index = vItemValues.indexOf(vItem.value);\n if (index > -1) {\n vItemValues.splice(index, 1);\n } else {\n vItem.choiceId = -1; // disconnect item from choice\n this.choice?.highlightItem(vItem, false);\n }\n });\n this.choice?.removeHighlightedItems(false);\n }\n\n @Watch('value')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setValueHandler(value?: any) {\n if (this.resetItemsOnNextValueChange) {\n this.choice?.removeActiveItems(-1);\n }\n this.resetItemsOnNextValueChange = true;\n this.choice?.setChoiceByValue(value);\n this.multiple && this.updateRemoveItemButtonVisibility();\n }\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on select', this);\n }\n }\n\n componentDidLoad(): void {\n this.init();\n const attachedInternals: ElementInternals | undefined = this.hostElement.attachInternals?.();\n if (attachedInternals) {\n const root = attachedInternals.shadowRoot;\n this.choicesElement = root?.querySelector('.choices') || undefined;\n this.choiceInner = root?.querySelector('.choices__inner') || undefined;\n this.choiceDropdown = root?.querySelector('.choices__list--dropdown')?.firstElementChild || undefined;\n }\n this.choicesElement?.addEventListener('click', this.resetFocus.bind(this));\n this.choiceInner?.addEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.addEventListener('hideDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.addEventListener('showDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.addEventListener('removeItem', this.resetFocus.bind(this));\n this.selectElement?.addEventListener('change', this.onChange.bind(this));\n this.selectElement?.addEventListener('search', this.onSearch.bind(this));\n this.choiceDropdown?.addEventListener('scroll', this.onScrolledBottom.bind(this));\n if (this.multiple) {\n this.selectElement?.addEventListener('choice', this.onChoice.bind(this));\n this.createRemoveItemButton();\n }\n }\n\n disconnectedCallback(): void {\n this.choice?.destroy();\n this.choice = undefined;\n this.choicesElement?.removeEventListener('click', this.resetFocus.bind(this));\n this.choiceInner?.removeEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.removeEventListener('hideDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.removeEventListener('showDropdown', this.showMultipleFocus.bind(this));\n this.selectElement?.removeEventListener('removeItem', this.resetFocus.bind(this));\n this.selectElement?.removeEventListener('change', this.onChange.bind(this));\n this.selectElement?.removeEventListener('search', this.onSearch.bind(this));\n this.choiceDropdown?.removeEventListener('scroll', this.onScrolledBottom.bind(this));\n if (this.multiple) {\n this.removeElement?.removeEventListener('choice', this.onChoice.bind(this));\n }\n }\n\n @Listen('blur', { capture: true })\n onBlur(event: FocusEvent): void {\n this.catBlur.emit(event);\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n ({this.i18n.t('input.optional')})\n </span>\n )}\n </span>\n </label>\n )}\n <select\n id={this.id}\n ref={el => (this.selectElement = el)}\n multiple={this.multiple}\n disabled={this.disabled}\n ></select>\n {this.hintSection}\n </Host>\n );\n }\n\n private init() {\n const component = this; // eslint-disable-line @typescript-eslint/no-this-alias\n const removeItemText = (value: string) => this.i18n.t('select.removeItem', { value });\n const config = {\n allowHTML: true,\n removeItemButton: true,\n duplicateItemsAllowed: false,\n delimiter: '',\n paste: false,\n searchEnabled: this.search,\n searchChoices: false,\n position: this.position,\n resetScrollPosition: false,\n placeholder: !!this.placeholder,\n placeholderValue: this.placeholder || '',\n searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),\n renderSelectedChoices: 'always' as 'auto' | 'always',\n loadingText: this.i18n.t('select.loading'),\n noResultsText: this.i18n.t('select.noResults'),\n noChoicesText: this.i18n.t('select.noChoices'),\n itemSelectText: this.i18n.t('select.selectItem'),\n addItemText: (value: string) => this.i18n.t('select.addItem', { value }),\n maxItemText: (maxItemCount: number) => this.i18n.t('select.maxItem', { maxItemCount }),\n uniqueItemText: this.i18n.t('select.uniqueItem'),\n customAddItemText: this.i18n.t('select.customAddItem'),\n callbackOnInit: function () {\n const choice = this as unknown as Choices;\n choice.setChoices(component.items, 'value', 'label', true);\n choice.setChoiceByValue(component.value);\n }\n };\n\n const configSingle = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />`\n : '';\n return strToEl(\n `\n <div class=\"${classNames.item} ${\n data.highlighted ? classNames.highlightedState : classNames.itemSelectable\n } ${data.placeholder ? classNames.placeholder : ''}\" data-item data-id=\"${data.id}\" data-value=\"${\n data.value\n }\" ${data.active ? 'aria-selected=\"true\"' : ''} ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${template}</span> ${data.label}\n <button type=\"button\"\n class=\"${classNames.button}\"\n aria-label=\"${removeItemText(data.label)}\"\n data-button>${removeItemText(data.label)}</button>\n </div>\n `\n );\n }\n };\n }\n };\n\n const configMultiple = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n const itemSelectText = config.itemSelectText;\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img class=\"choices-option-icon\" src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem;\" />`\n : '';\n return strToEl(\n `<div class=\"\n ${classNames.item}\n ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\n ${data.placeholder ? classNames.placeholder : ''}\"\n data-item data-id=\"${data.id}\" data-value=\"${data.value}\"\n ${data.active ? 'aria-selected=\"true\"' : ''}\n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${template}\n ${data.label}\n <button type=\"button\"\n class=\"${classNames.button}\"\n aria-label=\"${removeItemText(data.label)}\"\n data-button>${removeItemText(data.label)}</button>\n </div>`\n );\n },\n choice: function ({ classNames }: { classNames: ClassNames }, data: Item) {\n const template = getOptionTemplate(data);\n const className = `${String(classNames.item)} ${String(classNames.itemChoice)}\n ${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}\n ${data.selected ? 'choices__item--selected' : ''}`;\n return strToEl(\n `<div class=\"${className}\"\n data-select-text=\"${itemSelectText}\"\n data-choice data-id=\"${String(data.id)}\" data-value=\"${String(data.value)}\"\n ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'}\n ${data.groupId && data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"'}>\n ${template}\n </div>`\n );\n }\n };\n }\n };\n\n const settings: Partial<Options> = this.multiple\n ? { ...config, ...configMultiple }\n : { ...config, ...configSingle };\n this.choice = new Choices(this.selectElement, settings);\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onChange() {\n this.resetItemsOnNextValueChange = false;\n this.value = this.choice?.getValue(true);\n this.catChange.emit(this.value);\n }\n\n private showMultipleFocus() {\n if (this.multiple && this.isFocused() && !this.choicesElement?.classList.contains('is-focused')) {\n this.choicesElement?.classList.add('is-focused');\n }\n }\n\n private resetFocus() {\n if (!this.isFocused()) {\n if (!this.choicesElement?.hasAttribute('tabindex')) {\n this.choicesElement?.setAttribute('tabindex', '0');\n }\n this.choicesElement?.focus();\n }\n }\n\n private isFocused() {\n return document.activeElement === this.hostElement;\n }\n\n private onChoice(event: Event) {\n const customEvent = event as CustomEvent<{ choice: Choice }>;\n const choice = customEvent.detail.choice;\n if (choice.selected) {\n this.choice?.removeActiveItemsByValue(choice.value);\n this.onChange();\n }\n }\n\n private onSearch(event: Event) {\n const customEvent = event as CustomEvent<{ value: string }>;\n this.catSearch.emit(customEvent.detail.value);\n }\n\n private onScrolledBottom() {\n const scrolledBottom =\n this.choiceDropdown?.scrollHeight ===\n (this.choiceDropdown?.scrollTop || 0) + (this.choiceDropdown?.clientHeight || 0);\n if (scrolledBottom) {\n this.catScrolledBottom.emit();\n }\n }\n\n private showDropdownHandler() {\n !this.disabled && this.choice?.showDropdown();\n }\n\n private createRemoveItemButton() {\n this.removeElement = document.createElement('cat-button') as HTMLCatButtonElement;\n this.removeElement.icon = 'cross-circle-outlined';\n this.removeElement.iconOnly = true;\n this.removeElement.a11yLabel = this.i18n.t('select.removeItem');\n this.updateRemoveItemButtonVisibility();\n this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));\n this.choiceInner?.appendChild(this.removeElement);\n }\n\n private updateRemoveItemButtonVisibility() {\n if (this.value?.length) {\n this.removeElement?.removeAttribute('hidden');\n } else {\n this.removeElement?.setAttribute('hidden', 'true');\n }\n }\n\n private onRemoveItemButtonClick(event: Event) {\n event.stopPropagation();\n this.choice?.removeActiveItems(-1);\n this.onChange();\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$skeleton-sizes: (\n 'xl': 3.5rem,\n 'l': 3rem,\n 'm': 2.5rem,\n 's': 2rem,\n 'xs': 1.5rem\n);\n\n:host {\n /**\n * @prop --background: The background color of the skeleton.\n * @prop --highlight: The highlight color of the skeleton.\n * @prop --speed: The animation speed.\n */\n display: flex;\n flex-direction: column;\n position: relative;\n\n --background: #{cat-token('color.ui.background.skeleton')};\n --highlight: #{cat-token('color.ui.background.skeletonHighlight')};\n --speed: 2s;\n}\n\n:host([variant='square']),\n:host([variant='circle']) {\n display: inline-flex;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([variant='head']) {\n margin-bottom: $cat-head-margin-bottom;\n}\n\n:host([variant='body']) {\n margin-bottom: $cat-body-margin-bottom;\n}\n\n.skeleton {\n display: block;\n border-radius: cat-border-radius('m');\n background: var(--background);\n}\n\n.skeleton-circle {\n border-radius: 10rem;\n}\n\n// ----- size\n\n@mixin size($size, $lvl) {\n $-text-offset: 4px;\n .skeleton-#{$size} {\n &.skeleton-rectangle {\n width: var(--width, 100%);\n height: var(--height, map.get($skeleton-sizes, $size));\n }\n\n &.skeleton-square,\n &.skeleton-circle {\n width: var(--width, map.get($skeleton-sizes, $size));\n height: var(--height, map.get($skeleton-sizes, $size));\n }\n\n &.skeleton-head,\n &.skeleton-body {\n width: var(--width, var(--line-width, 100%));\n }\n\n &.skeleton-head {\n height: calc(#{cat-head-font-size($lvl)} - #{$-text-offset});\n margin: calc((#{cat-head-line-height($lvl)} - #{cat-head-font-size($lvl)} + #{$-text-offset}) * 0.5) 0;\n }\n\n &.skeleton-body {\n height: calc(#{cat-body-font-size($size)} - #{$-text-offset});\n margin: calc((#{cat-body-line-height($size)} - #{cat-body-font-size($size)} + #{$-text-offset}) * 0.5) 0;\n }\n }\n}\n\n@include size('xs', 5);\n@include size('s', 4);\n@include size('m', 3);\n@include size('l', 2);\n@include size('xl', 1);\n\n// ----- animation\n\n.skeleton-sheen {\n background: linear-gradient(90deg, var(--background) 33%, var(--highlight) 50%, var(--background) 66%)\n var(--background);\n background-size: 300% 100%;\n animation: sheen var(--speed) ease-in-out infinite;\n}\n\n.skeleton-pulse {\n position: relative;\n overflow: hidden;\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: var(--highlight);\n animation: var(--speed) ease-in-out 0.5s infinite normal none running pulse;\n opacity: 0;\n }\n}\n\n@keyframes sheen {\n 0% {\n background-position: right;\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: 1;\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * Skeletons are used to show where content will eventually be drawn.\n */\n@Component({\n tag: 'cat-skeleton',\n styleUrl: 'cat-skeleton.scss',\n shadow: true\n})\nexport class CatSkeleton {\n /**\n * The animation style of the skeleton.\n */\n @Prop() effect: 'plain' | 'sheen' | 'pulse' = 'sheen';\n\n /**\n * The rendering style of the skeleton.\n */\n @Prop() variant: 'rectangle' | 'square' | 'circle' | 'head' | 'body' = 'rectangle';\n\n /**\n * The size of the skeleton. If the variant is set to \"head\", the size values\n * \"xs\" to \"xl\" translate to the head levels `h1` to `h5`.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm';\n\n /**\n * The number of text lines to be rendered for \"head\" and \"body\" variants.\n * Defaults to 1 for \"head\" and 3 for \"body\". Will be ignored for other\n * variants.\n */\n @Prop() lines?: number;\n\n render() {\n return (\n <Host>\n {Array.from(Array(this.count)).map(() => (\n <div\n style={this.style}\n class={{\n skeleton: true,\n [`skeleton-${this.effect}`]: Boolean(this.effect),\n [`skeleton-${this.variant}`]: Boolean(this.variant),\n [`skeleton-${this.size}`]: Boolean(this.size)\n }}\n ></div>\n ))}\n </Host>\n );\n }\n\n private get count() {\n switch (this.variant) {\n case 'head':\n return Math.max(1, this.lines || 1);\n case 'body':\n return Math.max(1, this.lines || 3);\n default:\n return 1;\n }\n }\n\n private get style() {\n return this.variant === 'head' || this.variant === 'body'\n ? {\n '--line-width': `${this.random(50, 100)}%`\n }\n : undefined;\n }\n\n private random(min: number, max: number) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'sass:map';\n\n$spinner-sizes: (\n 'xl': 1.75rem,\n 'l': 1.5rem,\n 'm': 1.25rem,\n 's': 1rem,\n 'xs': 0.75rem\n);\n\n:host {\n display: inline-flex;\n vertical-align: middle;\n @include cat-select(none);\n\n &[hidden] {\n display: none;\n }\n}\n\nspan {\n display: inline-flex;\n}\n\nsvg {\n fill: none;\n stroke: currentColor;\n stroke-dasharray: 135px;\n stroke-dashoffset: 95px;\n stroke-linecap: round;\n stroke-width: 5px;\n transform-origin: center center;\n animation: spin 0.75s cubic-bezier(0.4, 0.15, 0.6, 0.85) infinite;\n width: 1em;\n height: 1em;\n}\n\n// ----- sizes\n\n@mixin size($size) {\n .spinner-#{$size} svg {\n font-size: map.get($spinner-sizes, $size);\n }\n}\n\n@include size('xs');\n@include size('s');\n@include size('m');\n@include size('l');\n@include size('xl');\n\n// ----- animation\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Spinners are used to indicate users that their action is being processed.\n */\n@Component({\n tag: 'cat-spinner',\n styleUrl: 'cat-spinner.scss',\n shadow: true\n})\nexport class CatSpinner {\n /**\n * The size of the spinner.\n */\n @Prop() size: 'xs' | 's' | 'm' | 'l' | 'xl' | 'inline' = 'm';\n\n /**\n * Adds accessible label for the spinner that is only shown for screen\n * readers. The `aria-hidden` attribute will be set if no label is present.\n */\n @Prop({ attribute: 'a11y-label' }) a11yLabel?: string;\n\n render() {\n return (\n <span\n aria-label={this.a11yLabel}\n aria-hidden={this.a11yLabel ? null : 'true'}\n class={{\n [`spinner-${this.size}`]: this.size !== 'inline'\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n <circle cx=\"24\" cy=\"24\" r=\"21.5\"></circle>\n </svg>\n </span>\n );\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n","import { Component, h, Prop, Event, EventEmitter, Listen, Host, Element } from '@stencil/core';\nimport { Breakpoint } from '../../utils/breakpoints';\n\nlet nextUniqueId = 0;\n\n/**\n * A single tab inside a tabs component.\n */\n@Component({\n tag: 'cat-tab',\n styleUrl: 'cat-tab.scss',\n shadow: true\n})\nexport class CatTab {\n @Element() hostElement!: HTMLElement;\n\n /**\n * The label of the tab.\n */\n @Prop({ reflect: true }) label = '';\n\n /**\n * The name of an icon to be displayed in the tab.\n */\n @Prop({ reflect: true }) icon?: string;\n\n /**\n * Hide the actual button content and only display the tab.\n */\n @Prop({ reflect: true }) iconOnly: boolean | Breakpoint = false;\n\n /**\n * Display the icon on the right.\n */\n @Prop({ reflect: true }) iconRight = false;\n\n /**\n * A destination to link to, rendered in the href attribute of a link.\n */\n @Prop({ reflect: true }) url?: string;\n\n /**\n * Specifies where to open the linked document.\n */\n @Prop({ reflect: true }) urlTarget?: '_blank' | '_self';\n\n /**\n * Specifies that the tab should be deactivated.\n */\n @Prop({ reflect: true }) deactivated = false;\n\n /**\n * Emitted when tab is clicked.\n */\n @Event() tabClick!: EventEmitter<MouseEvent>;\n\n connectedCallback() {\n if (!this.hostElement.id) {\n this.hostElement.id = `cat-tab-${nextUniqueId++}`;\n }\n }\n\n @Listen('click')\n onClick(event: MouseEvent) {\n this.tabClick.emit(event);\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n:host {\n display: flex;\n flex-direction: row;\n box-shadow: inset 0 -1px 0 0 cat-token('color.ui.border.tabs');\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([tabs-align='center']) {\n justify-content: center;\n}\n\n:host([tabs-align='right']) {\n justify-content: end;\n}\n\n:host([tabs-align='justify']) {\n cat-button {\n flex: 1 0 auto;\n }\n}\n\n.tab {\n padding: 0.5rem;\n\n &.tab-active {\n box-shadow: inset 0 -3px 0 0 cat-token('color.ui.border.activeTab');\n }\n}\n","import { Component, h, Element, State, Watch, Listen, Host, Prop } from '@stencil/core';\n\n/**\n * Tabs are used to display multiple panels to be contained within a single\n * window, using tabs as a navigational element.\n *\n * @part tab - The header of the tab.\n */\n@Component({\n tag: 'cat-tabs',\n styleUrl: 'cat-tabs.scss',\n shadow: true\n})\nexport class CatTabs {\n private buttons: HTMLCatButtonElement[] = [];\n private mutationObserver?: MutationObserver;\n\n @Element() hostElement!: HTMLElement;\n\n @State() tabs: HTMLCatTabElement[] = [];\n\n @State() activeTabId?: string;\n\n /**\n * The ID of the active tab.\n */\n @Prop() activeTab = '';\n\n /**\n * The alignment of the tabs.\n */\n @Prop() tabsAlign: 'left' | 'center' | 'right' | 'justify' = 'left';\n\n @Watch('activeTabId')\n onActiveTabChanged(newActiveTab: string): void {\n const activeTab = this.tabs.find(value => value.id === newActiveTab);\n activeTab?.click();\n }\n\n componentWillLoad(): void {\n this.syncTabs();\n if (this.tabs.length) {\n this.activeTabId = this.activeTab;\n }\n }\n\n componentDidLoad() {\n this.mutationObserver = new MutationObserver(\n mutations => mutations.some(value => value.target.nodeName === 'CAT-TAB') && this.syncTabs()\n );\n\n this.mutationObserver?.observe(this.hostElement, {\n childList: true,\n attributes: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n }\n\n @Listen('keydown')\n onKeydown(event: KeyboardEvent): void {\n if (['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {\n const targetElements = this.buttons.filter(button => !button.disabled);\n const activeElement = this.hostElement.shadowRoot?.activeElement as HTMLCatButtonElement;\n const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;\n const activeOff = ['ArrowDown', 'ArrowRight'].includes(event.key) ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].setFocus();\n event.preventDefault();\n }\n }\n\n render() {\n return (\n <Host>\n {this.tabs.map((tab: HTMLCatTabElement) => {\n return (\n <cat-button\n ref={el => el && this.updateButtonsRef(el)}\n buttonId={tab.id}\n role=\"tab\"\n part=\"tab\"\n class={{\n tab: true,\n 'tab-active': Boolean(this.activeTabId && tab.id === this.activeTabId)\n }}\n color={this.activeTabId && tab.id === this.activeTabId ? 'primary' : 'secondary'}\n variant=\"text\"\n icon={tab.icon}\n iconOnly={tab.iconOnly}\n iconRight={tab.iconRight}\n url={tab.url}\n disabled={tab.deactivated}\n urlTarget={tab.urlTarget}\n onCatClick={() => (this.activeTabId = tab.id)}\n >\n {tab.label}\n </cat-button>\n );\n })}\n </Host>\n );\n }\n\n private updateButtonsRef(button: HTMLCatButtonElement) {\n const indexOf = this.buttons.indexOf(button);\n\n if (indexOf >= 0) {\n this.buttons[indexOf] = button;\n } else {\n this.buttons.push(button);\n }\n }\n\n private syncTabs() {\n this.tabs = Array.from(this.hostElement.querySelectorAll('cat-tab'));\n }\n}\n","var e,t,n=\"function\"==typeof Map?new Map:(e=[],t=[],{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,o){-1===e.indexOf(n)&&(e.push(n),t.push(o))},delete:function(n){var o=e.indexOf(n);o>-1&&(e.splice(o,1),t.splice(o,1))}}),o=function(e){return new Event(e,{bubbles:!0})};try{new Event(\"test\")}catch(e){o=function(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!1),t}}function r(e){var t=n.get(e);t&&t.destroy()}function i(e){var t=n.get(e);t&&t.update()}var l=null;\"undefined\"==typeof window||\"function\"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&\"TEXTAREA\"===e.nodeName&&!n.has(e)){var t,r=null,i=null,l=null,d=function(){e.clientWidth!==i&&c()},a=function(t){window.removeEventListener(\"resize\",d,!1),e.removeEventListener(\"input\",c,!1),e.removeEventListener(\"keyup\",c,!1),e.removeEventListener(\"autosize:destroy\",a,!1),e.removeEventListener(\"autosize:update\",c,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),n.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener(\"autosize:destroy\",a,!1),\"onpropertychange\"in e&&\"oninput\"in e&&e.addEventListener(\"keyup\",c,!1),window.addEventListener(\"resize\",d,!1),e.addEventListener(\"input\",c,!1),e.addEventListener(\"autosize:update\",c,!1),e.style.overflowX=\"hidden\",e.style.wordWrap=\"break-word\",n.set(e,{destroy:a,update:c}),\"vertical\"===(t=window.getComputedStyle(e,null)).resize?e.style.resize=\"none\":\"both\"===t.resize&&(e.style.resize=\"horizontal\"),r=\"content-box\"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(r)&&(r=0),c()}function u(t){var n=e.style.width;e.style.width=\"0px\",e.style.width=n,e.style.overflowY=t}function s(){if(0!==e.scrollHeight){var t=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(e),n=document.documentElement&&document.documentElement.scrollTop;e.style.height=\"\",e.style.height=e.scrollHeight+r+\"px\",i=e.clientWidth,t.forEach(function(e){e.node.scrollTop=e.scrollTop}),n&&(document.documentElement.scrollTop=n)}}function c(){s();var t=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(r<t?\"hidden\"===n.overflowY&&(u(\"scroll\"),s(),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):\"hidden\"!==n.overflowY&&(u(\"hidden\"),s(),r=\"content-box\"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),l!==r){l=r;var i=o(\"autosize:resized\");try{e.dispatchEvent(i)}catch(e){}}}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],r),e},l.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],i),e});var d=l;export default d;\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n @include cat-body('m');\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n align-self: flex-start;\n\n &.hidden {\n @include cat-visually-hidden;\n }\n}\n\n.input-optional {\n margin-left: 0.25rem;\n @include cat-body('xs');\n color: cat-token('color.ui.font.muted');\n}\n\ntextarea {\n margin: 0;\n padding: 0.625rem 0.75rem;\n min-height: 2.5rem;\n font: inherit;\n background: cat-token('color.ui.background.input');\n border-radius: cat-border-radius('m');\n border: none;\n box-shadow: 0 0 0 1px cat-token('color.ui.border.input');\n transition: box-shadow cat-token('time.transition.s') linear;\n\n &:disabled {\n background: cat-token('color.ui.background.inputDisabled');\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n resize: none;\n }\n\n &:hover:not(:disabled) {\n box-shadow: 0 0 0 2px cat-token('color.ui.border.input');\n }\n\n &:focus {\n outline: 2px solid cat-token('color.ui.border.focus');\n }\n\n &::placeholder {\n color: cat-token('color.ui.font.muted');\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport autosize from 'autosize';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Textarea specifies a control that allows user to write text over multiple\n * rows. Used when the expected user input is long. For shorter input, use the\n * input component.\n *\n * @slot hint - Optional hint element to be displayed with the textarea.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-textarea',\n styleUrl: 'cat-textarea.scss',\n shadow: true\n})\nexport class CatTextarea {\n private readonly id = `cat-textarea-${nextUniqueId++}`;\n private textarea!: HTMLTextAreaElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Whether the textarea is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * Optional hint text(s) to be displayed with the textarea.\n */\n @Prop() hint?: string | string[];\n\n /**\n * The label for the textarea.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * A maximum length (number of characters) for textual values.\n */\n @Prop() maxLength?: number;\n\n /**\n * A minimum length (number of characters) for textual values.\n */\n @Prop() minLength?: number;\n\n /**\n * The name of the form control. Submitted with the form as part of a name/value pair.\n */\n @Prop() name = '';\n\n /**\n * The placeholder text to display within the input.\n */\n @Prop() placeholder?: string;\n\n /**\n * The value is not editable.\n */\n @Prop() readonly = false;\n\n /**\n * A value is required or must be check for the form to be submittable.\n */\n @Prop() required = false;\n\n /**\n * Specifies the initial number of lines in the textarea.\n */\n @Prop() rows = 3;\n\n /**\n * The initial value of the control.\n */\n @Prop({ mutable: true }) value?: string | number;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the textarea received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the textarea loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on textarea', this);\n }\n }\n\n componentDidLoad(): void {\n autosize(this.textarea);\n }\n\n /**\n * Sets focus on the textarea. Use this method instead of `textarea.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.textarea.focus(options);\n }\n\n render() {\n return (\n <Host>\n {(this.hasSlottedLabel || this.label) && (\n <label htmlFor={this.id} class={{ hidden: this.labelHidden }}>\n <span part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n {!this.required && (\n <span class=\"input-optional\" aria-hidden=\"true\">\n (Optional)\n </span>\n )}\n </span>\n </label>\n )}\n <textarea\n ref={el => (this.textarea = el as HTMLTextAreaElement)}\n id={this.id}\n disabled={this.disabled}\n maxlength={this.maxLength}\n minlength={this.minLength}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n rows={this.rows}\n value={this.value}\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n ></textarea>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.value = this.textarea.value;\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n",":host {\n display: block;\n}\n","import { Component, h } from '@stencil/core';\nimport { NotificationsService, ToastOptions } from '../cat-notification/cat-notification';\n\n/**\n * Toast Component Demo\n *\n * @part toast - The content of the toast.\n */\n@Component({\n tag: 'cat-toast-demo',\n styleUrl: 'cat-toast-demo.scss'\n})\nexport class CatToastDemo {\n render() {\n return <cat-button onClick={this.onClick.bind(this)}>Show Notifications</cat-button>;\n }\n\n private onClick() {\n const infoOptions: Partial<ToastOptions> = {\n position: 'top-left',\n type: 'info'\n };\n const errorOptions: Partial<ToastOptions> = {\n position: 'top-center',\n type: 'error'\n };\n const errorOptions2: Partial<ToastOptions> = {\n position: 'bottom-left',\n type: 'error'\n };\n const successOptions3: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success'\n };\n const template = document.createElement('template');\n template.innerHTML = `<div style=\"padding: 7px 30px 7px 10px\">Custom HTML Node Content</div>`;\n const successOptions4: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success',\n content: template.content.firstChild as HTMLElement\n };\n const primaryOptions: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'primary'\n };\n\n const secondaryOptions: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'secondary'\n };\n\n NotificationsService.secondary('Secondary Click', 'secondary info', secondaryOptions);\n NotificationsService.primary('primary Click', 'secondary info', primaryOptions);\n NotificationsService.error('Default Click');\n NotificationsService.error('Long default title, long default title, long default title, long default title');\n NotificationsService.info('Info Click', 'Info message', infoOptions);\n NotificationsService.success('', ' ', successOptions4);\n NotificationsService.error('Error Title', ' ', errorOptions);\n NotificationsService.error(\n 'Error 2 Title',\n 'Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message,Very long message, Very long message, Very long message, Very long message, Very long message, ',\n errorOptions2\n );\n NotificationsService.success('Success Title - very long title without message', ' ', successOptions3);\n }\n}\n","@use 'variables' as *;\n@use 'mixins' as *;\n@use 'src/components/cat-form-hint/cat-form-hint';\n\n$toggle-width: 2rem;\n$toggle-height: 1.25rem;\n\n:host {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-bottom: $cat-body-margin-bottom;\n}\n\n:host([hidden]) {\n display: none;\n}\n\nlabel {\n flex: 0 1 auto;\n display: flex;\n gap: 0.5rem;\n @include cat-body('m');\n @include cat-select(none);\n cursor: pointer;\n}\n\n.label-left {\n flex-direction: row-reverse;\n}\n\ninput {\n position: absolute;\n margin: 0;\n width: $toggle-width;\n height: $toggle-height;\n opacity: 0;\n cursor: inherit;\n}\n\n.toggle {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: $toggle-width;\n height: $toggle-height;\n border-radius: 10rem;\n background-color: cat-token('color.ui.border.input');\n transition: background-color cat-token('time.transition.s') ease;\n pointer-events: none;\n\n :checked + & {\n background-color: cat-token('color.theme.primary.bg');\n }\n\n :focus-visible + & {\n outline: 2px solid cat-token('color.ui.border.focus');\n outline-offset: 1px;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 1rem;\n height: 1rem;\n background: #fff;\n border-radius: 10rem;\n transform: translateX(calc(2px - 0.5rem));\n transition: transform cat-token('time.transition.s') linear;\n @include cat-elevation(1);\n\n :checked + & {\n transform: translateX(calc(-2px + 0.5rem));\n }\n }\n}\n\n.label {\n flex: 1 1 auto;\n\n .is-hidden & {\n @include cat-visually-hidden;\n }\n}\n\n.is-disabled {\n cursor: not-allowed;\n color: cat-token('color.ui.font.muted');\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\nimport log from 'loglevel';\nimport { CatFormHint } from '../cat-form-hint/cat-form-hint';\n\nlet nextUniqueId = 0;\n\n/**\n * Toggles are graphical interface switches that give user control over a\n * feature or option that can be turned on or off.\n *\n * @slot hint - Optional hint element to be displayed with the toggle.\n * @slot label - The slotted label. If both the label property and the label slot are present, only the label slot will be displayed.\n * @part toggle - The toggle element.\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-toggle',\n styleUrls: ['cat-toggle.scss'],\n shadow: true\n})\nexport class CatToggle {\n private readonly id = `cat-toggle-${nextUniqueId++}`;\n private input!: HTMLInputElement;\n\n @Element() hostElement!: HTMLElement;\n\n @State() hasSlottedLabel = false;\n\n /**\n * Checked state of the toggle.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Disabled state of the toggle.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the toggle that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the input\n */\n @Prop() name?: string;\n\n /**\n * Required state of the toggle.\n */\n @Prop() required = false;\n\n /**\n * The value of the toggle\n */\n @Prop({ mutable: true }) value?: string | boolean;\n\n /**\n * Optional hint text(s) to be displayed with the toggle.\n */\n @Prop() hint?: string | string[];\n\n /**\n * Whether the label should appear to the left of the toggle.\n */\n @Prop() labelLeft = false;\n\n /**\n * Emitted when the checked status of the toggle is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the toggle received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n this.hasSlottedLabel = !!this.hostElement.querySelector('[slot=\"label\"]');\n if (!this.label && !this.hasSlottedLabel) {\n log.error('[A11y] Missing ARIA label on toggle', this);\n }\n }\n\n /**\n * Sets focus on the toggle. Use this method instead of `toggle.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <Host>\n <label\n htmlFor={this.id}\n class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled, 'label-left': this.labelLeft }}\n >\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"checkbox\"\n name={this.name}\n value={this.value !== undefined ? String(this.value) : this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n class=\"form-check-input\"\n role=\"switch\"\n onInput={this.onInput.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"toggle\" part=\"toggle\"></span>\n <span class=\"label\" part=\"label\">\n {(this.hasSlottedLabel && <slot name=\"label\"></slot>) || this.label}\n </span>\n </label>\n {this.hintSection}\n </Host>\n );\n }\n\n private get hintSection() {\n const hasSlottedHint = !!this.hostElement.querySelector('[slot=\"hint\"]');\n return (\n (this.hint || hasSlottedHint) && (\n <CatFormHint hint={this.hint} slottedHint={hasSlottedHint && <slot name=\"hint\"></slot>} />\n )\n );\n }\n\n private onInput(event: Event) {\n this.checked = this.input.checked;\n\n if (!this.value || typeof this.value === 'boolean') {\n this.value = this.checked;\n }\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n","const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\nexport default isTouchDevice;\n","@use 'variables' as *;\n@use 'mixins' as *;\n\n$-max-width: 16rem;\n$-box-shadow: rgb(0 0 0 / 8%) 0 1px 8px 0;\n\n:host {\n display: contents;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.tooltip {\n position: absolute;\n @include cat-body('s', 500);\n padding: 0.75rem;\n background-color: cat-token('color.ui.background.tooltip');\n border-radius: cat-border-radius('m');\n color: cat-token('color.ui.font.tooltip');\n transition: opacity cat-token('time.transition.m') linear, visibility cat-token('time.transition.m') linear;\n visibility: hidden;\n opacity: 0;\n box-shadow: $-box-shadow;\n z-index: $cat-tooltip-z-index;\n max-width: $-max-width;\n\n &-show {\n opacity: 1;\n visibility: visible;\n }\n}\n\n.tooltip-trigger {\n display: inline-block;\n\n &:focus {\n outline: none;\n }\n}\n","import { Component, h, Host, Listen, Prop } from '@stencil/core';\nimport { autoUpdate, computePosition, flip, offset, Placement } from '@floating-ui/dom';\nimport isTouchScreen from '../../utils/is-touch-screen';\nimport firstTabbable from '../../utils/first-tabbable';\nimport { FocusableElement } from 'tabbable';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-tooltip',\n styleUrl: 'cat-tooltip.scss',\n shadow: true\n})\nexport class CatTooltip {\n private static readonly OFFSET = 4;\n private readonly id = `cat-tooltip-${nextUniqueId++}`;\n private tooltip?: HTMLElement;\n private triggerElement?: HTMLElement;\n private trigger?: FocusableElement;\n private showTimeout?: number;\n private hideTimeout?: number;\n private touchTimeout?: number;\n\n /**\n * The content of the tooltip.\n */\n @Prop() content = '';\n\n /**\n * Specifies that the tooltip should be disabled. A disabled tooltip is unusable,\n * and invisible. Corresponds with the native HTML disabled attribute.\n */\n @Prop() disabled = false;\n\n /**\n * The placement of the tooltip.\n */\n @Prop() placement: Placement = 'top';\n\n /**\n * The delay time for showing tooltip in ms.\n */\n @Prop() showDelay = 500;\n\n /**\n * The delay time for hiding tooltip in ms.\n */\n @Prop() hideDelay = 0;\n\n /**\n * The duration of tap to show the tooltip.\n */\n @Prop() longTouchDuration = 1000;\n\n @Listen('keydown')\n handleKeyDown({ key }: KeyboardEvent) {\n key === 'Escape' && this.hideListener();\n }\n\n componentDidLoad(): void {\n this.trigger = firstTabbable(this.triggerElement) || this.triggerElement;\n if (!this.isTabbable) {\n this.trigger?.setAttribute('tabindex', '0');\n }\n if (this.trigger && this.tooltip) {\n autoUpdate(this.trigger, this.tooltip, () => this.update());\n }\n\n if (isTouchScreen) {\n window.addEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.addEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.addEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.addEventListener('focusin', this.showListener.bind(this));\n this.trigger?.addEventListener('focusout', this.hideListener.bind(this));\n this.trigger?.addEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.addEventListener('mouseleave', this.hideListener.bind(this));\n }\n }\n\n disconnectedCallback(): void {\n if (isTouchScreen) {\n window.removeEventListener('touchstart', this.windowTouchStartListener.bind(this));\n this.trigger?.removeEventListener('touchstart', this.touchStartListener.bind(this));\n this.trigger?.removeEventListener('touchend', this.touchEndListener.bind(this));\n } else {\n this.trigger?.removeEventListener('mouseenter', this.showListener.bind(this));\n this.trigger?.removeEventListener('mouseleave', this.hideListener.bind(this));\n this.trigger?.removeEventListener('focusin', this.showListener.bind(this));\n this.trigger?.removeEventListener('focusout', this.hideListener.bind(this));\n }\n }\n\n render() {\n return (\n <Host>\n <div ref={el => (this.triggerElement = el)} aria-describedby={this.id} class=\"tooltip-trigger\">\n <slot />\n </div>\n {this.content && !this.disabled && (\n <div ref={el => (this.tooltip = el)} id={this.id} class=\"tooltip\">\n {this.content}\n </div>\n )}\n </Host>\n );\n }\n\n private get isTabbable() {\n return firstTabbable(this.trigger);\n }\n\n private update() {\n if (this.trigger && this.tooltip) {\n computePosition(this.trigger, this.tooltip, {\n placement: this.placement,\n middleware: [offset(CatTooltip.OFFSET), flip()]\n }).then(({ x, y }) => {\n if (this.tooltip) {\n Object.assign(this.tooltip.style, {\n left: `${Math.max(0, x)}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n\n private showListener() {\n window.clearTimeout(this.hideTimeout);\n this.showTimeout = window.setTimeout(() => {\n this.tooltip?.classList.add('tooltip-show');\n }, this.showDelay);\n }\n\n private hideListener() {\n window.clearTimeout(this.showTimeout);\n this.hideTimeout = window.setTimeout(() => {\n this.tooltip?.classList.remove('tooltip-show');\n }, this.hideDelay);\n }\n\n private touchStartListener(event: Event) {\n event.stopPropagation();\n this.touchTimeout = window.setTimeout(() => {\n this.tooltip?.classList.add('tooltip-show');\n }, this.longTouchDuration);\n }\n\n private touchEndListener() {\n if (this.touchTimeout) {\n window.clearTimeout(this.touchTimeout);\n }\n }\n\n private windowTouchStartListener() {\n this.tooltip?.classList.remove('tooltip-show');\n }\n}\n"],"version":3}
|