@acorex/components 20.2.23 → 20.2.27
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/editor/index.d.ts +42 -3
 - package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
 - package/fesm2022/acorex-components-color-palette.mjs +1 -1
 - package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
 - package/fesm2022/acorex-components-cron-job.mjs +6 -6
 - package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
 - package/fesm2022/acorex-components-editor.mjs +41 -32
 - package/fesm2022/acorex-components-editor.mjs.map +1 -1
 - package/fesm2022/acorex-components-kanban.mjs +1 -1
 - package/fesm2022/acorex-components-kanban.mjs.map +1 -1
 - package/fesm2022/acorex-components-number-box.mjs +8 -10
 - package/fesm2022/acorex-components-number-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-phone-box.mjs +1 -1
 - package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs +1 -1
 - package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
 - package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
 - package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
 - package/fesm2022/acorex-components-rrule.mjs +1 -1
 - package/fesm2022/acorex-components-rrule.mjs.map +1 -1
 - package/fesm2022/acorex-components-scheduler.mjs +8 -8
 - package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
 - package/fesm2022/acorex-components-select-box.mjs +18 -8
 - package/fesm2022/acorex-components-select-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-tag-box.mjs +1 -1
 - package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
 - package/fesm2022/acorex-components-tree2.mjs +689 -0
 - package/fesm2022/acorex-components-tree2.mjs.map +1 -0
 - package/package.json +9 -5
 - package/select-box/index.d.ts +14 -10
 - package/tree2/README.md +3 -0
 - package/tree2/index.d.ts +337 -0
 
    
        package/editor/index.d.ts
    CHANGED
    
    | 
         @@ -3,12 +3,48 @@ import * as i0 from '@angular/core'; 
     | 
|
| 
       3 
