@taiga-ui/kit 2.62.3 → 2.62.4

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.
Files changed (22) hide show
  1. package/README.md +1 -6
  2. package/bundles/taiga-ui-kit-components-input-files.umd.js +42 -22
  3. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +1 -1
  5. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  6. package/components/input-files/input-files.component.d.ts +3 -4
  7. package/components/input-files/max-size-rejection-error.pipe.d.ts +10 -0
  8. package/components/input-files/taiga-ui-kit-components-input-files.d.ts +1 -0
  9. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  10. package/esm2015/components/input-files/input-files.component.js +14 -18
  11. package/esm2015/components/input-files/input-files.module.js +3 -2
  12. package/esm2015/components/input-files/max-size-rejection-error.pipe.js +26 -0
  13. package/esm2015/components/input-files/taiga-ui-kit-components-input-files.js +2 -1
  14. package/esm5/components/input-files/input-files.component.js +14 -18
  15. package/esm5/components/input-files/input-files.module.js +3 -2
  16. package/esm5/components/input-files/max-size-rejection-error.pipe.js +30 -0
  17. package/esm5/components/input-files/taiga-ui-kit-components-input-files.js +2 -1
  18. package/fesm2015/taiga-ui-kit-components-input-files.js +36 -20
  19. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  20. package/fesm5/taiga-ui-kit-components-input-files.js +41 -21
  21. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  22. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/kit/components/input-files/input-files.component.ts","ng://@taiga-ui/kit/components/input-files/input-files.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","create","__read","o","n","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","TuiInputFilesComponent","control","changeDetectorRef","isMobile","inputFileTexts$","units$","_this","_super","this","dataTransfer","link","label","accept","multiple","size","maxFileSize","reject","EventEmitter","TypeError","String","__","constructor","__extends","_a","input","nativeElement","isNativeFocused","nativeFocusableElement","pseudoHovered","fileDragged","computeLink$","computeLabel$","types","includes","getValueArray","onHovered","hovered","updateHovered","onFocused","focused","updateFocused","onPressed","pressed","updatePressed","onFilesSelected","texts","units","processSelectedFiles","files","onDropped","event","onDragOver","removeFile","removedFile","updateValue","arrayValue","filter","file","of","pipe","map","defaultLinkMultiple","defaultLinkSingle","dropMultiple","drop","defaultLabelMultiple","defaultLabelSingle","isArray","EMPTY_ARRAY","newFiles","from","tooBigFiles","wrongFormatFiles","isFormatAcceptable","acceptedFiles","rejectFiles","name","type","content","maxSizeRejectionReason","formatSize","formatRejectionReason","extension","split","pop","toLowerCase","getAcceptArray","some","format","rejectedFiles","emit","NgControl","Optional","Self","Inject","args","ChangeDetectorRef","TUI_IS_MOBILE","Observable","TUI_INPUT_FILE_TEXTS","TUI_DIGITAL_INFORMATION_UNITS","ViewChild","Input","tuiDefaultProp","Output","tuiPure","TuiInputFilesComponent_1","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","providers","MODE_PROVIDER","provide","TUI_FOCUSABLE_ITEM_ACCESSOR","useExisting","forwardRef","AbstractTuiNullableControl","TuiInputFilesModule","NgModule","imports","CommonModule","PolymorpheusModule","TuiLetModule","TuiFocusedModule","TuiFocusVisibleModule","TuiPressedModule","TuiHoveredModule","TuiFocusableModule","TuiDroppableModule","TuiWrapperModule","TuiSvgModule","TuiLinkModule","TuiLoaderModule","TuiButtonModule","TuiGroupModule","TuiFilesModule","declarations","exports","TuiFilesComponent","TuiFileComponent","TuiItemDirective"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n EMPTY_ARRAY,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TuiSizeL} from '@taiga-ui/core';\nimport {TuiFileLike} from '@taiga-ui/kit/interfaces';\nimport {TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {formatSize, getAcceptArray} from '@taiga-ui/kit/utils/files';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst DEFAULT_MAX_SIZE = 30 * 1000 * 1000; // 30 MB\n\n// @dynamic\n@Component({\n selector: `tui-input-files`,\n templateUrl: `./input-files.template.html`,\n styleUrls: [`./input-files.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n MODE_PROVIDER,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputFilesComponent),\n },\n ],\n})\nexport class TuiInputFilesComponent\n extends AbstractTuiNullableControl<TuiFileLike | readonly TuiFileLike[]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(`input`)\n private readonly input?: ElementRef<HTMLInputElement>;\n\n private dataTransfer: DataTransfer | null = null;\n\n @Input()\n @tuiDefaultProp()\n link: PolymorpheusContent = ``;\n\n @Input()\n @tuiDefaultProp()\n label: PolymorpheusContent = ``;\n\n @Input()\n @tuiDefaultProp()\n accept = ``;\n\n @Input()\n @tuiDefaultProp()\n multiple = false;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeL = `m`;\n\n @Input()\n @tuiDefaultProp()\n maxFileSize = DEFAULT_MAX_SIZE;\n\n @Output()\n reject = new EventEmitter<TuiFileLike | readonly TuiFileLike[]>();\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n @Inject(TUI_INPUT_FILE_TEXTS)\n readonly inputFileTexts$: Observable<\n Record<\n | 'defaultLabelSingle'\n | 'defaultLabelMultiple'\n | 'defaultLinkSingle'\n | 'defaultLinkMultiple'\n | 'maxSizeRejectionReason'\n | 'formatRejectionReason'\n | 'drop'\n | 'dropMultiple',\n string\n >\n >,\n @Inject(TUI_DIGITAL_INFORMATION_UNITS)\n readonly units$: Observable<[string, string, string]>,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.input?.nativeElement || null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get computedPseudoHovered(): boolean | null {\n return this.pseudoHovered ?? (this.fileDragged || null);\n }\n\n get computedLink$(): Observable<PolymorpheusContent> {\n return this.computeLink$(this.fileDragged, this.multiple, this.link);\n }\n\n get computedLabel$(): Observable<PolymorpheusContent> {\n return this.computeLabel$(\n this.isMobile,\n this.fileDragged,\n this.multiple,\n this.label,\n );\n }\n\n get fileDragged(): boolean {\n return !!this.dataTransfer?.types.includes(`Files`);\n }\n\n get arrayValue(): readonly TuiFileLike[] {\n return this.getValueArray(this.value);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onPressed(pressed: boolean): void {\n this.updatePressed(pressed);\n }\n\n onFilesSelected(\n input: HTMLInputElement,\n texts: Record<'maxSizeRejectionReason' | 'formatRejectionReason', string>,\n units: [string, string, string],\n ): void {\n this.processSelectedFiles(input.files, texts, units);\n input.value = ``;\n }\n\n onDropped(\n event: DataTransfer,\n texts: Record<'maxSizeRejectionReason' | 'formatRejectionReason', string>,\n units: [string, string, string],\n ): void {\n this.processSelectedFiles(event.files, texts, units);\n }\n\n onDragOver(dataTransfer: DataTransfer | null): void {\n this.dataTransfer = dataTransfer;\n }\n\n removeFile(removedFile: TuiFileLike): void {\n this.updateValue(\n this.multiple ? this.arrayValue.filter(file => file !== removedFile) : null,\n );\n }\n\n @tuiPure\n private computeLink$(\n fileDragged: boolean,\n multiple: boolean,\n link: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n return fileDragged\n ? of(``)\n : this.inputFileTexts$.pipe(\n map(texts =>\n multiple && link === ``\n ? texts.defaultLinkMultiple\n : link || texts.defaultLinkSingle,\n ),\n );\n }\n\n @tuiPure\n private computeLabel$(\n isMobile: boolean,\n fileDragged: boolean,\n multiple: boolean,\n label: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n if (isMobile) {\n return of(``);\n }\n\n if (fileDragged) {\n return this.inputFileTexts$.pipe(\n map(texts => (multiple ? texts.dropMultiple : texts.drop)),\n );\n }\n\n return this.inputFileTexts$.pipe(\n map(texts =>\n multiple && label === ``\n ? texts.defaultLabelMultiple\n : label || texts.defaultLabelSingle,\n ),\n );\n }\n\n @tuiPure\n private getValueArray(\n value: TuiFileLike | readonly TuiFileLike[] | null,\n ): readonly TuiFileLike[] {\n if (!value) {\n return EMPTY_ARRAY;\n }\n\n return Array.isArray(value) ? value : [value];\n }\n\n private processSelectedFiles(\n files: FileList | null,\n texts: Record<'maxSizeRejectionReason' | 'formatRejectionReason', string>,\n units: [string, string, string],\n ): void {\n // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.\n if (!files?.length) {\n return;\n }\n\n const newFiles = this.multiple ? Array.from(files) : [files[0]];\n const tooBigFiles = newFiles.filter(file => file.size > this.maxFileSize);\n const wrongFormatFiles = newFiles.filter(\n file => !this.isFormatAcceptable(file) && !tooBigFiles.includes(file),\n );\n const acceptedFiles = newFiles.filter(\n file => !tooBigFiles.includes(file) && !wrongFormatFiles.includes(file),\n );\n\n if (tooBigFiles.length || wrongFormatFiles.length) {\n this.rejectFiles([\n ...tooBigFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content:\n texts.maxSizeRejectionReason +\n formatSize(units, this.maxFileSize),\n })),\n ...wrongFormatFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: texts.formatRejectionReason,\n })),\n ]);\n }\n\n this.updateValue(\n this.multiple\n ? [...this.arrayValue, ...acceptedFiles]\n : acceptedFiles[0] || null,\n );\n }\n\n private isFormatAcceptable(file: File): boolean {\n if (!this.accept) {\n return true;\n }\n\n const extension = `.${(file.name.split(`.`).pop() || ``).toLowerCase()}`;\n\n return getAcceptArray(this.accept).some(\n format =>\n format === extension ||\n format === file.type ||\n (format.split(`/`)[1] === `*` &&\n file.type.split(`/`)[0] === format.split(`/`)[0]),\n );\n }\n\n private rejectFiles(rejectedFiles: readonly TuiFileLike[]): void {\n this.reject.emit(this.multiple ? rejectedFiles : rejectedFiles[0]);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDroppableModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiItemDirective,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiGroupModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiSvgModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {\n TuiFileComponent,\n TuiFilesComponent,\n TuiFilesModule,\n} from '@taiga-ui/kit/components/files';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputFilesComponent} from './input-files.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n TuiHoveredModule,\n TuiFocusableModule,\n TuiDroppableModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiButtonModule,\n TuiGroupModule,\n TuiFilesModule,\n ],\n declarations: [TuiInputFilesComponent],\n exports: [\n TuiInputFilesComponent,\n TuiFilesComponent,\n TuiFileComponent,\n TuiItemDirective,\n ],\n})\nexport class TuiInputFilesModule {}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/kit/components/input-files/input-files.component.ts","ng://@taiga-ui/kit/components/input-files/max-size-rejection-error.pipe.ts","ng://@taiga-ui/kit/components/input-files/input-files.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","create","__read","o","n","m","Symbol","iterator","e","ar","next","done","push","value","error","__spread","concat","TuiInputFilesComponent","control","changeDetectorRef","isMobile","inputFileTexts$","_this","_super","this","dataTransfer","link","label","accept","multiple","size","maxFileSize","reject","EventEmitter","TypeError","String","__","constructor","__extends","_a","input","nativeElement","isNativeFocused","nativeFocusableElement","pseudoHovered","fileDragged","computeLink$","computeLabel$","types","includes","getValueArray","onHovered","hovered","updateHovered","onFocused","focused","updateFocused","onPressed","pressed","updatePressed","onFilesSelected","formatRejection","maxSizeRejection","processSelectedFiles","files","onDropped","event","onDragOver","removeFile","removedFile","updateValue","arrayValue","filter","file","of","pipe","map","texts","defaultLinkMultiple","defaultLinkSingle","dropMultiple","drop","defaultLabelMultiple","defaultLabelSingle","isArray","EMPTY_ARRAY","errors","newFiles","from","tooBigFiles","wrongFormatFiles","isFormatAcceptable","acceptedFiles","rejectFiles","name","type","content","extension","split","pop","toLowerCase","getAcceptArray","some","format","rejectedFiles","emit","NgControl","Optional","Self","Inject","args","ChangeDetectorRef","TUI_IS_MOBILE","Observable","TUI_INPUT_FILE_TEXTS","ViewChild","Input","tuiDefaultProp","Output","tuiPure","TuiInputFilesComponent_1","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","providers","MODE_PROVIDER","provide","TUI_FOCUSABLE_ITEM_ACCESSOR","useExisting","forwardRef","AbstractTuiNullableControl","TuiMaxSizeRejectionErrorPipe","units$","transform","combineLatest","_b","maxSizeRejectionReason","units","tuiFormatSize","TUI_DIGITAL_INFORMATION_UNITS","Pipe","TuiInputFilesModule","NgModule","imports","CommonModule","PolymorpheusModule","TuiLetModule","TuiFocusedModule","TuiFocusVisibleModule","TuiPressedModule","TuiHoveredModule","TuiFocusableModule","TuiDroppableModule","TuiWrapperModule","TuiSvgModule","TuiLinkModule","TuiLoaderModule","TuiButtonModule","TuiGroupModule","TuiFilesModule","declarations","exports","TuiFilesComponent","TuiFileComponent","TuiItemDirective"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n EMPTY_ARRAY,\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_IS_MOBILE,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TuiSizeL} from '@taiga-ui/core';\nimport {TuiFileLike} from '@taiga-ui/kit/interfaces';\nimport {TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {getAcceptArray} from '@taiga-ui/kit/utils/files';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nconst DEFAULT_MAX_SIZE = 30 * 1000 * 1000; // 30 MB\n\n// @dynamic\n@Component({\n selector: `tui-input-files`,\n templateUrl: `./input-files.template.html`,\n styleUrls: [`./input-files.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n MODE_PROVIDER,\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiInputFilesComponent),\n },\n ],\n})\nexport class TuiInputFilesComponent\n extends AbstractTuiNullableControl<TuiFileLike | readonly TuiFileLike[]>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(`input`)\n private readonly input?: ElementRef<HTMLInputElement>;\n\n private dataTransfer: DataTransfer | null = null;\n\n @Input()\n @tuiDefaultProp()\n link: PolymorpheusContent = ``;\n\n @Input()\n @tuiDefaultProp()\n label: PolymorpheusContent = ``;\n\n @Input()\n @tuiDefaultProp()\n accept = ``;\n\n @Input()\n @tuiDefaultProp()\n multiple = false;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeL = `m`;\n\n @Input()\n @tuiDefaultProp()\n maxFileSize = DEFAULT_MAX_SIZE;\n\n @Output()\n reject = new EventEmitter<TuiFileLike | readonly TuiFileLike[]>();\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_IS_MOBILE)\n readonly isMobile: boolean,\n @Inject(TUI_INPUT_FILE_TEXTS)\n readonly inputFileTexts$: Observable<\n Record<\n | 'defaultLabelSingle'\n | 'defaultLabelMultiple'\n | 'defaultLinkSingle'\n | 'defaultLinkMultiple'\n | 'maxSizeRejectionReason'\n | 'formatRejectionReason'\n | 'drop'\n | 'dropMultiple',\n string\n >\n >,\n ) {\n super(control, changeDetectorRef);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.input?.nativeElement || null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get computedPseudoHovered(): boolean | null {\n return this.pseudoHovered ?? (this.fileDragged || null);\n }\n\n get computedLink$(): Observable<PolymorpheusContent> {\n return this.computeLink$(this.fileDragged, this.multiple, this.link);\n }\n\n get computedLabel$(): Observable<PolymorpheusContent> {\n return this.computeLabel$(\n this.isMobile,\n this.fileDragged,\n this.multiple,\n this.label,\n );\n }\n\n get fileDragged(): boolean {\n return !!this.dataTransfer?.types.includes(`Files`);\n }\n\n get arrayValue(): readonly TuiFileLike[] {\n return this.getValueArray(this.value);\n }\n\n onHovered(hovered: boolean): void {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n onPressed(pressed: boolean): void {\n this.updatePressed(pressed);\n }\n\n onFilesSelected(\n input: HTMLInputElement,\n formatRejection: PolymorpheusContent,\n maxSizeRejection: PolymorpheusContent,\n ): void {\n this.processSelectedFiles(input.files, {formatRejection, maxSizeRejection});\n input.value = ``;\n }\n\n onDropped(\n event: DataTransfer,\n formatRejection: PolymorpheusContent,\n maxSizeRejection: PolymorpheusContent,\n ): void {\n this.processSelectedFiles(event.files, {formatRejection, maxSizeRejection});\n }\n\n onDragOver(dataTransfer: DataTransfer | null): void {\n this.dataTransfer = dataTransfer;\n }\n\n removeFile(removedFile: TuiFileLike): void {\n this.updateValue(\n this.multiple ? this.arrayValue.filter(file => file !== removedFile) : null,\n );\n }\n\n @tuiPure\n private computeLink$(\n fileDragged: boolean,\n multiple: boolean,\n link: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n return fileDragged\n ? of(``)\n : this.inputFileTexts$.pipe(\n map(texts =>\n multiple && link === ``\n ? texts.defaultLinkMultiple\n : link || texts.defaultLinkSingle,\n ),\n );\n }\n\n @tuiPure\n private computeLabel$(\n isMobile: boolean,\n fileDragged: boolean,\n multiple: boolean,\n label: PolymorpheusContent,\n ): Observable<PolymorpheusContent> {\n if (isMobile) {\n return of(``);\n }\n\n if (fileDragged) {\n return this.inputFileTexts$.pipe(\n map(texts => (multiple ? texts.dropMultiple : texts.drop)),\n );\n }\n\n return this.inputFileTexts$.pipe(\n map(texts =>\n multiple && label === ``\n ? texts.defaultLabelMultiple\n : label || texts.defaultLabelSingle,\n ),\n );\n }\n\n @tuiPure\n private getValueArray(\n value: TuiFileLike | readonly TuiFileLike[] | null,\n ): readonly TuiFileLike[] {\n if (!value) {\n return EMPTY_ARRAY;\n }\n\n return Array.isArray(value) ? value : [value];\n }\n\n private processSelectedFiles(\n files: FileList | null,\n errors: Record<'maxSizeRejection' | 'formatRejection', PolymorpheusContent>,\n ): void {\n // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.\n if (!files?.length) {\n return;\n }\n\n const newFiles = this.multiple ? Array.from(files) : [files[0]];\n const tooBigFiles = newFiles.filter(file => file.size > this.maxFileSize);\n const wrongFormatFiles = newFiles.filter(\n file => !this.isFormatAcceptable(file) && !tooBigFiles.includes(file),\n );\n const acceptedFiles = newFiles.filter(\n file => !tooBigFiles.includes(file) && !wrongFormatFiles.includes(file),\n );\n\n if (tooBigFiles.length || wrongFormatFiles.length) {\n this.rejectFiles([\n ...tooBigFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.maxSizeRejection,\n })),\n ...wrongFormatFiles.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n content: errors.formatRejection,\n })),\n ]);\n }\n\n this.updateValue(\n this.multiple\n ? [...this.arrayValue, ...acceptedFiles]\n : acceptedFiles[0] || null,\n );\n }\n\n private isFormatAcceptable(file: File): boolean {\n if (!this.accept) {\n return true;\n }\n\n const extension = `.${(file.name.split(`.`).pop() || ``).toLowerCase()}`;\n\n return getAcceptArray(this.accept).some(\n format =>\n format === extension ||\n format === file.type ||\n (format.split(`/`)[1] === `*` &&\n file.type.split(`/`)[0] === format.split(`/`)[0]),\n );\n }\n\n private rejectFiles(rejectedFiles: readonly TuiFileLike[]): void {\n this.reject.emit(this.multiple ? rejectedFiles : rejectedFiles[0]);\n }\n}\n","import {Inject, Pipe, PipeTransform} from '@angular/core';\nimport {TuiInjectionTokenType} from '@taiga-ui/cdk';\nimport {TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiFormatSize} from '@taiga-ui/kit/utils';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Pipe({name: `tuiMaxSizeRejectionError`})\nexport class TuiMaxSizeRejectionErrorPipe implements PipeTransform {\n constructor(\n @Inject(TUI_INPUT_FILE_TEXTS)\n private readonly inputFileTexts$: TuiInjectionTokenType<\n typeof TUI_INPUT_FILE_TEXTS\n >,\n @Inject(TUI_DIGITAL_INFORMATION_UNITS)\n private readonly units$: TuiInjectionTokenType<\n typeof TUI_DIGITAL_INFORMATION_UNITS\n >,\n ) {}\n\n transform(maxFileSize: number): Observable<string> {\n return combineLatest([this.inputFileTexts$, this.units$]).pipe(\n map(\n ([{maxSizeRejectionReason}, units]) =>\n maxSizeRejectionReason + tuiFormatSize(units, maxFileSize),\n ),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiDroppableModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiHoveredModule,\n TuiItemDirective,\n TuiLetModule,\n TuiPressedModule,\n} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiGroupModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiSvgModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {\n TuiFileComponent,\n TuiFilesComponent,\n TuiFilesModule,\n} from '@taiga-ui/kit/components/files';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputFilesComponent} from './input-files.component';\nimport {TuiMaxSizeRejectionErrorPipe} from './max-size-rejection-error.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPressedModule,\n TuiHoveredModule,\n TuiFocusableModule,\n TuiDroppableModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLinkModule,\n TuiLoaderModule,\n TuiButtonModule,\n TuiGroupModule,\n TuiFilesModule,\n ],\n declarations: [TuiInputFilesComponent, TuiMaxSizeRejectionErrorPipe],\n exports: [\n TuiInputFilesComponent,\n TuiFilesComponent,\n TuiFileComponent,\n TuiItemDirective,\n ],\n})\nexport class TuiInputFilesModule {}\n"]}
