{"version":3,"file":"kirbydesign-designsystem.mjs","sources":["../tmp-esm2022/lib/components/segmented-control/segmented-control.component.js","../tmp-esm2022/lib/components/index.js","../tmp-esm2022/lib/directives/key-handler/key-handler.directive.js","../tmp-esm2022/lib/directives/modal-router-link/modal-router-link.directive.js","../tmp-esm2022/lib/kirby.module.js","../tmp-esm2022/kirbydesign-designsystem.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild, } from '@angular/core';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonSegment, IonSegmentButton } from '@ionic/angular/standalone';\nimport * as i0 from \"@angular/core\";\nexport var SegmentedControlMode;\n(function (SegmentedControlMode) {\n    SegmentedControlMode[\"chip\"] = \"chip\";\n    SegmentedControlMode[\"compactChip\"] = \"compactChip\";\n    SegmentedControlMode[\"default\"] = \"default\";\n})(SegmentedControlMode || (SegmentedControlMode = {}));\nexport class SegmentedControlComponent {\n    constructor() {\n        this.mode = SegmentedControlMode.default;\n        this._items = [];\n        this.isDisabled = false;\n        this._selectedIndex = -1;\n        this.selectedIndexChange = new EventEmitter();\n        this._disableChangeOnSwipe = false;\n        this.segmentSelect = new EventEmitter();\n        this._segmentElementHasFocus = false;\n        // Initialize default ControlValueAccessor callback functions (noop)\n        // eslint-disable-next-line no-empty-function\n        this.onChange = () => { };\n        // eslint-disable-next-line no-empty-function\n        this.onTouched = () => { };\n    }\n    /**\n     * Ensure that the click actually did originate from within the segment-button.\n     * We do not want to react to clicks on e.g. segment-btn-wrapper or badge.\n     */\n    preventOutsideClick(event) {\n        if (event.target instanceof HTMLElement) {\n            const targetIsInSegmentBtn = !!event.target.closest('ion-segment-button');\n            if (!targetIsInSegmentBtn) {\n                event.stopImmediatePropagation();\n            }\n        }\n    }\n    get _modeCssClass() {\n        return {\n            [SegmentedControlMode.chip]: 'chip-mode',\n            [SegmentedControlMode.default]: 'default-mode',\n            [SegmentedControlMode.compactChip]: 'compact chip-mode',\n        }[this.mode];\n    }\n    get items() {\n        return this._items;\n    }\n    set items(value) {\n        this._items = value || [];\n        this._value = this.items[this.selectedIndex];\n        this.ensureIonSegmentSelected();\n    }\n    /**\n     * After upgrading to Ionic standalone components (Ionic v.7.6.6)\n     * there is a lifecycle bug between Angular/Ionic/Stencil that prevents\n     * the value of the segment component to be reflected in the checked state\n     * of it's slotted segment buttons.\n     * This has been patched here: https://github.com/ionic-team/ionic-framework/pull/28837\n     * However the patch doesn't fix the problem if `items` are updated after first initialization\n     * and the ion-segment-button(s) are re-rerendered.\n     */\n    ensureIonSegmentSelected() {\n        const ionSegment = this.ionSegmentElement.nativeElement;\n        const ionSelectEvent = ionSegment['ionSelect'];\n        if (this._value && typeof ionSelectEvent?.emit === 'function') {\n            // Ensure changes has been reflected to the DOM:\n            setTimeout(() => {\n                const selectedSegmentButton = ionSegment.querySelector('ion-segment-button.segment-button-checked');\n                if (selectedSegmentButton)\n                    return; // Nothing to patch\n                ionSelectEvent.emit({ value: this._value?.id });\n            });\n        }\n    }\n    get selectedIndex() {\n        return this._selectedIndex;\n    }\n    set selectedIndex(index) {\n        if (index !== this._selectedIndex) {\n            this._selectedIndex = index;\n            this._value = this.items[this.selectedIndex];\n            this.selectedIndexChange.emit(this.selectedIndex);\n        }\n    }\n    get value() {\n        return this._value;\n    }\n    set value(value) {\n        this.selectedIndex = this.items.indexOf(value);\n    }\n    set size(size) {\n        this.isSmallSize = size === 'sm';\n    }\n    get disableChangeOnSwipe() {\n        return this._disableChangeOnSwipe;\n    }\n    set disableChangeOnSwipe(value) {\n        this._disableChangeOnSwipe = value;\n    }\n    onSegmentSelect(selectedId) {\n        const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n        if (selectedItemIndex !== this.selectedIndex) {\n            this.selectedIndex = selectedItemIndex;\n            setTimeout(() => {\n                this.segmentSelect.emit(this.value);\n                this.onChange(this.value);\n                this.onTouched();\n            });\n        }\n    }\n    focusNativeButton(event) {\n        event.target?.setFocus();\n    }\n    getTabIndex(item, index) {\n        // When focused prevent tab stop from inner native button to outer ion-segment-button:\n        if (this._segmentElementHasFocus)\n            return -1;\n        // Allow tab stop on selected item:\n        if (item.id === this.value?.id)\n            return null;\n        // Allow tab stop on first item if no value is set:\n        if (!this.value && index === 0)\n            return null;\n        // Prevent tab stop on all other items:\n        return -1;\n    }\n    _onFocusInOut() {\n        // @HostListener(focusin|focusout) triggers Change Detection and updates attr.tabindex on each ion-segment-button\n        this._segmentElementHasFocus = this.ionSegmentElement.nativeElement.matches(':focus-within');\n        if (!this._segmentElementHasFocus) {\n            this.onTouched();\n        }\n    }\n    /**\n     * Sets the segmented control's value. Part of the ControlValueAccessor interface\n     * required to integrate with Angular's core forms API.\n     *\n     * @param value New value to be written to the model.\n     */\n    writeValue(value) {\n        if (value !== this._value) {\n            this.value = value;\n        }\n    }\n    /**\n     * Saves a callback function to be invoked when the segmented control's value\n     * changes from user input. Part of the ControlValueAccessor interface\n     * required to integrate with Angular's core forms API.\n     *\n     * @param fn Callback to be triggered when the value changes.\n     */\n    registerOnChange(fn) {\n        this.onChange = fn;\n    }\n    /**\n     * Saves a callback function to be invoked when the segmented control is blurred\n     * by the user. Part of the ControlValueAccessor interface required\n     * to integrate with Angular's core forms API.\n     *\n     * @param fn Callback to be triggered when the component has been touched.\n     */\n    registerOnTouched(fn) {\n        this.onTouched = fn;\n    }\n    /**\n     * Disables the segmented control. Part of the ControlValueAccessor interface required\n     * to integrate with Angular's core forms API.\n     *\n     * @param isDisabled Sets whether the component is disabled.\n     */\n    setDisabledState(isDisabled) {\n        this.isDisabled = isDisabled;\n    }\n    /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.7\", type: SegmentedControlComponent, isStandalone: true, selector: \"kirby-segmented-control\", inputs: { mode: \"mode\", items: \"items\", selectedIndex: \"selectedIndex\", value: \"value\", size: \"size\", disableChangeOnSwipe: \"disableChangeOnSwipe\" }, outputs: { selectedIndexChange: \"selectedIndexChange\", segmentSelect: \"segmentSelect\" }, host: { listeners: { \"focusin\": \"_onFocusInOut()\", \"focusout\": \"_onFocusInOut()\" }, properties: { \"class\": \"this._modeCssClass\", \"class.sm\": \"this.isSmallSize\" } }, providers: [\n            {\n                provide: NG_VALUE_ACCESSOR,\n                useExisting: forwardRef((() => SegmentedControlComponent)),\n                multi: true,\n            },\n        ], viewQueries: [{ propertyName: \"ionSegmentElement\", first: true, predicate: IonSegment, descendants: true, read: ElementRef, static: true }], ngImport: i0, template: \"<ion-segment\\n  [value]=\\\"value?.id\\\"\\n  [scrollable]=\\\"disableChangeOnSwipe || mode !== 'default'\\\"\\n  (ionChange)=\\\"onSegmentSelect($event.detail.value)\\\"\\n  (click)=\\\"preventOutsideClick($event)\\\"\\n  [disabled]=\\\"isDisabled\\\"\\n>\\n  @for (item of items; track item.id; let i = $index) {\\n    <ion-segment-button\\n      [value]=\\\"item.id\\\"\\n      [attr.aria-label]=\\\"item.ariaLabel\\\"\\n      [attr.tabindex]=\\\"getTabIndex(item, i)\\\"\\n      (click)=\\\"focusNativeButton($event)\\\"\\n    >\\n      {{ item.text }}\\n      @if (item.badge) {\\n        <kirby-badge\\n          role=\\\"text\\\"\\n          [attr.aria-label]=\\\"item.badge.description\\\"\\n          [themeColor]=\\\"item.badge.themeColor\\\"\\n        >\\n          @if (item.badge.icon) {\\n            <kirby-icon [name]=\\\"item.badge.icon\\\"></kirby-icon>\\n          } @else {\\n            {{ item.badge.content }}\\n          }\\n        </kirby-badge>\\n      }\\n    </ion-segment-button>\\n  }\\n</ion-segment>\\n\", styles: [\":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button{position:relative}ion-segment-button:after{content:\\\"\\\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button{--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\\n\"], dependencies: [{ kind: \"component\", type: IconComponent, selector: \"kirby-icon\", inputs: [\"size\", \"name\"] }, { kind: \"component\", type: BadgeComponent, selector: \"kirby-badge\", inputs: [\"text\", \"size\"] }, { kind: \"component\", type: IonSegment, selector: \"ion-segment\", inputs: [\"color\", \"disabled\", \"mode\", \"scrollable\", \"selectOnFocus\", \"swipeGesture\", \"value\"] }, { kind: \"component\", type: IonSegmentButton, selector: \"ion-segment-button\", inputs: [\"contentId\", \"disabled\", \"layout\", \"mode\", \"type\", \"value\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: SegmentedControlComponent, decorators: [{\n            type: Component,\n            args: [{ imports: [IconComponent, BadgeComponent, IonSegment, IonSegmentButton], selector: 'kirby-segmented-control', changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n                        {\n                            provide: NG_VALUE_ACCESSOR,\n                            useExisting: forwardRef((() => SegmentedControlComponent)),\n                            multi: true,\n                        },\n                    ], template: \"<ion-segment\\n  [value]=\\\"value?.id\\\"\\n  [scrollable]=\\\"disableChangeOnSwipe || mode !== 'default'\\\"\\n  (ionChange)=\\\"onSegmentSelect($event.detail.value)\\\"\\n  (click)=\\\"preventOutsideClick($event)\\\"\\n  [disabled]=\\\"isDisabled\\\"\\n>\\n  @for (item of items; track item.id; let i = $index) {\\n    <ion-segment-button\\n      [value]=\\\"item.id\\\"\\n      [attr.aria-label]=\\\"item.ariaLabel\\\"\\n      [attr.tabindex]=\\\"getTabIndex(item, i)\\\"\\n      (click)=\\\"focusNativeButton($event)\\\"\\n    >\\n      {{ item.text }}\\n      @if (item.badge) {\\n        <kirby-badge\\n          role=\\\"text\\\"\\n          [attr.aria-label]=\\\"item.badge.description\\\"\\n          [themeColor]=\\\"item.badge.themeColor\\\"\\n        >\\n          @if (item.badge.icon) {\\n            <kirby-icon [name]=\\\"item.badge.icon\\\"></kirby-icon>\\n          } @else {\\n            {{ item.badge.content }}\\n          }\\n        </kirby-badge>\\n      }\\n    </ion-segment-button>\\n  }\\n</ion-segment>\\n\", styles: [\":host{display:block;-webkit-user-select:none;user-select:none;--kirby-badge-position: absolute;--kirby-badge-top: -8px;--kirby-badge-right: -16px;--kirby-badge-z-index: 2}:host.sm ion-segment-button{min-height:32px;font-size:12px;--padding-start: 16px;--padding-end: 16px;--kirby-badge-right: -8px}@media (hover: hover) and (pointer: fine){:host.sm ion-segment-button{outline:none;border-radius:999px}:host.sm ion-segment-button:focus{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host.sm ion-segment-button:focus:not(:focus-visible){box-shadow:0 0 0 0 transparent}:host.sm ion-segment-button:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host.default-mode ion-segment{--background: var(--kirby-inputs-background-color);box-shadow:var(--kirby-inputs-elevation);overflow:visible;contain:none;width:fit-content}:host.default-mode ion-segment-button{--color-hover: rgba(var(--kirby-black-rgb), .4)}:host.chip-mode ion-segment{--background: none;border-radius:0;padding:4px;gap:8px}@media (pointer: coarse){:host.chip-mode ion-segment{scrollbar-width:none}:host.chip-mode ion-segment::-webkit-scrollbar{display:none}}:host.chip-mode ion-segment-button{--background: var(--kirby-inputs-background-color);--indicator-transition: none}:host.chip-mode ion-segment-button::part(indicator){padding-inline:0}:host.compact ion-segment{--background: transparent}:host.compact ion-segment-button{--background: transparent;--padding-start: 12px;--padding-end: 12px}@media (hover: hover){:host.chip-mode ion-segment-button:hover,:host.compact ion-segment-button:hover{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}@media (hover: hover){:host.chip-mode ion-segment-button.segment-button-checked:hover,:host.compact ion-segment-button.segment-button-checked:hover{--state-layer-opacity: .16;--state-layer-background-color: var(--kirby-black-contrast);--background-hover: var(--state-layer-background-color);--background-hover-opacity: var(--state-layer-opacity)}}ion-segment{border-radius:999px;grid-auto-columns:max-content;box-sizing:border-box}@media (hover: hover) and (pointer: fine){ion-segment-button:focus-within::part(native){transition:all 80ms linear 0ms;box-shadow:0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}ion-segment-button{position:relative}ion-segment-button:after{content:\\\"\\\";position:absolute;min-height:44px;min-width:44px;width:100%;height:100%;transform:translate(-50%,-50%);left:50%;top:50%}ion-segment-button{--border-radius: 999px;--border-style: none;--background: none;--color: var(--kirby-inputs-color);--indicator-color: var(--kirby-inputs-indicator-background-color);--color-checked: var(--kirby-inputs-indicator-color);--indicator-box-shadow: none;--indicator-transform: none;--padding-start: 24px;--padding-end: 24px;--margin-bottom: 0;--margin-end: 0;--margin-start: 0;--margin-top: 0;min-height:40px;min-width:fit-content;font-weight:400;font-size:14px;text-transform:none;margin:0}ion-segment-button::part(native){border-radius:var(--border-radius);contain:none;overflow:visible;opacity:1}ion-segment-button::part(native):after{transition:all 80ms linear 0ms;border-radius:var(--border-radius)}ion-segment-button::part(indicator){padding-inline:0}\\n\"] }]\n        }], propDecorators: { ionSegmentElement: [{\n                type: ViewChild,\n                args: [IonSegment, { static: true, read: ElementRef }]\n            }], mode: [{\n                type: Input\n            }], _modeCssClass: [{\n                type: HostBinding,\n                args: ['class']\n            }], items: [{\n                type: Input\n            }], selectedIndex: [{\n                type: Input\n            }], selectedIndexChange: [{\n                type: Output\n            }], value: [{\n                type: Input\n            }], isSmallSize: [{\n                type: HostBinding,\n                args: ['class.sm']\n            }], size: [{\n                type: Input\n            }], disableChangeOnSwipe: [{\n                type: Input\n            }], segmentSelect: [{\n                type: Output\n            }], _onFocusInOut: [{\n                type: HostListener,\n                args: ['focusin']\n            }, {\n                type: HostListener,\n                args: ['focusout']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWdtZW50ZWQtY29udHJvbC9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJekUsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixxQ0FBYSxDQUFBO0lBQ2IsbURBQTJCLENBQUE7SUFDM0IsMkNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0I7QUFnQkQsTUFBTSxPQUFPLHlCQUF5QjtJQWR0QztRQWlDVyxTQUFJLEdBQXFELG9CQUFvQixDQUFDLE9BQU8sQ0FBQztRQVd2RixXQUFNLEdBQVksRUFBRSxDQUFDO1FBV25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUEyQnJCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFhMUIsd0JBQW1C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O2dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixFQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsNkVBS1UsVUFBVSwyQkFBd0IsVUFBVSwyQ0MzQ3pELDI3QkErQkEsczdHREpZLGFBQWEsaUZBQUUsY0FBYyxrRkFBRSxVQUFVLHVKQUFFLGdCQUFnQjs7MkZBYTFELHlCQUF5QjtrQkFkckMsU0FBUzs4QkFDQyxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFlBQzVELHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSwwQkFBMEIsRUFBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7O3NCQUtBLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztzQkFnQnhELEtBQUs7O3NCQUVMLFdBQVc7dUJBQUMsT0FBTzs7c0JBY25CLEtBQUs7O3NCQXNDTCxLQUFLOztzQkFRTCxNQUFNOztzQkFPTixLQUFLOztzQkFJTCxXQUFXO3VCQUFDLFVBQVU7O3NCQUd0QixLQUFLOztzQkFTTCxLQUFLOztzQkFJTCxNQUFNOztzQkFnQ04sWUFBWTt1QkFBQyxTQUFTOztzQkFDdEIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaWNvbic7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYmFkZ2UnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJb25TZWdtZW50LCBJb25TZWdtZW50QnV0dG9uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IFNlZ21lbnRJdGVtIH0gZnJvbSAnLi9zZWdtZW50LWl0ZW0nO1xuXG5leHBvcnQgZW51bSBTZWdtZW50ZWRDb250cm9sTW9kZSB7XG4gIGNoaXAgPSAnY2hpcCcsXG4gIGNvbXBhY3RDaGlwID0gJ2NvbXBhY3RDaGlwJyxcbiAgZGVmYXVsdCA9ICdkZWZhdWx0Jyxcbn1cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50LCBCYWRnZUNvbXBvbmVudCwgSW9uU2VnbWVudCwgSW9uU2VnbWVudEJ1dHRvbl0sXG4gIHNlbGVjdG9yOiAna2lyYnktc2VnbWVudGVkLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50ZWRDb250cm9sQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRlZENvbnRyb2xDb21wb25lbnQ8VEl0ZW0gZXh0ZW5kcyBTZWdtZW50SXRlbSA9IFNlZ21lbnRJdGVtPlxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoSW9uU2VnbWVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBpb25TZWdtZW50RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW9uU2VnbWVudEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCB0aGUgY2xpY2sgYWN0dWFsbHkgZGlkIG9yaWdpbmF0ZSBmcm9tIHdpdGhpbiB0aGUgc2VnbWVudC1idXR0b24uXG4gICAqIFdlIGRvIG5vdCB3YW50IHRvIHJlYWN0IHRvIGNsaWNrcyBvbiBlLmcuIHNlZ21lbnQtYnRuLXdyYXBwZXIgb3IgYmFkZ2UuXG4gICAqL1xuICBwcmV2ZW50T3V0c2lkZUNsaWNrKGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICBjb25zdCB0YXJnZXRJc0luU2VnbWVudEJ0biA9ICEhZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJ2lvbi1zZWdtZW50LWJ1dHRvbicpO1xuICAgICAgaWYgKCF0YXJnZXRJc0luU2VnbWVudEJ0bikge1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBtb2RlOiBTZWdtZW50ZWRDb250cm9sTW9kZSB8IGAke1NlZ21lbnRlZENvbnRyb2xNb2RlfWAgPSBTZWdtZW50ZWRDb250cm9sTW9kZS5kZWZhdWx0O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX21vZGVDc3NDbGFzcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW1NlZ21lbnRlZENvbnRyb2xNb2RlLmNoaXBdOiAnY2hpcC1tb2RlJyxcbiAgICAgIFtTZWdtZW50ZWRDb250cm9sTW9kZS5kZWZhdWx0XTogJ2RlZmF1bHQtbW9kZScsXG4gICAgICBbU2VnbWVudGVkQ29udHJvbE1vZGUuY29tcGFjdENoaXBdOiAnY29tcGFjdCBjaGlwLW1vZGUnLFxuICAgIH1bdGhpcy5tb2RlXTtcbiAgfVxuXG4gIHByaXZhdGUgX2l0ZW1zOiBUSXRlbVtdID0gW107XG4gIGdldCBpdGVtcygpOiBUSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IFRJdGVtW10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlIHx8IFtdO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdO1xuICAgIHRoaXMuZW5zdXJlSW9uU2VnbWVudFNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBZnRlciB1cGdyYWRpbmcgdG8gSW9uaWMgc3RhbmRhbG9uZSBjb21wb25lbnRzIChJb25pYyB2LjcuNi42KVxuICAgKiB0aGVyZSBpcyBhIGxpZmVjeWNsZSBidWcgYmV0d2VlbiBBbmd1bGFyL0lvbmljL1N0ZW5jaWwgdGhhdCBwcmV2ZW50c1xuICAgKiB0aGUgdmFsdWUgb2YgdGhlIHNlZ21lbnQgY29tcG9uZW50IHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgY2hlY2tlZCBzdGF0ZVxuICAgKiBvZiBpdCdzIHNsb3R0ZWQgc2VnbWVudCBidXR0b25zLlxuICAgKiBUaGlzIGhhcyBiZWVuIHBhdGNoZWQgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL3B1bGwvMjg4MzdcbiAgICogSG93ZXZlciB0aGUgcGF0Y2ggZG9lc24ndCBmaXggdGhlIHByb2JsZW0gaWYgYGl0ZW1zYCBhcmUgdXBkYXRlZCBhZnRlciBmaXJzdCBpbml0aWFsaXphdGlvblxuICAgKiBhbmQgdGhlIGlvbi1zZWdtZW50LWJ1dHRvbihzKSBhcmUgcmUtcmVyZW5kZXJlZC5cbiAgICovXG4gIHByaXZhdGUgZW5zdXJlSW9uU2VnbWVudFNlbGVjdGVkKCkge1xuICAgIGNvbnN0IGlvblNlZ21lbnQgPSB0aGlzLmlvblNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaW9uU2VsZWN0RXZlbnQgPSBpb25TZWdtZW50Wydpb25TZWxlY3QnXTtcbiAgICBpZiAodGhpcy5fdmFsdWUgJiYgdHlwZW9mIGlvblNlbGVjdEV2ZW50Py5lbWl0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBFbnN1cmUgY2hhbmdlcyBoYXMgYmVlbiByZWZsZWN0ZWQgdG8gdGhlIERPTTpcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFNlZ21lbnRCdXR0b24gPSBpb25TZWdtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgJ2lvbi1zZWdtZW50LWJ1dHRvbi5zZWdtZW50LWJ1dHRvbi1jaGVja2VkJ1xuICAgICAgICApO1xuICAgICAgICBpZiAoc2VsZWN0ZWRTZWdtZW50QnV0dG9uKSByZXR1cm47IC8vIE5vdGhpbmcgdG8gcGF0Y2hcblxuICAgICAgICBpb25TZWxlY3RFdmVudC5lbWl0KHsgdmFsdWU6IHRoaXMuX3ZhbHVlPy5pZCB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXg6IG51bWJlciA9IC0xO1xuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCAhPT0gdGhpcy5fc2VsZWN0ZWRJbmRleCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IE5vSW5mZXI8VEl0ZW0+O1xuICBnZXQgdmFsdWUoKTogTm9JbmZlcjxUSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogTm9JbmZlcjxUSXRlbT4pIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLml0ZW1zLmluZGV4T2YodmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbScpXG4gIGlzU21hbGxTaXplOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBzaXplKHNpemU6ICdzbScgfCAnbWQnKSB7XG4gICAgdGhpcy5pc1NtYWxsU2l6ZSA9IHNpemUgPT09ICdzbSc7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlQ2hhbmdlT25Td2lwZTogYm9vbGVhbiA9IGZhbHNlO1xuICBnZXQgZGlzYWJsZUNoYW5nZU9uU3dpcGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVDaGFuZ2VPblN3aXBlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRpc2FibGVDaGFuZ2VPblN3aXBlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZUNoYW5nZU9uU3dpcGUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzZWdtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUSXRlbT4oKTtcblxuICBvblNlZ21lbnRTZWxlY3Qoc2VsZWN0ZWRJZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtSW5kZXggPSB0aGlzLml0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gc2VsZWN0ZWRJZCA9PT0gaXRlbS5pZCk7XG5cbiAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT09IHRoaXMuc2VsZWN0ZWRJbmRleCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJdGVtSW5kZXg7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWdtZW50U2VsZWN0LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmb2N1c05hdGl2ZUJ1dHRvbihldmVudDogVUlFdmVudCkge1xuICAgIChldmVudC50YXJnZXQgYXMgSFRNTElvblNlZ21lbnRCdXR0b25FbGVtZW50KT8uc2V0Rm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlZ21lbnRFbGVtZW50SGFzRm9jdXMgPSBmYWxzZTtcblxuICBnZXRUYWJJbmRleChpdGVtOiBUSXRlbSwgaW5kZXg6IG51bWJlcikge1xuICAgIC8vIFdoZW4gZm9jdXNlZCBwcmV2ZW50IHRhYiBzdG9wIGZyb20gaW5uZXIgbmF0aXZlIGJ1dHRvbiB0byBvdXRlciBpb24tc2VnbWVudC1idXR0b246XG4gICAgaWYgKHRoaXMuX3NlZ21lbnRFbGVtZW50SGFzRm9jdXMpIHJldHVybiAtMTtcbiAgICAvLyBBbGxvdyB0YWIgc3RvcCBvbiBzZWxlY3RlZCBpdGVtOlxuICAgIGlmIChpdGVtLmlkID09PSB0aGlzLnZhbHVlPy5pZCkgcmV0dXJuIG51bGw7XG4gICAgLy8gQWxsb3cgdGFiIHN0b3Agb24gZmlyc3QgaXRlbSBpZiBubyB2YWx1ZSBpcyBzZXQ6XG4gICAgaWYgKCF0aGlzLnZhbHVlICYmIGluZGV4ID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICAvLyBQcmV2ZW50IHRhYiBzdG9wIG9uIGFsbCBvdGhlciBpdGVtczpcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBfb25Gb2N1c0luT3V0KCkge1xuICAgIC8vIEBIb3N0TGlzdGVuZXIoZm9jdXNpbnxmb2N1c291dCkgdHJpZ2dlcnMgQ2hhbmdlIERldGVjdGlvbiBhbmQgdXBkYXRlcyBhdHRyLnRhYmluZGV4IG9uIGVhY2ggaW9uLXNlZ21lbnQtYnV0dG9uXG4gICAgdGhpcy5fc2VnbWVudEVsZW1lbnRIYXNGb2N1cyA9IHRoaXMuaW9uU2VnbWVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJyk7XG4gICAgaWYgKCF0aGlzLl9zZWdtZW50RWxlbWVudEhhc0ZvY3VzKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgZGVmYXVsdCBDb250cm9sVmFsdWVBY2Nlc3NvciBjYWxsYmFjayBmdW5jdGlvbnMgKG5vb3ApXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IE5vSW5mZXI8VEl0ZW0+KSA9PiB2b2lkID0gKCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAvKipcbiAgICogU2V0cyB0aGUgc2VnbWVudGVkIGNvbnRyb2wncyB2YWx1ZS4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIE5ldyB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IE5vSW5mZXI8VEl0ZW0+KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VnbWVudGVkIGNvbnRyb2wncyB2YWx1ZVxuICAgKiBjaGFuZ2VzIGZyb20gdXNlciBpbnB1dC4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGZuIENhbGxiYWNrIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBOb0luZmVyPFRJdGVtPikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VnbWVudGVkIGNvbnRyb2wgaXMgYmx1cnJlZFxuICAgKiBieSB0aGUgdXNlci4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHJlcXVpcmVkXG4gICAqIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGZuIENhbGxiYWNrIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gdG91Y2hlZC5cbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyB0aGUgc2VnbWVudGVkIGNvbnRyb2wuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSByZXF1aXJlZFxuICAgKiB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIFNldHMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGlvbi1zZWdtZW50XG4gIFt2YWx1ZV09XCJ2YWx1ZT8uaWRcIlxuICBbc2Nyb2xsYWJsZV09XCJkaXNhYmxlQ2hhbmdlT25Td2lwZSB8fCBtb2RlICE9PSAnZGVmYXVsdCdcIlxuICAoaW9uQ2hhbmdlKT1cIm9uU2VnbWVudFNlbGVjdCgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gIChjbGljayk9XCJwcmV2ZW50T3V0c2lkZUNsaWNrKCRldmVudClcIlxuICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4+XG4gIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgPGlvbi1zZWdtZW50LWJ1dHRvblxuICAgICAgW3ZhbHVlXT1cIml0ZW0uaWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleChpdGVtLCBpKVwiXG4gICAgICAoY2xpY2spPVwiZm9jdXNOYXRpdmVCdXR0b24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAge3sgaXRlbS50ZXh0IH19XG4gICAgICBAaWYgKGl0ZW0uYmFkZ2UpIHtcbiAgICAgICAgPGtpcmJ5LWJhZGdlXG4gICAgICAgICAgcm9sZT1cInRleHRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5iYWRnZS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgW3RoZW1lQ29sb3JdPVwiaXRlbS5iYWRnZS50aGVtZUNvbG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZS5pY29uKSB7XG4gICAgICAgICAgICA8a2lyYnktaWNvbiBbbmFtZV09XCJpdGVtLmJhZGdlLmljb25cIj48L2tpcmJ5LWljb24+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB7eyBpdGVtLmJhZGdlLmNvbnRlbnQgfX1cbiAgICAgICAgICB9XG4gICAgICAgIDwva2lyYnktYmFkZ2U+XG4gICAgICB9XG4gICAgPC9pb24tc2VnbWVudC1idXR0b24+XG4gIH1cbjwvaW9uLXNlZ21lbnQ+XG4iXX0=","/* prettier-ignore */\nexport { SegmentedControlComponent, SegmentedControlMode } from './segmented-control/segmented-control.component'; // See issue #1555 for prettier-ignore explanation\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDLENBQUMsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiLyogcHJldHRpZXItaWdub3JlICovXG5leHBvcnQgeyBTZWdtZW50ZWRDb250cm9sQ29tcG9uZW50LCBTZWdtZW50ZWRDb250cm9sTW9kZX0gZnJvbSAnLi9zZWdtZW50ZWQtY29udHJvbC9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQnOyAvLyBTZWUgaXNzdWUgIzE1NTUgZm9yIHByZXR0aWVyLWlnbm9yZSBleHBsYW5hdGlvblxuZXhwb3J0IHsgU2VnbWVudEl0ZW0gfSBmcm9tICcuL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnQtaXRlbSc7XG4iXX0=","import { Directive, HostListener } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class KeyHandlerDirective {\n    constructor(element) {\n        this.element = element;\n    }\n    keyEvent(event) {\n        if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n            // Prevent the default action to stop scrolling when space is pressed\n            event.preventDefault();\n            const hostElement = this.element.nativeElement;\n            hostElement.click();\n        }\n    }\n    /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: KeyHandlerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.7\", type: KeyHandlerDirective, isStandalone: true, selector: \"[keyHandler]\", host: { listeners: { \"keyup\": \"keyEvent($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: KeyHandlerDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    // eslint-disable-next-line @angular-eslint/directive-selector\n                    selector: `[keyHandler]`,\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { keyEvent: [{\n                type: HostListener,\n                args: ['keyup', ['$event']]\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWhhbmRsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kaXJlY3RpdmVzL2tleS1oYW5kbGVyL2tleS1oYW5kbGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUcsQ0FBQztJQUczQyxRQUFRLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNFLHFFQUFxRTtZQUNyRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdkIsTUFBTSxXQUFXLEdBQWdCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQzVELFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztpSUFaVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7c0JBSUUsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6IGBba2V5SGFuZGxlcl1gLFxufSlcbmV4cG9ydCBjbGFzcyBLZXlIYW5kbGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBhY3Rpb24gdG8gc3RvcCBzY3JvbGxpbmcgd2hlbiBzcGFjZSBpcyBwcmVzc2VkXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBob3N0RWxlbWVudCA9IDxIVE1MRWxlbWVudD50aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIGhvc3RFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Directive, HostListener, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/modal\";\nexport class ModalRouterLinkDirective {\n    constructor(modalNavigationService, elementRef) {\n        this.modalNavigationService = modalNavigationService;\n        this.elementRef = elementRef;\n    }\n    ngOnInit() {\n        this.elementRef.nativeElement.setAttribute('modal-router-link', '');\n    }\n    onClick() {\n        this.modalNavigationService.navigateToModal(this.path, typeof this.queryParams !== 'string' ? this.queryParams : null);\n        return false;\n    }\n    /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: ModalRouterLinkDirective, deps: [{ token: i1.ModalNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.7\", type: ModalRouterLinkDirective, isStandalone: true, selector: \"[kirbyModalRouterLink]\", inputs: { path: [\"kirbyModalRouterLink\", \"path\"], queryParams: [\"kirbyModalQueryParams\", \"queryParams\"] }, host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: ModalRouterLinkDirective, decorators: [{\n            type: Directive,\n            args: [{ selector: `[kirbyModalRouterLink]` }]\n        }], ctorParameters: () => [{ type: i1.ModalNavigationService }, { type: i0.ElementRef }], propDecorators: { path: [{\n                type: Input,\n                args: ['kirbyModalRouterLink']\n            }], queryParams: [{\n                type: Input,\n                args: ['kirbyModalQueryParams']\n            }], onClick: [{\n                type: HostListener,\n                args: ['click']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcm91dGVyLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kaXJlY3RpdmVzL21vZGFsLXJvdXRlci1saW5rL21vZGFsLXJvdXRlci1saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQUtuRixNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1Usc0JBQThDLEVBQzlDLFVBQXNCO1FBRHRCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM3QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBT0QsT0FBTztRQUNMLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQ3pDLElBQUksQ0FBQyxJQUFJLEVBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO2lJQXJCVSx3QkFBd0I7cUhBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTs7c0JBVzlDLEtBQUs7dUJBQUMsc0JBQXNCOztzQkFFNUIsS0FBSzt1QkFBQyx1QkFBdUI7O3NCQUU3QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vZGFsTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL21vZGFsJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBgW2tpcmJ5TW9kYWxSb3V0ZXJMaW5rXWAgfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFJvdXRlckxpbmtEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1vZGFsTmF2aWdhdGlvblNlcnZpY2U6IE1vZGFsTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21vZGFsLXJvdXRlci1saW5rJywgJycpO1xuICB9XG5cbiAgQElucHV0KCdraXJieU1vZGFsUm91dGVyTGluaycpIHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2tpcmJ5TW9kYWxRdWVyeVBhcmFtcycpIHF1ZXJ5UGFyYW1zPzogUGFyYW1zO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiBib29sZWFuIHtcbiAgICB0aGlzLm1vZGFsTmF2aWdhdGlvblNlcnZpY2UubmF2aWdhdGVUb01vZGFsKFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAgdHlwZW9mIHRoaXMucXVlcnlQYXJhbXMgIT09ICdzdHJpbmcnID8gdGhpcy5xdWVyeVBhcmFtcyA6IG51bGxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CardModule } from '@kirbydesign/designsystem/card';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { KIRBY_CONFIG } from '@kirbydesign/designsystem/config';\nimport { ComponentLoaderDirective, ThemeColorDirective } from '@kirbydesign/designsystem/shared';\nimport { FlagComponent } from '@kirbydesign/designsystem/flag';\nimport { SpinnerModule } from '@kirbydesign/designsystem/spinner';\nimport { ToggleComponent } from '@kirbydesign/designsystem/toggle';\nimport { SectionHeaderComponent } from '@kirbydesign/designsystem/section-header';\nimport { ItemModule } from '@kirbydesign/designsystem/item';\nimport { SlideModule } from '@kirbydesign/designsystem/slide';\nimport { ToggleButtonModule } from '@kirbydesign/designsystem/toggle-button';\nimport { TabsModule } from '@kirbydesign/designsystem/tabs';\nimport { SlideButtonComponent } from '@kirbydesign/designsystem/slide-button';\nimport { RangeComponent } from '@kirbydesign/designsystem/range';\nimport { PopoverComponent } from '@kirbydesign/designsystem/popover';\nimport { LoadingOverlayComponent } from '@kirbydesign/designsystem/loading-overlay';\nimport { DividerComponent } from '@kirbydesign/designsystem/divider';\nimport { CheckboxComponent } from '@kirbydesign/designsystem/checkbox';\nimport { AccordionModule } from '@kirbydesign/designsystem/accordion';\nimport { ItemSlidingComponent } from '@kirbydesign/designsystem/item-sliding';\nimport { ListModule } from '@kirbydesign/designsystem/list';\nimport { RadioModule } from '@kirbydesign/designsystem/radio';\nimport { AffixDirective, FormFieldModule, InputComponent, TextareaComponent, } from '@kirbydesign/designsystem/form-field';\nimport { AvatarComponent } from '@kirbydesign/designsystem/avatar';\nimport { ProgressCircleComponent, ProgressCircleRingComponent, } from '@kirbydesign/designsystem/progress-circle';\nimport { RouterOutletModule } from '@kirbydesign/designsystem/router-outlet';\nimport { ItemGroupComponent } from '@kirbydesign/designsystem/item-group';\nimport { ButtonComponent } from '@kirbydesign/designsystem/button';\nimport { CalendarComponent } from '@kirbydesign/designsystem/calendar';\nimport { ActionSheetComponent, AlertComponent, ModalCompactWrapperComponent, ModalFooterComponent, ModalWrapperComponent, } from '@kirbydesign/designsystem/modal';\nimport { ModalComponent } from '@kirbydesign/designsystem/modal';\nimport { PageModule } from '@kirbydesign/designsystem/page';\nimport { HeaderModule } from '@kirbydesign/designsystem/header';\nimport { EmptyStateModule } from '@kirbydesign/designsystem/empty-state';\nimport { DropdownModule } from '@kirbydesign/designsystem/dropdown';\nimport { KirbyAppModule } from '@kirbydesign/designsystem/kirby-app';\nimport { ChartsModule } from '@kirbydesign/designsystem/chart';\nimport { FabSheetComponent } from '@kirbydesign/designsystem/fab-sheet';\nimport { TableSortableComponent } from '@kirbydesign/designsystem/data-table';\nimport { ReorderListComponent } from '@kirbydesign/designsystem/reorder-list';\nimport { ActionGroupComponent } from '@kirbydesign/designsystem/action-group';\nimport { MenuComponent } from '@kirbydesign/designsystem/menu';\nimport { TabNavigationModule } from '@kirbydesign/designsystem/tab-navigation';\nimport { BadgeComponent } from '@kirbydesign/designsystem/badge';\nimport { provideKirby } from '@kirbydesign/designsystem/config';\nimport { SegmentedControlComponent } from './components/segmented-control/segmented-control.component';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/modal\";\nconst reexportedImports = [ModalRouterLinkDirective];\nconst imports = [...reexportedImports, KeyHandlerDirective];\nconst standaloneComponents = [\n    ActionGroupComponent,\n    ItemGroupComponent,\n    ModalCompactWrapperComponent,\n    TextareaComponent,\n    InputComponent,\n    AffixDirective,\n    DividerComponent,\n    ThemeColorDirective,\n    SegmentedControlComponent,\n    AlertComponent,\n    PopoverComponent,\n    ProgressCircleRingComponent,\n    ModalWrapperComponent,\n    SectionHeaderComponent,\n    RangeComponent,\n    ItemSlidingComponent,\n    ProgressCircleComponent,\n    ReorderListComponent,\n    LoadingOverlayComponent,\n    FabSheetComponent,\n    ToggleComponent,\n    SlideButtonComponent,\n    SegmentedControlComponent,\n    CheckboxComponent,\n    MenuComponent,\n    ActionSheetComponent,\n    ModalFooterComponent,\n    AvatarComponent,\n    CalendarComponent,\n    ButtonComponent,\n    ComponentLoaderDirective,\n    FlagComponent,\n    BadgeComponent,\n    ModalComponent,\n    TableSortableComponent,\n];\nconst exportedModules = [\n    KirbyAppModule,\n    RouterOutletModule,\n    PageModule,\n    HeaderModule,\n    TabNavigationModule,\n    TabsModule,\n    IconModule,\n    ItemModule,\n    ToggleButtonModule,\n    ListModule,\n    ChartsModule,\n    SpinnerModule,\n    CardModule,\n    RadioModule,\n    EmptyStateModule,\n    DropdownModule,\n    FormFieldModule,\n    SlideModule,\n    AccordionModule,\n    HeaderModule,\n    ...standaloneComponents,\n];\nconst allExports = [...exportedModules, ...reexportedImports];\nconst importedModules = [...exportedModules];\nexport class KirbyModule {\n    constructor(modalController, config) {\n        modalController.initialize(config && config.moduleRootRoutePath);\n    }\n    /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: KirbyModule, deps: [{ token: i1.ModalController }, { token: KIRBY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n    /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.7\", ngImport: i0, type: KirbyModule, imports: [CommonModule, RouterModule, KirbyAppModule,\n            RouterOutletModule,\n            PageModule,\n            HeaderModule,\n            TabNavigationModule,\n            TabsModule,\n            IconModule,\n            ItemModule,\n            ToggleButtonModule,\n            ListModule,\n            ChartsModule,\n            SpinnerModule,\n            CardModule,\n            RadioModule,\n            EmptyStateModule,\n            DropdownModule,\n            FormFieldModule,\n            SlideModule,\n            AccordionModule,\n            HeaderModule, ActionGroupComponent,\n            ItemGroupComponent,\n            ModalCompactWrapperComponent,\n            TextareaComponent,\n            InputComponent,\n            AffixDirective,\n            DividerComponent,\n            ThemeColorDirective,\n            SegmentedControlComponent,\n            AlertComponent,\n            PopoverComponent,\n            ProgressCircleRingComponent,\n            ModalWrapperComponent,\n            SectionHeaderComponent,\n            RangeComponent,\n            ItemSlidingComponent,\n            ProgressCircleComponent,\n            ReorderListComponent,\n            LoadingOverlayComponent,\n            FabSheetComponent,\n            ToggleComponent,\n            SlideButtonComponent,\n            SegmentedControlComponent,\n            CheckboxComponent,\n            MenuComponent,\n            ActionSheetComponent,\n            ModalFooterComponent,\n            AvatarComponent,\n            CalendarComponent,\n            ButtonComponent,\n            ComponentLoaderDirective,\n            FlagComponent,\n            BadgeComponent,\n            ModalComponent,\n            TableSortableComponent, ModalRouterLinkDirective, KeyHandlerDirective], exports: [KirbyAppModule,\n            RouterOutletModule,\n            PageModule,\n            HeaderModule,\n            TabNavigationModule,\n            TabsModule,\n            IconModule,\n            ItemModule,\n            ToggleButtonModule,\n            ListModule,\n            ChartsModule,\n            SpinnerModule,\n            CardModule,\n            RadioModule,\n            EmptyStateModule,\n            DropdownModule,\n            FormFieldModule,\n            SlideModule,\n            AccordionModule,\n            HeaderModule, ActionGroupComponent,\n            ItemGroupComponent,\n            ModalCompactWrapperComponent,\n            TextareaComponent,\n            InputComponent,\n            AffixDirective,\n            DividerComponent,\n            ThemeColorDirective,\n            SegmentedControlComponent,\n            AlertComponent,\n            PopoverComponent,\n            ProgressCircleRingComponent,\n            ModalWrapperComponent,\n            SectionHeaderComponent,\n            RangeComponent,\n            ItemSlidingComponent,\n            ProgressCircleComponent,\n            ReorderListComponent,\n            LoadingOverlayComponent,\n            FabSheetComponent,\n            ToggleComponent,\n            SlideButtonComponent,\n            SegmentedControlComponent,\n            CheckboxComponent,\n            MenuComponent,\n            ActionSheetComponent,\n            ModalFooterComponent,\n            AvatarComponent,\n            CalendarComponent,\n            ButtonComponent,\n            ComponentLoaderDirective,\n            FlagComponent,\n            BadgeComponent,\n            ModalComponent,\n            TableSortableComponent, ModalRouterLinkDirective] }); }\n    /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: KirbyModule, providers: [provideKirby()], imports: [CommonModule, RouterModule, KirbyAppModule,\n            RouterOutletModule,\n            PageModule,\n            HeaderModule,\n            TabNavigationModule,\n            TabsModule,\n            IconModule,\n            ItemModule,\n            ToggleButtonModule,\n            ListModule,\n            ChartsModule,\n            SpinnerModule,\n            CardModule,\n            RadioModule,\n            EmptyStateModule,\n            DropdownModule,\n            FormFieldModule,\n            SlideModule,\n            AccordionModule,\n            HeaderModule, ActionGroupComponent,\n            ItemGroupComponent,\n            ModalCompactWrapperComponent,\n            TextareaComponent,\n            InputComponent,\n            DividerComponent,\n            SegmentedControlComponent,\n            AlertComponent,\n            PopoverComponent,\n            ProgressCircleRingComponent,\n            ModalWrapperComponent,\n            SectionHeaderComponent,\n            RangeComponent,\n            ItemSlidingComponent,\n            ProgressCircleComponent,\n            ReorderListComponent,\n            LoadingOverlayComponent,\n            FabSheetComponent,\n            ToggleComponent,\n            SlideButtonComponent,\n            SegmentedControlComponent,\n            CheckboxComponent,\n            MenuComponent,\n            ActionSheetComponent,\n            ModalFooterComponent,\n            AvatarComponent,\n            CalendarComponent,\n            ButtonComponent,\n            FlagComponent,\n            BadgeComponent,\n            ModalComponent,\n            TableSortableComponent, KirbyAppModule,\n            RouterOutletModule,\n            PageModule,\n            HeaderModule,\n            TabNavigationModule,\n            TabsModule,\n            IconModule,\n            ItemModule,\n            ToggleButtonModule,\n            ListModule,\n            ChartsModule,\n            SpinnerModule,\n            CardModule,\n            RadioModule,\n            EmptyStateModule,\n            DropdownModule,\n            FormFieldModule,\n            SlideModule,\n            AccordionModule,\n            HeaderModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.7\", ngImport: i0, type: KirbyModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, RouterModule, ...importedModules, imports],\n                    providers: [provideKirby()],\n                    exports: [allExports],\n                }]\n        }], ctorParameters: () => [{ type: i1.ModalController }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [KIRBY_CONFIG]\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9raXJieS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9B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QkFBaUI7WUFDakIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZUFBZTtZQUVmLGFBQWE7WUFDYixjQUFjO1lBQ2QsY0FBYztZQUNkLHNCQUFzQixFQUd0QixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLFVBQVU7WUFDVixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFVBQVU7WUFDVixVQUFVO1lBQ1YsVUFBVTtZQUNWLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsWUFBWTtZQUNaLGFBQWE7WUFDYixVQUFVO1lBQ1YsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsZUFBZTtZQUNmLFdBQVc7WUFDWCxlQUFlO1lBQ2YsWUFBWTs7MkZBYUQsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsZUFBZSxFQUFFLE9BQU8sQ0FBQztvQkFDbEUsU0FBUyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDdEI7OzBCQUlJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ2FyZE1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vY2FyZCc7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pY29uJztcbmltcG9ydCB7IEtJUkJZX0NPTkZJRywgS2lyYnlDb25maWcgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2NvbmZpZyc7XG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJEaXJlY3RpdmUsIFRoZW1lQ29sb3JEaXJlY3RpdmUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBGbGFnQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9mbGFnJztcbmltcG9ydCB7IFNwaW5uZXJNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NwaW5uZXInO1xuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS90b2dnbGUnO1xuaW1wb3J0IHsgU2VjdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vc2VjdGlvbi1oZWFkZXInO1xuaW1wb3J0IHsgSXRlbU1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXRlbSc7XG5pbXBvcnQgeyBTbGlkZU1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vc2xpZGUnO1xuaW1wb3J0IHsgVG9nZ2xlQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS90b2dnbGUtYnV0dG9uJztcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3RhYnMnO1xuaW1wb3J0IHsgU2xpZGVCdXR0b25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NsaWRlLWJ1dHRvbic7XG5pbXBvcnQgeyBSYW5nZUNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcmFuZ2UnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcG9wb3Zlcic7XG5pbXBvcnQgeyBMb2FkaW5nT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vbG9hZGluZy1vdmVybGF5JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2RpdmlkZXInO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2NoZWNrYm94JztcbmltcG9ydCB7IEFjY29yZGlvbk1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYWNjb3JkaW9uJztcbmltcG9ydCB7IEl0ZW1TbGlkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pdGVtLXNsaWRpbmcnO1xuaW1wb3J0IHsgTGlzdE1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vbGlzdCc7XG5pbXBvcnQgeyBSYWRpb01vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcmFkaW8nO1xuaW1wb3J0IHtcbiAgQWZmaXhEaXJlY3RpdmUsXG4gIEZvcm1GaWVsZE1vZHVsZSxcbiAgSW5wdXRDb21wb25lbnQsXG4gIFRleHRhcmVhQ29tcG9uZW50LFxufSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9hdmF0YXInO1xuaW1wb3J0IHtcbiAgUHJvZ3Jlc3NDaXJjbGVDb21wb25lbnQsXG4gIFByb2dyZXNzQ2lyY2xlUmluZ0NvbXBvbmVudCxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9wcm9ncmVzcy1jaXJjbGUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0TW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9yb3V0ZXItb3V0bGV0JztcblxuaW1wb3J0IHsgSXRlbUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9pdGVtLWdyb3VwJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYnV0dG9uJztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9jYWxlbmRhcic7XG5pbXBvcnQge1xuICBBY3Rpb25TaGVldENvbXBvbmVudCxcbiAgQWxlcnRDb21wb25lbnQsXG4gIE1vZGFsQ29tcGFjdFdyYXBwZXJDb21wb25lbnQsXG4gIE1vZGFsQ29udHJvbGxlcixcbiAgTW9kYWxGb290ZXJDb21wb25lbnQsXG4gIE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9tb2RhbCc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vbW9kYWwnO1xuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcGFnZSc7XG5pbXBvcnQgeyBIZWFkZXJNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2hlYWRlcic7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTW9kdWxlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9lbXB0eS1zdGF0ZSc7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vZHJvcGRvd24nO1xuaW1wb3J0IHsgS2lyYnlBcHBNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2tpcmJ5LWFwcCc7XG5pbXBvcnQgeyBDaGFydHNNb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2NoYXJ0JztcbmltcG9ydCB7IEZhYlNoZWV0Q29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9mYWItc2hlZXQnO1xuaW1wb3J0IHsgVGFibGVTb3J0YWJsZUNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vZGF0YS10YWJsZSc7XG5pbXBvcnQgeyBSZW9yZGVyTGlzdENvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vcmVvcmRlci1saXN0JztcblxuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9tZW51JztcbmltcG9ydCB7IFRhYk5hdmlnYXRpb25Nb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3RhYi1uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9iYWRnZSc7XG5cbmltcG9ydCB7IHByb3ZpZGVLaXJieSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vY29uZmlnJztcbmltcG9ydCB7IFNlZ21lbnRlZENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEtleUhhbmRsZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMva2V5LWhhbmRsZXIva2V5LWhhbmRsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1vZGFsUm91dGVyTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tb2RhbC1yb3V0ZXItbGluay9tb2RhbC1yb3V0ZXItbGluay5kaXJlY3RpdmUnO1xuXG5jb25zdCByZWV4cG9ydGVkSW1wb3J0cyA9IFtNb2RhbFJvdXRlckxpbmtEaXJlY3RpdmVdO1xuXG5jb25zdCBpbXBvcnRzID0gWy4uLnJlZXhwb3J0ZWRJbXBvcnRzLCBLZXlIYW5kbGVyRGlyZWN0aXZlXTtcblxuY29uc3Qgc3RhbmRhbG9uZUNvbXBvbmVudHMgPSBbXG4gIEFjdGlvbkdyb3VwQ29tcG9uZW50LFxuICBJdGVtR3JvdXBDb21wb25lbnQsXG4gIE1vZGFsQ29tcGFjdFdyYXBwZXJDb21wb25lbnQsXG4gIFRleHRhcmVhQ29tcG9uZW50LFxuICBJbnB1dENvbXBvbmVudCxcbiAgQWZmaXhEaXJlY3RpdmUsXG4gIERpdmlkZXJDb21wb25lbnQsXG4gIFRoZW1lQ29sb3JEaXJlY3RpdmUsXG4gIFNlZ21lbnRlZENvbnRyb2xDb21wb25lbnQsXG4gIEFsZXJ0Q29tcG9uZW50LFxuICBQb3BvdmVyQ29tcG9uZW50LFxuICBQcm9ncmVzc0NpcmNsZVJpbmdDb21wb25lbnQsXG4gIE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbiAgU2VjdGlvbkhlYWRlckNvbXBvbmVudCxcbiAgUmFuZ2VDb21wb25lbnQsXG4gIEl0ZW1TbGlkaW5nQ29tcG9uZW50LFxuICBQcm9ncmVzc0NpcmNsZUNvbXBvbmVudCxcbiAgUmVvcmRlckxpc3RDb21wb25lbnQsXG4gIExvYWRpbmdPdmVybGF5Q29tcG9uZW50LFxuICBGYWJTaGVldENvbXBvbmVudCxcbiAgVG9nZ2xlQ29tcG9uZW50LFxuICBTbGlkZUJ1dHRvbkNvbXBvbmVudCxcbiAgU2VnbWVudGVkQ29udHJvbENvbXBvbmVudCxcbiAgQ2hlY2tib3hDb21wb25lbnQsXG4gIE1lbnVDb21wb25lbnQsXG4gIEFjdGlvblNoZWV0Q29tcG9uZW50LFxuICBNb2RhbEZvb3RlckNvbXBvbmVudCxcbiAgQXZhdGFyQ29tcG9uZW50LFxuICBDYWxlbmRhckNvbXBvbmVudCxcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBDb21wb25lbnRMb2FkZXJEaXJlY3RpdmUsXG4gIEZsYWdDb21wb25lbnQsXG4gIEJhZGdlQ29tcG9uZW50LFxuICBNb2RhbENvbXBvbmVudCxcbiAgVGFibGVTb3J0YWJsZUNvbXBvbmVudCxcbl07XG5jb25zdCBleHBvcnRlZE1vZHVsZXMgPSBbXG4gIEtpcmJ5QXBwTW9kdWxlLFxuICBSb3V0ZXJPdXRsZXRNb2R1bGUsXG4gIFBhZ2VNb2R1bGUsXG4gIEhlYWRlck1vZHVsZSxcbiAgVGFiTmF2aWdhdGlvbk1vZHVsZSxcbiAgVGFic01vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSXRlbU1vZHVsZSxcbiAgVG9nZ2xlQnV0dG9uTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBDaGFydHNNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG4gIENhcmRNb2R1bGUsXG4gIFJhZGlvTW9kdWxlLFxuICBFbXB0eVN0YXRlTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgRm9ybUZpZWxkTW9kdWxlLFxuICBTbGlkZU1vZHVsZSxcbiAgQWNjb3JkaW9uTW9kdWxlLFxuICBIZWFkZXJNb2R1bGUsXG4gIC4uLnN0YW5kYWxvbmVDb21wb25lbnRzLFxuXTtcblxuY29uc3QgYWxsRXhwb3J0cyA9IFsuLi5leHBvcnRlZE1vZHVsZXMsIC4uLnJlZXhwb3J0ZWRJbXBvcnRzXTtcblxuY29uc3QgaW1wb3J0ZWRNb2R1bGVzID0gWy4uLmV4cG9ydGVkTW9kdWxlc107XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSwgLi4uaW1wb3J0ZWRNb2R1bGVzLCBpbXBvcnRzXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUtpcmJ5KCldLFxuICBleHBvcnRzOiBbYWxsRXhwb3J0c10sXG59KVxuZXhwb3J0IGNsYXNzIEtpcmJ5TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChLSVJCWV9DT05GSUcpIGNvbmZpZz86IEtpcmJ5Q29uZmlnXG4gICkge1xuICAgIG1vZGFsQ29udHJvbGxlci5pbml0aWFsaXplKGNvbmZpZyAmJiBjb25maWcubW9kdWxlUm9vdFJvdXRlUGF0aCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tpcmJ5ZGVzaWduLWRlc2lnbnN5c3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":"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"}