3 
     | 
    
         
             
            import { MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { OutputData } from '@editorjs/editorjs';
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            type EditorJsTool = 'header' | 'list' | 'raw' | 'image' | 'quote' | ' 
     | 
| 
      
 6 
     | 
    
         
            +
            type EditorJsTool = 'header' | 'list' | 'raw' | 'image' | 'quote' | 'codeBox' | 'underline' | 'color';
         
     | 
| 
       7 
7 
     | 
    
         
             
            type ImageToolConfig = {
         
     | 
| 
       8 
     | 
    
         
            -
                endpoints 
     | 
| 
      
 8 
     | 
    
         
            +
                endpoints?: {
         
     | 
| 
       9 
9 
     | 
    
         
             
                    byFile: string;
         
     | 
| 
       10 
10 
     | 
    
         
             
                    byUrl: string;
         
     | 
| 
       11 
11 
     | 
    
         
             
                };
         
     | 
| 
      
 12 
     | 
    
         
            +
                /** Name of the uploaded image field in POST request (default: "image") */
         
     | 
| 
      
 13 
     | 
    
         
            +
                field?: string;
         
     | 
| 
      
 14 
     | 
    
         
            +
                /** Mime-types of files accepted (default: "image/*") */
         
     | 
| 
      
 15 
     | 
    
         
            +
                types?: string;
         
     | 
| 
      
 16 
     | 
    
         
            +
                /** Extra data to send with upload requests */
         
     | 
| 
      
 17 
     | 
    
         
            +
                additionalRequestData?: Record<string, any>;
         
     | 
| 
      
 18 
     | 
    
         
            +
                /** Custom headers to include in upload requests */
         
     | 
| 
      
 19 
     | 
    
         
            +
                additionalRequestHeaders?: Record<string, string>;
         
     | 
| 
      
 20 
     | 
    
         
            +
                /** Placeholder text for the caption input (default: "Caption") */
         
     | 
| 
      
 21 
     | 
    
         
            +
                captionPlaceholder?: string;
         
     | 
| 
      
 22 
     | 
    
         
            +
                /** HTML content for the “Select file” button */
         
     | 
| 
      
 23 
     | 
    
         
            +
                buttonContent?: string;
         
     | 
| 
      
 24 
     | 
    
         
            +
                /** Custom uploader methods */
         
     | 
| 
      
 25 
     | 
    
         
            +
                uploader?: {
         
     | 
| 
      
 26 
     | 
    
         
            +
                    uploadByFile?: (file: File) => Promise<{
         
     | 
| 
      
 27 
     | 
    
         
            +
                        success: number;
         
     | 
| 
      
 28 
     | 
    
         
            +
                        file: {
         
     | 
| 
      
 29 
     | 
    
         
            +
                            url: string;
         
     | 
| 
      
 30 
     | 
    
         
            +
                        };
         
     | 
| 
      
 31 
     | 
    
         
            +
                    }>;
         
     | 
| 
      
 32 
     | 
    
         
            +
                    uploadByUrl?: (url: string) => Promise<{
         
     | 
| 
      
 33 
     | 
    
         
            +
                        success: number;
         
     | 
| 
      
 34 
     | 
    
         
            +
                        file: {
         
     | 
| 
      
 35 
     | 
    
         
            +
                            url: string;
         
     | 
| 
      
 36 
     | 
    
         
            +
                        };
         
     | 
| 
      
 37 
     | 
    
         
            +
                    }>;
         
     | 
| 
      
 38 
     | 
    
         
            +
                };
         
     | 
| 
      
 39 
     | 
    
         
            +
                /** Custom actions for the tool's settings menu */
         
     | 
| 
      
 40 
     | 
    
         
            +
                actions?: Array<Record<string, any>>;
         
     | 
| 
      
 41 
     | 
    
         
            +
                /** Feature toggles (border, background, caption, etc.) */
         
     | 
| 
      
 42 
     | 
    
         
            +
                features?: {
         
     | 
| 
      
 43 
     | 
    
         
            +
                    border?: boolean;
         
     | 
| 
      
 44 
     | 
    
         
            +
                    background?: boolean;
         
     | 
| 
      
 45 
     | 
    
         
            +
                    caption?: boolean;
         
     | 
| 
      
 46 
     | 
    
         
            +
                    [key: string]: any;
         
     | 
| 
      
 47 
     | 
    
         
            +
                };
         
     | 
| 
       12 
48 
     | 
    
         
             
            };
         
     | 
| 
       13 
49 
     | 
    
         | 
| 
       14 
50 
     | 
    
         
             
            declare const AXEditorComponent_base: polytype.Polytype.ClusteredConstructor<[{
         
     | 
| 
         @@ -18,8 +54,11 @@ declare const AXEditorComponent_base: polytype.Polytype.ClusteredConstructor<[{ 
     | 
|
| 
       18 
54 
     | 
    
         
             
            }, typeof MXLookComponent]>;
         
     | 
| 
       19 
55 
     | 
    
         
             
            declare class AXEditorComponent extends AXEditorComponent_base {
         
     | 
| 
       20 
56 
     | 
    
         
             
                #private;
         
     | 
| 
      
 57 
     | 
    
         
            +
                toolLoaders: Record<EditorJsTool, () => Promise<any>>;
         
     | 
| 
       21 
58 
     | 
    
         
             
                private editorHolder;
         
     | 
| 
      
 59 
     | 
    
         
            +
                private platform;
         
     | 
| 
       22 
60 
     | 
    
         
             
                modules: i0.InputSignal<EditorJsTool[]>;
         
     | 
| 
      
 61 
     | 
    
         
            +
                imageConfig: i0.InputSignal<ImageToolConfig>;
         
     | 
| 
       23 
62 
     | 
    
         
             
                private editorClass;
         
     | 
| 
       24 
63 
     | 
    
         
             
                private colorConfig;
         
     | 
| 
       25 
64 
     | 
    
         
             
                private markerConfig;
         
     | 
| 
         @@ -28,7 +67,7 @@ declare class AXEditorComponent extends AXEditorComponent_base { 
     | 
|
| 
       28 
67 
     | 
    
         
             
                private get __hostName();
         
     | 
| 
       29 
68 
     | 
    
         
             
                save(): Promise<OutputData>;
         
     | 
| 
       30 
69 
     | 
    
         
             
                static ɵfac: i0.ɵɵFactoryDeclaration<AXEditorComponent, never>;
         
     | 
| 
       31 
     | 
    
         
            -
                static ɵcmp: i0.ɵɵComponentDeclaration<AXEditorComponent, "ax-editor", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "modules": { "alias": "modules"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
         
     | 
| 
      
 70 
     | 
    
         
            +
                static ɵcmp: i0.ɵɵComponentDeclaration<AXEditorComponent, "ax-editor", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "modules": { "alias": "modules"; "required": false; "isSignal": true; }; "imageConfig": { "alias": "imageConfig"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
         
     | 
| 
       32 
71 
     | 
    
         
             
            }
         
     | 
| 
       33 
72 
     | 
    
         | 
| 
       34 
73 
     | 
    
         
             
            declare class EditorModule {
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"acorex-components-autocomplete.mjs","sources":["../tmp-esm2022/autocomplete/lib/autocomplete.component.js","../tmp-esm2022/autocomplete/lib/autocomplete.module.js","../tmp-esm2022/autocomplete/acorex-components-autocomplete.js"],"sourcesContent":["import { AXAutocompleteParentComponent, AXClearableComponent, AXClosableComponent, AXComponent, AXFocusableComponent, AXSearchableComponent, AXValuableComponent, AX_SELECTION_DATA_TOKEN, MXInputBaseValueComponent, MXLookComponent, MXSelectionBridgeService, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/cdk/common';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { AXListComponent } from '@acorex/components/list';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, inject, input, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { debounceTime } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n * @category\n */\nexport class AXAutocompleteComponent extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent) {\n    constructor() {\n        super(...arguments);\n        this.delayTime = input(300, ...(ngDevMode ? [{ debugName: \"delayTime\" }] : []));\n        /** Height of each list item in pixels, or 'auto' to let list measure. */\n        this.itemHeight = input(40, ...(ngDevMode ? [{ debugName: \"itemHeight\" }] : []));\n        /** Maximum number of visible items before scrolling. */\n        this.maxVisibleItems = input(5, ...(ngDevMode ? [{ debugName: \"maxVisibleItems\" }] : []));\n        this.inputValue = signal('', ...(ngDevMode ? [{ debugName: \"inputValue\" }] : []));\n        this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n        /** @ignore */\n        this.renderList = false;\n        /** @ignore */\n        this.dropdownSizes = {\n            width: '100%',\n            height: 'auto',\n        };\n        /** @ignore */\n        this._listDataSource = convertArrayToDataSource([], {\n            key: this.valueField,\n            pageSize: 10,\n        });\n        /**\n         * The width of the dropdown in pixels.\n         * @defaultValue 260\n         */\n        this.dropdownWidth = 260;\n        /**\n         * Service for managing selection data, injected via `AX_SELECTION_DATA_TOKEN`.\n         */\n        this.selectionService = inject(AX_SELECTION_DATA_TOKEN);\n        /** @ignore */\n        this._unsubscriber = inject(AXUnsubscriber);\n        this.parent = inject(AXAutocompleteParentComponent);\n        this.parentText = inject(MXInputBaseValueComponent);\n    }\n    /**\n     * Gets the data source for the component, which can be either an `AXDataSource` or an array of items.\n     * @returns {AXDataSource<any> | any[]}\n     */\n    get dataSource() {\n        return this._dataSource;\n    }\n    /**\n     * Sets the data source, either as `AXDataSource` or an array. Converts arrays to `AXDataSource` and subscribes to data and loading changes.\n     * @param {AXDataSource<any> | any[]} v\n     */\n    set dataSource(v) {\n        this._dataSource = v;\n        if (Array.isArray(v)) {\n            this._listDataSource = convertArrayToDataSource(v, {\n                key: this.valueField,\n                pageSize: 10,\n            });\n        }\n        else {\n            this._listDataSource = this.dataSource;\n        }\n        //\n        this.onChangedSubscription = this._listDataSource.onChanged.subscribe((data) => {\n            this.setDropdownSize(data.totalCount);\n        });\n        this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\n            this.isLoading.set(loading);\n        });\n    }\n    /** @ignore */\n    ngAfterViewInit() {\n        this.setDropdownSize();\n        this.registerValidation();\n        this.parentText.onTextChanged\n            .pipe(debounceTime(this.delayTime()), this.parent.unsubscriber.takeUntilDestroy)\n            .subscribe((e) => {\n            if (!e.isUserInteraction)\n                return;\n            this.inputValue.set(e.value);\n            if (!e.value) {\n                this.close();\n                return;\n            }\n            this.search(e.value);\n            this.open();\n        });\n        this.parent.onKeyDown.pipe(this.parent.unsubscriber.takeUntilDestroy).subscribe((e) => {\n            if (e.nativeEvent.key === 'ArrowDown') {\n                this.search(this.inputValue());\n                this.open();\n                this.list.focus();\n            }\n        });\n    }\n    /** @ignore */\n    ngOnDestroy() {\n        this.onChangedSubscription.unsubscribe();\n    }\n    /**\n     * Retrieves an item by its key.\n     * @param {any} key\n     */\n    getItemByKey(key) {\n        const startTime = Date.now();\n        const check = async () => {\n            while (Date.now() - startTime < 2000) {\n                if (typeof this._listDataSource.find === 'function') {\n                    return this._listDataSource.find(key);\n                }\n                else {\n                    await new Promise((resolve) => setTimeout(resolve, 50));\n                }\n            }\n            console.warn('Timeout reached without finding the \"getItemByKey\" method');\n        };\n        return check();\n    }\n    /** @ignore */\n    _handleOnOpenedEvent(e) {\n        if (!this.renderList) {\n            this.renderList = true;\n            this.list?.render();\n        }\n        else if (!this._listDataSource.totalCount || this._listDataSource.totalCount == 0) {\n            this.list?.refresh(false);\n        }\n        //\n        this.onOpened.emit({\n            component: this,\n            isUserInteraction: e.isUserInteraction,\n        });\n    }\n    /** @ignore */\n    _handleOnClosedEvent(e) {\n        this.parent.focus();\n        this.onClosed.emit({\n            component: this,\n            isUserInteraction: e.isUserInteraction,\n        });\n        this._unsubscriber.unsubscribe();\n    }\n    /** @ignore */\n    _handleValueChanged(e) {\n        if (e.isUserInteraction) {\n            if (!this.multiple) {\n                this.close();\n            }\n            this.parent.emitOnItemSelected(this.selectedItems, true);\n        }\n    }\n    /** @ignore */\n    _handleItemClick(e) {\n        this.onItemClick.emit(e);\n        if (!this.multiple) {\n            this.close();\n        }\n    }\n    /** @ignore */\n    _handleItemSelected(e) {\n        this.onItemSelected.emit(e);\n        if (!this.multiple) {\n            this.close();\n        }\n    }\n    /** @ignore */\n    setDropdownSize(count = 0) {\n        if (this.dropdown.isActionsheetStyle) {\n            const itemPx = typeof this.itemHeight() === 'number' ? this.itemHeight() : 40;\n            this.dropdownSizes = {\n                width: '100%',\n                height: ['auto', '0px'].includes(this.dropdownSizes.height)\n                    ? `${Math.min(15, count) * itemPx}px`\n                    : this.dropdownSizes.height,\n            };\n        }\n        else {\n            const hostWidth = Math.max(this.parent.getHostElement().offsetWidth, this.dropdownWidth);\n            const itemPx = typeof this.itemHeight() === 'number' ? this.itemHeight() : 40;\n            const maxItems = Number(this.maxVisibleItems());\n            this.dropdownSizes = {\n                width: `${hostWidth}px`,\n                height: count == 0 ? 'auto' : `${Math.min(maxItems, count) * itemPx}px`,\n            };\n        }\n        setTimeout(() => {\n            this.dropdown.updatePosition();\n        });\n    }\n    /**\n     * Filters the data source based on the provided search term.\n     * @param {string} term\n     */\n    search(term) {\n        if (term) {\n            this._listDataSource.filter({\n                field: this.textField,\n                value: term,\n                operator: { type: 'contains' },\n            });\n        }\n        else {\n            this._listDataSource.clearFilter();\n        }\n        this._listDataSource.refresh();\n    }\n    /**\n     * Refreshes the component by resetting state, clearing selection cache, refreshing the list, and closing the component.\n     */\n    refresh() {\n        this.reset(false);\n        this.clearSelectionCache();\n        this.list?.refresh();\n        this.close();\n    }\n    get __hostName() {\n        return this.name;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.6\", type: AXAutocompleteComponent, isStandalone: true, selector: \"ax-autocomplete\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: \"textTemplate\", publicName: \"textTemplate\", isSignal: false, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: \"selectedItems\", publicName: \"selectedItems\", isSignal: false, isRequired: false, transformFunction: null }, delayTime: { classPropertyName: \"delayTime\", publicName: \"delayTime\", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleItems: { classPropertyName: \"maxVisibleItems\", publicName: \"maxVisibleItems\", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: \"caption\", publicName: \"caption\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, selectedTemplate: { classPropertyName: \"selectedTemplate\", publicName: \"selectedTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: false, isRequired: false, transformFunction: null }, dropdownWidth: { classPropertyName: \"dropdownWidth\", publicName: \"dropdownWidth\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", onOpened: \"onOpened\", onClosed: \"onClosed\", onItemClick: \"onItemClick\", onItemSelected: \"onItemSelected\" }, host: { attributes: { \"ngSkipHydration\": \"true\" }, properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n            { provide: AXComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXFocusableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXValuableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXClearableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXClosableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXSearchableComponent, useExisting: AXAutocompleteComponent },\n            {\n                provide: NG_VALUE_ACCESSOR,\n                useExisting: forwardRef(() => AXAutocompleteComponent),\n                multi: true,\n            },\n            {\n                provide: AX_SELECTION_DATA_TOKEN,\n                useClass: MXSelectionBridgeService,\n            },\n            AXUnsubscriber,\n        ], viewQueries: [{ propertyName: \"list\", first: true, predicate: AXListComponent, descendants: true }, { propertyName: \"dropdown\", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ax-dropdown-box\\n  [look]=\\\"look\\\"\\n  [hasInput]=\\\"false\\\"\\n  [disabled]=\\\"disabled\\\"\\n  (blur)=\\\"emitOnBlurEvent($event)\\\"\\n  (focus)=\\\"emitOnFocusEvent($event)\\\"\\n  [class.ax-state-multiple]=\\\"multiple\\\"\\n  (onOpened)=\\\"_handleOnOpenedEvent($event)\\\"\\n  (onClosed)=\\\"_handleOnClosedEvent($event)\\\"\\n>\\n  <ng-container panel>\\n    <div #panel class=\\\"ax-autocomplete-panel\\\" [style.min-width]=\\\"dropdownSizes.width\\\">\\n      @if (dropdown.isActionsheetStyle) {\\n        <ax-header class=\\\"ax-solid\\\">\\n          <ax-title>{{ caption || placeholder | translate | async }}</ax-title>\\n          <ax-close-button [icon]=\\\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\\\"></ax-close-button>\\n        </ax-header>\\n      }\\n      @if (renderList) {\\n        <ax-list\\n          [ngModel]=\\\"value\\\"\\n          [readonly]=\\\"readonly\\\"\\n          [multiple]=\\\"multiple\\\"\\n          [textField]=\\\"textField\\\"\\n          [selectionMode]=\\\"'item'\\\"\\n          [valueField]=\\\"valueField\\\"\\n          [itemHeight]=\\\"itemHeight()\\\"\\n          [textTemplate]=\\\"textTemplate\\\"\\n          [itemTemplate]=\\\"itemTemplate\\\"\\n          [dataSource]=\\\"_listDataSource\\\"\\n          [loadingTemplate]=\\\"loadingTemplate\\\"\\n          [style.height]=\\\"dropdownSizes.height\\\"\\n          [emptyTemplate]=\\\"emptyTemplate ?? empty\\\"\\n          (onValueChanged)=\\\"_handleValueChanged($event)\\\"\\n          (onItemClick)=\\\"_handleItemClick($event)\\\"\\n          (onItemSelected)=\\\"_handleItemSelected($event)\\\"\\n        >\\n          <ng-template #empty> {{ '@acorex:common.general.no-result-found' | translate | async }} </ng-template>\\n        </ax-list>\\n      }\\n\\n      @if (isLoading()) {\\n        @if (loadingTemplate) {\\n          <ng-template [ngTemplateOutlet]=\\\"loadingTemplate\\\"></ng-template>\\n        } @else {\\n          <div class=\\\"ax-autocomplete-loading-container\\\">\\n            <ax-loading></ax-loading>\\n          </div>\\n        }\\n      }\\n\\n      <ng-content select=\\\"ax-footer\\\"> </ng-content>\\n    </div>\\n  </ng-container>\\n</ax-dropdown-box>\\n\", dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXListComponent, selector: \"ax-list\", inputs: [\"id\", \"name\", \"disabled\", \"readonly\", \"valueField\", \"textField\", \"textTemplate\", \"disabledField\", \"multiple\", \"selectionMode\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"itemHeight\", \"itemTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"checkbox\"], outputs: [\"onValueChanged\", \"disabledChange\", \"readonlyChange\", \"onBlur\", \"onFocus\", \"onItemClick\", \"onItemSelected\", \"onScrolledIndexChanged\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"component\", type: AXDropdownBoxComponent, selector: \"ax-dropdown-box\", inputs: [\"disabled\", \"look\", \"hasInput\", \"popoverWidth\"], outputs: [\"disabledChange\", \"onBlur\", \"onFocus\", \"onClick\", \"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'ax-autocomplete', inputs: [\n                        'disabled',\n                        'readonly',\n                        'tabIndex',\n                        'placeholder',\n                        'minValue',\n                        'maxValue',\n                        'value',\n                        'state',\n                        'name',\n                        'id',\n                        'type',\n                        'look',\n                        'multiple',\n                        'valueField',\n                        'textField',\n                        'disabledField',\n                        'textTemplate',\n                        'selectedItems',\n                    ], outputs: [\n                        'valueChange',\n                        'stateChange',\n                        'onValueChanged',\n                        'onBlur',\n                        'onFocus',\n                        'readonlyChange',\n                        'disabledChange',\n                        'onOpened',\n                        'onClosed',\n                        'onItemClick',\n                        'onItemSelected',\n                    ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n                        { provide: AXComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXFocusableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXValuableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXClearableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXClosableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXSearchableComponent, useExisting: AXAutocompleteComponent },\n                        {\n                            provide: NG_VALUE_ACCESSOR,\n                            useExisting: forwardRef(() => AXAutocompleteComponent),\n                            multi: true,\n                        },\n                        {\n                            provide: AX_SELECTION_DATA_TOKEN,\n                            useClass: MXSelectionBridgeService,\n                        },\n                        AXUnsubscriber,\n                    ], host: { ngSkipHydration: 'true' }, imports: [\n                        AsyncPipe,\n                        FormsModule,\n                        AXListComponent,\n                        NgTemplateOutlet,\n                        AXTranslatorPipe,\n                        AXLoadingComponent,\n                        AXDropdownBoxComponent,\n                        AXDecoratorGenericComponent,\n                        AXDecoratorCloseButtonComponent,\n                    ], template: \"<ax-dropdown-box\\n  [look]=\\\"look\\\"\\n  [hasInput]=\\\"false\\\"\\n  [disabled]=\\\"disabled\\\"\\n  (blur)=\\\"emitOnBlurEvent($event)\\\"\\n  (focus)=\\\"emitOnFocusEvent($event)\\\"\\n  [class.ax-state-multiple]=\\\"multiple\\\"\\n  (onOpened)=\\\"_handleOnOpenedEvent($event)\\\"\\n  (onClosed)=\\\"_handleOnClosedEvent($event)\\\"\\n>\\n  <ng-container panel>\\n    <div #panel class=\\\"ax-autocomplete-panel\\\" [style.min-width]=\\\"dropdownSizes.width\\\">\\n      @if (dropdown.isActionsheetStyle) {\\n        <ax-header class=\\\"ax-solid\\\">\\n          <ax-title>{{ caption || placeholder | translate | async }}</ax-title>\\n          <ax-close-button [icon]=\\\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\\\"></ax-close-button>\\n        </ax-header>\\n      }\\n      @if (renderList) {\\n        <ax-list\\n          [ngModel]=\\\"value\\\"\\n          [readonly]=\\\"readonly\\\"\\n          [multiple]=\\\"multiple\\\"\\n          [textField]=\\\"textField\\\"\\n          [selectionMode]=\\\"'item'\\\"\\n          [valueField]=\\\"valueField\\\"\\n          [itemHeight]=\\\"itemHeight()\\\"\\n          [textTemplate]=\\\"textTemplate\\\"\\n          [itemTemplate]=\\\"itemTemplate\\\"\\n          [dataSource]=\\\"_listDataSource\\\"\\n          [loadingTemplate]=\\\"loadingTemplate\\\"\\n          [style.height]=\\\"dropdownSizes.height\\\"\\n          [emptyTemplate]=\\\"emptyTemplate ?? empty\\\"\\n          (onValueChanged)=\\\"_handleValueChanged($event)\\\"\\n          (onItemClick)=\\\"_handleItemClick($event)\\\"\\n          (onItemSelected)=\\\"_handleItemSelected($event)\\\"\\n        >\\n          <ng-template #empty> {{ '@acorex:common.general.no-result-found' | translate | async }} </ng-template>\\n        </ax-list>\\n      }\\n\\n      @if (isLoading()) {\\n        @if (loadingTemplate) {\\n          <ng-template [ngTemplateOutlet]=\\\"loadingTemplate\\\"></ng-template>\\n        } @else {\\n          <div class=\\\"ax-autocomplete-loading-container\\\">\\n            <ax-loading></ax-loading>\\n          </div>\\n        }\\n      }\\n\\n      <ng-content select=\\\"ax-footer\\\"> </ng-content>\\n    </div>\\n  </ng-container>\\n</ax-dropdown-box>\\n\" }]\n        }], propDecorators: { delayTime: [{ type: i0.Input, args: [{ isSignal: true, alias: \"delayTime\", required: false }] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: \"itemHeight\", required: false }] }], maxVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maxVisibleItems\", required: false }] }], dataSource: [{\n                type: Input\n            }], placeholder: [{\n                type: Input\n            }], caption: [{\n                type: Input\n            }], itemTemplate: [{\n                type: Input\n            }], selectedTemplate: [{\n                type: Input\n            }], emptyTemplate: [{\n                type: Input\n            }], loadingTemplate: [{\n                type: Input\n            }], dropdownWidth: [{\n                type: Input\n            }], list: [{\n                type: ViewChild,\n                args: [AXListComponent]\n            }], dropdown: [{\n                type: ViewChild,\n                args: [AXDropdownBoxComponent, { static: true }]\n            }], __hostName: [{\n                type: HostBinding,\n                args: ['attr.name']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixXQUFXLEVBR1gsb0JBQW9CLEVBR3BCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix3QkFBd0IsR0FDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlC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c0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O3NCQXdLbEQsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhBdXRvY29tcGxldGVQYXJlbnRDb21wb25lbnQsXG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENsb3NhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhJdGVtQ2xpY2tFdmVudCxcbiAgQVhJdGVtU2VsZWN0ZWRFdmVudCxcbiAgQVhTZWFyY2hhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yQ2xvc2VCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqIEBjYXRlZ29yeVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWluVmFsdWUnLFxuICAgICdtYXhWYWx1ZScsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICd0eXBlJyxcbiAgICAnbG9vaycsXG4gICAgJ211bHRpcGxlJyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ2Rpc2FibGVkRmllbGQnLFxuICAgICd0ZXh0VGVtcGxhdGUnLFxuICAgICdzZWxlY3RlZEl0ZW1zJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uT3BlbmVkJyxcbiAgICAnb25DbG9zZWQnLFxuICAgICdvbkl0ZW1DbGljaycsXG4gICAgJ29uSXRlbVNlbGVjdGVkJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsb3NhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhBdXRvY29tcGxldGVDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYU2VhcmNoYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlQ2xhc3M6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxuICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhMaXN0Q29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQVhEcm9wZG93bkJveENvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhBdXRvY29tcGxldGVDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50LCBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIGRlbGF5VGltZSA9IGlucHV0KDMwMCk7XG4gIC8qKiBIZWlnaHQgb2YgZWFjaCBsaXN0IGl0ZW0gaW4gcGl4ZWxzLCBvciAnYXV0bycgdG8gbGV0IGxpc3QgbWVhc3VyZS4gKi9cbiAgaXRlbUhlaWdodCA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oNDApO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyBiZWZvcmUgc2Nyb2xsaW5nLiAqL1xuICBtYXhWaXNpYmxlSXRlbXMgPSBpbnB1dCg1KTtcblxuICBwcm90ZWN0ZWQgaW5wdXRWYWx1ZSA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZW5kZXJMaXN0ID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGRyb3Bkb3duU2l6ZXM6IHsgd2lkdGg6IHN0cmluZzsgaGVpZ2h0OiBzdHJpbmcgfSA9IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJ2F1dG8nLFxuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfbGlzdERhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdLCB7XG4gICAga2V5OiB0aGlzLnZhbHVlRmllbGQsXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9kYXRhU291cmNlOiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgb25DaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgY29tcG9uZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGFuIGBBWERhdGFTb3VyY2VgIG9yIGFuIGFycmF5IG9mIGl0ZW1zLlxuICAgKiBAcmV0dXJucyB7QVhEYXRhU291cmNlPGFueT4gfCBhbnlbXX1cbiAgICovXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXRhIHNvdXJjZSwgZWl0aGVyIGFzIGBBWERhdGFTb3VyY2VgIG9yIGFuIGFycmF5LiBDb252ZXJ0cyBhcnJheXMgdG8gYEFYRGF0YVNvdXJjZWAgYW5kIHN1YnNjcmliZXMgdG8gZGF0YSBhbmQgbG9hZGluZyBjaGFuZ2VzLlxuICAgKiBAcGFyYW0ge0FYRGF0YVNvdXJjZTxhbnk+IHwgYW55W119IHZcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZSh2OiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKHYsIHtcbiAgICAgICAga2V5OiB0aGlzLnZhbHVlRmllbGQsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBBWERhdGFTb3VyY2U8YW55PjtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLm9uQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuX2xpc3REYXRhU291cmNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKGRhdGEudG90YWxDb3VudCk7XG4gICAgfSk7XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChsb2FkaW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2Vob2xkZXIgdGV4dCBkaXNwbGF5ZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGVtcHR5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGxhY2Vob2xkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXB0aW9uIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYXB0aW9uXG4gICAqL1xuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgcmVuZGVyaW5nIG9mIGl0ZW1zLlxuICAgKiBAcGFyYW0ge1RlbXBsYXRlUmVmPGFueT59IGl0ZW1UZW1wbGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBvZiBzZWxlY3RlZCBpdGVtcy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBzZWxlY3RlZFRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZWxlY3RlZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHdoZW4gdGhlcmUgYXJlIG5vIGl0ZW1zLlxuICAgKiBAcGFyYW0ge1RlbXBsYXRlUmVmPGFueT59IGVtcHR5VGVtcGxhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgd2hpbGUgbG9hZGluZy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBsb2FkaW5nVGVtcGxhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHdpZHRoIG9mIHRoZSBkcm9wZG93biBpbiBwaXhlbHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgMjYwXG4gICAqL1xuICBASW5wdXQoKVxuICBkcm9wZG93bldpZHRoID0gMjYwO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoQVhMaXN0Q29tcG9uZW50KVxuICBsaXN0OiBBWExpc3RDb21wb25lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZChBWERyb3Bkb3duQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgZHJvcGRvd246IEFYRHJvcGRvd25Cb3hDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIHNlbGVjdGlvbiBkYXRhLCBpbmplY3RlZCB2aWEgYEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOYC5cbiAgICovXG4gIHB1YmxpYyBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF91bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuXG4gIHBhcmVudCA9IGluamVjdChBWEF1dG9jb21wbGV0ZVBhcmVudENvbXBvbmVudCk7XG4gIHBhcmVudFRleHQgPSBpbmplY3QoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKCk7XG4gICAgdGhpcy5yZWdpc3RlclZhbGlkYXRpb24oKTtcblxuICAgIHRoaXMucGFyZW50VGV4dC5vblRleHRDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWxheVRpbWUoKSksIHRoaXMucGFyZW50LnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBpZiAoIWUuaXNVc2VySW50ZXJhY3Rpb24pIHJldHVybjtcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlLnNldChlLnZhbHVlKTtcbiAgICAgICAgaWYgKCFlLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlYXJjaChlLnZhbHVlKTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMucGFyZW50Lm9uS2V5RG93bi5waXBlKHRoaXMucGFyZW50LnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmIChlLm5hdGl2ZUV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgdGhpcy5zZWFyY2godGhpcy5pbnB1dFZhbHVlKCkpO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5saXN0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpdGVtIGJ5IGl0cyBrZXkuXG4gICAqIEBwYXJhbSB7YW55fSBrZXlcbiAgICovXG4gIGdldEl0ZW1CeUtleShrZXk6IGFueSk6IFByb21pc2U8YW55PiB8IGFueSB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IGNoZWNrID0gYXN5bmMgKCkgPT4ge1xuICAgICAgd2hpbGUgKERhdGUubm93KCkgLSBzdGFydFRpbWUgPCAyMDAwKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbGlzdERhdGFTb3VyY2UuZmluZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9saXN0RGF0YVNvdXJjZS5maW5kKGtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKCdUaW1lb3V0IHJlYWNoZWQgd2l0aG91dCBmaW5kaW5nIHRoZSBcImdldEl0ZW1CeUtleVwiIG1ldGhvZCcpO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU9uT3BlbmVkRXZlbnQoZTogQVhFdmVudCkge1xuICAgIGlmICghdGhpcy5yZW5kZXJMaXN0KSB7XG4gICAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgICAgdGhpcy5saXN0Py5yZW5kZXIoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9saXN0RGF0YVNvdXJjZS50b3RhbENvdW50IHx8IHRoaXMuX2xpc3REYXRhU291cmNlLnRvdGFsQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5saXN0Py5yZWZyZXNoKGZhbHNlKTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLm9uT3BlbmVkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGUuaXNVc2VySW50ZXJhY3Rpb24sXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU9uQ2xvc2VkRXZlbnQoZTogQVhFdmVudCkge1xuICAgIHRoaXMucGFyZW50LmZvY3VzKCk7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJlbnQuZW1pdE9uSXRlbVNlbGVjdGVkKHRoaXMuc2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVJdGVtQ2xpY2soZTogQVhJdGVtQ2xpY2tFdmVudCkge1xuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdChlKTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUl0ZW1TZWxlY3RlZChlOiBBWEl0ZW1TZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KGUpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgc2V0RHJvcGRvd25TaXplKGNvdW50ID0gMCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgY29uc3QgaXRlbVB4ID0gdHlwZW9mIHRoaXMuaXRlbUhlaWdodCgpID09PSAnbnVtYmVyJyA/ICh0aGlzLml0ZW1IZWlnaHQoKSBhcyBudW1iZXIpIDogNDA7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogWydhdXRvJywgJzBweCddLmluY2x1ZGVzKHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQpXG4gICAgICAgICAgPyBgJHtNYXRoLm1pbigxNSwgY291bnQpICogaXRlbVB4fXB4YFxuICAgICAgICAgIDogdGhpcy5kcm9wZG93blNpemVzLmhlaWdodCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhvc3RXaWR0aCA9IE1hdGgubWF4KHRoaXMucGFyZW50LmdldEhvc3RFbGVtZW50KCkub2Zmc2V0V2lkdGgsIHRoaXMuZHJvcGRvd25XaWR0aCk7XG4gICAgICBjb25zdCBpdGVtUHggPSB0eXBlb2YgdGhpcy5pdGVtSGVpZ2h0KCkgPT09ICdudW1iZXInID8gKHRoaXMuaXRlbUhlaWdodCgpIGFzIG51bWJlcikgOiA0MDtcbiAgICAgIGNvbnN0IG1heEl0ZW1zID0gTnVtYmVyKHRoaXMubWF4VmlzaWJsZUl0ZW1zKCkpO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogYCR7aG9zdFdpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBjb3VudCA9PSAwID8gJ2F1dG8nIDogYCR7TWF0aC5taW4obWF4SXRlbXMsIGNvdW50KSAqIGl0ZW1QeH1weGAsXG4gICAgICB9O1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd24udXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgc2VhcmNoIHRlcm0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtXG4gICAqL1xuICBzZWFyY2godGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbHRlcih7XG4gICAgICAgIGZpZWxkOiB0aGlzLnRleHRGaWVsZCxcbiAgICAgICAgdmFsdWU6IHRlcm0sXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBjb21wb25lbnQgYnkgcmVzZXR0aW5nIHN0YXRlLCBjbGVhcmluZyBzZWxlY3Rpb24gY2FjaGUsIHJlZnJlc2hpbmcgdGhlIGxpc3QsIGFuZCBjbG9zaW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uYW1lJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cbiIsIjxheC1kcm9wZG93bi1ib3hcbiAgW2xvb2tdPVwibG9va1wiXG4gIFtoYXNJbnB1dF09XCJmYWxzZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcbiAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXG4gIFtjbGFzcy5heC1zdGF0ZS1tdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIChvbk9wZW5lZCk9XCJfaGFuZGxlT25PcGVuZWRFdmVudCgkZXZlbnQpXCJcbiAgKG9uQ2xvc2VkKT1cIl9oYW5kbGVPbkNsb3NlZEV2ZW50KCRldmVudClcIlxuPlxuICA8bmctY29udGFpbmVyIHBhbmVsPlxuICAgIDxkaXYgI3BhbmVsIGNsYXNzPVwiYXgtYXV0b2NvbXBsZXRlLXBhbmVsXCIgW3N0eWxlLm1pbi13aWR0aF09XCJkcm9wZG93blNpemVzLndpZHRoXCI+XG4gICAgICBAaWYgKGRyb3Bkb3duLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtc29saWRcIj5cbiAgICAgICAgICA8YXgtdGl0bGU+e3sgY2FwdGlvbiB8fCBwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10aXRsZT5cbiAgICAgICAgICA8YXgtY2xvc2UtYnV0dG9uIFtpY29uXT1cIm11bHRpcGxlID8gJ2F4LWljb24gYXgtaWNvbi1jaGVjaycgOiAnYXgtaWNvbiBheC1pY29uLWNsb3NlJ1wiPjwvYXgtY2xvc2UtYnV0dG9uPlxuICAgICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIH1cbiAgICAgIEBpZiAocmVuZGVyTGlzdCkge1xuICAgICAgICA8YXgtbGlzdFxuICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIidpdGVtJ1wiXG4gICAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgICAgICAgW2l0ZW1IZWlnaHRdPVwiaXRlbUhlaWdodCgpXCJcbiAgICAgICAgICBbdGV4dFRlbXBsYXRlXT1cInRleHRUZW1wbGF0ZVwiXG4gICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgIFtkYXRhU291cmNlXT1cIl9saXN0RGF0YVNvdXJjZVwiXG4gICAgICAgICAgW2xvYWRpbmdUZW1wbGF0ZV09XCJsb2FkaW5nVGVtcGxhdGVcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZHJvcGRvd25TaXplcy5oZWlnaHRcIlxuICAgICAgICAgIFtlbXB0eVRlbXBsYXRlXT1cImVtcHR5VGVtcGxhdGUgPz8gZW1wdHlcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJfaGFuZGxlSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChvbkl0ZW1TZWxlY3RlZCk9XCJfaGFuZGxlSXRlbVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT4ge3sgJ0BhY29yZXg6Y29tbW9uLmdlbmVyYWwubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXgtbGlzdD5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICBAaWYgKGxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtYXV0b2NvbXBsZXRlLWxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+IDwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2F4LWRyb3Bkb3duLWJveD5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXAutocompleteComponent } from './autocomplete.component';\nimport * as i0 from \"@angular/core\";\nexport class AXAutocompleteModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, imports: [AXAutocompleteComponent], exports: [AXAutocompleteComponent] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, imports: [AXAutocompleteComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [AXAutocompleteComponent],\n                    exports: [AXAutocompleteComponent],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1uRSxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUhyQix1QkFBdUIsYUFDdkIsdUJBQXVCOytHQUV0QixvQkFBb0IsWUFIckIsdUJBQXVCOzsyRkFHdEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhBdXRvY29tcGxldGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhBdXRvY29tcGxldGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEF1dG9jb21wbGV0ZU1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hdXRvY29tcGxldGUvc3JjL2Fjb3JleC1jb21wb25lbnRzLWF1dG9jb21wbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;;;;;;;;;AAcA;AACA;AACA;AACA;AACO,MAAM,uBAAuB,SAAS,OAAO,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAC;AAC7H,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,MAAM,EAAE,MAAM;AAC1B,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC,EAAE,EAAE;AAC5D,YAAY,GAAG,EAAE,IAAI,CAAC,UAAU;AAChC,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,GAAG;AAChC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/D;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;AACnD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAC3D,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC3D,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;AAC5B,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC,CAAC,EAAE;AAC/D,gBAAgB,GAAG,EAAE,IAAI,CAAC,UAAU;AACpC,gBAAgB,QAAQ,EAAE,EAAE;AAC5B,aAAa,CAAC;AACd,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU;AAClD,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AACxF,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK;AAC/G,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACvC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC;AACxB,aAAa,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB;AAC3F,aAAa,SAAS,CAAC,CAAC,CAAC,KAAK;AAC9B,YAAY,IAAI,CAAC,CAAC,CAAC,iBAAiB;AACpC,gBAAgB;AAChB,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1B,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAC/F,YAAY,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,WAAW,EAAE;AACnD,gBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9C,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;AAChD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,YAAY;AAClC,YAAY,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,EAAE;AAClD,gBAAgB,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE;AACrE,oBAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3E,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC;AACrF,QAAQ,CAAC;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,IAAI;AACJ;AACA,IAAI,oBAAoB,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI;AAClC,YAAY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/B,QAAQ;AACR,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,CAAC,EAAE;AAC3F,YAAY,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;AAClD,SAAS,CAAC;AACV,IAAI;AACJ;AACA,IAAI,oBAAoB,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;AAClD,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AACxC,IAAI;AACJ;AACA,IAAI,mBAAmB,CAAC,CAAC,EAAE;AAC3B,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;AACpE,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,mBAAmB,CAAC,CAAC,EAAE;AAC3B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AAC9C,YAAY,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;AACzF,YAAY,IAAI,CAAC,aAAa,GAAG;AACjC,gBAAgB,KAAK,EAAE,MAAM;AAC7B,gBAAgB,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM;AAC1E,sBAAsB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE;AACxD,sBAAsB,IAAI,CAAC,aAAa,CAAC,MAAM;AAC/C,aAAa;AACb,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;AACpG,YAAY,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;AACzF,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3D,YAAY,IAAI,CAAC,aAAa,GAAG;AACjC,gBAAgB,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;AACvC,gBAAgB,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACvF,aAAa;AACb,QAAQ;AACR,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC1C,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACxC,gBAAgB,KAAK,EAAE,IAAI,CAAC,SAAS;AACrC,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AAC9C,aAAa,CAAC;AACd,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;AAC9C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AACtC,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACzB,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE;AACpwI,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC1E,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACnF,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAClF,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACnF,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAClF,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACpF,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,uBAAuB;AAChD,gBAAgB,QAAQ,EAAE,wBAAwB;AAClD,aAAa;AACb,YAAY,cAAc;AAC1B,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,sgEAAsgE,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5pI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE;AAC1D,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,OAAO;AAC/B,wBAAwB,OAAO;AAC/B,wBAAwB,MAAM;AAC9B,wBAAwB,IAAI;AAC5B,wBAAwB,MAAM;AAC9B,wBAAwB,MAAM;AAC9B,wBAAwB,UAAU;AAClC,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,eAAe;AACvC,qBAAqB,EAAE,OAAO,EAAE;AAChC,wBAAwB,aAAa;AACrC,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,wBAAwB,QAAQ;AAChC,wBAAwB,SAAS;AACjC,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE;AAC1H,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE;AACtF,wBAAwB,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC/F,wBAAwB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC9F,wBAAwB,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC/F,wBAAwB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAC9F,wBAAwB,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,uBAAuB,EAAE;AAChG,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AAClF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,uBAAuB;AAC5D,4BAA4B,QAAQ,EAAE,wBAAwB;AAC9D,yBAAyB;AACzB,wBAAwB,cAAc;AACtC,qBAAqB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;AACnE,wBAAwB,SAAS;AACjC,wBAAwB,WAAW;AACnC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,kBAAkB;AAC1C,wBAAwB,sBAAsB;AAC9C,wBAAwB,2BAA2B;AACnD,wBAAwB,+BAA+B;AACvD,qBAAqB,EAAE,QAAQ,EAAE,sgEAAsgE,EAAE;AACziE,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAC/V,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,eAAe;AACtC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/D,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,WAAW;AAClC,aAAa,CAAC,EAAE,EAAE,CAAC;;AC/UZ,MAAM,oBAAoB,CAAC;AAClC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAC/M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAC3K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACtD,oBAAoB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACtD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACdb;AACA;AACA;;;;"}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"acorex-components-autocomplete.mjs","sources":["../tmp-esm2022/autocomplete/lib/autocomplete.component.js","../tmp-esm2022/autocomplete/lib/autocomplete.module.js","../tmp-esm2022/autocomplete/acorex-components-autocomplete.js"],"sourcesContent":["import { AXAutocompleteParentComponent, AXClearableComponent, AXClosableComponent, AXComponent, AXFocusableComponent, AXSearchableComponent, AXValuableComponent, AX_SELECTION_DATA_TOKEN, MXInputBaseValueComponent, MXLookComponent, MXSelectionBridgeService, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/cdk/common';\nimport { AXDecoratorCloseButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { AXListComponent } from '@acorex/components/list';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, inject, input, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { debounceTime } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n * @category\n */\nexport class AXAutocompleteComponent extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent) {\n    constructor() {\n        super(...arguments);\n        this.delayTime = input(300, ...(ngDevMode ? [{ debugName: \"delayTime\" }] : []));\n        /** Height of each list item in pixels, or 'auto' to let list measure. */\n        this.itemHeight = input(40, ...(ngDevMode ? [{ debugName: \"itemHeight\" }] : []));\n        /** Maximum number of visible items before scrolling. */\n        this.maxVisibleItems = input(5, ...(ngDevMode ? [{ debugName: \"maxVisibleItems\" }] : []));\n        this.inputValue = signal('', ...(ngDevMode ? [{ debugName: \"inputValue\" }] : []));\n        this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n        /** @ignore */\n        this.renderList = false;\n        /** @ignore */\n        this.dropdownSizes = {\n            width: '100%',\n            height: 'auto',\n        };\n        /** @ignore */\n        this._listDataSource = convertArrayToDataSource([], {\n            key: this.valueField,\n            pageSize: 10,\n        });\n        /**\n         * The width of the dropdown in pixels.\n         * @defaultValue 260\n         */\n        this.dropdownWidth = 260;\n        /**\n         * Service for managing selection data, injected via `AX_SELECTION_DATA_TOKEN`.\n         */\n        this.selectionService = inject(AX_SELECTION_DATA_TOKEN);\n        /** @ignore */\n        this._unsubscriber = inject(AXUnsubscriber);\n        this.parent = inject(AXAutocompleteParentComponent);\n        this.parentText = inject(MXInputBaseValueComponent);\n    }\n    /**\n     * Gets the data source for the component, which can be either an `AXDataSource` or an array of items.\n     * @returns {AXDataSource<any> | any[]}\n     */\n    get dataSource() {\n        return this._dataSource;\n    }\n    /**\n     * Sets the data source, either as `AXDataSource` or an array. Converts arrays to `AXDataSource` and subscribes to data and loading changes.\n     * @param {AXDataSource<any> | any[]} v\n     */\n    set dataSource(v) {\n        this._dataSource = v;\n        if (Array.isArray(v)) {\n            this._listDataSource = convertArrayToDataSource(v, {\n                key: this.valueField,\n                pageSize: 10,\n            });\n        }\n        else {\n            this._listDataSource = this.dataSource;\n        }\n        //\n        this.onChangedSubscription = this._listDataSource.onChanged.subscribe((data) => {\n            this.setDropdownSize(data.totalCount);\n        });\n        this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\n            this.isLoading.set(loading);\n        });\n    }\n    /** @ignore */\n    ngAfterViewInit() {\n        this.setDropdownSize();\n        this.registerValidation();\n        this.parentText.onTextChanged\n            .pipe(debounceTime(this.delayTime()), this.parent.unsubscriber.takeUntilDestroy)\n            .subscribe((e) => {\n            if (!e.isUserInteraction)\n                return;\n            this.inputValue.set(e.value);\n            if (!e.value) {\n                this.close();\n                return;\n            }\n            this.search(e.value);\n            this.open();\n        });\n        this.parent.onKeyDown.pipe(this.parent.unsubscriber.takeUntilDestroy).subscribe((e) => {\n            if (e.nativeEvent.key === 'ArrowDown') {\n                this.search(this.inputValue());\n                this.open();\n                this.list.focus();\n            }\n        });\n    }\n    /** @ignore */\n    ngOnDestroy() {\n        this.onChangedSubscription.unsubscribe();\n    }\n    /**\n     * Retrieves an item by its key.\n     * @param {any} key\n     */\n    getItemByKey(key) {\n        const startTime = Date.now();\n        const check = async () => {\n            while (Date.now() - startTime < 2000) {\n                if (typeof this._listDataSource.find === 'function') {\n                    return this._listDataSource.find(key);\n                }\n                else {\n                    await new Promise((resolve) => setTimeout(resolve, 50));\n                }\n            }\n            console.warn('Timeout reached without finding the \"getItemByKey\" method');\n        };\n        return check();\n    }\n    /** @ignore */\n    _handleOnOpenedEvent(e) {\n        if (!this.renderList) {\n            this.renderList = true;\n            this.list?.render();\n        }\n        else if (!this._listDataSource.totalCount || this._listDataSource.totalCount == 0) {\n            this.list?.refresh(false);\n        }\n        //\n        this.onOpened.emit({\n            component: this,\n            isUserInteraction: e.isUserInteraction,\n        });\n    }\n    /** @ignore */\n    _handleOnClosedEvent(e) {\n        this.parent.focus();\n        this.onClosed.emit({\n            component: this,\n            isUserInteraction: e.isUserInteraction,\n        });\n        this._unsubscriber.unsubscribe();\n    }\n    /** @ignore */\n    _handleValueChanged(e) {\n        if (e.isUserInteraction) {\n            if (!this.multiple) {\n                this.close();\n            }\n            this.parent.emitOnItemSelected(this.selectedItems, true);\n        }\n    }\n    /** @ignore */\n    _handleItemClick(e) {\n        this.onItemClick.emit(e);\n        if (!this.multiple) {\n            this.close();\n        }\n    }\n    /** @ignore */\n    _handleItemSelected(e) {\n        this.onItemSelected.emit(e);\n        if (!this.multiple) {\n            this.close();\n        }\n    }\n    /** @ignore */\n    setDropdownSize(count = 0) {\n        if (this.dropdown.isActionsheetStyle) {\n            const itemPx = typeof this.itemHeight() === 'number' ? this.itemHeight() : 40;\n            this.dropdownSizes = {\n                width: '100%',\n                height: ['auto', '0px'].includes(this.dropdownSizes.height)\n                    ? `${Math.min(15, count) * itemPx}px`\n                    : this.dropdownSizes.height,\n            };\n        }\n        else {\n            const hostWidth = Math.max(this.parent.getHostElement().offsetWidth, this.dropdownWidth);\n            const itemPx = typeof this.itemHeight() === 'number' ? this.itemHeight() : 40;\n            const maxItems = Number(this.maxVisibleItems());\n            this.dropdownSizes = {\n                width: `${hostWidth}px`,\n                height: count == 0 ? 'auto' : `${Math.min(maxItems, count) * itemPx}px`,\n            };\n        }\n        setTimeout(() => {\n            this.dropdown.updatePosition();\n        });\n    }\n    /**\n     * Filters the data source based on the provided search term.\n     * @param {string} term\n     */\n    search(term) {\n        if (term) {\n            this._listDataSource.filter({\n                field: this.textField,\n                value: term,\n                operator: { type: 'contains' },\n            });\n        }\n        else {\n            this._listDataSource.clearFilter();\n        }\n        this._listDataSource.refresh();\n    }\n    /**\n     * Refreshes the component by resetting state, clearing selection cache, refreshing the list, and closing the component.\n     */\n    refresh() {\n        this.reset(false);\n        this.clearSelectionCache();\n        this.list?.refresh();\n        this.close();\n    }\n    get __hostName() {\n        return this.name;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.6\", type: AXAutocompleteComponent, isStandalone: true, selector: \"ax-autocomplete\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: \"textTemplate\", publicName: \"textTemplate\", isSignal: false, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: \"selectedItems\", publicName: \"selectedItems\", isSignal: false, isRequired: false, transformFunction: null }, delayTime: { classPropertyName: \"delayTime\", publicName: \"delayTime\", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleItems: { classPropertyName: \"maxVisibleItems\", publicName: \"maxVisibleItems\", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: \"caption\", publicName: \"caption\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, selectedTemplate: { classPropertyName: \"selectedTemplate\", publicName: \"selectedTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: false, isRequired: false, transformFunction: null }, dropdownWidth: { classPropertyName: \"dropdownWidth\", publicName: \"dropdownWidth\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", onOpened: \"onOpened\", onClosed: \"onClosed\", onItemClick: \"onItemClick\", onItemSelected: \"onItemSelected\" }, host: { attributes: { \"ngSkipHydration\": \"true\" }, properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n            { provide: AXComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXFocusableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXValuableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXClearableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXClosableComponent, useExisting: AXAutocompleteComponent },\n            { provide: AXSearchableComponent, useExisting: AXAutocompleteComponent },\n            {\n                provide: NG_VALUE_ACCESSOR,\n                useExisting: forwardRef(() => AXAutocompleteComponent),\n                multi: true,\n            },\n            {\n                provide: AX_SELECTION_DATA_TOKEN,\n                useClass: MXSelectionBridgeService,\n            },\n            AXUnsubscriber,\n        ], viewQueries: [{ propertyName: \"list\", first: true, predicate: AXListComponent, descendants: true }, { propertyName: \"dropdown\", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ax-dropdown-box\\n  [look]=\\\"look\\\"\\n  [hasInput]=\\\"false\\\"\\n  [disabled]=\\\"disabled\\\"\\n  (blur)=\\\"emitOnBlurEvent($event)\\\"\\n  (focus)=\\\"emitOnFocusEvent($event)\\\"\\n  [class.ax-state-multiple]=\\\"multiple\\\"\\n  (onOpened)=\\\"_handleOnOpenedEvent($event)\\\"\\n  (onClosed)=\\\"_handleOnClosedEvent($event)\\\"\\n>\\n  <ng-container panel>\\n    <div #panel class=\\\"ax-autocomplete-panel\\\" [style.min-width]=\\\"dropdownSizes.width\\\">\\n      @if (dropdown.isActionsheetStyle) {\\n        <ax-header class=\\\"ax-solid\\\">\\n          <ax-title>{{ caption || placeholder | translate | async }}</ax-title>\\n          <ax-close-button [icon]=\\\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\\\"></ax-close-button>\\n        </ax-header>\\n      }\\n      @if (renderList) {\\n        <ax-list\\n          [ngModel]=\\\"value\\\"\\n          [readonly]=\\\"readonly\\\"\\n          [multiple]=\\\"multiple\\\"\\n          [textField]=\\\"textField\\\"\\n          [selectionMode]=\\\"'item'\\\"\\n          [valueField]=\\\"valueField\\\"\\n          [itemHeight]=\\\"itemHeight()\\\"\\n          [textTemplate]=\\\"textTemplate\\\"\\n          [itemTemplate]=\\\"itemTemplate\\\"\\n          [dataSource]=\\\"_listDataSource\\\"\\n          [loadingTemplate]=\\\"loadingTemplate\\\"\\n          [style.height]=\\\"dropdownSizes.height\\\"\\n          [emptyTemplate]=\\\"emptyTemplate ?? empty\\\"\\n          (onValueChanged)=\\\"_handleValueChanged($event)\\\"\\n          (onItemClick)=\\\"_handleItemClick($event)\\\"\\n          (onItemSelected)=\\\"_handleItemSelected($event)\\\"\\n        >\\n          <ng-template #empty> {{ '@acorex:common.general.no-result-found' | translate | async }} </ng-template>\\n        </ax-list>\\n      }\\n\\n      @if (isLoading()) {\\n        @if (loadingTemplate) {\\n          <ng-template [ngTemplateOutlet]=\\\"loadingTemplate\\\"></ng-template>\\n        } @else {\\n          <div class=\\\"ax-autocomplete-loading-container\\\">\\n            <ax-loading></ax-loading>\\n          </div>\\n        }\\n      }\\n\\n      <ng-content select=\\\"ax-footer\\\"> </ng-content>\\n    </div>\\n  </ng-container>\\n</ax-dropdown-box>\\n\", dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXListComponent, selector: \"ax-list\", inputs: [\"id\", \"name\", \"disabled\", \"readonly\", \"valueField\", \"textField\", \"textTemplate\", \"disabledField\", \"multiple\", \"selectionMode\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"itemHeight\", \"itemTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"checkbox\"], outputs: [\"onValueChanged\", \"disabledChange\", \"readonlyChange\", \"onBlur\", \"onFocus\", \"onItemClick\", \"onItemSelected\", \"onScrolledIndexChanged\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"component\", type: AXDropdownBoxComponent, selector: \"ax-dropdown-box\", inputs: [\"disabled\", \"look\", \"hasInput\", \"popoverWidth\"], outputs: [\"disabledChange\", \"onBlur\", \"onFocus\", \"onClick\", \"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'ax-autocomplete', inputs: [\n                        'disabled',\n                        'readonly',\n                        'tabIndex',\n                        'placeholder',\n                        'minValue',\n                        'maxValue',\n                        'value',\n                        'state',\n                        'name',\n                        'id',\n                        'type',\n                        'look',\n                        'multiple',\n                        'valueField',\n                        'textField',\n                        'disabledField',\n                        'textTemplate',\n                        'selectedItems',\n                    ], outputs: [\n                        'valueChange',\n                        'stateChange',\n                        'onValueChanged',\n                        'onBlur',\n                        'onFocus',\n                        'readonlyChange',\n                        'disabledChange',\n                        'onOpened',\n                        'onClosed',\n                        'onItemClick',\n                        'onItemSelected',\n                    ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n                        { provide: AXComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXFocusableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXValuableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXClearableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXClosableComponent, useExisting: AXAutocompleteComponent },\n                        { provide: AXSearchableComponent, useExisting: AXAutocompleteComponent },\n                        {\n                            provide: NG_VALUE_ACCESSOR,\n                            useExisting: forwardRef(() => AXAutocompleteComponent),\n                            multi: true,\n                        },\n                        {\n                            provide: AX_SELECTION_DATA_TOKEN,\n                            useClass: MXSelectionBridgeService,\n                        },\n                        AXUnsubscriber,\n                    ], host: { ngSkipHydration: 'true' }, imports: [\n                        AsyncPipe,\n                        FormsModule,\n                        AXListComponent,\n                        NgTemplateOutlet,\n                        AXTranslatorPipe,\n                        AXLoadingComponent,\n                        AXDropdownBoxComponent,\n                        AXDecoratorGenericComponent,\n                        AXDecoratorCloseButtonComponent,\n                    ], template: \"<ax-dropdown-box\\n  [look]=\\\"look\\\"\\n  [hasInput]=\\\"false\\\"\\n  [disabled]=\\\"disabled\\\"\\n  (blur)=\\\"emitOnBlurEvent($event)\\\"\\n  (focus)=\\\"emitOnFocusEvent($event)\\\"\\n  [class.ax-state-multiple]=\\\"multiple\\\"\\n  (onOpened)=\\\"_handleOnOpenedEvent($event)\\\"\\n  (onClosed)=\\\"_handleOnClosedEvent($event)\\\"\\n>\\n  <ng-container panel>\\n    <div #panel class=\\\"ax-autocomplete-panel\\\" [style.min-width]=\\\"dropdownSizes.width\\\">\\n      @if (dropdown.isActionsheetStyle) {\\n        <ax-header class=\\\"ax-solid\\\">\\n          <ax-title>{{ caption || placeholder | translate | async }}</ax-title>\\n          <ax-close-button [icon]=\\\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\\\"></ax-close-button>\\n        </ax-header>\\n      }\\n      @if (renderList) {\\n        <ax-list\\n          [ngModel]=\\\"value\\\"\\n          [readonly]=\\\"readonly\\\"\\n          [multiple]=\\\"multiple\\\"\\n          [textField]=\\\"textField\\\"\\n          [selectionMode]=\\\"'item'\\\"\\n          [valueField]=\\\"valueField\\\"\\n          [itemHeight]=\\\"itemHeight()\\\"\\n          [textTemplate]=\\\"textTemplate\\\"\\n          [itemTemplate]=\\\"itemTemplate\\\"\\n          [dataSource]=\\\"_listDataSource\\\"\\n          [loadingTemplate]=\\\"loadingTemplate\\\"\\n          [style.height]=\\\"dropdownSizes.height\\\"\\n          [emptyTemplate]=\\\"emptyTemplate ?? empty\\\"\\n          (onValueChanged)=\\\"_handleValueChanged($event)\\\"\\n          (onItemClick)=\\\"_handleItemClick($event)\\\"\\n          (onItemSelected)=\\\"_handleItemSelected($event)\\\"\\n        >\\n          <ng-template #empty> {{ '@acorex:common.general.no-result-found' | translate | async }} </ng-template>\\n        </ax-list>\\n      }\\n\\n      @if (isLoading()) {\\n        @if (loadingTemplate) {\\n          <ng-template [ngTemplateOutlet]=\\\"loadingTemplate\\\"></ng-template>\\n        } @else {\\n          <div class=\\\"ax-autocomplete-loading-container\\\">\\n            <ax-loading></ax-loading>\\n          </div>\\n        }\\n      }\\n\\n      <ng-content select=\\\"ax-footer\\\"> </ng-content>\\n    </div>\\n  </ng-container>\\n</ax-dropdown-box>\\n\" }]\n        }], propDecorators: { delayTime: [{ type: i0.Input, args: [{ isSignal: true, alias: \"delayTime\", required: false }] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: \"itemHeight\", required: false }] }], maxVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maxVisibleItems\", required: false }] }], dataSource: [{\n                type: Input\n            }], placeholder: [{\n                type: Input\n            }], caption: [{\n                type: Input\n            }], itemTemplate: [{\n                type: Input\n            }], selectedTemplate: [{\n                type: Input\n            }], emptyTemplate: [{\n                type: Input\n            }], loadingTemplate: [{\n                type: Input\n            }], dropdownWidth: [{\n                type: Input\n            }], list: [{\n                type: ViewChild,\n                args: [AXListComponent]\n            }], dropdown: [{\n                type: ViewChild,\n                args: [AXDropdownBoxComponent, { static: true }]\n            }], __hostName: [{\n                type: HostBinding,\n                args: ['attr.name']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixXQUFXLEVBR1gsb0JBQW9CLEVBR3BCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix3QkFBd0IsR0FDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlC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c0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O3NCQXdLbEQsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhBdXRvY29tcGxldGVQYXJlbnRDb21wb25lbnQsXG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENsb3NhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhJdGVtQ2xpY2tFdmVudCxcbiAgQVhJdGVtU2VsZWN0ZWRFdmVudCxcbiAgQVhTZWFyY2hhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yQ2xvc2VCdXR0b25Db21wb25lbnQsIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqIEBjYXRlZ29yeVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWluVmFsdWUnLFxuICAgICdtYXhWYWx1ZScsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICd0eXBlJyxcbiAgICAnbG9vaycsXG4gICAgJ211bHRpcGxlJyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ2Rpc2FibGVkRmllbGQnLFxuICAgICd0ZXh0VGVtcGxhdGUnLFxuICAgICdzZWxlY3RlZEl0ZW1zJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uT3BlbmVkJyxcbiAgICAnb25DbG9zZWQnLFxuICAgICdvbkl0ZW1DbGljaycsXG4gICAgJ29uSXRlbVNlbGVjdGVkJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsb3NhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhBdXRvY29tcGxldGVDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYU2VhcmNoYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWEF1dG9jb21wbGV0ZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlQ2xhc3M6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxuICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhMaXN0Q29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQVhEcm9wZG93bkJveENvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhBdXRvY29tcGxldGVDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50LCBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIGRlbGF5VGltZSA9IGlucHV0KDMwMCk7XG5cbiAgLyoqIEhlaWdodCBvZiBlYWNoIGxpc3QgaXRlbSBpbiBwaXhlbHMsIG9yICdhdXRvJyB0byBsZXQgbGlzdCBtZWFzdXJlLiAqL1xuICBpdGVtSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPig0MCk7XG5cbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHZpc2libGUgaXRlbXMgYmVmb3JlIHNjcm9sbGluZy4gKi9cbiAgbWF4VmlzaWJsZUl0ZW1zID0gaW5wdXQoNSk7XG5cbiAgcHJvdGVjdGVkIGlucHV0VmFsdWUgPSBzaWduYWwoJycpO1xuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdCA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkcm9wZG93blNpemVzOiB7IHdpZHRoOiBzdHJpbmc7IGhlaWdodDogc3RyaW5nIH0gPSB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2xpc3REYXRhU291cmNlOiBBWERhdGFTb3VyY2U8YW55PiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSwge1xuICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIG9uQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhbiBgQVhEYXRhU291cmNlYCBvciBhbiBhcnJheSBvZiBpdGVtcy5cbiAgICogQHJldHVybnMge0FYRGF0YVNvdXJjZTxhbnk+IHwgYW55W119XG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGF0YSBzb3VyY2UsIGVpdGhlciBhcyBgQVhEYXRhU291cmNlYCBvciBhbiBhcnJheS4gQ29udmVydHMgYXJyYXlzIHRvIGBBWERhdGFTb3VyY2VgIGFuZCBzdWJzY3JpYmVzIHRvIGRhdGEgYW5kIGxvYWRpbmcgY2hhbmdlcy5cbiAgICogQHBhcmFtIHtBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdfSB2XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSh2LCB7XG4gICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPGFueT47XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5vbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uTG9hZGluZ0NoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQobG9hZGluZyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBsYWNlaG9sZGVyIHRleHQgZGlzcGxheWVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBlbXB0eS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2FwdGlvbiB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FwdGlvblxuICAgKi9cbiAgQElucHV0KClcbiAgY2FwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBvZiBpdGVtcy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBpdGVtVGVtcGxhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gY3VzdG9taXplIHRoZSByZW5kZXJpbmcgb2Ygc2VsZWN0ZWQgaXRlbXMuXG4gICAqIEBwYXJhbSB7VGVtcGxhdGVSZWY8YW55Pn0gc2VsZWN0ZWRUZW1wbGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2VsZWN0ZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB3aGVuIHRoZXJlIGFyZSBubyBpdGVtcy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBlbXB0eVRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHdoaWxlIGxvYWRpbmcuXG4gICAqIEBwYXJhbSB7VGVtcGxhdGVSZWY8YW55Pn0gbG9hZGluZ1RlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgZHJvcGRvd24gaW4gcGl4ZWxzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDI2MFxuICAgKi9cbiAgQElucHV0KClcbiAgZHJvcGRvd25XaWR0aCA9IDI2MDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKEFYTGlzdENvbXBvbmVudClcbiAgbGlzdDogQVhMaXN0Q29tcG9uZW50O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBTZXJ2aWNlIGZvciBtYW5hZ2luZyBzZWxlY3Rpb24gZGF0YSwgaW5qZWN0ZWQgdmlhIGBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTmAuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChBWF9TRUxFQ1RJT05fREFUQV9UT0tFTik7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcblxuICBwYXJlbnQgPSBpbmplY3QoQVhBdXRvY29tcGxldGVQYXJlbnRDb21wb25lbnQpO1xuICBwYXJlbnRUZXh0ID0gaW5qZWN0KE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldERyb3Bkb3duU2l6ZSgpO1xuICAgIHRoaXMucmVnaXN0ZXJWYWxpZGF0aW9uKCk7XG5cbiAgICB0aGlzLnBhcmVudFRleHQub25UZXh0Q2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVsYXlUaW1lKCkpLCB0aGlzLnBhcmVudC51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSlcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgaWYgKCFlLmlzVXNlckludGVyYWN0aW9uKSByZXR1cm47XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZS5zZXQoZS52YWx1ZSk7XG4gICAgICAgIGlmICghZS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2goZS52YWx1ZSk7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnBhcmVudC5vbktleURvd24ucGlwZSh0aGlzLnBhcmVudC51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICBpZiAoZS5uYXRpdmVFdmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoKHRoaXMuaW5wdXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIHRoaXMubGlzdC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW4gaXRlbSBieSBpdHMga2V5LlxuICAgKiBAcGFyYW0ge2FueX0ga2V5XG4gICAqL1xuICBnZXRJdGVtQnlLZXkoa2V5OiBhbnkpOiBQcm9taXNlPGFueT4gfCBhbnkge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBjaGVjayA9IGFzeW5jICgpID0+IHtcbiAgICAgIHdoaWxlIChEYXRlLm5vdygpIC0gc3RhcnRUaW1lIDwgMjAwMCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fbGlzdERhdGFTb3VyY2UuZmluZChrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnNvbGUud2FybignVGltZW91dCByZWFjaGVkIHdpdGhvdXQgZmluZGluZyB0aGUgXCJnZXRJdGVtQnlLZXlcIiBtZXRob2QnKTtcbiAgICB9O1xuICAgIHJldHVybiBjaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbk9wZW5lZEV2ZW50KGU6IEFYRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMucmVuZGVyTGlzdCkge1xuICAgICAgdGhpcy5yZW5kZXJMaXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5fbGlzdERhdGFTb3VyY2UudG90YWxDb3VudCB8fCB0aGlzLl9saXN0RGF0YVNvdXJjZS50b3RhbENvdW50ID09IDApIHtcbiAgICAgIHRoaXMubGlzdD8ucmVmcmVzaChmYWxzZSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5vbk9wZW5lZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkNsb3NlZEV2ZW50KGU6IEFYRXZlbnQpIHtcbiAgICB0aGlzLnBhcmVudC5mb2N1cygpO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogZS5pc1VzZXJJbnRlcmFjdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLl91bnN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFyZW50LmVtaXRPbkl0ZW1TZWxlY3RlZCh0aGlzLnNlbGVjdGVkSXRlbXMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlSXRlbUNsaWNrKGU6IEFYSXRlbUNsaWNrRXZlbnQpIHtcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoZSk7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVJdGVtU2VsZWN0ZWQoZTogQVhJdGVtU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMub25JdGVtU2VsZWN0ZWQuZW1pdChlKTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldERyb3Bkb3duU2l6ZShjb3VudCA9IDApIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1QeCA9IHR5cGVvZiB0aGlzLml0ZW1IZWlnaHQoKSA9PT0gJ251bWJlcicgPyAodGhpcy5pdGVtSGVpZ2h0KCkgYXMgbnVtYmVyKSA6IDQwO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6IFsnYXV0bycsICcwcHgnXS5pbmNsdWRlcyh0aGlzLmRyb3Bkb3duU2l6ZXMuaGVpZ2h0KVxuICAgICAgICAgID8gYCR7TWF0aC5taW4oMTUsIGNvdW50KSAqIGl0ZW1QeH1weGBcbiAgICAgICAgICA6IHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBob3N0V2lkdGggPSBNYXRoLm1heCh0aGlzLnBhcmVudC5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFdpZHRoLCB0aGlzLmRyb3Bkb3duV2lkdGgpO1xuICAgICAgY29uc3QgaXRlbVB4ID0gdHlwZW9mIHRoaXMuaXRlbUhlaWdodCgpID09PSAnbnVtYmVyJyA/ICh0aGlzLml0ZW1IZWlnaHQoKSBhcyBudW1iZXIpIDogNDA7XG4gICAgICBjb25zdCBtYXhJdGVtcyA9IE51bWJlcih0aGlzLm1heFZpc2libGVJdGVtcygpKTtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6IGAke2hvc3RXaWR0aH1weGAsXG4gICAgICAgIGhlaWdodDogY291bnQgPT0gMCA/ICdhdXRvJyA6IGAke01hdGgubWluKG1heEl0ZW1zLCBjb3VudCkgKiBpdGVtUHh9cHhgLFxuICAgICAgfTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0aGUgZGF0YSBzb3VyY2UgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGVybVxuICAgKi9cbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0ZXJtKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5maWx0ZXIoe1xuICAgICAgICBmaWVsZDogdGhpcy50ZXh0RmllbGQsXG4gICAgICAgIHZhbHVlOiB0ZXJtLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnY29udGFpbnMnIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICB9XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgY29tcG9uZW50IGJ5IHJlc2V0dGluZyBzdGF0ZSwgY2xlYXJpbmcgc2VsZWN0aW9uIGNhY2hlLCByZWZyZXNoaW5nIHRoZSBsaXN0LCBhbmQgY2xvc2luZyB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uQ2FjaGUoKTtcbiAgICB0aGlzLmxpc3Q/LnJlZnJlc2goKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCI8YXgtZHJvcGRvd24tYm94XG4gIFtsb29rXT1cImxvb2tcIlxuICBbaGFzSW5wdXRdPVwiZmFsc2VcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAoYmx1cik9XCJlbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJlbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxuICBbY2xhc3MuYXgtc3RhdGUtbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoJGV2ZW50KVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICA8ZGl2ICNwYW5lbCBjbGFzcz1cImF4LWF1dG9jb21wbGV0ZS1wYW5lbFwiIFtzdHlsZS5taW4td2lkdGhdPVwiZHJvcGRvd25TaXplcy53aWR0aFwiPlxuICAgICAgQGlmIChkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LXNvbGlkXCI+XG4gICAgICAgICAgPGF4LXRpdGxlPnt7IGNhcHRpb24gfHwgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGl0bGU+XG4gICAgICAgICAgPGF4LWNsb3NlLWJ1dHRvbiBbaWNvbl09XCJtdWx0aXBsZSA/ICdheC1pY29uIGF4LWljb24tY2hlY2snIDogJ2F4LWljb24gYXgtaWNvbi1jbG9zZSdcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgPC9heC1oZWFkZXI+XG4gICAgICB9XG4gICAgICBAaWYgKHJlbmRlckxpc3QpIHtcbiAgICAgICAgPGF4LWxpc3RcbiAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCJcbiAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInaXRlbSdcIlxuICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgICAgICAgIFtpdGVtSGVpZ2h0XT1cIml0ZW1IZWlnaHQoKVwiXG4gICAgICAgICAgW3RleHRUZW1wbGF0ZV09XCJ0ZXh0VGVtcGxhdGVcIlxuICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJfbGlzdERhdGFTb3VyY2VcIlxuICAgICAgICAgIFtsb2FkaW5nVGVtcGxhdGVdPVwibG9hZGluZ1RlbXBsYXRlXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImRyb3Bkb3duU2l6ZXMuaGVpZ2h0XCJcbiAgICAgICAgICBbZW1wdHlUZW1wbGF0ZV09XCJlbXB0eVRlbXBsYXRlID8/IGVtcHR5XCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAob25JdGVtQ2xpY2spPVwiX2hhbmRsZUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAob25JdGVtU2VsZWN0ZWQpPVwiX2hhbmRsZUl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHk+IHt7ICdAYWNvcmV4OmNvbW1vbi5nZW5lcmFsLm5vLXJlc3VsdC1mb3VuZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fSA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2F4LWxpc3Q+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgQGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9hZGluZ1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWF1dG9jb21wbGV0ZS1sb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1kcm9wZG93bi1ib3g+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXAutocompleteComponent } from './autocomplete.component';\nimport * as i0 from \"@angular/core\";\nexport class AXAutocompleteModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, imports: [AXAutocompleteComponent], exports: [AXAutocompleteComponent] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, imports: [AXAutocompleteComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXAutocompleteModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [AXAutocompleteComponent],\n                    exports: [AXAutocompleteComponent],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL3NyYy9saWIvYXV0b2NvbXBsZXRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1uRSxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUhyQix1QkFBdUIsYUFDdkIsdUJBQXVCOytHQUV0QixvQkFBb0IsWUFIckIsdUJBQXVCOzsyRkFHdEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhBdXRvY29tcGxldGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhBdXRvY29tcGxldGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEF1dG9jb21wbGV0ZU1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hdXRvY29tcGxldGUvc3JjL2Fjb3JleC1jb21wb25lbnRzLWF1dG9jb21wbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -447,7 +447,7 @@ class AXColorPaletteInputComponent extends MXBaseComponent { 
     | 
|
| 
       447 
447 
     | 
    
         
             
                        },
         
     | 
| 
       448 
448 
     | 
    
         
             
                        AXUnsubscriber,
         
     | 
| 
       449 
449 
     | 
    
         
             
                        { provide: AXComponent, useExisting: AXColorPaletteInputComponent },
         
     | 
| 
       450 
     | 
    
         
            -
                    ], usesInheritance: true, ngImport: i0, template: "<div class=\"palette-inputs ax-sm\">\n  <div class=\"select-box-container\">\n    <ax-select-box\n      [dataSource]=\"['hex', 'rgba']\"\n      [(ngModel)]=\"_colorMode\"\n      (ngModelChange)=\"_handleChangeInputMode()\"\n      [disabled]=\"_parent.disabled\"\n    >\n    </ax-select-box>\n  </div>\n  @switch (_colorMode) {\n    @case ('hex') {\n      <div>\n        <ax-text-box\n          [ngModel]=\"_hex\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          [state]=\"isValid ? 'clear' : 'error'\"\n          (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n          [mask-options]=\"_hexMaskOptions\"\n        >\n        </ax-text-box>\n      </div>\n    }\n    @case ('rgba') {\n      <div>\n        <ax-number-box\n          name=\"r\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.r\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"g\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.g\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"b\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.b\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"a\"\n          [minValue]=\"0\"\n          [maxValue]=\"1\"\n          [ngModel]=\"_rgba.a\"\n          [decimals]=\"2\"\n          [step]=\"0.1\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          [showSpinButtons]=\"false\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n    }\n  }\n</div>\n", styles: [".ax-bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
         
     | 
| 
      
 450 
     | 
    
         
            +
                    ], usesInheritance: true, ngImport: i0, template: "<div class=\"palette-inputs ax-sm\">\n  <div class=\"select-box-container\">\n    <ax-select-box\n      [dataSource]=\"['hex', 'rgba']\"\n      [(ngModel)]=\"_colorMode\"\n      (ngModelChange)=\"_handleChangeInputMode()\"\n      [disabled]=\"_parent.disabled\"\n    >\n    </ax-select-box>\n  </div>\n  @switch (_colorMode) {\n    @case ('hex') {\n      <div>\n        <ax-text-box\n          [ngModel]=\"_hex\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          [state]=\"isValid ? 'clear' : 'error'\"\n          (onValueChanged)=\"_handleHEXAValueChanged($event)\"\n          [mask-options]=\"_hexMaskOptions\"\n        >\n        </ax-text-box>\n      </div>\n    }\n    @case ('rgba') {\n      <div>\n        <ax-number-box\n          name=\"r\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.r\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"g\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.g\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"b\"\n          [minValue]=\"0\"\n          [maxValue]=\"255\"\n          [ngModel]=\"_rgba.b\"\n          [showSpinButtons]=\"false\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n      <div>\n        <ax-number-box\n          name=\"a\"\n          [minValue]=\"0\"\n          [maxValue]=\"1\"\n          [ngModel]=\"_rgba.a\"\n          [decimals]=\"2\"\n          [step]=\"0.1\"\n          [disabled]=\"_parent.disabled\"\n          [readonly]=\"_parent.readonly\"\n          [showSpinButtons]=\"false\"\n          (onValueChanged)=\"_handleRGBAValueChanged($event)\"\n        >\n        </ax-number-box>\n      </div>\n    }\n  }\n</div>\n", styles: [".ax-bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
         
     | 
| 
       451 
451 
     | 
    
         
             
            }
         
     | 
| 
       452 
452 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXColorPaletteInputComponent, decorators: [{
         
     | 
| 
       453 
453 
     | 
    
         
             
                        type: Component,
         
     |