@@ -8,7 +8,6 @@ import { Observable } from 'rxjs';
8
8
  export declare class TuiInputFilesComponent extends AbstractTuiNullableControl<TuiFileLike | readonly TuiFileLike[]> implements TuiFocusableElementAccessor {
9
9
  readonly isMobile: boolean;
10
10
  readonly inputFileTexts$: Observable<Record<'defaultLabelSingle' | 'defaultLabelMultiple' | 'defaultLinkSingle' | 'defaultLinkMultiple' | 'maxSizeRejectionReason' | 'formatRejectionReason' | 'drop' | 'dropMultiple', string>>;
11
- readonly units$: Observable<[string, string, string]>;
12
11
  private readonly input?;
13
12
  private dataTransfer;
14
13
  link: PolymorpheusContent;
@@ -18,7 +17,7 @@ export declare class TuiInputFilesComponent extends AbstractTuiNullableControl<T
18
17
  size: TuiSizeL;
19
18
  maxFileSize: number;
20
19
  reject: EventEmitter<TuiFileLike | readonly TuiFileLike[]>;
21
- constructor(control: NgControl | null, changeDetectorRef: ChangeDetectorRef, isMobile: boolean, inputFileTexts$: Observable<Record<'defaultLabelSingle' | 'defaultLabelMultiple' | 'defaultLinkSingle' | 'defaultLinkMultiple' | 'maxSizeRejectionReason' | 'formatRejectionReason' | 'drop' | 'dropMultiple', string>>, units$: Observable<[string, string, string]>);
20
+ constructor(control: NgControl | null, changeDetectorRef: ChangeDetectorRef, isMobile: boolean, inputFileTexts$: Observable<Record<'defaultLabelSingle' | 'defaultLabelMultiple' | 'defaultLinkSingle' | 'defaultLinkMultiple' | 'maxSizeRejectionReason' | 'formatRejectionReason' | 'drop' | 'dropMultiple', string>>);
22
21
  get nativeFocusableElement(): TuiNativeFocusableElement | null;
23
22
  get focused(): boolean;
24
23
  get computedPseudoHovered(): boolean | null;
@@ -29,8 +28,8 @@ export declare class TuiInputFilesComponent extends AbstractTuiNullableControl<T
29
28
  onHovered(hovered: boolean): void;
30
29
  onFocused(focused: boolean): void;
31
30
  onPressed(pressed: boolean): void;
32
- onFilesSelected(input: HTMLInputElement, texts: Record<'maxSizeRejectionReason' | 'formatRejectionReason', string>, units: [string, string, string]): void;
33
- onDropped(event: DataTransfer, texts: Record<'maxSizeRejectionReason' | 'formatRejectionReason', string>, units: [string, string, string]): void;
31
+ onFilesSelected(input: HTMLInputElement, formatRejection: PolymorpheusContent, maxSizeRejection: PolymorpheusContent): void;
32
+ onDropped(event: DataTransfer, formatRejection: PolymorpheusContent, maxSizeRejection: PolymorpheusContent): void;
34
33
  onDragOver(dataTransfer: DataTransfer | null): void;
35
34
  removeFile(removedFile: TuiFileLike): void;
36
35
  private computeLink$;
@@ -0,0 +1,10 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { TuiInjectionTokenType } from '@taiga-ui/cdk';
3
+ import { TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
4
+ import { Observable } from 'rxjs';
5
+ export declare class TuiMaxSizeRejectionErrorPipe implements PipeTransform {
6
+ private readonly inputFileTexts$;
7
+ private readonly units$;
8
+ constructor(inputFileTexts$: TuiInjectionTokenType<typeof TUI_INPUT_FILE_TEXTS>, units$: TuiInjectionTokenType<typeof TUI_DIGITAL_INFORMATION_UNITS>);
9
+ transform(maxFileSize: number): Observable<string>;
10
+ }
@@ -2,3 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
+ export { TuiMaxSizeRejectionErrorPipe as ɵa } from './max-size-rejection-error.pipe';
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiInputFilesComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiNullableControl","line":53,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"tui-input-files","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":21},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":43,"character":19},"member":"None"},"providers":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"MODE_PROVIDER","line":45,"character":8},{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":47,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputFilesComponent"}}],"template":"<tui-wrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n>\n <label\n *ngIf=\"units$ | async as units\"\n automation-id=\"tui-input-file__label\"\n >\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <input\n *ngIf=\"inputFileTexts$ | async as texts\"\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, texts, units)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, texts, units)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n />\n </ng-container>\n </label>\n</tui-wrapper>\n","styles":["tui-input-files{display:block}tui-input-files .t-native{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}tui-input-files .t-native::-webkit-file-upload-button{display:none}tui-input-files .t-inline{display:inline}tui-wrapper[data-appearance=input-file]{display:flex;background:0 0;font:var(--tui-font-text-m);word-wrap:break-word;color:var(--tui-text-02);flex:1;justify-content:center;align-items:center;min-height:var(--tui-height-l);border-radius:var(--tui-radius-m);padding:1rem .5rem;box-sizing:border-box}tui-wrapper[data-appearance=input-file]:after{border:1px dashed;color:var(--tui-link)}tui-wrapper[data-appearance=input-file]._mobile:after{border:1px solid}tui-wrapper[data-appearance=input-file][data-state=hovered]{background:var(--tui-secondary)}tui-wrapper[data-appearance=input-file][data-state=hovered]:after{color:var(--tui-link-hover)}tui-wrapper[data-appearance=input-file][data-state=pressed]{background:var(--tui-secondary-hover)}tui-wrapper[data-appearance=input-file][data-state=disabled]{opacity:var(--tui-disabled-opacity);pointer-events:none}tui-wrapper[data-appearance=input-file][data-state=disabled]:after{color:var(--tui-text-03)}tui-wrapper[data-appearance=input-file]._focused:after{border-style:solid;border-width:2px;color:var(--tui-focus)}tui-wrapper[data-appearance=input-file][data-mode=onDark],tui-wrapper[data-appearance=input-file][data-mode=onDark]._focused:after,tui-wrapper[data-appearance=input-file][data-mode=onDark]:after{color:var(--tui-text-01-night)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=hovered]{background:var(--tui-clear-inverse-hover)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=hovered]:after,tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=pressed]:after{color:var(--tui-text-03-night)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=pressed]{background:var(--tui-clear-inverse-active)}tui-wrapper[data-appearance=input-file][data-mode=onLight],tui-wrapper[data-appearance=input-file][data-mode=onLight]:after{color:var(--tui-text-01)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=hovered]{background:var(--tui-clear-hover)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=hovered]:after,tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=pressed]:after{color:var(--tui-text-03)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=pressed]{background:var(--tui-clear-active)}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":56,"character":5},"arguments":["input"]}]}],"link":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":62,"character":5}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":66,"character":5}}]}],"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":70,"character":5}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":74,"character":5}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":78,"character":5}}]}],"maxFileSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":82,"character":5}}]}],"reject":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":85,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":89,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":90,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":91,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":91,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":93,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":93,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":95,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_MOBILE","line":95,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":97,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_INPUT_FILE_TEXTS","line":97,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_DIGITAL_INFORMATION_UNITS","line":111,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":92,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":94,"character":27},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":112,"character":36,"module":"./input-files.component"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":112,"character":36,"module":"./input-files.component"}]}]}],"onHovered":[{"__symbolic":"method"}],"onFocused":[{"__symbolic":"method"}],"onPressed":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"onDropped":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"removeFile":[{"__symbolic":"method"}],"computeLink$":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":189,"character":5}]}],"computeLabel$":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":206,"character":5}]}],"getValueArray":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":232,"character":5}]}],"processSelectedFiles":[{"__symbolic":"method"}],"isFormatAcceptable":[{"__symbolic":"method"}],"rejectFiles":[{"__symbolic":"method"}]}},"TuiInputFilesModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":29,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":31,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":32,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":33,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusedModule","line":34,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusVisibleModule","line":35,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiPressedModule","line":36,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiHoveredModule","line":37,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusableModule","line":38,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDroppableModule","line":39,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiWrapperModule","line":40,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":41,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiLinkModule","line":42,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiLoaderModule","line":43,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiButtonModule","line":44,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiGroupModule","line":45,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFilesModule","line":46,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputFilesComponent"}],"exports":[{"__symbolic":"reference","name":"TuiInputFilesComponent"},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFilesComponent","line":51,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFileComponent","line":52,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiItemDirective","line":53,"character":8}]}]}],"members":{}}},"origins":{"TuiInputFilesComponent":"./input-files.component","TuiInputFilesModule":"./input-files.module"},"importAs":"@taiga-ui/kit/components/input-files"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiInputFilesComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"AbstractTuiNullableControl","line":53,"character":12},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"tui-input-files","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":21},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":43,"character":19},"member":"None"},"providers":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"MODE_PROVIDER","line":45,"character":8},{"provide":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_FOCUSABLE_ITEM_ACCESSOR","line":47,"character":21},"useExisting":{"__symbolic":"reference","name":"TuiInputFilesComponent"}}],"template":"<tui-wrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n>\n <label automation-id=\"tui-input-file__label\">\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <input\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, formatRejection, maxSizeRejection)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, formatRejection, maxSizeRejection)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n />\n </ng-container>\n </label>\n</tui-wrapper>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n","styles":["tui-input-files{display:block}tui-input-files .t-native{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}tui-input-files .t-native::-webkit-file-upload-button{display:none}tui-input-files .t-inline{display:inline}tui-wrapper[data-appearance=input-file]{display:flex;background:0 0;font:var(--tui-font-text-m);word-wrap:break-word;color:var(--tui-text-02);flex:1;justify-content:center;align-items:center;min-height:var(--tui-height-l);border-radius:var(--tui-radius-m);padding:1rem .5rem;box-sizing:border-box}tui-wrapper[data-appearance=input-file]:after{border:1px dashed;color:var(--tui-link)}tui-wrapper[data-appearance=input-file]._mobile:after{border:1px solid}tui-wrapper[data-appearance=input-file][data-state=hovered]{background:var(--tui-secondary)}tui-wrapper[data-appearance=input-file][data-state=hovered]:after{color:var(--tui-link-hover)}tui-wrapper[data-appearance=input-file][data-state=pressed]{background:var(--tui-secondary-hover)}tui-wrapper[data-appearance=input-file][data-state=disabled]{opacity:var(--tui-disabled-opacity);pointer-events:none}tui-wrapper[data-appearance=input-file][data-state=disabled]:after{color:var(--tui-text-03)}tui-wrapper[data-appearance=input-file]._focused:after{border-style:solid;border-width:2px;color:var(--tui-focus)}tui-wrapper[data-appearance=input-file][data-mode=onDark],tui-wrapper[data-appearance=input-file][data-mode=onDark]._focused:after,tui-wrapper[data-appearance=input-file][data-mode=onDark]:after{color:var(--tui-text-01-night)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=hovered]{background:var(--tui-clear-inverse-hover)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=hovered]:after,tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=pressed]:after{color:var(--tui-text-03-night)}tui-wrapper[data-appearance=input-file][data-mode=onDark][data-state=pressed]{background:var(--tui-clear-inverse-active)}tui-wrapper[data-appearance=input-file][data-mode=onLight],tui-wrapper[data-appearance=input-file][data-mode=onLight]:after{color:var(--tui-text-01)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=hovered]{background:var(--tui-clear-hover)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=hovered]:after,tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=pressed]:after{color:var(--tui-text-03)}tui-wrapper[data-appearance=input-file][data-mode=onLight][data-state=pressed]{background:var(--tui-clear-active)}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":56,"character":5},"arguments":["input"]}]}],"link":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":62,"character":5}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":66,"character":5}}]}],"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":70,"character":5}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":74,"character":5}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":78,"character":5}}]}],"maxFileSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":82,"character":5}}]}],"reject":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":85,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":89,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":90,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":91,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":91,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":93,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":93,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":95,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_MOBILE","line":95,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":97,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_INPUT_FILE_TEXTS","line":97,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":92,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":94,"character":27},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":99,"character":12,"context":{"typeName":"Record"},"module":"./input-files.component"}]}]}],"onHovered":[{"__symbolic":"method"}],"onFocused":[{"__symbolic":"method"}],"onPressed":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"onDropped":[{"__symbolic":"method"}],"onDragOver":[{"__symbolic":"method"}],"removeFile":[{"__symbolic":"method"}],"computeLink$":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":187,"character":5}]}],"computeLabel$":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":204,"character":5}]}],"getValueArray":[{"__symbolic":"method","decorators":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiPure","line":230,"character":5}]}],"processSelectedFiles":[{"__symbolic":"method"}],"isFormatAcceptable":[{"__symbolic":"method"}],"rejectFiles":[{"__symbolic":"method"}]}},"TuiInputFilesModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":30,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":32,"character":8},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":33,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":34,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusedModule","line":35,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusVisibleModule","line":36,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiPressedModule","line":37,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiHoveredModule","line":38,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiFocusableModule","line":39,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDroppableModule","line":40,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiWrapperModule","line":41,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":42,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiLinkModule","line":43,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiLoaderModule","line":44,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiButtonModule","line":45,"character":8},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiGroupModule","line":46,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFilesModule","line":47,"character":8}],"declarations":[{"__symbolic":"reference","name":"TuiInputFilesComponent"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"TuiInputFilesComponent"},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFilesComponent","line":52,"character":8},{"__symbolic":"reference","module":"@taiga-ui/kit/components/files","name":"TuiFileComponent","line":53,"character":8},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiItemDirective","line":54,"character":8}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"tuiMaxSizeRejectionError"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_INPUT_FILE_TEXTS","line":10,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":14,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/kit/tokens","name":"TUI_DIGITAL_INFORMATION_UNITS","line":14,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"TuiInjectionTokenType","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":16,"character":12,"module":"./max-size-rejection-error.pipe"}]},{"__symbolic":"reference","name":"TuiInjectionTokenType","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":16,"character":12,"module":"./max-size-rejection-error.pipe"}]}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"TuiInputFilesComponent":"./input-files.component","TuiInputFilesModule":"./input-files.module","ɵa":"./max-size-rejection-error.pipe"},"importAs":"@taiga-ui/kit/components/input-files"}
@@ -4,18 +4,17 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Even
4
4
  import { NgControl } from '@angular/forms';
