UNPKG

@covalent/core

Version:

Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.

1 lines 116 kB
{"version":3,"file":"covalent-core-file.mjs","sources":["../tmp-esm2022/file/directives/file-select.directive.js","../tmp-esm2022/file/directives/file-drop.directive.js","../tmp-esm2022/file/file-input/file-input.component.js","../tmp-esm2022/file/file-upload/file-upload.component.js","../tmp-esm2022/file/services/file.service.js","../tmp-esm2022/file/file.module.js","../tmp-esm2022/file/covalent-core-file.js"],"sourcesContent":["import { Directive, Input, Output, EventEmitter, inject } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgModel } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class TdFileSelectDirective {\n model = inject(NgModel, { optional: true, host: true });\n _multiple = false;\n /**\n * multiple?: boolean\n * Sets whether multiple files can be selected at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n set multiple(multiple) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n /**\n * fileSelect?: function\n * Event emitted when a file or files are selected in host [HTMLInputElement].\n * Emits a [FileList | File] object.\n * Alternative to not use [(ngModel)].\n */\n fileSelect = new EventEmitter();\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n get multipleBinding() {\n return this._multiple ? '' : undefined;\n }\n /**\n * Listens to 'change' host event to get [HTMLInputElement] files.\n * Emits the 'fileSelect' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Uses [(ngModel)] if declared, instead of emitting 'fileSelect' event.\n */\n onChange(event) {\n if (event.target instanceof HTMLInputElement) {\n const fileInputEl = event.target;\n const files = fileInputEl.files || new FileList();\n if (files.length) {\n const value = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.model\n ? this.model.update.emit(value)\n : this.fileSelect.emit(value);\n }\n }\n }\n static ɵfac = function TdFileSelectDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFileSelectDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFileSelectDirective, selectors: [[\"\", \"tdFileSelect\", \"\"]], hostVars: 1, hostBindings: function TdFileSelectDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"change\", function TdFileSelectDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"multiple\", ctx.multipleBinding);\n } }, inputs: { multiple: \"multiple\" }, outputs: { fileSelect: \"fileSelect\" } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFileSelectDirective, [{\n type: Directive,\n args: [{\n selector: '[tdFileSelect]',\n }]\n }], null, { multiple: [{\n type: Input\n }], fileSelect: [{\n type: Output\n }], multipleBinding: [{\n type: HostBinding,\n args: ['attr.multiple']\n }], onChange: [{\n type: HostListener,\n args: ['change', ['$event']]\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ZpbGUvc3JjL2RpcmVjdGl2ZXMvZmlsZS1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFeEQsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQjs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsUUFBMEI7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxVQUFVLEdBQWtDLElBQUksWUFBWSxFQUVuRSxDQUFDO0lBRUo7O09BRUc7SUFDSCxJQUNJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksS0FBSyxDQUFDLE1BQU0sWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLE1BQU0sV0FBVyxHQUFxQixLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25ELE1BQU0sS0FBSyxHQUFhLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM1RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxLQUFLLEdBQW9CLElBQUksQ0FBQyxTQUFTO29CQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO3dCQUNoQixDQUFDLENBQUMsS0FBSzt3QkFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDWixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLElBQUksQ0FBQyxLQUFLO29CQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXREVSxxQkFBcUI7NkRBQXJCLHFCQUFxQjtZQUFyQixrR0FBQSxvQkFBZ0IsSUFBSzs7Ozs7aUZBQXJCLHFCQUFxQjtjQUhqQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjthQUMzQjs7a0JBV0UsS0FBSzs7a0JBV0wsTUFBTTs7a0JBT04sV0FBVzttQkFBQyxlQUFlOztrQkFVM0IsWUFBWTttQkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkRmlsZVNlbGVjdF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZpbGVTZWxlY3REaXJlY3RpdmUge1xuICBwcml2YXRlIG1vZGVsID0gaW5qZWN0KE5nTW9kZWwsIHsgb3B0aW9uYWw6IHRydWUsIGhvc3Q6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogbXVsdGlwbGU/OiBib29sZWFuXG4gICAqIFNldHMgd2hldGhlciBtdWx0aXBsZSBmaWxlcyBjYW4gYmUgc2VsZWN0ZWQgYXQgb25jZSBpbiBob3N0IGVsZW1lbnQsIG9yIGp1c3QgYSBzaW5nbGUgZmlsZS5cbiAgICogQ2FuIGFsc28gYmUgJ211bHRpcGxlJyBuYXRpdmUgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG11bHRpcGxlKG11bHRpcGxlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGlwbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGZpbGVTZWxlY3Q/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBmaWxlIG9yIGZpbGVzIGFyZSBzZWxlY3RlZCBpbiBob3N0IFtIVE1MSW5wdXRFbGVtZW50XS5cbiAgICogRW1pdHMgYSBbRmlsZUxpc3QgfCBGaWxlXSBvYmplY3QuXG4gICAqIEFsdGVybmF0aXZlIHRvIG5vdCB1c2UgWyhuZ01vZGVsKV0uXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsZVNlbGVjdDogRXZlbnRFbWl0dGVyPEZpbGVMaXN0IHwgRmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEZpbGVMaXN0IHwgRmlsZVxuICA+KCk7XG5cbiAgLyoqXG4gICAqIEJpbmRzIG5hdGl2ZSAnbXVsdGlwbGUnIGF0dHJpYnV0ZSBpZiBbbXVsdGlwbGVdIHByb3BlcnR5IGlzICd0cnVlJy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5tdWx0aXBsZScpXG4gIGdldCBtdWx0aXBsZUJpbmRpbmcoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGUgPyAnJyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvICdjaGFuZ2UnIGhvc3QgZXZlbnQgdG8gZ2V0IFtIVE1MSW5wdXRFbGVtZW50XSBmaWxlcy5cbiAgICogRW1pdHMgdGhlICdmaWxlU2VsZWN0JyBldmVudCB3aXRoIGEgW0ZpbGVMaXN0XSBvciBbRmlsZV0gZGVwZW5kaW5nIGlmICdtdWx0aXBsZScgYXR0ciBleGlzdHMgaW4gaG9zdC5cbiAgICogVXNlcyBbKG5nTW9kZWwpXSBpZiBkZWNsYXJlZCwgaW5zdGVhZCBvZiBlbWl0dGluZyAnZmlsZVNlbGVjdCcgZXZlbnQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgY29uc3QgZmlsZUlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgICBjb25zdCBmaWxlczogRmlsZUxpc3QgPSBmaWxlSW5wdXRFbC5maWxlcyB8fCBuZXcgRmlsZUxpc3QoKTtcbiAgICAgIGlmIChmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmFsdWU6IEZpbGVMaXN0IHwgRmlsZSA9IHRoaXMuX211bHRpcGxlXG4gICAgICAgICAgPyBmaWxlcy5sZW5ndGggPiAxXG4gICAgICAgICAgICA/IGZpbGVzXG4gICAgICAgICAgICA6IGZpbGVzWzBdXG4gICAgICAgICAgOiBmaWxlc1swXTtcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgICAgID8gdGhpcy5tb2RlbC51cGRhdGUuZW1pdCh2YWx1ZSlcbiAgICAgICAgICA6IHRoaXMuZmlsZVNlbGVjdC5lbWl0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, Output, EventEmitter, HostListener, HostBinding, ElementRef, Renderer2, NgZone, inject, } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i0 from \"@angular/core\";\nexport class TdFileDropBase {\n}\nexport class TdFileDropDirective {\n _renderer = inject(Renderer2);\n _element = inject(ElementRef);\n _ngZone = inject(NgZone);\n _multiple = false;\n _dragenterListener;\n _dragleaveListener;\n _dragoverListener;\n /**\n * multiple?: boolean\n * Sets whether multiple files can be dropped at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n set multiple(multiple) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n disabled = false;\n /**\n * fileDrop?: function\n * Event emitted when a file or files are dropped in host element after being validated.\n * Emits a [FileList | File] object.\n */\n fileDrop = new EventEmitter();\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n get multipleBinding() {\n return this._multiple ? '' : undefined;\n }\n /**\n * Binds native 'disabled' attribute if [disabled] property is 'true'.\n */\n get disabledBinding() {\n return this.disabled ? '' : undefined;\n }\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n // Listens to 'dragenter' host event to add animation class 'drop-zone' which can be overriden in host.\n // Stops event propagation and default action from browser for 'dragenter' event.\n this._dragenterListener = this._renderer.listen(this._element.nativeElement, 'dragenter', (event) => {\n if (!this.disabled) {\n this._renderer.addClass(this._element.nativeElement, 'drop-zone');\n }\n this._stopEvent(event);\n });\n // Listens to 'dragleave' host event to remove animation class 'drop-zone'.\n // Stops event propagation and default action from browser for 'dragleave' event.\n this._dragleaveListener = this._renderer.listen(this._element.nativeElement, 'dragleave', (event) => {\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n });\n // Listens to 'dragover' host event to validate transfer items.\n // Checks if 'multiple' attr exists in host to allow multiple file drops.\n // Stops event propagation and default action from browser for 'dragover' event.\n this._dragoverListener = this._renderer.listen(this._element.nativeElement, 'dragover', (event) => {\n const transfer = event.dataTransfer || new DataTransfer();\n transfer.dropEffect = this._typeCheck(transfer.types);\n if (this.disabled ||\n (!this._multiple &&\n ((transfer.items && transfer.items.length > 1) ||\n transfer.mozItemCount > 1))) {\n transfer.dropEffect = 'none';\n }\n else {\n transfer.dropEffect = 'copy';\n }\n this._stopEvent(event);\n });\n });\n }\n ngOnDestroy() {\n this._dragenterListener?.();\n this._dragleaveListener?.();\n this._dragoverListener?.();\n }\n /**\n * Listens to 'drop' host event to get validated transfer items.\n * Emits the 'fileDrop' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Stops event propagation and default action from browser for 'drop' event.\n */\n onDrop(event) {\n if (!this.disabled) {\n const transfer = event.dataTransfer ?? new DataTransfer();\n const files = transfer.files;\n if (files.length) {\n const value = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.fileDrop.emit(value);\n }\n }\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n /**\n * Validates if the transfer item types are 'Files'.\n */\n _typeCheck(types) {\n let dropEffect = 'none';\n if (types &&\n ((types.contains && types.contains('Files')) ||\n (types.indexOf && types.indexOf('Files') !== -1))) {\n dropEffect = 'copy';\n }\n return dropEffect;\n }\n _stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n static ɵfac = function TdFileDropDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFileDropDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFileDropDirective, selectors: [[\"\", \"tdFileDrop\", \"\"]], hostVars: 2, hostBindings: function TdFileDropDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"drop\", function TdFileDropDirective_drop_HostBindingHandler($event) { return ctx.onDrop($event); });\n } if (rf & 2) {\n i0.ɵɵattribute(\"multiple\", ctx.multipleBinding)(\"disabled\", ctx.disabledBinding);\n } }, inputs: { multiple: \"multiple\", disabled: \"disabled\" }, outputs: { fileDrop: \"fileDrop\" } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFileDropDirective, [{\n type: Directive,\n args: [{ selector: '[tdFileDrop]' }]\n }], null, { multiple: [{\n type: Input\n }], disabled: [{\n type: Input\n }], fileDrop: [{\n type: Output\n }], multipleBinding: [{\n type: HostBinding,\n args: ['attr.multiple']\n }], disabledBinding: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9maWxlL3NyYy9kaXJlY3RpdmVzL2ZpbGUtZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLFVBQVUsRUFDVixTQUFTLEVBR1QsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFOUQsTUFBTSxPQUFPLGNBQWM7Q0FBRztBQUc5QixNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsUUFBUSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7SUFDdkQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGtCQUFrQixDQUFnQjtJQUNsQyxrQkFBa0IsQ0FBZ0I7SUFDbEMsaUJBQWlCLENBQWdCO0lBRXpDOzs7O09BSUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxRQUEwQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUSxRQUFRLEdBQUksS0FBSyxDQUFDO0lBRTNCOzs7O09BSUc7SUFDTyxRQUFRLEdBQWtDLElBQUksWUFBWSxFQUVqRSxDQUFDO0lBRUo7O09BRUc7SUFDSCxJQUNJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLHVHQUF1RztZQUN2RyxpRkFBaUY7WUFDakYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDM0IsV0FBVyxFQUNYLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3BFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQ0YsQ0FBQztZQUVGLDJFQUEyRTtZQUMzRSxpRkFBaUY7WUFDakYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDM0IsV0FBVyxFQUNYLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUNGLENBQUM7WUFFRiwrREFBK0Q7WUFDL0QseUVBQXlFO1lBQ3pFLGdGQUFnRjtZQUNoRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMzQixVQUFVLEVBQ1YsQ0FBQyxLQUFnQixFQUFFLEVBQUU7Z0JBQ25CLE1BQU0sUUFBUSxHQUNaLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsSUFDRSxJQUFJLENBQUMsUUFBUTtvQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7d0JBQ2QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOzRCQUN0QyxRQUFTLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ3RDLENBQUM7b0JBQ0QsUUFBUSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBRUgsTUFBTSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEsR0FDQSxLQUFNLENBQUMsWUFBWSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7WUFDeEQsTUFBTSxLQUFLLEdBQWEsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxLQUFLLEdBQW9CLElBQUksQ0FBQyxTQUFTO29CQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO3dCQUNoQixDQUFDLENBQUMsS0FBSzt3QkFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDWixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVLENBQ2hCLEtBQTRDO1FBRTVDLElBQUksVUFBVSxHQUFzQyxNQUFNLENBQUM7UUFDM0QsSUFDRSxLQUFLO1lBQ0wsQ0FBQyxDQUFPLEtBQU0sQ0FBQyxRQUFRLElBQVUsS0FBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEQsQ0FBTyxLQUFNLENBQUMsT0FBTyxJQUFVLEtBQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNqRSxDQUFDO1lBQ0QsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFZO1FBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs2R0F0SlUsbUJBQW1COzZEQUFuQixtQkFBbUI7WUFBbkIsNEZBQUEsa0JBQWMsSUFBSzs7Ozs7aUZBQW5CLG1CQUFtQjtjQUQvQixTQUFTO2VBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFOztrQkFnQnBDLEtBQUs7O2tCQUtMLEtBQUs7O2tCQU9MLE1BQU07O2tCQU9OLFdBQVc7bUJBQUMsZUFBZTs7a0JBUTNCLFdBQVc7bUJBQUMsZUFBZTs7a0JBb0UzQixZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBOZ1pvbmUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5leHBvcnQgY2xhc3MgVGRGaWxlRHJvcEJhc2Uge31cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3RkRmlsZURyb3BdJyB9KVxuZXhwb3J0IGNsYXNzIFRkRmlsZURyb3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgX2VsZW1lbnQgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9kcmFnZW50ZXJMaXN0ZW5lcj86IFZvaWRGdW5jdGlvbjtcbiAgcHJpdmF0ZSBfZHJhZ2xlYXZlTGlzdGVuZXI/OiBWb2lkRnVuY3Rpb247XG4gIHByaXZhdGUgX2RyYWdvdmVyTGlzdGVuZXI/OiBWb2lkRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIG11bHRpcGxlPzogYm9vbGVhblxuICAgKiBTZXRzIHdoZXRoZXIgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIGRyb3BwZWQgYXQgb25jZSBpbiBob3N0IGVsZW1lbnQsIG9yIGp1c3QgYSBzaW5nbGUgZmlsZS5cbiAgICogQ2FuIGFsc28gYmUgJ211bHRpcGxlJyBuYXRpdmUgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG11bHRpcGxlKG11bHRpcGxlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGlwbGUpO1xuICB9XG5cbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGZpbGVEcm9wPzogZnVuY3Rpb25cbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZmlsZSBvciBmaWxlcyBhcmUgZHJvcHBlZCBpbiBob3N0IGVsZW1lbnQgYWZ0ZXIgYmVpbmcgdmFsaWRhdGVkLlxuICAgKiBFbWl0cyBhIFtGaWxlTGlzdCB8IEZpbGVdIG9iamVjdC5cbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlRHJvcDogRXZlbnRFbWl0dGVyPEZpbGVMaXN0IHwgRmlsZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEZpbGVMaXN0IHwgRmlsZVxuICA+KCk7XG5cbiAgLyoqXG4gICAqIEJpbmRzIG5hdGl2ZSAnbXVsdGlwbGUnIGF0dHJpYnV0ZSBpZiBbbXVsdGlwbGVdIHByb3BlcnR5IGlzICd0cnVlJy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5tdWx0aXBsZScpXG4gIGdldCBtdWx0aXBsZUJpbmRpbmcoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGUgPyAnJyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kcyBuYXRpdmUgJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgaWYgW2Rpc2FibGVkXSBwcm9wZXJ0eSBpcyAndHJ1ZScuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICBnZXQgZGlzYWJsZWRCaW5kaW5nKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAvLyBMaXN0ZW5zIHRvICdkcmFnZW50ZXInIGhvc3QgZXZlbnQgdG8gYWRkIGFuaW1hdGlvbiBjbGFzcyAnZHJvcC16b25lJyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGluIGhvc3QuXG4gICAgICAvLyBTdG9wcyBldmVudCBwcm9wYWdhdGlvbiBhbmQgZGVmYXVsdCBhY3Rpb24gZnJvbSBicm93c2VyIGZvciAnZHJhZ2VudGVyJyBldmVudC5cbiAgICAgIHRoaXMuX2RyYWdlbnRlckxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdkcmFnZW50ZXInLFxuICAgICAgICAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkcm9wLXpvbmUnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIC8vIExpc3RlbnMgdG8gJ2RyYWdsZWF2ZScgaG9zdCBldmVudCB0byByZW1vdmUgYW5pbWF0aW9uIGNsYXNzICdkcm9wLXpvbmUnLlxuICAgICAgLy8gU3RvcHMgZXZlbnQgcHJvcGFnYXRpb24gYW5kIGRlZmF1bHQgYWN0aW9uIGZyb20gYnJvd3NlciBmb3IgJ2RyYWdsZWF2ZScgZXZlbnQuXG4gICAgICB0aGlzLl9kcmFnbGVhdmVMaXN0ZW5lciA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnZHJhZ2xlYXZlJyxcbiAgICAgICAgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Ryb3Atem9uZScpO1xuICAgICAgICAgIHRoaXMuX3N0b3BFdmVudChldmVudCk7XG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICAvLyBMaXN0ZW5zIHRvICdkcmFnb3ZlcicgaG9zdCBldmVudCB0byB2YWxpZGF0ZSB0cmFuc2ZlciBpdGVtcy5cbiAgICAgIC8vIENoZWNrcyBpZiAnbXVsdGlwbGUnIGF0dHIgZXhpc3RzIGluIGhvc3QgdG8gYWxsb3cgbXVsdGlwbGUgZmlsZSBkcm9wcy5cbiAgICAgIC8vIFN0b3BzIGV2ZW50IHByb3BhZ2F0aW9uIGFuZCBkZWZhdWx0IGFjdGlvbiBmcm9tIGJyb3dzZXIgZm9yICdkcmFnb3ZlcicgZXZlbnQuXG4gICAgICB0aGlzLl9kcmFnb3Zlckxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdkcmFnb3ZlcicsXG4gICAgICAgIChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdHJhbnNmZXI6IERhdGFUcmFuc2ZlciA9XG4gICAgICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIgfHwgbmV3IERhdGFUcmFuc2ZlcigpO1xuICAgICAgICAgIHRyYW5zZmVyLmRyb3BFZmZlY3QgPSB0aGlzLl90eXBlQ2hlY2sodHJhbnNmZXIudHlwZXMpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcbiAgICAgICAgICAgICghdGhpcy5fbXVsdGlwbGUgJiZcbiAgICAgICAgICAgICAgKCh0cmFuc2Zlci5pdGVtcyAmJiB0cmFuc2Zlci5pdGVtcy5sZW5ndGggPiAxKSB8fFxuICAgICAgICAgICAgICAgICg8YW55PnRyYW5zZmVyKS5tb3pJdGVtQ291bnQgPiAxKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbm9uZSc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3N0b3BFdmVudChldmVudCk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZHJhZ2VudGVyTGlzdGVuZXI/LigpO1xuICAgIHRoaXMuX2RyYWdsZWF2ZUxpc3RlbmVyPy4oKTtcbiAgICB0aGlzLl9kcmFnb3Zlckxpc3RlbmVyPy4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvICdkcm9wJyBob3N0IGV2ZW50IHRvIGdldCB2YWxpZGF0ZWQgdHJhbnNmZXIgaXRlbXMuXG4gICAqIEVtaXRzIHRoZSAnZmlsZURyb3AnIGV2ZW50IHdpdGggYSBbRmlsZUxpc3RdIG9yIFtGaWxlXSBkZXBlbmRpbmcgaWYgJ211bHRpcGxlJyBhdHRyIGV4aXN0cyBpbiBob3N0LlxuICAgKiBTdG9wcyBldmVudCBwcm9wYWdhdGlvbiBhbmQgZGVmYXVsdCBhY3Rpb24gZnJvbSBicm93c2VyIGZvciAnZHJvcCcgZXZlbnQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgb25Ecm9wKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgY29uc3QgdHJhbnNmZXI6IERhdGFUcmFuc2ZlciA9XG4gICAgICAgICg8RHJhZ0V2ZW50PmV2ZW50KS5kYXRhVHJhbnNmZXIgPz8gbmV3IERhdGFUcmFuc2ZlcigpO1xuICAgICAgY29uc3QgZmlsZXM6IEZpbGVMaXN0ID0gdHJhbnNmZXIuZmlsZXM7XG4gICAgICBpZiAoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlOiBGaWxlTGlzdCB8IEZpbGUgPSB0aGlzLl9tdWx0aXBsZVxuICAgICAgICAgID8gZmlsZXMubGVuZ3RoID4gMVxuICAgICAgICAgICAgPyBmaWxlc1xuICAgICAgICAgICAgOiBmaWxlc1swXVxuICAgICAgICAgIDogZmlsZXNbMF07XG4gICAgICAgIHRoaXMuZmlsZURyb3AuZW1pdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Ryb3Atem9uZScpO1xuICAgIHRoaXMuX3N0b3BFdmVudChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGlmIHRoZSB0cmFuc2ZlciBpdGVtIHR5cGVzIGFyZSAnRmlsZXMnLlxuICAgKi9cbiAgcHJpdmF0ZSBfdHlwZUNoZWNrKFxuICAgIHR5cGVzOiBSZWFkb25seUFycmF5PHN0cmluZz4gfCBET01TdHJpbmdMaXN0LFxuICApOiAnbm9uZScgfCAnY29weScgfCAnbGluaycgfCAnbW92ZScge1xuICAgIGxldCBkcm9wRWZmZWN0OiAnbm9uZScgfCAnY29weScgfCAnbGluaycgfCAnbW92ZScgPSAnbm9uZSc7XG4gICAgaWYgKFxuICAgICAgdHlwZXMgJiZcbiAgICAgICgoKDxhbnk+dHlwZXMpLmNvbnRhaW5zICYmICg8YW55PnR5cGVzKS5jb250YWlucygnRmlsZXMnKSkgfHxcbiAgICAgICAgKCg8YW55PnR5cGVzKS5pbmRleE9mICYmICg8YW55PnR5cGVzKS5pbmRleE9mKCdGaWxlcycpICE9PSAtMSkpXG4gICAgKSB7XG4gICAgICBkcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgIH1cblxuICAgIHJldHVybiBkcm9wRWZmZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RvcEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiJdfQ==","import { Component, Directive, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, ElementRef, Renderer2, TemplateRef, ViewContainerRef, ChangeDetectorRef, forwardRef, NgZone, inject, } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { mixinControlValueAccessor, mixinDisabled, } from '@covalent/core/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdFileDropDirective } from '../directives/file-drop.directive';\nimport { TdFileSelectDirective } from '../directives/file-select.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nconst _c0 = [\"fileInputButton\"];\nconst _c1 = [\"fileInput\"];\nconst _c2 = [\"*\"];\nexport class TdFileInputLabelDirective extends TemplatePortalDirective {\n constructor() {\n const templateRef = inject(TemplateRef);\n const viewContainerRef = inject(ViewContainerRef);\n super(templateRef, viewContainerRef);\n }\n static ɵfac = function TdFileInputLabelDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFileInputLabelDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFileInputLabelDirective, selectors: [[\"ng-template\", \"tdFileInputLabel\", \"\"]], features: [i0.ɵɵInheritDefinitionFeature] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFileInputLabelDirective, [{\n type: Directive,\n args: [{\n selector: '[tdFileInputLabel]ng-template',\n }]\n }], () => [], null); })();\nexport class TdFileInputBase {\n _changeDetectorRef;\n constructor(_changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n }\n}\nexport const _TdFileInputMixinBase = mixinControlValueAccessor(mixinDisabled(TdFileInputBase));\nexport class TdFileInputComponent extends _TdFileInputMixinBase {\n _ngZone = inject(NgZone);\n _renderer = inject(Renderer2);\n _multiple = false;\n /** The native `<button class=\"td-file-input\"></button>` element */\n _inputButton;\n /** The native `<input type=\"file\"> element */\n _inputElement;\n get inputElement() {\n return this._inputElement.nativeElement;\n }\n /**\n * color?: 'accent' | 'primary' | 'warn'\n * Sets button color. Uses same color palette accepted as [MatButton].\n */\n color;\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].\n */\n set multiple(multiple) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple() {\n return this._multiple;\n }\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n accept;\n /**\n * select?: function\n * Event emitted a file is selected\n * Emits a [File | FileList] object.\n */\n selectFile = new EventEmitter();\n _destroy$ = new Subject();\n constructor() {\n const _changeDetectorRef = inject(ChangeDetectorRef);\n super(_changeDetectorRef);\n }\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n merge(fromEvent(this._inputButton.nativeElement, 'click'), fromEvent(this._inputButton.nativeElement, 'keyup').pipe(filter((event) => event.keyCode === ENTER)))\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => this._inputElement.nativeElement.click());\n });\n }\n ngOnDestroy() {\n this._destroy$.next();\n }\n /**\n * Method executed when a file is selected.\n */\n handleSelect(files) {\n this.writeValue(files);\n this.selectFile.emit(files);\n }\n /**\n * Used to clear the selected files from the [TdFileInputComponent].\n */\n clear() {\n this.writeValue(undefined);\n this._renderer.setProperty(this.inputElement, 'value', '');\n }\n /** Method executed when the disabled value changes */\n onDisabledChange(v) {\n if (v) {\n this.clear();\n }\n }\n /**\n * Sets disable to the component. Implemented as part of ControlValueAccessor.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n static ɵfac = function TdFileInputComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFileInputComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFileInputComponent, selectors: [[\"td-file-input\"]], viewQuery: function TdFileInputComponent_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7, ElementRef);\n i0.ɵɵviewQuery(_c1, 7);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputButton = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputElement = _t.first);\n } }, inputs: { disabled: \"disabled\", value: \"value\", color: \"color\", multiple: \"multiple\", accept: \"accept\" }, outputs: { selectFile: \"selectFile\" }, features: [i0.ɵɵProvidersFeature([\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileInputComponent),\n multi: true,\n },\n ]), i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c2, decls: 5, vars: 6, consts: [[\"fileInputButton\", \"\"], [\"fileInput\", \"\"], [\"mat-stroked-button\", \"\", \"type\", \"button\", \"tdFileDrop\", \"\", 1, \"td-file-input\", 3, \"fileDrop\", \"color\", \"multiple\", \"disabled\"], [\"type\", \"file\", \"tdFileSelect\", \"\", 1, \"td-file-input-hidden\", 3, \"fileSelect\", \"multiple\", \"disabled\"]], template: function TdFileInputComponent_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 2, 0);\n i0.ɵɵlistener(\"fileDrop\", function TdFileInputComponent_Template_button_fileDrop_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleSelect($event)); });\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"input\", 3, 1);\n i0.ɵɵlistener(\"fileSelect\", function TdFileInputComponent_Template_input_fileSelect_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleSelect($event)); });\n i0.ɵɵelementEnd();\n } if (rf & 2) {\n i0.ɵɵproperty(\"color\", ctx.color)(\"multiple\", ctx.multiple)(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"multiple\", ctx.multiple)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"accept\", ctx.accept);\n } }, dependencies: [MatButtonModule, i1.MatButton, TdFileDropDirective, TdFileSelectDirective], styles: [\"[_nghost-%COMP%] .td-file-input[_ngcontent-%COMP%]{padding-left:8px;padding-right:8px}[_nghost-%COMP%] input.td-file-input-hidden[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] .mdc-button__label{display:flex;align-items:center}[_nghost-%COMP%] .drop-zone[_ngcontent-%COMP%]{border-radius:3px}[_nghost-%COMP%] .drop-zone[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{pointer-events:none}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFileInputComponent, [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileInputComponent),\n multi: true,\n },\n ], selector: 'td-file-input', inputs: ['disabled', 'value'], imports: [MatButtonModule, TdFileDropDirective, TdFileSelectDirective], template: \"<button\\n #fileInputButton\\n mat-stroked-button\\n class=\\\"td-file-input\\\"\\n type=\\\"button\\\"\\n [color]=\\\"color\\\"\\n [multiple]=\\\"multiple\\\"\\n [disabled]=\\\"disabled\\\"\\n (fileDrop)=\\\"handleSelect($event)\\\"\\n tdFileDrop\\n>\\n <ng-content></ng-content>\\n</button>\\n<input\\n #fileInput\\n class=\\\"td-file-input-hidden\\\"\\n type=\\\"file\\\"\\n [attr.accept]=\\\"accept\\\"\\n (fileSelect)=\\\"handleSelect($event)\\\"\\n [multiple]=\\\"multiple\\\"\\n [disabled]=\\\"disabled\\\"\\n tdFileSelect\\n/>\\n\", styles: [\":host .td-file-input{padding-left:8px;padding-right:8px}:host input.td-file-input-hidden{display:none}:host ::ng-deep .mdc-button__label{display:flex;align-items:center}:host .drop-zone{border-radius:3px}:host .drop-zone *{pointer-events:none}\\n\"] }]\n }], () => [], { _inputButton: [{\n type: ViewChild,\n args: ['fileInputButton', { static: true, read: ElementRef }]\n }], _inputElement: [{\n type: ViewChild,\n args: ['fileInput', { static: true }]\n }], color: [{\n type: Input\n }], multiple: [{\n type: Input\n }], accept: [{\n type: Input\n }], selectFile: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdFileInputComponent, { className: \"TdFileInputComponent\", filePath: \"file-input/file-input.component.ts\", lineNumber: 72 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZmlsZS9zcmMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9maWxlL3NyYy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFHVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBR0wseUJBQXlCLEVBQ3pCLGFBQWEsR0FDZCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFC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RUFBRSxPQUFPLENBQUMsV0FHcEIsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7O2tCQVlyRSxTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztrQkFJL0QsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrQkFVdkMsS0FBSzs7a0JBTUwsS0FBSzs7a0JBYUwsS0FBSzs7a0JBT0wsTUFBTTs7a0ZBbERJLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBmb3J3YXJkUmVmLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgTmdab25lLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSUNhbkRpc2FibGUsXG4gIElDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgbWl4aW5Db250cm9sVmFsdWVBY2Nlc3NvcixcbiAgbWl4aW5EaXNhYmxlZCxcbn0gZnJvbSAnQGNvdmFsZW50L2NvcmUvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBUZEZpbGVEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9maWxlLWRyb3AuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRkRmlsZVNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZmlsZS1zZWxlY3QuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkRmlsZUlucHV0TGFiZWxdbmctdGVtcGxhdGUnLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZpbGVJbnB1dExhYmVsRGlyZWN0aXZlIGV4dGVuZHMgVGVtcGxhdGVQb3J0YWxEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oVGVtcGxhdGVSZWYpO1xuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBzdXBlcih0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRkRmlsZUlucHV0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxufVxuXG5leHBvcnQgY29uc3QgX1RkRmlsZUlucHV0TWl4aW5CYXNlID0gbWl4aW5Db250cm9sVmFsdWVBY2Nlc3NvcihcbiAgbWl4aW5EaXNhYmxlZChUZEZpbGVJbnB1dEJhc2UpLFxuKTtcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRkRmlsZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHNlbGVjdG9yOiAndGQtZmlsZS1pbnB1dCcsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgVGRGaWxlRHJvcERpcmVjdGl2ZSwgVGRGaWxlU2VsZWN0RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRGaWxlSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfVGRGaWxlSW5wdXRNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgSUNvbnRyb2xWYWx1ZUFjY2Vzc29yLCBJQ2FuRGlzYWJsZVxue1xuICBwcml2YXRlIF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgbmF0aXZlIGA8YnV0dG9uIGNsYXNzPVwidGQtZmlsZS1pbnB1dFwiPjwvYnV0dG9uPmAgZWxlbWVudCAqL1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXRCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBfaW5wdXRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKiogVGhlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJmaWxlXCI+IGVsZW1lbnQgKi9cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2lucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbG9yPzogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybidcbiAgICogU2V0cyBidXR0b24gY29sb3IuIFVzZXMgc2FtZSBjb2xvciBwYWxldHRlIGFjY2VwdGVkIGFzIFtNYXRCdXR0b25dLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3I/OiAnYWNjZW50JyB8ICdwcmltYXJ5JyB8ICd3YXJuJztcblxuICAvKipcbiAgICogbXVsdGlwbGU/OiBib29sZWFuXG4gICAqIFNldHMgaWYgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIGRyb3BwZWQvc2VsZWN0ZWQgYXQgb25jZSBpbiBbVGRGaWxlSW5wdXRDb21wb25lbnRdLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG11bHRpcGxlKG11bHRpcGxlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGlwbGUpO1xuICB9XG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXB0Pzogc3RyaW5nXG4gICAqIFNldHMgZmlsZXMgYWNjZXB0ZWQgd2hlbiBvcGVuaW5nIHRoZSBmaWxlIGJyb3dzZXIgZGlhbG9nLlxuICAgKiBTYW1lIGFzICdhY2NlcHQnIGF0dHJpYnV0ZSBpbiA8aW5wdXQvPiBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZWxlY3Q/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGEgZmlsZSBpcyBzZWxlY3RlZFxuICAgKiBFbWl0cyBhIFtGaWxlIHwgRmlsZUxpc3RdIG9iamVjdC5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgRmlsZSB8IEZpbGVMaXN0XG4gID4oKTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgX2NoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh0aGlzLl9pbnB1dEJ1dHRvbi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKSxcbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2lucHV0QnV0dG9uLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWNrKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBleGVjdXRlZCB3aGVuIGEgZmlsZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIGhhbmRsZVNlbGVjdChmaWxlczogRmlsZSB8IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKGZpbGVzKTtcbiAgICB0aGlzLnNlbGVjdEZpbGUuZW1pdChmaWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBjbGVhciB0aGUgc2VsZWN0ZWQgZmlsZXMgZnJvbSB0aGUgW1RkRmlsZUlucHV0Q29tcG9uZW50XS5cbiAgICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50LCAndmFsdWUnLCAnJyk7XG4gIH1cblxuICAvKiogTWV0aG9kIGV4ZWN1dGVkIHdoZW4gdGhlIGRpc2FibGVkIHZhbHVlIGNoYW5nZXMgKi9cbiAgb3ZlcnJpZGUgb25EaXNhYmxlZENoYW5nZSh2OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgZGlzYWJsZSB0byB0aGUgY29tcG9uZW50LiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2ZpbGVJbnB1dEJ1dHRvblxuICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgY2xhc3M9XCJ0ZC1maWxlLWlucHV0XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFtjb2xvcl09XCJjb2xvclwiXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChmaWxlRHJvcCk9XCJoYW5kbGVTZWxlY3QoJGV2ZW50KVwiXG4gIHRkRmlsZURyb3Bcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG48aW5wdXRcbiAgI2ZpbGVJbnB1dFxuICBjbGFzcz1cInRkLWZpbGUtaW5wdXQtaGlkZGVuXCJcbiAgdHlwZT1cImZpbGVcIlxuICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0XCJcbiAgKGZpbGVTZWxlY3QpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICB0ZEZpbGVTZWxlY3Rcbi8+XG4iXX0=","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, ContentChild, ChangeDetectorRef, forwardRef, inject, } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TdFileInputComponent, TdFileInputLabelDirective, } from '../file-input/file-input.component';\nimport { NG_VALUE_ACCESSOR, FormsModule, } from '