{"version":3,"file":"ngx-autosize-input.mjs","sources":["../tmp-esm2022/lib/auto-size-input.options.js","../tmp-esm2022/lib/border.js","../tmp-esm2022/lib/padding.js","../tmp-esm2022/lib/auto-size-input.directive.js","../tmp-esm2022/lib/cdk/cdk-input-auto-size.directive.js","../tmp-esm2022/ngx-autosize-input.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const AUTO_SIZE_INPUT_OPTIONS = new InjectionToken('autosize-input-options');\nexport const DEFAULT_AUTO_SIZE_INPUT_OPTIONS = {\n    extraWidth: 0,\n    includeBorders: false,\n    includePadding: true,\n    includePlaceholder: true,\n    maxWidth: -1,\n    minWidth: -1,\n    setParentWidth: false,\n    usePlaceHolderWhenEmpty: false,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zaXplLWlucHV0Lm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25neC1hdXRvc2l6ZS1pbnB1dC9zcmMvbGliL2F1dG8tc2l6ZS1pbnB1dC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHdCQUF3QixDQUN6QixDQUFDO0FBYUYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQXlCO0lBQ25FLFVBQVUsRUFBRSxDQUFDO0lBQ2IsY0FBYyxFQUFFLEtBQUs7SUFDckIsY0FBYyxFQUFFLElBQUk7SUFDcEIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ1osUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNaLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLHVCQUF1QixFQUFFLEtBQUs7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBVVRPX1NJWkVfSU5QVVRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRvU2l6ZUlucHV0T3B0aW9ucz4oXG4gICdhdXRvc2l6ZS1pbnB1dC1vcHRpb25zJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvU2l6ZUlucHV0T3B0aW9ucyB7XG4gIGV4dHJhV2lkdGg6IG51bWJlcjtcbiAgaW5jbHVkZUJvcmRlcnM6IGJvb2xlYW47XG4gIGluY2x1ZGVQYWRkaW5nOiBib29sZWFuO1xuICBpbmNsdWRlUGxhY2Vob2xkZXI6IGJvb2xlYW47XG4gIG1heFdpZHRoOiBudW1iZXI7XG4gIG1pbldpZHRoOiBudW1iZXI7XG4gIHNldFBhcmVudFdpZHRoOiBib29sZWFuO1xuICB1c2VQbGFjZUhvbGRlcldoZW5FbXB0eTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVVUT19TSVpFX0lOUFVUX09QVElPTlM6IEF1dG9TaXplSW5wdXRPcHRpb25zID0ge1xuICBleHRyYVdpZHRoOiAwLFxuICBpbmNsdWRlQm9yZGVyczogZmFsc2UsXG4gIGluY2x1ZGVQYWRkaW5nOiB0cnVlLFxuICBpbmNsdWRlUGxhY2Vob2xkZXI6IHRydWUsXG4gIG1heFdpZHRoOiAtMSxcbiAgbWluV2lkdGg6IC0xLFxuICBzZXRQYXJlbnRXaWR0aDogZmFsc2UsXG4gIHVzZVBsYWNlSG9sZGVyV2hlbkVtcHR5OiBmYWxzZSxcbn07XG4iXX0=","export var Border;\n(function (Border) {\n    Border[\"left\"] = \"border-left-width\";\n    Border[\"right\"] = \"border-right-width\";\n})(Border || (Border = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3gtYXV0b3NpemUtaW5wdXQvc3JjL2xpYi9ib3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQixvQ0FBMEIsQ0FBQTtJQUMxQixzQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBSFcsTUFBTSxLQUFOLE1BQU0sUUFHakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCb3JkZXIge1xuICBsZWZ0ID0gJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgcmlnaHQgPSAnYm9yZGVyLXJpZ2h0LXdpZHRoJyxcbn1cbiJdfQ==","export var Padding;\n(function (Padding) {\n    Padding[\"left\"] = \"padding-left\";\n    Padding[\"right\"] = \"padding-right\";\n})(Padding || (Padding = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmd4LWF1dG9zaXplLWlucHV0L3NyYy9saWIvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLGdDQUFxQixDQUFBO0lBQ3JCLGtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFIVyxPQUFPLEtBQVAsT0FBTyxRQUdsQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFBhZGRpbmcge1xuICBsZWZ0ID0gJ3BhZGRpbmctbGVmdCcsXG4gIHJpZ2h0ID0gJ3BhZGRpbmctcmlnaHQnLFxufVxuIl19","import { Directive, ElementRef, HostListener, Inject, Input, Optional, Renderer2, } from '@angular/core';\nimport { NgControl, NgModel } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { AUTO_SIZE_INPUT_OPTIONS, DEFAULT_AUTO_SIZE_INPUT_OPTIONS, } from './auto-size-input.options';\nimport { Border } from './border';\nimport { Padding } from './padding';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class AutoSizeInputDirective {\n    constructor(\n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    element, \n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    renderer, \n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    ngModel, \n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    ngControl, \n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    options) {\n        this.element = element;\n        this.renderer = renderer;\n        this.ngModel = ngModel;\n        this.ngControl = ngControl;\n        this.options = options;\n        this.useValueProperty = false;\n        this.destroyed$ = new Subject();\n        const defaultOptions = this.options || DEFAULT_AUTO_SIZE_INPUT_OPTIONS;\n        this.extraWidth = defaultOptions.extraWidth;\n        this.includeBorders = defaultOptions.includeBorders;\n        this.includePadding = defaultOptions.includePadding;\n        this.includePlaceholder = defaultOptions.includePlaceholder;\n        this.maxWidth = defaultOptions.maxWidth;\n        this.minWidth = defaultOptions.minWidth;\n        this.setParentWidth = defaultOptions.setParentWidth;\n        this.usePlaceHolderWhenEmpty = defaultOptions.usePlaceHolderWhenEmpty;\n    }\n    get borderWidth() {\n        return this.includeBorders\n            ? this.sumStylePropertyWidths(Border.left, Border.right)\n            : 0;\n    }\n    get paddingWidth() {\n        return this.includePadding\n            ? this.sumStylePropertyWidths(Padding.left, Padding.right)\n            : 0;\n    }\n    get style() {\n        return getComputedStyle(this.element.nativeElement, '');\n    }\n    get placeholder() {\n        return this.element.nativeElement.placeholder;\n    }\n    get value() {\n        return this.element.nativeElement.value;\n    }\n    get inputWidthIsLessThanMinimum() {\n        return this.minWidth > 0 && this.minWidth > this.inputTextWidth;\n    }\n    get inputWidthIsGreaterThanMaximum() {\n        return this.maxWidth > 0 && this.maxWidth < this.inputTextWidth;\n    }\n    get inputTextWidth() {\n        return (this.getTextWidth(this.input) +\n            this.extraWidth +\n            this.borderWidth +\n            this.paddingWidth);\n    }\n    get usePlaceholder() {\n        return (this.includePlaceholder &&\n            this.hasPlaceholder &&\n            this.placeHolderWidthGreaterThanInputWidth &&\n            (this.inputIsEmpty || !this.usePlaceHolderWhenEmpty));\n    }\n    get placeHolderWidthGreaterThanInputWidth() {\n        const placeHolderWidth = this.getTextWidth(this.placeholder);\n        const inputWidth = this.getTextWidth(this.input);\n        return placeHolderWidth > inputWidth;\n    }\n    get inputIsEmpty() {\n        return this.input.length === 0;\n    }\n    get hasPlaceholder() {\n        return this.placeholder.length > 0;\n    }\n    get input() {\n        let value = '';\n        if (this.useValueProperty) {\n            value = this.value;\n        }\n        else if (this.ngModel) {\n            value = this.ngModel.value;\n        }\n        else if (this.ngControl) {\n            value = this.ngControl.value;\n        }\n        return value || this.value || '';\n    }\n    get nativeElement() {\n        return this.element.nativeElement;\n    }\n    get textWidth() {\n        const text = this.usePlaceholder ? this.placeholder : this.input;\n        return (this.borderWidth +\n            this.extraWidth +\n            this.getTextWidth(text) +\n            this.paddingWidth);\n    }\n    ngAfterViewInit() {\n        this.updateWidthWhenModelChanges();\n        this.updateWidthWhenControlChanges();\n        this.updateWidth();\n    }\n    ngOnDestroy() {\n        this.destroyed$.next();\n        this.destroyed$.complete();\n    }\n    onInput() {\n        if (!this.ngModel && !this.ngControl) {\n            this.updateWidth();\n        }\n    }\n    setWidth(width) {\n        const parent = this.renderer.parentNode(this.nativeElement);\n        if (this.setParentWidth) {\n            this.renderer.setStyle(parent, 'width', width + 'px');\n        }\n        else {\n            this.renderer.setStyle(this.nativeElement, 'width', width + 'px');\n        }\n    }\n    getTextWidth(value) {\n        const element = this.renderer.createElement('canvas');\n        const context = element.getContext('2d');\n        const { fontStyle, fontVariant, fontWeight, fontSize, fontFamily, letterSpacing, } = this.style;\n        // font string format: {normal, normal, 700, 20px, Roboto, \"Helvetica Neue\", sans-serif}\n        context.font = `${fontStyle} ${fontVariant} ${fontWeight} ${fontSize} ${fontFamily}`;\n        context.letterSpacing = letterSpacing;\n        const width = context.measureText(value).width;\n        element.remove();\n        return width;\n    }\n    updateWidth() {\n        if (this.inputWidthIsLessThanMinimum) {\n            this.setWidth(this.minWidth);\n        }\n        else if (this.inputWidthIsGreaterThanMaximum) {\n            this.setWidth(this.maxWidth);\n        }\n        else {\n            this.setWidth(this.textWidth);\n        }\n    }\n    updateWidthWhenControlChanges() {\n        return this.ngControl?.valueChanges\n            ?.pipe(tap(() => this.updateWidth()), takeUntil(this.destroyed$))\n            .subscribe();\n    }\n    updateWidthWhenModelChanges() {\n        return this.ngModel?.valueChanges\n            ?.pipe(tap(() => this.updateWidth()), takeUntil(this.destroyed$))\n            .subscribe();\n    }\n    sumStylePropertyWidths(...properties) {\n        return properties.reduce((sum, property) => {\n            const value = this.style.getPropertyValue(property);\n            const width = parseInt(value, 10);\n            return sum + width;\n        }, 0);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AutoSizeInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgModel, optional: true }, { token: i1.NgControl, optional: true }, { token: AUTO_SIZE_INPUT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.5\", type: AutoSizeInputDirective, isStandalone: true, selector: \"[autoSizeInput]\", inputs: { extraWidth: \"extraWidth\", includeBorders: \"includeBorders\", includePadding: \"includePadding\", includePlaceholder: \"includePlaceholder\", maxWidth: \"maxWidth\", minWidth: \"minWidth\", setParentWidth: \"setParentWidth\", usePlaceHolderWhenEmpty: \"usePlaceHolderWhenEmpty\", useValueProperty: \"useValueProperty\" }, host: { listeners: { \"input\": \"onInput()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AutoSizeInputDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[autoSizeInput]',\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NgModel, decorators: [{\n                    type: Optional\n                }] }, { type: i1.NgControl, decorators: [{\n                    type: Optional\n                }] }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [AUTO_SIZE_INPUT_OPTIONS]\n                }] }], propDecorators: { extraWidth: [{\n                type: Input\n            }], includeBorders: [{\n                type: Input\n            }], includePadding: [{\n                type: Input\n            }], includePlaceholder: [{\n                type: Input\n            }], maxWidth: [{\n                type: Input\n            }], minWidth: [{\n                type: Input\n            }], setParentWidth: [{\n                type: Input\n            }], usePlaceHolderWhenEmpty: [{\n                type: Input\n            }], useValueProperty: [{\n                type: Input\n            }], onInput: [{\n                type: HostListener,\n                args: ['input']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zaXplLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmd4LWF1dG9zaXplLWlucHV0L3NyYy9saWIvYXV0by1zaXplLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsK0JBQStCLEdBQ2hDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFLcEMsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQztJQUNFLHlEQUF5RDtJQUNqRCxPQUFtQjtJQUMzQix5REFBeUQ7SUFDakQsUUFBbUI7SUFDM0IseURBQXlEO0lBQ3JDLE9BQWlCO0lBQ3JDLHlEQUF5RDtJQUNyQyxTQUFxQjtJQUN6Qyx5REFBeUQ7SUFHaEQsT0FBOEI7UUFWL0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUVuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRVAsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUVqQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBSWhDLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBZmhDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQUcsSUFB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LFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDekMsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxNQUFNLEtBQUssR0FBVyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzhHQXBOVSxzQkFBc0IscUpBdUJ2Qix1QkFBdUI7a0dBdkJ0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQW1CSSxRQUFROzswQkFFUixRQUFROzswQkFFUixRQUFROzswQkFDUixNQUFNOzJCQUFDLHVCQUF1Qjt5Q0F0QnhCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQW1JTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBVVRPX1NJWkVfSU5QVVRfT1BUSU9OUyxcbiAgQXV0b1NpemVJbnB1dE9wdGlvbnMsXG4gIERFRkFVTFRfQVVUT19TSVpFX0lOUFVUX09QVElPTlMsXG59IGZyb20gJy4vYXV0by1zaXplLWlucHV0Lm9wdGlvbnMnO1xuaW1wb3J0IHsgQm9yZGVyIH0gZnJvbSAnLi9ib3JkZXInO1xuaW1wb3J0IHsgUGFkZGluZyB9IGZyb20gJy4vcGFkZGluZyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdXRvU2l6ZUlucHV0XScsXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9TaXplSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBleHRyYVdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpIGluY2x1ZGVCb3JkZXJzOiBib29sZWFuO1xuICBASW5wdXQoKSBpbmNsdWRlUGFkZGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgaW5jbHVkZVBsYWNlaG9sZGVyOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXhXaWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5XaWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBzZXRQYXJlbnRXaWR0aDogYm9vbGVhbjtcbiAgQElucHV0KCkgdXNlUGxhY2VIb2xkZXJXaGVuRW1wdHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHVzZVZhbHVlUHJvcGVydHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3ByZWZlci1pbmplY3RcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItaW5qZWN0XG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLWluamVjdFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbmdNb2RlbD86IE5nTW9kZWwsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItaW5qZWN0XG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2wsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItaW5qZWN0XG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFVVE9fU0laRV9JTlBVVF9PUFRJT05TKVxuICAgIHJlYWRvbmx5IG9wdGlvbnM/OiBBdXRvU2l6ZUlucHV0T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHRoaXMub3B0aW9ucyB8fCBERUZBVUxUX0FVVE9fU0laRV9JTlBVVF9PUFRJT05TO1xuICAgIHRoaXMuZXh0cmFXaWR0aCA9IGRlZmF1bHRPcHRpb25zLmV4dHJhV2lkdGg7XG4gICAgdGhpcy5pbmNsdWRlQm9yZGVycyA9IGRlZmF1bHRPcHRpb25zLmluY2x1ZGVCb3JkZXJzO1xuICAgIHRoaXMuaW5jbHVkZVBhZGRpbmcgPSBkZWZhdWx0T3B0aW9ucy5pbmNsdWRlUGFkZGluZztcbiAgICB0aGlzLmluY2x1ZGVQbGFjZWhvbGRlciA9IGRlZmF1bHRPcHRpb25zLmluY2x1ZGVQbGFjZWhvbGRlcjtcbiAgICB0aGlzLm1heFdpZHRoID0gZGVmYXVsdE9wdGlvbnMubWF4V2lkdGg7XG4gICAgdGhpcy5taW5XaWR0aCA9IGRlZmF1bHRPcHRpb25zLm1pbldpZHRoO1xuICAgIHRoaXMuc2V0UGFyZW50V2lkdGggPSBkZWZhdWx0T3B0aW9ucy5zZXRQYXJlbnRXaWR0aDtcbiAgICB0aGlzLnVzZVBsYWNlSG9sZGVyV2hlbkVtcHR5ID0gZGVmYXVsdE9wdGlvbnMudXNlUGxhY2VIb2xkZXJXaGVuRW1wdHk7XG4gIH1cblxuICBwcml2YXRlIGdldCBib3JkZXJXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmluY2x1ZGVCb3JkZXJzXG4gICAgICA/IHRoaXMuc3VtU3R5bGVQcm9wZXJ0eVdpZHRocyhCb3JkZXIubGVmdCwgQm9yZGVyLnJpZ2h0KVxuICAgICAgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcGFkZGluZ1dpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5jbHVkZVBhZGRpbmdcbiAgICAgID8gdGhpcy5zdW1TdHlsZVByb3BlcnR5V2lkdGhzKFBhZGRpbmcubGVmdCwgUGFkZGluZy5yaWdodClcbiAgICAgIDogMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHN0eWxlKCkge1xuICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXI7XG4gIH1cblxuICBwcml2YXRlIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldCBpbnB1dFdpZHRoSXNMZXNzVGhhbk1pbmltdW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWluV2lkdGggPiAwICYmIHRoaXMubWluV2lkdGggPiB0aGlzLmlucHV0VGV4dFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXRXaWR0aElzR3JlYXRlclRoYW5NYXhpbXVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1heFdpZHRoID4gMCAmJiB0aGlzLm1heFdpZHRoIDwgdGhpcy5pbnB1dFRleHRXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlucHV0VGV4dFdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0VGV4dFdpZHRoKHRoaXMuaW5wdXQpICtcbiAgICAgIHRoaXMuZXh0cmFXaWR0aCArXG4gICAgICB0aGlzLmJvcmRlcldpZHRoICtcbiAgICAgIHRoaXMucGFkZGluZ1dpZHRoXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHVzZVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluY2x1ZGVQbGFjZWhvbGRlciAmJlxuICAgICAgdGhpcy5oYXNQbGFjZWhvbGRlciAmJlxuICAgICAgdGhpcy5wbGFjZUhvbGRlcldpZHRoR3JlYXRlclRoYW5JbnB1dFdpZHRoICYmXG4gICAgICAodGhpcy5pbnB1dElzRW1wdHkgfHwgIXRoaXMudXNlUGxhY2VIb2xkZXJXaGVuRW1wdHkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHBsYWNlSG9sZGVyV2lkdGhHcmVhdGVyVGhhbklucHV0V2lkdGgoKSB7XG4gICAgY29uc3QgcGxhY2VIb2xkZXJXaWR0aCA9IHRoaXMuZ2V0VGV4dFdpZHRoKHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIGNvbnN0IGlucHV0V2lkdGggPSB0aGlzLmdldFRleHRXaWR0aCh0aGlzLmlucHV0KTtcblxuICAgIHJldHVybiBwbGFjZUhvbGRlcldpZHRoID4gaW5wdXRXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlucHV0SXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dC5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCBoYXNQbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlci5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXQoKTogc3RyaW5nIHtcbiAgICBsZXQgdmFsdWUgPSAnJztcbiAgICBpZiAodGhpcy51c2VWYWx1ZVByb3BlcnR5KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5nTW9kZWwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5uZ01vZGVsLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5uZ0NvbnRyb2wudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSB8fCB0aGlzLnZhbHVlIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCB0ZXh0V2lkdGgoKSB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudXNlUGxhY2Vob2xkZXIgPyB0aGlzLnBsYWNlaG9sZGVyIDogdGhpcy5pbnB1dDtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ib3JkZXJXaWR0aCArXG4gICAgICB0aGlzLmV4dHJhV2lkdGggK1xuICAgICAgdGhpcy5nZXRUZXh0V2lkdGgodGV4dCkgK1xuICAgICAgdGhpcy5wYWRkaW5nV2lkdGhcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudXBkYXRlV2lkdGhXaGVuTW9kZWxDaGFuZ2VzKCk7XG4gICAgdGhpcy51cGRhdGVXaWR0aFdoZW5Db250cm9sQ2hhbmdlcygpO1xuICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5nTW9kZWwgJiYgIXRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLnVwZGF0ZVdpZHRoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICBpZiAodGhpcy5zZXRQYXJlbnRXaWR0aCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnQsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCArICdweCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGV4dFdpZHRoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBlbGVtZW50LmdldENvbnRleHQoJzJkJyk7XG5cbiAgICBjb25zdCB7XG4gICAgICBmb250U3R5bGUsXG4gICAgICBmb250VmFyaWFudCxcbiAgICAgIGZvbnRXZWlnaHQsXG4gICAgICBmb250U2l6ZSxcbiAgICAgIGZvbnRGYW1pbHksXG4gICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgIH0gPSB0aGlzLnN0eWxlO1xuXG4gICAgLy8gZm9udCBzdHJpbmcgZm9ybWF0OiB7bm9ybWFsLCBub3JtYWwsIDcwMCwgMjBweCwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWZ9XG4gICAgY29udGV4dC5mb250ID0gYCR7Zm9udFN0eWxlfSAke2ZvbnRWYXJpYW50fSAke2ZvbnRXZWlnaHR9ICR7Zm9udFNpemV9ICR7Zm9udEZhbWlseX1gO1xuICAgIGNvbnRleHQubGV0dGVyU3BhY2luZyA9IGxldHRlclNwYWNpbmc7XG5cbiAgICBjb25zdCB3aWR0aCA9IGNvbnRleHQubWVhc3VyZVRleHQodmFsdWUpLndpZHRoO1xuICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgcmV0dXJuIHdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVXaWR0aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dFdpZHRoSXNMZXNzVGhhbk1pbmltdW0pIHtcbiAgICAgIHRoaXMuc2V0V2lkdGgodGhpcy5taW5XaWR0aCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlucHV0V2lkdGhJc0dyZWF0ZXJUaGFuTWF4aW11bSkge1xuICAgICAgdGhpcy5zZXRXaWR0aCh0aGlzLm1heFdpZHRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRXaWR0aCh0aGlzLnRleHRXaWR0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVXaWR0aFdoZW5Db250cm9sQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQ2hhbmdlc1xuICAgICAgPy5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy51cGRhdGVXaWR0aCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2lkdGhXaGVuTW9kZWxDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWw/LnZhbHVlQ2hhbmdlc1xuICAgICAgPy5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy51cGRhdGVXaWR0aCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VtU3R5bGVQcm9wZXJ0eVdpZHRocyguLi5wcm9wZXJ0aWVzOiBCb3JkZXJbXSB8IFBhZGRpbmdbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMucmVkdWNlKChzdW0sIHByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgcmV0dXJuIHN1bSArIHdpZHRoO1xuICAgIH0sIDApO1xuICB9XG59XG4iXX0=","import { Directive, ElementRef, Input, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class CdkInputAutosizeDirective {\n    constructor(\n    // eslint-disable-next-line @angular-eslint/prefer-inject\n    _elementRef) {\n        this._elementRef = _elementRef;\n        this.cdkInputAutosizeUsePlaceHolderOnlyWhenEmpty = true;\n        this._initialWidth = '0px';\n    }\n    get _inputElement() {\n        return this._elementRef.nativeElement;\n    }\n    ngAfterViewInit() {\n        this._resizeToFitContent();\n    }\n    ngDoCheck() {\n        this._resizeToFitContent();\n    }\n    _createInputWithValue(value) {\n        const clone = this._inputElement.cloneNode(false);\n        clone.value = value;\n        clone.style.position = 'absolute';\n        clone.style.border = 'none';\n        clone.style.padding = '0';\n        clone.style.height = '';\n        clone.style.minWidth = '';\n        clone.style.width = '0px';\n        clone.style.maxWidth = '';\n        this._inputElement.parentNode?.appendChild(clone);\n        return clone;\n    }\n    _getWidths() {\n        const inputClone = this._createInputWithValue(this._inputElement.value);\n        const placeHolderClone = this._createInputWithValue(this._inputElement.placeholder);\n        const widths = {\n            inputWidth: inputClone.scrollWidth,\n            placeholderWidth: placeHolderClone.scrollWidth,\n        };\n        inputClone.remove();\n        placeHolderClone.remove();\n        return widths;\n    }\n    _resizeToFitContent() {\n        const { inputWidth, placeholderWidth } = this._getWidths();\n        let width;\n        if (this.cdkInputAutosizeUsePlaceHolderOnlyWhenEmpty) {\n            width = this._inputElement.value === '' ? placeholderWidth : inputWidth;\n        }\n        else {\n            width = placeholderWidth >= inputWidth ? placeholderWidth : inputWidth;\n        }\n        if (this.cdkInputAutosizeMinWidth !== undefined) {\n            width = Math.max(width, this.cdkInputAutosizeMinWidth);\n        }\n        if (this.cdkInputAutosizeMaxWidth !== undefined) {\n            width = Math.min(width, this.cdkInputAutosizeMaxWidth);\n        }\n        this._elementRef.nativeElement.style.width = width + 'px';\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CdkInputAutosizeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.5\", type: CdkInputAutosizeDirective, isStandalone: true, selector: \"input[cdkInputAutosize]\", inputs: { cdkInputAutosizeMinWidth: \"cdkInputAutosizeMinWidth\", cdkInputAutosizeMaxWidth: \"cdkInputAutosizeMaxWidth\", cdkInputAutosizeUsePlaceHolderOnlyWhenEmpty: \"cdkInputAutosizeUsePlaceHolderOnlyWhenEmpty\" }, host: { listeners: { \"input\": \"_resizeToFitContent()\" }, properties: { \"style.width\": \"_initialWidth\" }, classAttribute: \"cdk-input-autosize\" }, exportAs: [\"cdkInputAutosize\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CdkInputAutosizeDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: 'input[cdkInputAutosize]',\n                    exportAs: 'cdkInputAutosize',\n                    host: {\n                        class: 'cdk-input-autosize',\n                        '[style.width]': '_initialWidth',\n                        '(input)': '_resizeToFitContent()',\n                    },\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { cdkInputAutosizeMinWidth: [{\n                type: Input\n            }], cdkInputAutosizeMaxWidth: [{\n                type: Input\n            }], cdkInputAutosizeUsePlaceHolderOnlyWhenEmpty: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWlucHV0LWF1dG8tc2l6ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25neC1hdXRvc2l6ZS1pbnB1dC9zcmMvbGliL2Nkay9jZGstaW5wdXQtYXV0by1zaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7O0FBV3ZCLE1BQU0sT0FBTyx5QkFBeUI7SUFNcEM7SUFDRSx5REFBeUQ7SUFDakQsV0FBeUM7UUFBekMsZ0JBQVcsR0FBWCxXQUFXLENBQThCO1FBTDFDLGdEQUEyQyxHQUFHLElBQUksQ0FBQztRQUNsRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUs3QixDQUFDO0lBRUosSUFBWSxhQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFpQyxDQUFDO0lBQzVELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMscUJBQXFCLENBQUMsS0FBYTtRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQXdCLENBQUM7UUFFekUsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM1QixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDMUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDL0IsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHO1lBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLFdBQVc7U0FDL0MsQ0FBQztRQUVGLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUxQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRVMsbUJBQW1CO1FBQzNCLE1BQU0sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFM0QsSUFBSSxLQUFhLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsMkNBQTJDLEVBQUUsQ0FBQztZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQzFFLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLGdCQUFnQixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztJQUM1RCxDQUFDOzhHQTdFVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFUckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLG9CQUFvQjt3QkFDM0IsZUFBZSxFQUFFLGVBQWU7d0JBQ2hDLFNBQVMsRUFBRSx1QkFBdUI7cUJBQ25DO2lCQUNGOytFQUVVLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csMkNBQTJDO3NCQUFuRCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2Nka0lucHV0QXV0b3NpemVdJyxcbiAgZXhwb3J0QXM6ICdjZGtJbnB1dEF1dG9zaXplJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnY2RrLWlucHV0LWF1dG9zaXplJyxcbiAgICAnW3N0eWxlLndpZHRoXSc6ICdfaW5pdGlhbFdpZHRoJyxcbiAgICAnKGlucHV0KSc6ICdfcmVzaXplVG9GaXRDb250ZW50KCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDZGtJbnB1dEF1dG9zaXplRGlyZWN0aXZlIGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNka0lucHV0QXV0b3NpemVNaW5XaWR0aD86IG51bWJlcjtcbiAgQElucHV0KCkgY2RrSW5wdXRBdXRvc2l6ZU1heFdpZHRoPzogbnVtYmVyO1xuICBASW5wdXQoKSBjZGtJbnB1dEF1dG9zaXplVXNlUGxhY2VIb2xkZXJPbmx5V2hlbkVtcHR5ID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIF9pbml0aWFsV2lkdGggPSAnMHB4JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3ByZWZlci1pbmplY3RcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+XG4gICkge31cblxuICBwcml2YXRlIGdldCBfaW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9yZXNpemVUb0ZpdENvbnRlbnQoKTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICB0aGlzLl9yZXNpemVUb0ZpdENvbnRlbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfY3JlYXRlSW5wdXRXaXRoVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5faW5wdXRFbGVtZW50LmNsb25lTm9kZShmYWxzZSkgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcblxuICAgIGNsb25lLnZhbHVlID0gdmFsdWU7XG4gICAgY2xvbmUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNsb25lLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgICBjbG9uZS5zdHlsZS5wYWRkaW5nID0gJzAnO1xuICAgIGNsb25lLnN0eWxlLmhlaWdodCA9ICcnO1xuICAgIGNsb25lLnN0eWxlLm1pbldpZHRoID0gJyc7XG4gICAgY2xvbmUuc3R5bGUud2lkdGggPSAnMHB4JztcbiAgICBjbG9uZS5zdHlsZS5tYXhXaWR0aCA9ICcnO1xuXG4gICAgdGhpcy5faW5wdXRFbGVtZW50LnBhcmVudE5vZGU/LmFwcGVuZENoaWxkKGNsb25lKTtcblxuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ2V0V2lkdGhzKCkge1xuICAgIGNvbnN0IGlucHV0Q2xvbmUgPSB0aGlzLl9jcmVhdGVJbnB1dFdpdGhWYWx1ZSh0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUpO1xuICAgIGNvbnN0IHBsYWNlSG9sZGVyQ2xvbmUgPSB0aGlzLl9jcmVhdGVJbnB1dFdpdGhWYWx1ZShcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5wbGFjZWhvbGRlclxuICAgICk7XG5cbiAgICBjb25zdCB3aWR0aHMgPSB7XG4gICAgICBpbnB1dFdpZHRoOiBpbnB1dENsb25lLnNjcm9sbFdpZHRoLFxuICAgICAgcGxhY2Vob2xkZXJXaWR0aDogcGxhY2VIb2xkZXJDbG9uZS5zY3JvbGxXaWR0aCxcbiAgICB9O1xuXG4gICAgaW5wdXRDbG9uZS5yZW1vdmUoKTtcbiAgICBwbGFjZUhvbGRlckNsb25lLnJlbW92ZSgpO1xuXG4gICAgcmV0dXJuIHdpZHRocztcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVzaXplVG9GaXRDb250ZW50KCkge1xuICAgIGNvbnN0IHsgaW5wdXRXaWR0aCwgcGxhY2Vob2xkZXJXaWR0aCB9ID0gdGhpcy5fZ2V0V2lkdGhzKCk7XG5cbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLmNka0lucHV0QXV0b3NpemVVc2VQbGFjZUhvbGRlck9ubHlXaGVuRW1wdHkpIHtcbiAgICAgIHdpZHRoID0gdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlID09PSAnJyA/IHBsYWNlaG9sZGVyV2lkdGggOiBpbnB1dFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aWR0aCA9IHBsYWNlaG9sZGVyV2lkdGggPj0gaW5wdXRXaWR0aCA/IHBsYWNlaG9sZGVyV2lkdGggOiBpbnB1dFdpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNka0lucHV0QXV0b3NpemVNaW5XaWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCB0aGlzLmNka0lucHV0QXV0b3NpemVNaW5XaWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2RrSW5wdXRBdXRvc2l6ZU1heFdpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpZHRoID0gTWF0aC5taW4od2lkdGgsIHRoaXMuY2RrSW5wdXRBdXRvc2l6ZU1heFdpZHRoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1dG9zaXplLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9uZ3gtYXV0b3NpemUtaW5wdXQvc3JjL25neC1hdXRvc2l6ZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}