5
5
  import { AbstractTuiNullableControl, EMPTY_ARRAY, isNativeFocused, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_MOBILE, tuiDefaultProp, tuiPure, } from '@taiga-ui/cdk';
6
6
  import { MODE_PROVIDER } from '@taiga-ui/core';
7
- import { TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
8
- import { formatSize, getAcceptArray } from '@taiga-ui/kit/utils/files';
7
+ import { TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
8
+ import { getAcceptArray } from '@taiga-ui/kit/utils/files';
9
9
  import { Observable, of } from 'rxjs';
10
10
  import { map } from 'rxjs/operators';
11
11
  const DEFAULT_MAX_SIZE = 30 * 1000 * 1000; // 30 MB
12
12
  // @dynamic
13
13
  let TuiInputFilesComponent = TuiInputFilesComponent_1 = class TuiInputFilesComponent extends AbstractTuiNullableControl {
14
- constructor(control, changeDetectorRef, isMobile, inputFileTexts$, units$) {
14
+ constructor(control, changeDetectorRef, isMobile, inputFileTexts$) {
15
15
  super(control, changeDetectorRef);
16
16
  this.isMobile = isMobile;
17
17
  this.inputFileTexts$ = inputFileTexts$;
18
- this.units$ = units$;
19
18
  this.dataTransfer = null;
20
19
  this.link = ``;
21
20
  this.label = ``;
@@ -58,12 +57,12 @@ let TuiInputFilesComponent = TuiInputFilesComponent_1 = class TuiInputFilesCompo
58
57
  onPressed(pressed) {
59
58
  this.updatePressed(pressed);
60
59
  }
61
- onFilesSelected(input, texts, units) {
62
- this.processSelectedFiles(input.files, texts, units);
60
+ onFilesSelected(input, formatRejection, maxSizeRejection) {
61
+ this.processSelectedFiles(input.files, { formatRejection, maxSizeRejection });
63
62
  input.value = ``;
64
63
  }
65
- onDropped(event, texts, units) {
66
- this.processSelectedFiles(event.files, texts, units);
64
+ onDropped(event, formatRejection, maxSizeRejection) {
65
+ this.processSelectedFiles(event.files, { formatRejection, maxSizeRejection });
67
66
  }
68
67
  onDragOver(dataTransfer) {
69
68
  this.dataTransfer = dataTransfer;
@@ -95,7 +94,7 @@ let TuiInputFilesComponent = TuiInputFilesComponent_1 = class TuiInputFilesCompo
95
94
  }
96
95
  return Array.isArray(value) ? value : [value];
97
96
  }
98
- processSelectedFiles(files, texts, units) {
97
+ processSelectedFiles(files, errors) {
99
98
  // IE11 after selecting a file through the open dialog generates a second event passing an empty FileList.
100
99
  if (!(files === null || files === void 0 ? void 0 : files.length)) {
101
100
  return;
@@ -110,14 +109,13 @@ let TuiInputFilesComponent = TuiInputFilesComponent_1 = class TuiInputFilesCompo
110
109
  name: file.name,
111
110
  type: file.type,
112
111
  size: file.size,
113
- content: texts.maxSizeRejectionReason +
114
- formatSize(units, this.maxFileSize),
112
+ content: errors.maxSizeRejection,
115
113
  })),
116
114
  ...wrongFormatFiles.map(file => ({
117
115
  name: file.name,
118
116
  type: file.type,
119
117
  size: file.size,
120
- content: texts.formatRejectionReason,
118
+ content: errors.formatRejection,
121
119
  })),
122
120
  ]);
123
121
  }
@@ -143,8 +141,7 @@ TuiInputFilesComponent.ctorParameters = () => [
143
141
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
144
142
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
145
143
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_MOBILE,] }] },
146
- { type: Observable, decorators: [{ type: Inject, args: [TUI_INPUT_FILE_TEXTS,] }] },
147
- { type: Observable, decorators: [{ type: Inject, args: [TUI_DIGITAL_INFORMATION_UNITS,] }] }
144
+ { type: Observable, decorators: [{ type: Inject, args: [TUI_INPUT_FILE_TEXTS,] }] }
148
145
  ];
149
146
  __decorate([
150
147
  ViewChild(`input`)
@@ -188,7 +185,7 @@ __decorate([
188
185
  TuiInputFilesComponent = TuiInputFilesComponent_1 = __decorate([
189
186
  Component({
190
187
  selector: `tui-input-files`,
191
- template: "<tui-wrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n>\n <label\n *ngIf=\"units$ | async as units\"\n automation-id=\"tui-input-file__label\"\n >\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <input\n *ngIf=\"inputFileTexts$ | async as texts\"\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, texts, units)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, texts, units)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n />\n </ng-container>\n </label>\n</tui-wrapper>\n",
188
+ template: "<tui-wrapper\n appearance=\"input-file\"\n class=\"t-wrapper\"\n [class._mobile]=\"isMobile\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered || fileDragged\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n>\n <label automation-id=\"tui-input-file__label\">\n <a tuiLink>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLink$ | async\"\n ></span>\n </a>\n <ng-container *ngIf=\"computedLabel$ | async as computedLabel\">\n <span>&nbsp;</span>\n <span\n polymorpheus-outlet\n class=\"t-inline\"\n [content]=\"computedLabel\"\n ></span>\n </ng-container>\n <ng-container *ngIf=\"!readOnly && !computedDisabled\">\n <input\n #input\n type=\"file\"\n class=\"t-native\"\n [id]=\"id\"\n [accept]=\"accept\"\n [multiple]=\"multiple\"\n [tuiFocusable]=\"focusable\"\n (change)=\"onFilesSelected(input, formatRejection, maxSizeRejection)\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiPressedChange)=\"onPressed($event)\"\n (tuiDroppableDropped)=\"onDropped($event, formatRejection, maxSizeRejection)\"\n (tuiDroppableDragOverChange)=\"onDragOver($event)\"\n (mousedown.prevent.silent)=\"(0)\"\n />\n </ng-container>\n </label>\n</tui-wrapper>\n\n<ng-template #formatRejection>\n {{ (inputFileTexts$ | async)?.formatRejectionReason || '' }}\n</ng-template>\n\n<ng-template #maxSizeRejection>\n {{ maxFileSize | tuiMaxSizeRejectionError | async }}\n</ng-template>\n",
192
189
  changeDetection: ChangeDetectionStrategy.OnPush,
193
190
  encapsulation: ViewEncapsulation.None,
194
191
  providers: [
@@ -205,8 +202,7 @@ TuiInputFilesComponent = TuiInputFilesComponent_1 = __decorate([
205
202
  __param(0, Inject(NgControl)),
206
203
  __param(1, Inject(ChangeDetectorRef)),
207
204
  __param(2, Inject(TUI_IS_MOBILE)),
208
- __param(3, Inject(TUI_INPUT_FILE_TEXTS)),
209
- __param(4, Inject(TUI_DIGITAL_INFORMATION_UNITS))
205
+ __param(3, Inject(TUI_INPUT_FILE_TEXTS))
210
206
  ], TuiInputFilesComponent);
211
207
  export { TuiInputFilesComponent };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWZpbGVzLyIsInNvdXJjZXMiOlsiaW5wdXQtZmlsZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixXQUFXLEVBQ1gsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsY0FBYyxFQUdkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFDLDZCQUE2QixFQUFFLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVE7QUFFbkQsV0FBVztBQWVYLElBQWEsc0JBQXNCLDhCQUFuQyxNQUFhLHNCQUNULFNBQVEsMEJBQWdFO0lBbUN4RSxZQUlJLE9BQXlCLEVBRXpCLGlCQUFvQyxFQUUzQixRQUFpQixFQUVqQixlQVlSLEVBRVEsTUFBNEM7UUFFckQsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBbEJ6QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBRWpCLG9CQUFlLEdBQWYsZUFBZSxDQVl2QjtRQUVRLFdBQU0sR0FBTixNQUFNLENBQXNDO1FBckRqRCxpQkFBWSxHQUF3QixJQUFJLENBQUM7UUFJakQsU0FBSSxHQUF3QixFQUFFLENBQUM7UUFJL0IsVUFBSyxHQUF3QixFQUFFLENBQUM7UUFJaEMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUlaLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsU0FBSSxHQUFhLEdBQUcsQ0FBQztRQUlyQixnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBRy9CLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztJQTZCbEUsQ0FBQztJQUVELElBQUksc0JBQXNCOztRQUN0QixPQUFPLE9BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsYUFBYSxLQUFJLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUkscUJBQXFCOztRQUNyQixhQUFPLElBQUksQ0FBQyxhQUFhLG1DQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDckIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxLQUFLLENBQ2IsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLFdBQVc7O1FBQ1gsT0FBTyxDQUFDLFFBQUMsSUFBSSxDQUFDLFlBQVksMENBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFnQjtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUNYLEtBQXVCLEVBQ3ZCLEtBQXlFLEVBQ3pFLEtBQStCO1FBRS9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUNMLEtBQW1CLEVBQ25CLEtBQXlFLEVBQ3pFLEtBQStCO1FBRS9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQWlDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBd0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5RSxDQUFDO0lBQ04sQ0FBQztJQUdPLFlBQVksQ0FDaEIsV0FBb0IsRUFDcEIsUUFBaUIsRUFDakIsSUFBeUI7UUFFekIsT0FBTyxXQUFXO1lBQ2QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3JCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNSLFFBQVEsSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBbUI7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUN4QyxDQUNKLENBQUM7SUFDWixDQUFDO0lBR08sYUFBYSxDQUNqQixRQUFpQixFQUNqQixXQUFvQixFQUNwQixRQUFpQixFQUNqQixLQUEwQjtRQUUxQixJQUFJLFFBQVEsRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxXQUFXLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdELENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNSLFFBQVEsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLG9CQUFvQjtZQUM1QixDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FDMUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUdPLGFBQWEsQ0FDakIsS0FBa0Q7UUFFbEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLG9CQUFvQixDQUN4QixLQUFzQixFQUN0QixLQUF5RSxFQUN6RSxLQUErQjtRQUUvQiwwR0FBMEc7UUFDMUcsSUFBSSxFQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQzFFLENBQUM7UUFFRixJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ2IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsT0FBTyxFQUNILEtBQUssQ0FBQyxzQkFBc0I7d0JBQzVCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztpQkFDMUMsQ0FBQyxDQUFDO2dCQUNILEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsT0FBTyxFQUFFLEtBQUssQ0FBQyxxQkFBcUI7aUJBQ3ZDLENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FDWixJQUFJLENBQUMsUUFBUTtZQUNULENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQztZQUN4QyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFVO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBRXpFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxFQUFFLENBQ0wsTUFBTSxLQUFLLFNBQVM7WUFDcEIsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ3BCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVELENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUFDLGFBQXFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNKLENBQUE7O1lBdk5nQixTQUFTLHVCQUhqQixRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQyxTQUFTO1lBR0UsaUJBQWlCLHVCQURuQyxNQUFNLFNBQUMsaUJBQWlCOzBDQUV4QixNQUFNLFNBQUMsYUFBYTtZQUdLLFVBQVUsdUJBRG5DLE1BQU0sU0FBQyxvQkFBb0I7WUFlWCxVQUFVLHVCQUQxQixNQUFNLFNBQUMsNkJBQTZCOztBQXREekM7SUFEQyxTQUFTLENBQUMsT0FBTyxDQUFDO3FEQUNtQztBQU10RDtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtvREFDYztBQUkvQjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtxREFDZTtBQUloQztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtzREFDTDtBQUlaO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO3dEQUNBO0FBSWpCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO29EQUNJO0FBSXJCO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFOzJEQUNjO0FBRy9CO0lBREMsTUFBTSxFQUFFO3NEQUN5RDtBQXdHbEU7SUFEQyxPQUFPOzBEQWVQO0FBR0Q7SUFEQyxPQUFPOzJEQXdCUDtBQUdEO0lBREMsT0FBTzsyREFTUDtBQTdMUSxzQkFBc0I7SUFkbEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixpdkRBQTBDO1FBRTFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1FBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3JDLFNBQVMsRUFBRTtZQUNQLGFBQWE7WUFDYjtnQkFDSSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUFzQixDQUFDO2FBQ3hEO1NBQ0o7O0tBQ0osQ0FBQztJQXNDTyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtJQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFekIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFckIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQWM1QixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0dBM0RqQyxzQkFBc0IsQ0ErUGxDO1NBL1BZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBFTVBUWV9BUlJBWSxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge01PREVfUFJPVklERVIsIFR1aVNpemVMfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUZpbGVMaWtlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUywgVFVJX0lOUFVUX0ZJTEVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7Zm9ybWF0U2l6ZSwgZ2V0QWNjZXB0QXJyYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvZmlsZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBERUZBVUxUX01BWF9TSVpFID0gMzAgKiAxMDAwICogMTAwMDsgLy8gMzAgTUJcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWlucHV0LWZpbGVzYCxcbiAgICB0ZW1wbGF0ZVVybDogYC4vaW5wdXQtZmlsZXMudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vaW5wdXQtZmlsZXMuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1PREVfUFJPVklERVIsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RmlsZXNDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RmlsZXNDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aUZpbGVMaWtlIHwgcmVhZG9ubHkgVHVpRmlsZUxpa2VbXT5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoYGlucHV0YClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByaXZhdGUgZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBsaW5rOiBQb2x5bW9ycGhldXNDb250ZW50ID0gYGA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbGFiZWw6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhY2NlcHQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNpemU6IFR1aVNpemVMID0gYG1gO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heEZpbGVTaXplID0gREVGQVVMVF9NQVhfU0laRTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlamVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKVxuICAgICAgICByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfRklMRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgaW5wdXRGaWxlVGV4dHMkOiBPYnNlcnZhYmxlPFxuICAgICAgICAgICAgUmVjb3JkPFxuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMYWJlbFNpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGFiZWxNdWx0aXBsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua1NpbmdsZSdcbiAgICAgICAgICAgICAgICB8ICdkZWZhdWx0TGlua011bHRpcGxlJ1xuICAgICAgICAgICAgICAgIHwgJ21heFNpemVSZWplY3Rpb25SZWFzb24nXG4gICAgICAgICAgICAgICAgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJ1xuICAgICAgICAgICAgICAgIHwgJ2Ryb3AnXG4gICAgICAgICAgICAgICAgfCAnZHJvcE11bHRpcGxlJyxcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUylcbiAgICAgICAgcmVhZG9ubHkgdW5pdHMkOiBPYnNlcnZhYmxlPFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXT4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRQc2V1ZG9Ib3ZlcmVkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHNldWRvSG92ZXJlZCA/PyAodGhpcy5maWxlRHJhZ2dlZCB8fCBudWxsKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRMaW5rJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxpbmskKHRoaXMuZmlsZURyYWdnZWQsIHRoaXMubXVsdGlwbGUsIHRoaXMubGluayk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTGFiZWwkKCk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlTGFiZWwkKFxuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSxcbiAgICAgICAgICAgIHRoaXMuZmlsZURyYWdnZWQsXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgICAgdGhpcy5sYWJlbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGF0YVRyYW5zZmVyPy50eXBlcy5pbmNsdWRlcyhgRmlsZXNgKTtcbiAgICB9XG5cbiAgICBnZXQgYXJyYXlWYWx1ZSgpOiByZWFkb25seSBUdWlGaWxlTGlrZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVBcnJheSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG9uUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJlc3NlZChwcmVzc2VkKTtcbiAgICB9XG5cbiAgICBvbkZpbGVzU2VsZWN0ZWQoXG4gICAgICAgIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LFxuICAgICAgICB0ZXh0czogUmVjb3JkPCdtYXhTaXplUmVqZWN0aW9uUmVhc29uJyB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nLCBzdHJpbmc+LFxuICAgICAgICB1bml0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddLFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGlucHV0LmZpbGVzLCB0ZXh0cywgdW5pdHMpO1xuICAgICAgICBpbnB1dC52YWx1ZSA9IGBgO1xuICAgIH1cblxuICAgIG9uRHJvcHBlZChcbiAgICAgICAgZXZlbnQ6IERhdGFUcmFuc2ZlcixcbiAgICAgICAgdGV4dHM6IFJlY29yZDwnbWF4U2l6ZVJlamVjdGlvblJlYXNvbicgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJywgc3RyaW5nPixcbiAgICAgICAgdW5pdHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU2VsZWN0ZWRGaWxlcyhldmVudC5maWxlcywgdGV4dHMsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBvbkRyYWdPdmVyKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IGRhdGFUcmFuc2ZlcjtcbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSA/IHRoaXMuYXJyYXlWYWx1ZS5maWx0ZXIoZmlsZSA9PiBmaWxlICE9PSByZW1vdmVkRmlsZSkgOiBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGluayQoXG4gICAgICAgIGZpbGVEcmFnZ2VkOiBib29sZWFuLFxuICAgICAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICAgICAgbGluazogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIGZpbGVEcmFnZ2VkXG4gICAgICAgICAgICA/IG9mKGBgKVxuICAgICAgICAgICAgOiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgbGluayA9PT0gYGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0ZXh0cy5kZWZhdWx0TGlua011bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbGluayB8fCB0ZXh0cy5kZWZhdWx0TGlua1NpbmdsZSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVMYWJlbCQoXG4gICAgICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBmaWxlRHJhZ2dlZDogYm9vbGVhbixcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgICAgIGxhYmVsOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihgYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZURyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCh0ZXh0cyA9PiAobXVsdGlwbGUgPyB0ZXh0cy5kcm9wTXVsdGlwbGUgOiB0ZXh0cy5kcm9wKSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRGaWxlVGV4dHMkLnBpcGUoXG4gICAgICAgICAgICBtYXAodGV4dHMgPT5cbiAgICAgICAgICAgICAgICBtdWx0aXBsZSAmJiBsYWJlbCA9PT0gYGBcbiAgICAgICAgICAgICAgICAgICAgPyB0ZXh0cy5kZWZhdWx0TGFiZWxNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICA6IGxhYmVsIHx8IHRleHRzLmRlZmF1bHRMYWJlbFNpbmdsZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldFZhbHVlQXJyYXkoXG4gICAgICAgIHZhbHVlOiBUdWlGaWxlTGlrZSB8IHJlYWRvbmx5IFR1aUZpbGVMaWtlW10gfCBudWxsLFxuICAgICk6IHJlYWRvbmx5IFR1aUZpbGVMaWtlW10ge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfQVJSQVk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0ZWRGaWxlcyhcbiAgICAgICAgZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCxcbiAgICAgICAgdGV4dHM6IFJlY29yZDwnbWF4U2l6ZVJlamVjdGlvblJlYXNvbicgfCAnZm9ybWF0UmVqZWN0aW9uUmVhc29uJywgc3RyaW5nPixcbiAgICAgICAgdW5pdHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gSUUxMSBhZnRlciBzZWxlY3RpbmcgYSBmaWxlIHRocm91Z2ggdGhlIG9wZW4gZGlhbG9nIGdlbmVyYXRlcyBhIHNlY29uZCBldmVudCBwYXNzaW5nIGFuIGVtcHR5IEZpbGVMaXN0LlxuICAgICAgICBpZiAoIWZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0ZpbGVzID0gdGhpcy5tdWx0aXBsZSA/IEFycmF5LmZyb20oZmlsZXMpIDogW2ZpbGVzWzBdXTtcbiAgICAgICAgY29uc3QgdG9vQmlnRmlsZXMgPSBuZXdGaWxlcy5maWx0ZXIoZmlsZSA9PiBmaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKTtcbiAgICAgICAgY29uc3Qgd3JvbmdGb3JtYXRGaWxlcyA9IG5ld0ZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgIGZpbGUgPT4gIXRoaXMuaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGUpICYmICF0b29CaWdGaWxlcy5pbmNsdWRlcyhmaWxlKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYWNjZXB0ZWRGaWxlcyA9IG5ld0ZpbGVzLmZpbHRlcihcbiAgICAgICAgICAgIGZpbGUgPT4gIXRvb0JpZ0ZpbGVzLmluY2x1ZGVzKGZpbGUpICYmICF3cm9uZ0Zvcm1hdEZpbGVzLmluY2x1ZGVzKGZpbGUpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0b29CaWdGaWxlcy5sZW5ndGggfHwgd3JvbmdGb3JtYXRGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0RmlsZXMoW1xuICAgICAgICAgICAgICAgIC4uLnRvb0JpZ0ZpbGVzLm1hcChmaWxlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0cy5tYXhTaXplUmVqZWN0aW9uUmVhc29uICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdFNpemUodW5pdHMsIHRoaXMubWF4RmlsZVNpemUpLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAuLi53cm9uZ0Zvcm1hdEZpbGVzLm1hcChmaWxlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRleHRzLmZvcm1hdFJlamVjdGlvblJlYXNvbixcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlXG4gICAgICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgICAgIDogYWNjZXB0ZWRGaWxlc1swXSB8fCBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBgLiR7KGZpbGUubmFtZS5zcGxpdChgLmApLnBvcCgpIHx8IGBgKS50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICAgICAgcmV0dXJuIGdldEFjY2VwdEFycmF5KHRoaXMuYWNjZXB0KS5zb21lKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBleHRlbnNpb24gfHxcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09IGZpbGUudHlwZSB8fFxuICAgICAgICAgICAgICAgIChmb3JtYXQuc3BsaXQoYC9gKVsxXSA9PT0gYCpgICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbGUudHlwZS5zcGxpdChgL2ApWzBdID09PSBmb3JtYXQuc3BsaXQoYC9gKVswXSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWplY3RGaWxlcyhyZWplY3RlZEZpbGVzOiByZWFkb25seSBUdWlGaWxlTGlrZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVqZWN0LmVtaXQodGhpcy5tdWx0aXBsZSA/IHJlamVjdGVkRmlsZXMgOiByZWplY3RlZEZpbGVzWzBdKTtcbiAgICB9XG59XG4iXX0=
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWZpbGVzLyIsInNvdXJjZXMiOlsiaW5wdXQtZmlsZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixXQUFXLEVBQ1gsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsY0FBYyxFQUdkLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBQyxVQUFVLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUTtBQUVuRCxXQUFXO0FBZVgsSUFBYSxzQkFBc0IsOEJBQW5DLE1BQWEsc0JBQ1QsU0FBUSwwQkFBZ0U7SUFtQ3hFLFlBSUksT0FBeUIsRUFFekIsaUJBQW9DLEVBRTNCLFFBQWlCLEVBRWpCLGVBWVI7UUFFRCxLQUFLLENB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QUFRLEVBQUUsaUJBQWlCO1FBQzNCLHM0REFBMEM7UUFFMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDckMsU0FBUyxFQUFFO1lBQ1AsYUFBYTtZQUNiO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXNCLENBQUM7YUFDeEQ7U0FDSjs7S0FDSixDQUFDO0lBc0NPLFdBQUEsUUFBUSxFQUFFLENBQUE7SUFDVixXQUFBLElBQUksRUFBRSxDQUFBO0lBQ04sV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFakIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV6QixXQUFBLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUVyQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBN0N4QixzQkFBc0IsQ0EwUGxDO1NBMVBZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBFTVBUWV9BUlJBWSxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge01PREVfUFJPVklERVIsIFR1aVNpemVMfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUZpbGVMaWtlfSBmcm9tICdAdGFpZ2EtdWkva2l0L2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfSU5QVVRfRklMRV9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtnZXRBY2NlcHRBcnJheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9maWxlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IERFRkFVTFRfTUFYX1NJWkUgPSAzMCAqIDEwMDAgKiAxMDAwOyAvLyAzMCBNQlxuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktaW5wdXQtZmlsZXNgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9pbnB1dC1maWxlcy50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9pbnB1dC1maWxlcy5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXRGaWxlc0NvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRGaWxlc0NvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRmlsZUxpa2UgfCByZWFkb25seSBUdWlGaWxlTGlrZVtdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChgaW5wdXRgKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxpbms6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBsYWJlbDogUG9seW1vcnBoZXVzQ29udGVudCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGFjY2VwdCA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2l6ZTogVHVpU2l6ZUwgPSBgbWA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4RmlsZVNpemUgPSBERUZBVUxUX01BWF9TSVpFO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVqZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlGaWxlTGlrZSB8IHJlYWRvbmx5IFR1aUZpbGVMaWtlW10+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpXG4gICAgICAgIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9GSUxFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBpbnB1dEZpbGVUZXh0cyQ6IE9ic2VydmFibGU8XG4gICAgICAgICAgICBSZWNvcmQ8XG4gICAgICAgICAgICAgICAgfCAnZGVmYXVsdExhYmVsU2luZ2xlJ1xuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMYWJlbE11bHRpcGxlJ1xuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMaW5rU2luZ2xlJ1xuICAgICAgICAgICAgICAgIHwgJ2RlZmF1bHRMaW5rTXVsdGlwbGUnXG4gICAgICAgICAgICAgICAgfCAnbWF4U2l6ZVJlamVjdGlvblJlYXNvbidcbiAgICAgICAgICAgICAgICB8ICdmb3JtYXRSZWplY3Rpb25SZWFzb24nXG4gICAgICAgICAgICAgICAgfCAnZHJvcCdcbiAgICAgICAgICAgICAgICB8ICdkcm9wTXVsdGlwbGUnLFxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgPlxuICAgICAgICA+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkUHNldWRvSG92ZXJlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBzZXVkb0hvdmVyZWQgPz8gKHRoaXMuZmlsZURyYWdnZWQgfHwgbnVsbCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTGluayQoKTogT2JzZXJ2YWJsZTxQb2x5bW9ycGhldXNDb250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVMaW5rJCh0aGlzLmZpbGVEcmFnZ2VkLCB0aGlzLm11bHRpcGxlLCB0aGlzLmxpbmspO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZExhYmVsJCgpOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZUxhYmVsJChcbiAgICAgICAgICAgIHRoaXMuaXNNb2JpbGUsXG4gICAgICAgICAgICB0aGlzLmZpbGVEcmFnZ2VkLFxuICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSxcbiAgICAgICAgICAgIHRoaXMubGFiZWwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGVEcmFnZ2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRhdGFUcmFuc2Zlcj8udHlwZXMuaW5jbHVkZXMoYEZpbGVzYCk7XG4gICAgfVxuXG4gICAgZ2V0IGFycmF5VmFsdWUoKTogcmVhZG9ubHkgVHVpRmlsZUxpa2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlQXJyYXkodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25GaWxlc1NlbGVjdGVkKFxuICAgICAgICBpbnB1dDogSFRNTElucHV0RWxlbWVudCxcbiAgICAgICAgZm9ybWF0UmVqZWN0aW9uOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICAgICBtYXhTaXplUmVqZWN0aW9uOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NTZWxlY3RlZEZpbGVzKGlucHV0LmZpbGVzLCB7Zm9ybWF0UmVqZWN0aW9uLCBtYXhTaXplUmVqZWN0aW9ufSk7XG4gICAgICAgIGlucHV0LnZhbHVlID0gYGA7XG4gICAgfVxuXG4gICAgb25Ecm9wcGVkKFxuICAgICAgICBldmVudDogRGF0YVRyYW5zZmVyLFxuICAgICAgICBmb3JtYXRSZWplY3Rpb246IFBvbHltb3JwaGV1c0NvbnRlbnQsXG4gICAgICAgIG1heFNpemVSZWplY3Rpb246IFBvbHltb3JwaGV1c0NvbnRlbnQsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvY2Vzc1NlbGVjdGVkRmlsZXMoZXZlbnQuZmlsZXMsIHtmb3JtYXRSZWplY3Rpb24sIG1heFNpemVSZWplY3Rpb259KTtcbiAgICB9XG5cbiAgICBvbkRyYWdPdmVyKGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFUcmFuc2ZlciA9IGRhdGFUcmFuc2ZlcjtcbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKHJlbW92ZWRGaWxlOiBUdWlGaWxlTGlrZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgdGhpcy5tdWx0aXBsZSA/IHRoaXMuYXJyYXlWYWx1ZS5maWx0ZXIoZmlsZSA9PiBmaWxlICE9PSByZW1vdmVkRmlsZSkgOiBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTGluayQoXG4gICAgICAgIGZpbGVEcmFnZ2VkOiBib29sZWFuLFxuICAgICAgICBtdWx0aXBsZTogYm9vbGVhbixcbiAgICAgICAgbGluazogUG9seW1vcnBoZXVzQ29udGVudCxcbiAgICApOiBPYnNlcnZhYmxlPFBvbHltb3JwaGV1c0NvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIGZpbGVEcmFnZ2VkXG4gICAgICAgICAgICA/IG9mKGBgKVxuICAgICAgICAgICAgOiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgICAgICAgbWFwKHRleHRzID0+XG4gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgJiYgbGluayA9PT0gYGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0ZXh0cy5kZWZhdWx0TGlua011bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbGluayB8fCB0ZXh0cy5kZWZhdWx0TGlua1NpbmdsZSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVMYWJlbCQoXG4gICAgICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBmaWxlRHJhZ2dlZDogYm9vbGVhbixcbiAgICAgICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgICAgIGxhYmVsOiBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgICk6IE9ic2VydmFibGU8UG9seW1vcnBoZXVzQ29udGVudD4ge1xuICAgICAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihgYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZURyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0RmlsZVRleHRzJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCh0ZXh0cyA9PiAobXVsdGlwbGUgPyB0ZXh0cy5kcm9wTXVsdGlwbGUgOiB0ZXh0cy5kcm9wKSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRGaWxlVGV4dHMkLnBpcGUoXG4gICAgICAgICAgICBtYXAodGV4dHMgPT5cbiAgICAgICAgICAgICAgICBtdWx0aXBsZSAmJiBsYWJlbCA9PT0gYGBcbiAgICAgICAgICAgICAgICAgICAgPyB0ZXh0cy5kZWZhdWx0TGFiZWxNdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICA6IGxhYmVsIHx8IHRleHRzLmRlZmF1bHRMYWJlbFNpbmdsZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldFZhbHVlQXJyYXkoXG4gICAgICAgIHZhbHVlOiBUdWlGaWxlTGlrZSB8IHJlYWRvbmx5IFR1aUZpbGVMaWtlW10gfCBudWxsLFxuICAgICk6IHJlYWRvbmx5IFR1aUZpbGVMaWtlW10ge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfQVJSQVk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0ZWRGaWxlcyhcbiAgICAgICAgZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCxcbiAgICAgICAgZXJyb3JzOiBSZWNvcmQ8J21heFNpemVSZWplY3Rpb24nIHwgJ2Zvcm1hdFJlamVjdGlvbicsIFBvbHltb3JwaGV1c0NvbnRlbnQ+LFxuICAgICk6IHZvaWQge1xuICAgICAgICAvLyBJRTExIGFmdGVyIHNlbGVjdGluZyBhIGZpbGUgdGhyb3VnaCB0aGUgb3BlbiBkaWFsb2cgZ2VuZXJhdGVzIGEgc2Vjb25kIGV2ZW50IHBhc3NpbmcgYW4gZW1wdHkgRmlsZUxpc3QuXG4gICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3RmlsZXMgPSB0aGlzLm11bHRpcGxlID8gQXJyYXkuZnJvbShmaWxlcykgOiBbZmlsZXNbMF1dO1xuICAgICAgICBjb25zdCB0b29CaWdGaWxlcyA9IG5ld0ZpbGVzLmZpbHRlcihmaWxlID0+IGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpO1xuICAgICAgICBjb25zdCB3cm9uZ0Zvcm1hdEZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgZmlsZSA9PiAhdGhpcy5pc0Zvcm1hdEFjY2VwdGFibGUoZmlsZSkgJiYgIXRvb0JpZ0ZpbGVzLmluY2x1ZGVzKGZpbGUpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBhY2NlcHRlZEZpbGVzID0gbmV3RmlsZXMuZmlsdGVyKFxuICAgICAgICAgICAgZmlsZSA9PiAhdG9vQmlnRmlsZXMuaW5jbHVkZXMoZmlsZSkgJiYgIXdyb25nRm9ybWF0RmlsZXMuaW5jbHVkZXMoZmlsZSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRvb0JpZ0ZpbGVzLmxlbmd0aCB8fCB3cm9uZ0Zvcm1hdEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RGaWxlcyhbXG4gICAgICAgICAgICAgICAgLi4udG9vQmlnRmlsZXMubWFwKGZpbGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyb3JzLm1heFNpemVSZWplY3Rpb24sXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIC4uLndyb25nRm9ybWF0RmlsZXMubWFwKGZpbGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyb3JzLmZvcm1hdFJlamVjdGlvbixcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB0aGlzLm11bHRpcGxlXG4gICAgICAgICAgICAgICAgPyBbLi4udGhpcy5hcnJheVZhbHVlLCAuLi5hY2NlcHRlZEZpbGVzXVxuICAgICAgICAgICAgICAgIDogYWNjZXB0ZWRGaWxlc1swXSB8fCBudWxsLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtYXRBY2NlcHRhYmxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBgLiR7KGZpbGUubmFtZS5zcGxpdChgLmApLnBvcCgpIHx8IGBgKS50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICAgICAgcmV0dXJuIGdldEFjY2VwdEFycmF5KHRoaXMuYWNjZXB0KS5zb21lKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSBleHRlbnNpb24gfHxcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09IGZpbGUudHlwZSB8fFxuICAgICAgICAgICAgICAgIChmb3JtYXQuc3BsaXQoYC9gKVsxXSA9PT0gYCpgICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbGUudHlwZS5zcGxpdChgL2ApWzBdID09PSBmb3JtYXQuc3BsaXQoYC9gKVswXSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWplY3RGaWxlcyhyZWplY3RlZEZpbGVzOiByZWFkb25seSBUdWlGaWxlTGlrZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVqZWN0LmVtaXQodGhpcy5tdWx0aXBsZSA/IHJlamVjdGVkRmlsZXMgOiByZWplY3RlZEZpbGVzWzBdKTtcbiAgICB9XG59XG4iXX0=
@@ -6,6 +6,7 @@ import { TuiButtonModule, TuiGroupModule, TuiLinkModule, TuiLoaderModule, TuiSvg
6
6
  import { TuiFileComponent, TuiFilesComponent, TuiFilesModule, } from '@taiga-ui/kit/components/files';
7
7
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
8
8
  import { TuiInputFilesComponent } from './input-files.component';
9
+ import { TuiMaxSizeRejectionErrorPipe } from './max-size-rejection-error.pipe';
9
10
  let TuiInputFilesModule = class TuiInputFilesModule {
10
11
  };
11
12
  TuiInputFilesModule = __decorate([
@@ -28,7 +29,7 @@ TuiInputFilesModule = __decorate([
28
29
  TuiGroupModule,
29
30
  TuiFilesModule,
30
31
  ],
31
- declarations: [TuiInputFilesComponent],
32
+ declarations: [TuiInputFilesComponent, TuiMaxSizeRejectionErrorPipe],
32
33
  exports: [
33
34
  TuiInputFilesComponent,
34
35
  TuiFilesComponent,
@@ -38,4 +39,4 @@ TuiInputFilesModule = __decorate([
38
39
  })
39
40
  ], TuiInputFilesModule);
40
41
  export { TuiInputFilesModule };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWZpbGVzLyIsInNvdXJjZXMiOlsiaW5wdXQtZmlsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixjQUFjLEdBQ2pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUE2Qi9ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0NBQUcsQ0FBQTtBQUF0QixtQkFBbUI7SUEzQi9CLFFBQVEsQ0FBQztRQUNOLE9BQU8sRUFBRTtZQUNMLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGNBQWM7U0FDakI7UUFDRCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztRQUN0QyxPQUFPLEVBQUU7WUFDTCxzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7U0FDbkI7S0FDSixDQUFDO0dBQ1csbUJBQW1CLENBQUc7U0FBdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcHBhYmxlTW9kdWxlLFxuICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgIFR1aUZvY3VzVmlzaWJsZU1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUl0ZW1EaXJlY3RpdmUsXG4gICAgVHVpTGV0TW9kdWxlLFxuICAgIFR1aVByZXNzZWRNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgVHVpR3JvdXBNb2R1bGUsXG4gICAgVHVpTGlua01vZHVsZSxcbiAgICBUdWlMb2FkZXJNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVdyYXBwZXJNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpRmlsZUNvbXBvbmVudCxcbiAgICBUdWlGaWxlc0NvbXBvbmVudCxcbiAgICBUdWlGaWxlc01vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2ZpbGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aUlucHV0RmlsZXNDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZmlsZXMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlMZXRNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzZWRNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzVmlzaWJsZU1vZHVsZSxcbiAgICAgICAgVHVpUHJlc3NlZE1vZHVsZSxcbiAgICAgICAgVHVpSG92ZXJlZE1vZHVsZSxcbiAgICAgICAgVHVpRm9jdXNhYmxlTW9kdWxlLFxuICAgICAgICBUdWlEcm9wcGFibGVNb2R1bGUsXG4gICAgICAgIFR1aVdyYXBwZXJNb2R1bGUsXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpTGlua01vZHVsZSxcbiAgICAgICAgVHVpTG9hZGVyTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aUdyb3VwTW9kdWxlLFxuICAgICAgICBUdWlGaWxlc01vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUlucHV0RmlsZXNDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgVHVpSW5wdXRGaWxlc0NvbXBvbmVudCxcbiAgICAgICAgVHVpRmlsZXNDb21wb25lbnQsXG4gICAgICAgIFR1aUZpbGVDb21wb25lbnQsXG4gICAgICAgIFR1aUl0ZW1EaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRGaWxlc01vZHVsZSB7fVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWZpbGVzLyIsInNvdXJjZXMiOlsiaW5wdXQtZmlsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixjQUFjLEdBQ2pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUE2QjdFLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0NBQUcsQ0FBQTtBQUF0QixtQkFBbUI7SUEzQi9CLFFBQVEsQ0FBQztRQUNOLE9BQU8sRUFBRTtZQUNMLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGNBQWM7U0FDakI7UUFDRCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSw0QkFBNEIsQ0FBQztRQUNwRSxPQUFPLEVBQUU7WUFDTCxzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7U0FDbkI7S0FDSixDQUFDO0dBQ1csbUJBQW1CLENBQUc7U0FBdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcHBhYmxlTW9kdWxlLFxuICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgIFR1aUZvY3VzVmlzaWJsZU1vZHVsZSxcbiAgICBUdWlIb3ZlcmVkTW9kdWxlLFxuICAgIFR1aUl0ZW1EaXJlY3RpdmUsXG4gICAgVHVpTGV0TW9kdWxlLFxuICAgIFR1aVByZXNzZWRNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgVHVpR3JvdXBNb2R1bGUsXG4gICAgVHVpTGlua01vZHVsZSxcbiAgICBUdWlMb2FkZXJNb2R1bGUsXG4gICAgVHVpU3ZnTW9kdWxlLFxuICAgIFR1aVdyYXBwZXJNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7XG4gICAgVHVpRmlsZUNvbXBvbmVudCxcbiAgICBUdWlGaWxlc0NvbXBvbmVudCxcbiAgICBUdWlGaWxlc01vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2ZpbGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1R1aUlucHV0RmlsZXNDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZmlsZXMuY29tcG9uZW50JztcbmltcG9ydCB7VHVpTWF4U2l6ZVJlamVjdGlvbkVycm9yUGlwZX0gZnJvbSAnLi9tYXgtc2l6ZS1yZWplY3Rpb24tZXJyb3IucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpTGV0TW9kdWxlLFxuICAgICAgICBUdWlGb2N1c2VkTW9kdWxlLFxuICAgICAgICBUdWlGb2N1c1Zpc2libGVNb2R1bGUsXG4gICAgICAgIFR1aVByZXNzZWRNb2R1bGUsXG4gICAgICAgIFR1aUhvdmVyZWRNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICAgICAgVHVpRHJvcHBhYmxlTW9kdWxlLFxuICAgICAgICBUdWlXcmFwcGVyTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlHcm91cE1vZHVsZSxcbiAgICAgICAgVHVpRmlsZXNNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlJbnB1dEZpbGVzQ29tcG9uZW50LCBUdWlNYXhTaXplUmVqZWN0aW9uRXJyb3JQaXBlXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFR1aUlucHV0RmlsZXNDb21wb25lbnQsXG4gICAgICAgIFR1aUZpbGVzQ29tcG9uZW50LFxuICAgICAgICBUdWlGaWxlQ29tcG9uZW50LFxuICAgICAgICBUdWlJdGVtRGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RmlsZXNNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { Inject, Pipe } from '@angular/core';
3
+ import { TUI_DIGITAL_INFORMATION_UNITS, TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
4
+ import { tuiFormatSize } from '@taiga-ui/kit/utils';
5
+ import { combineLatest } from 'rxjs';
6
+ import { map } from 'rxjs/operators';
7
+ let TuiMaxSizeRejectionErrorPipe = class TuiMaxSizeRejectionErrorPipe {
8
+ constructor(inputFileTexts$, units$) {
9
+ this.inputFileTexts$ = inputFileTexts$;
10
+ this.units$ = units$;
11
+ }
12
+ transform(maxFileSize) {
13
+ return combineLatest([this.inputFileTexts$, this.units$]).pipe(map(([{ maxSizeRejectionReason }, units]) => maxSizeRejectionReason + tuiFormatSize(units, maxFileSize)));
14
+ }
15
+ };
16
+ TuiMaxSizeRejectionErrorPipe.ctorParameters = () => [
17
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_INPUT_FILE_TEXTS,] }] },
18
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_DIGITAL_INFORMATION_UNITS,] }] }
19
+ ];
20
+ TuiMaxSizeRejectionErrorPipe = __decorate([
21
+ Pipe({ name: `tuiMaxSizeRejectionError` }),
22
+ __param(0, Inject(TUI_INPUT_FILE_TEXTS)),
23
+ __param(1, Inject(TUI_DIGITAL_INFORMATION_UNITS))
24
+ ], TuiMaxSizeRejectionErrorPipe);
25
+ export { TuiMaxSizeRejectionErrorPipe };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXNpemUtcmVqZWN0aW9uLWVycm9yLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZmlsZXMvIiwic291cmNlcyI6WyJtYXgtc2l6ZS1yZWplY3Rpb24tZXJyb3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBQyw2QkFBNkIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxJQUFhLDRCQUE0QixHQUF6QyxNQUFhLDRCQUE0QjtJQUNyQyxZQUVxQixlQUVoQixFQUVnQixNQUVoQjtRQU5nQixvQkFBZSxHQUFmLGVBQWUsQ0FFL0I7UUFFZ0IsV0FBTSxHQUFOLE1BQU0sQ0FFdEI7SUFDRixDQUFDO0lBRUosU0FBUyxDQUFDLFdBQW1CO1FBQ3pCLE9BQU8sYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFELEdBQUcsQ0FDQyxDQUFDLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDbEMsc0JBQXNCLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FDakUsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUE7OzRDQWxCUSxNQUFNLFNBQUMsb0JBQW9COzRDQUkzQixNQUFNLFNBQUMsNkJBQTZCOztBQU5oQyw0QkFBNEI7SUFEeEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFDLENBQUM7SUFHaEMsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUk1QixXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0dBTmpDLDRCQUE0QixDQW9CeEM7U0FwQlksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlJbmplY3Rpb25Ub2tlblR5cGV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUywgVFVJX0lOUFVUX0ZJTEVfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7dHVpRm9ybWF0U2l6ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQFBpcGUoe25hbWU6IGB0dWlNYXhTaXplUmVqZWN0aW9uRXJyb3JgfSlcbmV4cG9ydCBjbGFzcyBUdWlNYXhTaXplUmVqZWN0aW9uRXJyb3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0ZJTEVfVEVYVFMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRGaWxlVGV4dHMkOiBUdWlJbmplY3Rpb25Ub2tlblR5cGU8XG4gICAgICAgICAgICB0eXBlb2YgVFVJX0lOUFVUX0ZJTEVfVEVYVFNcbiAgICAgICAgPixcbiAgICAgICAgQEluamVjdChUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1bml0cyQ6IFR1aUluamVjdGlvblRva2VuVHlwZTxcbiAgICAgICAgICAgIHR5cGVvZiBUVUlfRElHSVRBTF9JTkZPUk1BVElPTl9VTklUU1xuICAgICAgICA+LFxuICAgICkge31cblxuICAgIHRyYW5zZm9ybShtYXhGaWxlU2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuaW5wdXRGaWxlVGV4dHMkLCB0aGlzLnVuaXRzJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFt7bWF4U2l6ZVJlamVjdGlvblJlYXNvbn0sIHVuaXRzXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgbWF4U2l6ZVJlamVjdGlvblJlYXNvbiArIHR1aUZvcm1hdFNpemUodW5pdHMsIG1heEZpbGVTaXplKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19