@ptsecurity/mosaic 16.4.0 → 16.4.2

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 (96) hide show
  1. package/_theming.scss +99 -24
  2. package/_visual.scss +82 -19
  3. package/autocomplete/autocomplete-trigger.directive.d.ts +7 -1
  4. package/core/locales/en-US.d.ts +17 -0
  5. package/core/locales/es-LA.d.ts +17 -0
  6. package/core/locales/fa-IR.d.ts +17 -0
  7. package/core/locales/index.d.ts +6 -0
  8. package/core/locales/locale-service.d.ts +102 -0
  9. package/core/locales/pt-BR.d.ts +17 -0
  10. package/core/locales/ru-RU.d.ts +17 -0
  11. package/core/locales/zh-CN.d.ts +17 -0
  12. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  13. package/core/styles/theming/_components-theming.scss +4 -2
  14. package/core/styles/theming/_scrollbars.scss +1 -1
  15. package/ellipsis-center/ellipsis-center.directive.d.ts +3 -2
  16. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +14 -2
  17. package/esm2022/core/locales/en-US.mjs +18 -1
  18. package/esm2022/core/locales/es-LA.mjs +18 -1
  19. package/esm2022/core/locales/fa-IR.mjs +18 -1
  20. package/esm2022/core/locales/index.mjs +7 -1
  21. package/esm2022/core/locales/pt-BR.mjs +18 -1
  22. package/esm2022/core/locales/ru-RU.mjs +18 -1
  23. package/esm2022/core/locales/zh-CN.mjs +18 -1
  24. package/esm2022/core/pop-up/pop-up-trigger.mjs +19 -11
  25. package/esm2022/core/version.mjs +2 -2
  26. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +7 -5
  27. package/esm2022/file-upload/file-upload.module.mjs +8 -4
  28. package/esm2022/file-upload/multiple-file-upload.component.mjs +52 -48
  29. package/esm2022/file-upload/single-file-upload.component.mjs +41 -36
  30. package/esm2022/form-field/form-field.mjs +2 -2
  31. package/esm2022/input/input-password.mjs +2 -3
  32. package/esm2022/modal/modal.component.mjs +6 -6
  33. package/esm2022/navbar/navbar-item.component.mjs +9 -9
  34. package/esm2022/select/select-option.directive.mjs +7 -5
  35. package/esm2022/select/select.component.mjs +14 -7
  36. package/esm2022/tabs/tab-header.component.mjs +2 -2
  37. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
  38. package/esm2022/tags/tag-input.mjs +28 -8
  39. package/esm2022/timezone/timezone-option.directive.mjs +7 -5
  40. package/esm2022/title/title.directive.mjs +2 -3
  41. package/esm2022/tooltip/tooltip.component.mjs +27 -12
  42. package/esm2022/tree-select/tree-select.component.mjs +21 -8
  43. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs +13 -1
  44. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  45. package/fesm2022/ptsecurity-mosaic-core.mjs +122 -12
  46. package/fesm2022/ptsecurity-mosaic-core.mjs.map +1 -1
  47. package/fesm2022/ptsecurity-mosaic-ellipsis-center.mjs +5 -4
  48. package/fesm2022/ptsecurity-mosaic-ellipsis-center.mjs.map +1 -1
  49. package/fesm2022/ptsecurity-mosaic-file-upload.mjs +90 -78
  50. package/fesm2022/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  51. package/fesm2022/ptsecurity-mosaic-form-field.mjs +2 -2
  52. package/fesm2022/ptsecurity-mosaic-form-field.mjs.map +1 -1
  53. package/fesm2022/ptsecurity-mosaic-input.mjs +1 -2
  54. package/fesm2022/ptsecurity-mosaic-input.mjs.map +1 -1
  55. package/fesm2022/ptsecurity-mosaic-modal.mjs +5 -5
  56. package/fesm2022/ptsecurity-mosaic-modal.mjs.map +1 -1
  57. package/fesm2022/ptsecurity-mosaic-navbar.mjs +8 -8
  58. package/fesm2022/ptsecurity-mosaic-navbar.mjs.map +1 -1
  59. package/fesm2022/ptsecurity-mosaic-select.mjs +23 -15
  60. package/fesm2022/ptsecurity-mosaic-select.mjs.map +1 -1
  61. package/fesm2022/ptsecurity-mosaic-tabs.mjs +4 -4
  62. package/fesm2022/ptsecurity-mosaic-tabs.mjs.map +1 -1
  63. package/fesm2022/ptsecurity-mosaic-tags.mjs +26 -7
  64. package/fesm2022/ptsecurity-mosaic-tags.mjs.map +1 -1
  65. package/fesm2022/ptsecurity-mosaic-timezone.mjs +5 -4
  66. package/fesm2022/ptsecurity-mosaic-timezone.mjs.map +1 -1
  67. package/fesm2022/ptsecurity-mosaic-title.mjs +1 -2
  68. package/fesm2022/ptsecurity-mosaic-title.mjs.map +1 -1
  69. package/fesm2022/ptsecurity-mosaic-tooltip.mjs +25 -11
  70. package/fesm2022/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  71. package/fesm2022/ptsecurity-mosaic-tree-select.mjs +20 -7
  72. package/fesm2022/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  73. package/file-upload/_file-upload-theme.scss +1 -1
  74. package/file-upload/file-upload.module.d.ts +2 -1
  75. package/file-upload/file-upload.scss +0 -8
  76. package/file-upload/multiple-file-upload.component.d.ts +16 -13
  77. package/file-upload/multiple-file-upload.component.scss +56 -24
  78. package/file-upload/single-file-upload.component.d.ts +14 -13
  79. package/file-upload/single-file-upload.component.scss +6 -0
  80. package/form-field/form-field.scss +2 -0
  81. package/input/input-password.d.ts +0 -1
  82. package/link/_link-theme.scss +2 -1
  83. package/navbar/navbar-item.component.d.ts +4 -4
  84. package/package.json +8 -8
  85. package/prebuilt-themes/dark-theme.css +1 -1
  86. package/prebuilt-themes/default-theme.css +1 -1
  87. package/select/select-option.directive.d.ts +3 -2
  88. package/select/select.component.d.ts +1 -0
  89. package/tabs/_tabs-theme.scss +5 -0
  90. package/tabs/tab-header.scss +12 -0
  91. package/tabs/tab-nav-bar/tab-nav-bar.scss +12 -0
  92. package/tags/tag-input.d.ts +9 -4
  93. package/timezone/timezone-option.directive.d.ts +3 -2
  94. package/title/title.directive.d.ts +0 -1
  95. package/tooltip/tooltip.component.d.ts +12 -8
  96. package/tree-select/tree-select.component.d.ts +1 -0
@@ -1,29 +1,19 @@
1
- import { FocusMonitor } from '@angular/cdk/a11y';
2
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Inject, Input, Optional, Output, Renderer2, TemplateRef, ViewChild } from '@angular/core';
2
+ import { MC_LOCALE_SERVICE, McLocaleService, ruRULocaleData } from '@ptsecurity/mosaic/core';
3
3
  import { BehaviorSubject, Subscription } from 'rxjs';
4
4
  import { MC_FILE_UPLOAD_CONFIGURATION } from './file-upload';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/a11y";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@ptsecurity/mosaic/progress-spinner";
9
- import * as i4 from "@ptsecurity/mosaic/icon";
10
- import * as i5 from "@ptsecurity/mosaic/list";
11
- import * as i6 from "@ptsecurity/mosaic/form-field";
12
- import * as i7 from "@ptsecurity/mosaic/ellipsis-center";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@ptsecurity/mosaic/progress-spinner";
8
+ import * as i3 from "@ptsecurity/mosaic/icon";
9
+ import * as i4 from "@ptsecurity/mosaic/list";
10
+ import * as i5 from "@ptsecurity/mosaic/form-field";
11
+ import * as i6 from "@ptsecurity/mosaic/ellipsis-center";
12
+ import * as i7 from "@ptsecurity/mosaic/link";
13
13
  import * as i8 from "./file-drop";
14
14
  import * as i9 from "@ptsecurity/mosaic/core";
15
15
  let nextMultipleFileUploadUniqueId = 0;
16
- export const MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION = {
17
- captionText: 'Перетащите сюда или',
18
- captionTextWhenSelected: 'Перетащите еще или',
19
- captionTextForCompactSize: 'Перетащите файлы или',
20
- browseLink: 'выберите',
21
- title: 'Загрузите файлы',
22
- gridHeaders: {
23
- file: 'Файл',
24
- size: 'Размер'
25
- }
26
- };
16
+ export const MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION = ruRULocaleData['ru-RU'].fileUpload.multiple;
27
17
  export class McMultipleFileUploadComponent {
28
18
  get acceptedFiles() {
29
19
  return this.accept && this.accept.length > 0 ? this.accept.map((ext) => `.${ext}`).join(',') : '*/*';
@@ -31,31 +21,33 @@ export class McMultipleFileUploadComponent {
31
21
  get hasErrors() {
32
22
  return this.errors && !!this.errors.length;
33
23
  }
34
- constructor(focusMonitor, cdr, renderer, config) {
35
- this.focusMonitor = focusMonitor;
36
- this.cdr = cdr;
24
+ constructor(renderer, cdr, configuration, localeService) {
37
25
  this.renderer = renderer;
38
- this.config = config;
26
+ this.cdr = cdr;
27
+ this.configuration = configuration;
28
+ this.localeService = localeService;
39
29
  this.errors = [];
40
30
  this.files = [];
41
31
  this.size = 'default';
42
32
  this.inputId = `mc-multiple-file-upload-${nextMultipleFileUploadUniqueId++}`;
43
33
  this.fileQueueChanged = new EventEmitter();
44
- this.hasFocus = false;
45
- this.focusMonitorSubscription = Subscription.EMPTY;
46
- this.config = config || MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION;
47
- this.columnDefs = [
48
- { header: this.config.gridHeaders.file, cssClass: 'file' },
49
- { header: this.config.gridHeaders.size, cssClass: 'size' },
50
- { header: '', cssClass: 'action' }
51
- ];
52
- }
53
- ngAfterViewInit() {
54
- this.focusMonitorSubscription = this.focusMonitor.monitor(this.input)
55
- .subscribe((origin) => this.onFocus(origin === 'keyboard'));
34
+ this.updateLocaleParams = () => {
35
+ this.config = this.configuration || this.localeService?.getParams('fileUpload').multiple;
36
+ this.columnDefs = [
37
+ { header: this.config.gridHeaders.file, cssClass: 'file' },
38
+ { header: this.config.gridHeaders.size, cssClass: 'size' },
39
+ { header: '', cssClass: 'action' }
40
+ ];
41
+ this.makeCaptionText();
42
+ this.cdr.markForCheck();
43
+ };
44
+ this.localeSubscription = this.localeService?.changes.subscribe(this.updateLocaleParams) || Subscription.EMPTY;
45
+ if (!localeService) {
46
+ this.initDefaultParams();
47
+ }
56
48
  }
57
49
  ngOnDestroy() {
58
- this.focusMonitorSubscription.unsubscribe();
50
+ this.localeSubscription.unsubscribe();
59
51
  }
60
52
  onFileSelectedViaClick({ target }) {
61
53
  if (this.disabled) {
@@ -89,13 +81,6 @@ export class McMultipleFileUploadComponent {
89
81
  onFileListChange() {
90
82
  this.fileQueueChanged.emit(this.files);
91
83
  }
92
- onFocus(focusState) {
93
- if (this.disabled) {
94
- return;
95
- }
96
- this.hasFocus = focusState;
97
- this.cdr.markForCheck();
98
- }
99
84
  mapToFileItem(files) {
100
85
  if (!files) {
101
86
  return [];
@@ -126,19 +111,38 @@ export class McMultipleFileUploadComponent {
126
111
  const fileExt = file.name.split('.').pop() || '';
127
112
  return this.acceptedFiles !== '*/*' && this.acceptedFiles.length > 0 ? this.acceptedFiles.includes(fileExt) : true;
128
113
  }
129
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McMultipleFileUploadComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: MC_FILE_UPLOAD_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
130
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McMultipleFileUploadComponent, selector: "mc-multiple-file-upload", inputs: { accept: "accept", disabled: "disabled", errors: "errors", files: "files", size: "size", inputId: "inputId", customValidation: "customValidation" }, outputs: { fileQueueChanged: "fileQueueChanged" }, host: { classAttribute: "mc-multiple-file-upload" }, queries: [{ propertyName: "customFileIcon", first: true, predicate: ["mcFileIcon"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.selected]=\"files && files.length\"\n [ngClass]=\"size\"\n (filesDropped)=\"onFileDropped($event)\"\n>\n <ng-container *ngIf=\"!files.length; else fileOutput\">\n <div class=\"dropzone\">\n <ng-container *ngIf=\"size === 'default' else compactCaption\">\n <i mc-icon=\"mc-upload-to-cloud_64\"></i>\n <div class=\"dropzone__text\">\n <span class=\"multiple__header\">{{ config.title }}</span>\n <div>\n <span class=\"multiple__caption\">\n {{ config.captionText }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </ng-container>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n multiple\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\"\n >\n</div>\n\n<div class=\"mc-file-upload__info-section\">\n <mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n </mc-hint>\n\n <ng-container *ngIf=\"hasErrors\">\n <mc-hint class=\"mc-file-upload__hint mc-error\"\n *ngFor=\"let error of errors\">\n {{ error }}\n </mc-hint>\n </ng-container>\n</div>\n\n<ng-template #fileOutput>\n <div class=\"file-upload__dropzone\">\n <div class=\"mc-file-upload__grid\">\n <div class=\"mc-file-multiple-uploaded__header\">\n <div class=\"mc-file-multiple-uploaded__header-inner\">\n <div [class]=\"'mc-file-upload__' + column.cssClass\" *ngFor=\"let column of columnDefs\">\n {{ column.header }}\n </div>\n </div>\n </div>\n\n <mc-list-selection [autoSelect]=\"false\" [disabled]=\"disabled\">\n <mc-list-option\n class=\"multiple__uploaded-item\"\n [value]=\"file.file.name\"\n (keydown.delete)=\"deleteFile(index)\"\n (keydown.backspace)=\"deleteFile(index)\"\n *ngFor=\"let file of files; let index = index;\">\n <div class=\"mc-file-upload__row\" [class.error]=\"file.hasError\">\n <div class=\"mc-file-upload__file\">\n <ng-container *ngIf=\"{ loading: file.loading | async, progress: file.progress | async } as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\"\n [ngTemplateOutlet]=\"$any(customFileIcon)\"\n [ngTemplateOutletContext]=\"{ $implicit: file }\"\n >\n </ng-container>\n\n <mc-progress-spinner\n class=\"pt-nat-file-upload-name-cell__icon\"\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <span class=\"file-item__text\" [mcEllipsisCenter]=\"file.file.name\" [minVisibleLength]=\"10\"></span>\n </div>\n <div class=\"mc-file-upload__size\">\n {{ file.file.size | mcDataSize }}\n </div>\n <div class=\"mc-file-upload__action\">\n <i mc-icon=\"mc-close-circle_16\" (click)=\"deleteFile(index, $event)\"></i>\n </div>\n </div>\n </mc-list-option>\n </mc-list-selection>\n </div>\n\n <div class=\"btn-upload\">\n <div class=\"dropzone\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ config.captionTextWhenSelected }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #compactCaption>\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ config.captionText }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative;cursor:pointer}.mc-file-upload .dropzone,.mc-file-upload .file-item{display:flex;align-items:center}.mc-file-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .mc-ellipsis-center{position:relative;display:flex}.mc-file-upload .mc-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.mc-file-upload .mc-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{border-radius:var(--mc-file-upload-size-multiple-border-radius, 4px);border-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-style:var(--mc-file-upload-size-multiple-border-style, dashed)}.mc-file-upload.default{min-height:176px;justify-content:center}.mc-file-upload.compact:not(.selected){height:var(--mc-file-upload-size-single-height, 48px);padding-top:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-left:12px}.mc-file-upload .mc-list-option{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px)}.mc-file-upload .mc-list-option .mc-icon{margin-right:0}.mc-file-upload .mc-file-upload__grid{min-height:144px}.mc-file-upload .mc-file-multiple-uploaded__header-inner,.mc-file-upload .mc-file-upload__row{display:flex;align-items:center}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{width:65%;max-width:65%}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__size{width:64px;min-width:64px;text-align:left;flex-grow:1}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__action{padding-left:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px);padding-right:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px)}.mc-file-upload .mc-file-upload__row .mc-file-upload__file{display:flex;align-items:center}.mc-file-upload .mc-file-upload__row .mc-file-upload__file .file-item__text{margin-left:0;width:90%}.mc-file-upload .mc-file-multiple-uploaded__header{border-bottom-width:1px;border-bottom-style:solid}.mc-file-upload .mc-file-multiple-uploaded__header-inner{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);border:2px solid transparent;border-bottom:unset;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px)}.mc-file-upload .btn-upload .dropzone{margin:0;border-top-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-top-style:var(--mc-file-upload-size-multiple-border-style, dashed);padding:4px 12px}.mc-file-upload .file-upload__dropzone{width:100%;height:100%}.mc-hint{display:block}.mc-file-upload__hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.McProgressSpinner, selector: "mc-progress-spinner", inputs: ["color", "id", "value", "mode", "size"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McListSelection, selector: "mc-list-selection", inputs: ["disabled", "autoSelect", "noUnselectLast", "horizontal", "tabIndex", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["mcListSelection"] }, { kind: "component", type: i5.McListOption, selector: "mc-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["mcListOption"] }, { kind: "directive", type: i6.McHint, selector: "mc-hint", inputs: ["color", "id"] }, { kind: "directive", type: i7.McEllipsisCenterDirective, selector: "[mcEllipsisCenter]", inputs: ["mcEllipsisCenter", "minVisibleLength"] }, { kind: "directive", type: i8.McFileDropDirective, selector: "[mcFileDrop]", outputs: ["filesDropped"], exportAs: ["mcFileDrop"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.McDataSizePipe, name: "mcDataSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
+ initDefaultParams() {
115
+ this.config = MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION;
116
+ this.columnDefs = [
117
+ { header: this.config.gridHeaders.file, cssClass: 'file' },
118
+ { header: this.config.gridHeaders.size, cssClass: 'size' },
119
+ { header: '', cssClass: 'action' }
120
+ ];
121
+ this.makeCaptionText();
122
+ }
123
+ makeCaptionText() {
124
+ this.separatedCaptionText = this.config.captionText.split('{{ browseLink }}');
125
+ this.separatedCaptionTextWhenSelected = this.config.captionTextWhenSelected.split('{{ browseLink }}');
126
+ this.separatedCaptionTextForCompactSize = this.config.captionTextForCompactSize.split('{{ browseLink }}');
127
+ }
128
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McMultipleFileUploadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: MC_FILE_UPLOAD_CONFIGURATION, optional: true }, { token: MC_LOCALE_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
129
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McMultipleFileUploadComponent, selector: "mc-multiple-file-upload", inputs: { accept: "accept", disabled: "disabled", errors: "errors", files: "files", size: "size", inputId: "inputId", customValidation: "customValidation" }, outputs: { fileQueueChanged: "fileQueueChanged" }, host: { classAttribute: "mc-multiple-file-upload" }, queries: [{ propertyName: "customFileIcon", first: true, predicate: ["mcFileIcon"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.selected]=\"files && files.length\"\n [ngClass]=\"size\"\n (filesDropped)=\"onFileDropped($event)\"\n>\n <ng-container *ngIf=\"!files.length; else fileOutput\">\n <div class=\"dropzone\">\n <ng-container *ngIf=\"size === 'default' else compactCaption\">\n <i mc-icon=\"mc-upload-to-cloud_64\"></i>\n <div class=\"dropzone__text\">\n <span class=\"multiple__header\">{{ config.title }}</span>\n <div>\n <span class=\"multiple__caption\">\n {{ separatedCaptionText[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionText[1] }}\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n\n<div class=\"mc-file-upload__info-section\">\n <mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n </mc-hint>\n\n <ng-container *ngIf=\"hasErrors\">\n <mc-hint class=\"mc-file-upload__hint mc-error\"\n *ngFor=\"let error of errors\">\n {{ error }}\n </mc-hint>\n </ng-container>\n</div>\n\n<ng-template #fileOutput>\n <div class=\"file-upload__dropzone\">\n <div class=\"mc-file-upload__grid\">\n <div class=\"mc-file-multiple-uploaded__header\">\n <div class=\"mc-file-multiple-uploaded__header-inner\">\n <div [class]=\"'mc-file-upload__' + column.cssClass\" *ngFor=\"let column of columnDefs\">\n {{ column.header }}\n </div>\n </div>\n </div>\n\n <mc-list-selection [autoSelect]=\"false\" [disabled]=\"disabled\">\n <mc-list-option\n class=\"multiple__uploaded-item\"\n [value]=\"file.file.name\"\n (keydown.delete)=\"deleteFile(index)\"\n (keydown.backspace)=\"deleteFile(index)\"\n *ngFor=\"let file of files; let index = index;\">\n <div class=\"mc-file-upload__row\" [class.error]=\"file.hasError\">\n <div class=\"mc-file-upload__file\">\n <ng-container *ngIf=\"{ loading: file.loading | async, progress: file.progress | async } as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\"\n [ngTemplateOutlet]=\"$any(customFileIcon)\"\n [ngTemplateOutletContext]=\"{ $implicit: file }\"\n >\n </ng-container>\n\n <mc-progress-spinner\n class=\"pt-nat-file-upload-name-cell__icon\"\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <span class=\"file-item__text\" [mcEllipsisCenter]=\"file.file.name\" [minVisibleLength]=\"10\"></span>\n </div>\n <div class=\"mc-file-upload__size\">\n {{ file.file.size | mcDataSize }}\n </div>\n <div class=\"mc-file-upload__action\">\n <i mc-icon=\"mc-close-circle_16\" (click)=\"deleteFile(index, $event)\"></i>\n </div>\n </div>\n </mc-list-option>\n </mc-list-selection>\n </div>\n\n <div class=\"btn-upload\">\n <div class=\"dropzone\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ separatedCaptionTextWhenSelected[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionTextWhenSelected[1] }}\n </span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #compactCaption>\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ separatedCaptionTextForCompactSize[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionTextForCompactSize[1] }}\n </span>\n</ng-template>\n\n<ng-template #inputTemplate>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n multiple\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\">\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative}.mc-file-upload .dropzone,.mc-file-upload .file-item{display:flex;align-items:center}.mc-file-upload .mc-ellipsis-center{position:relative;display:flex}.mc-file-upload .mc-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.mc-file-upload .mc-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{border-radius:var(--mc-file-upload-size-multiple-border-radius, 4px);border-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-style:var(--mc-file-upload-size-multiple-border-style, dashed)}.mc-file-upload .mc-list-option{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);height:36px}.mc-file-upload .mc-list-option .mc-icon{margin-right:0}.mc-file-upload .mc-file-upload__grid{min-height:142px}.mc-file-upload .mc-file-multiple-uploaded__header-inner,.mc-file-upload .mc-file-upload__row{display:flex;align-items:center}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{width:65%;max-width:65%}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__size{width:64px;min-width:64px;text-align:left;flex-grow:1}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__action{padding-left:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px);padding-right:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px)}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{display:flex;align-items:center}.mc-file-upload .mc-file-upload__row .mc-file-upload__file .file-item__text{margin-left:0;width:90%}.mc-file-upload .mc-file-multiple-uploaded__header{border-bottom-width:1px;border-bottom-style:solid}.mc-file-upload .mc-file-multiple-uploaded__header-inner{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);border:2px solid transparent;border-bottom:unset;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px)}.mc-file-upload .btn-upload .dropzone{margin:0;border-top-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-top-style:var(--mc-file-upload-size-multiple-border-style, dashed);padding:3px 12px 4px}.mc-file-upload.compact:not(.selected){height:var(--mc-file-upload-size-single-height, 48px);padding-top:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-left:12px}.mc-file-upload.compact .dropzone .dropzone__text{margin-left:6px}.mc-file-upload.default{min-height:176px;justify-content:center}.mc-file-upload.default .dropzone .dropzone__text{margin-left:16px}.mc-file-upload.default .btn-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .file-upload__dropzone{width:100%;height:100%}.mc-hint{display:block}.mc-file-upload__hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.McProgressSpinner, selector: "mc-progress-spinner", inputs: ["color", "id", "value", "mode", "size"] }, { kind: "component", type: i3.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i3.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i4.McListSelection, selector: "mc-list-selection", inputs: ["disabled", "autoSelect", "noUnselectLast", "horizontal", "tabIndex", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["mcListSelection"] }, { kind: "component", type: i4.McListOption, selector: "mc-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["mcListOption"] }, { kind: "directive", type: i5.McHint, selector: "mc-hint", inputs: ["color", "id"] }, { kind: "directive", type: i6.McEllipsisCenterDirective, selector: "[mcEllipsisCenter]", inputs: ["mcEllipsisCenter", "minVisibleLength"] }, { kind: "directive", type: i7.McLink, selector: "[mc-link]", inputs: ["tabIndex", "disabled", "pseudo", "noUnderline", "caption", "useVisited", "print"], exportAs: ["mcLink"] }, { kind: "directive", type: i8.McFileDropDirective, selector: "[mcFileDrop]", outputs: ["filesDropped"], exportAs: ["mcFileDrop"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.McDataSizePipe, name: "mcDataSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
130
  }
132
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McMultipleFileUploadComponent, decorators: [{
133
132
  type: Component,
134
133
  args: [{ selector: 'mc-multiple-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, host: {
135
134
  class: 'mc-multiple-file-upload'
136
- }, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.selected]=\"files && files.length\"\n [ngClass]=\"size\"\n (filesDropped)=\"onFileDropped($event)\"\n>\n <ng-container *ngIf=\"!files.length; else fileOutput\">\n <div class=\"dropzone\">\n <ng-container *ngIf=\"size === 'default' else compactCaption\">\n <i mc-icon=\"mc-upload-to-cloud_64\"></i>\n <div class=\"dropzone__text\">\n <span class=\"multiple__header\">{{ config.title }}</span>\n <div>\n <span class=\"multiple__caption\">\n {{ config.captionText }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n\n\n </ng-container>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n multiple\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\"\n >\n</div>\n\n<div class=\"mc-file-upload__info-section\">\n <mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n </mc-hint>\n\n <ng-container *ngIf=\"hasErrors\">\n <mc-hint class=\"mc-file-upload__hint mc-error\"\n *ngFor=\"let error of errors\">\n {{ error }}\n </mc-hint>\n </ng-container>\n</div>\n\n<ng-template #fileOutput>\n <div class=\"file-upload__dropzone\">\n <div class=\"mc-file-upload__grid\">\n <div class=\"mc-file-multiple-uploaded__header\">\n <div class=\"mc-file-multiple-uploaded__header-inner\">\n <div [class]=\"'mc-file-upload__' + column.cssClass\" *ngFor=\"let column of columnDefs\">\n {{ column.header }}\n </div>\n </div>\n </div>\n\n <mc-list-selection [autoSelect]=\"false\" [disabled]=\"disabled\">\n <mc-list-option\n class=\"multiple__uploaded-item\"\n [value]=\"file.file.name\"\n (keydown.delete)=\"deleteFile(index)\"\n (keydown.backspace)=\"deleteFile(index)\"\n *ngFor=\"let file of files; let index = index;\">\n <div class=\"mc-file-upload__row\" [class.error]=\"file.hasError\">\n <div class=\"mc-file-upload__file\">\n <ng-container *ngIf=\"{ loading: file.loading | async, progress: file.progress | async } as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\"\n [ngTemplateOutlet]=\"$any(customFileIcon)\"\n [ngTemplateOutletContext]=\"{ $implicit: file }\"\n >\n </ng-container>\n\n <mc-progress-spinner\n class=\"pt-nat-file-upload-name-cell__icon\"\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <span class=\"file-item__text\" [mcEllipsisCenter]=\"file.file.name\" [minVisibleLength]=\"10\"></span>\n </div>\n <div class=\"mc-file-upload__size\">\n {{ file.file.size | mcDataSize }}\n </div>\n <div class=\"mc-file-upload__action\">\n <i mc-icon=\"mc-close-circle_16\" (click)=\"deleteFile(index, $event)\"></i>\n </div>\n </div>\n </mc-list-option>\n </mc-list-selection>\n </div>\n\n <div class=\"btn-upload\">\n <div class=\"dropzone\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ config.captionTextWhenSelected }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #compactCaption>\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ config.captionText }}\n <label class=\"mc-link\"\n [class.mc-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative;cursor:pointer}.mc-file-upload .dropzone,.mc-file-upload .file-item{display:flex;align-items:center}.mc-file-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .mc-ellipsis-center{position:relative;display:flex}.mc-file-upload .mc-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.mc-file-upload .mc-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{border-radius:var(--mc-file-upload-size-multiple-border-radius, 4px);border-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-style:var(--mc-file-upload-size-multiple-border-style, dashed)}.mc-file-upload.default{min-height:176px;justify-content:center}.mc-file-upload.compact:not(.selected){height:var(--mc-file-upload-size-single-height, 48px);padding-top:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-left:12px}.mc-file-upload .mc-list-option{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px)}.mc-file-upload .mc-list-option .mc-icon{margin-right:0}.mc-file-upload .mc-file-upload__grid{min-height:144px}.mc-file-upload .mc-file-multiple-uploaded__header-inner,.mc-file-upload .mc-file-upload__row{display:flex;align-items:center}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{width:65%;max-width:65%}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__size{width:64px;min-width:64px;text-align:left;flex-grow:1}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__action{padding-left:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px);padding-right:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px)}.mc-file-upload .mc-file-upload__row .mc-file-upload__file{display:flex;align-items:center}.mc-file-upload .mc-file-upload__row .mc-file-upload__file .file-item__text{margin-left:0;width:90%}.mc-file-upload .mc-file-multiple-uploaded__header{border-bottom-width:1px;border-bottom-style:solid}.mc-file-upload .mc-file-multiple-uploaded__header-inner{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);border:2px solid transparent;border-bottom:unset;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px)}.mc-file-upload .btn-upload .dropzone{margin:0;border-top-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-top-style:var(--mc-file-upload-size-multiple-border-style, dashed);padding:4px 12px}.mc-file-upload .file-upload__dropzone{width:100%;height:100%}.mc-hint{display:block}.mc-file-upload__hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}\n"] }]
137
- }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
135
+ }, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.selected]=\"files && files.length\"\n [ngClass]=\"size\"\n (filesDropped)=\"onFileDropped($event)\"\n>\n <ng-container *ngIf=\"!files.length; else fileOutput\">\n <div class=\"dropzone\">\n <ng-container *ngIf=\"size === 'default' else compactCaption\">\n <i mc-icon=\"mc-upload-to-cloud_64\"></i>\n <div class=\"dropzone__text\">\n <span class=\"multiple__header\">{{ config.title }}</span>\n <div>\n <span class=\"multiple__caption\">\n {{ separatedCaptionText[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionText[1] }}\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n\n<div class=\"mc-file-upload__info-section\">\n <mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n </mc-hint>\n\n <ng-container *ngIf=\"hasErrors\">\n <mc-hint class=\"mc-file-upload__hint mc-error\"\n *ngFor=\"let error of errors\">\n {{ error }}\n </mc-hint>\n </ng-container>\n</div>\n\n<ng-template #fileOutput>\n <div class=\"file-upload__dropzone\">\n <div class=\"mc-file-upload__grid\">\n <div class=\"mc-file-multiple-uploaded__header\">\n <div class=\"mc-file-multiple-uploaded__header-inner\">\n <div [class]=\"'mc-file-upload__' + column.cssClass\" *ngFor=\"let column of columnDefs\">\n {{ column.header }}\n </div>\n </div>\n </div>\n\n <mc-list-selection [autoSelect]=\"false\" [disabled]=\"disabled\">\n <mc-list-option\n class=\"multiple__uploaded-item\"\n [value]=\"file.file.name\"\n (keydown.delete)=\"deleteFile(index)\"\n (keydown.backspace)=\"deleteFile(index)\"\n *ngFor=\"let file of files; let index = index;\">\n <div class=\"mc-file-upload__row\" [class.error]=\"file.hasError\">\n <div class=\"mc-file-upload__file\">\n <ng-container *ngIf=\"{ loading: file.loading | async, progress: file.progress | async } as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\"\n [ngTemplateOutlet]=\"$any(customFileIcon)\"\n [ngTemplateOutletContext]=\"{ $implicit: file }\"\n >\n </ng-container>\n\n <mc-progress-spinner\n class=\"pt-nat-file-upload-name-cell__icon\"\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <span class=\"file-item__text\" [mcEllipsisCenter]=\"file.file.name\" [minVisibleLength]=\"10\"></span>\n </div>\n <div class=\"mc-file-upload__size\">\n {{ file.file.size | mcDataSize }}\n </div>\n <div class=\"mc-file-upload__action\">\n <i mc-icon=\"mc-close-circle_16\" (click)=\"deleteFile(index, $event)\"></i>\n </div>\n </div>\n </mc-list-option>\n </mc-list-selection>\n </div>\n\n <div class=\"btn-upload\">\n <div class=\"dropzone\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ separatedCaptionTextWhenSelected[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionTextWhenSelected[1] }}\n </span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #compactCaption>\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text multiple__caption\">\n {{ separatedCaptionTextForCompactSize[0] }}<label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">{{ config.browseLink }}<ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container></label>{{ separatedCaptionTextForCompactSize[1] }}\n </span>\n</ng-template>\n\n<ng-template #inputTemplate>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n multiple\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\">\n</ng-template>\n", styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative}.mc-file-upload .dropzone,.mc-file-upload .file-item{display:flex;align-items:center}.mc-file-upload .mc-ellipsis-center{position:relative;display:flex}.mc-file-upload .mc-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.mc-file-upload .mc-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-file-upload{border-radius:var(--mc-file-upload-size-multiple-border-radius, 4px);border-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-style:var(--mc-file-upload-size-multiple-border-style, dashed)}.mc-file-upload .mc-list-option{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);height:36px}.mc-file-upload .mc-list-option .mc-icon{margin-right:0}.mc-file-upload .mc-file-upload__grid{min-height:142px}.mc-file-upload .mc-file-multiple-uploaded__header-inner,.mc-file-upload .mc-file-upload__row{display:flex;align-items:center}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{width:65%;max-width:65%}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__size{width:64px;min-width:64px;text-align:left;flex-grow:1}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__file,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__size,.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file,.mc-file-upload .mc-file-upload__row .mc-file-upload__size,.mc-file-upload .mc-file-upload__row .mc-file-upload__action{padding-left:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px);padding-right:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px)}.mc-file-upload .mc-file-multiple-uploaded__header-inner .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__action,.mc-file-upload .mc-file-upload__row .mc-file-upload__file{display:flex;align-items:center}.mc-file-upload .mc-file-upload__row .mc-file-upload__file .file-item__text{margin-left:0;width:90%}.mc-file-upload .mc-file-multiple-uploaded__header{border-bottom-width:1px;border-bottom-style:solid}.mc-file-upload .mc-file-multiple-uploaded__header-inner{padding:var(--mc-file-upload-size-multiple-uploaded-item-horizontal-padding, 8px) var(--mc-file-upload-size-multiple-uploaded-item-vertical-padding, 8px);border:2px solid transparent;border-bottom:unset;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px)}.mc-file-upload .btn-upload .dropzone{margin:0;border-top-width:var(--mc-file-upload-size-multiple-border-width, 1px);border-top-style:var(--mc-file-upload-size-multiple-border-style, dashed);padding:3px 12px 4px}.mc-file-upload.compact:not(.selected){height:var(--mc-file-upload-size-single-height, 48px);padding-top:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--mc-file-upload-size-single-vertical-padding, 12px);padding-left:12px}.mc-file-upload.compact .dropzone .dropzone__text{margin-left:6px}.mc-file-upload.default{min-height:176px;justify-content:center}.mc-file-upload.default .dropzone .dropzone__text{margin-left:16px}.mc-file-upload.default .btn-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .file-upload__dropzone{width:100%;height:100%}.mc-hint{display:block}.mc-file-upload__hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}\n"] }]
136
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
138
137
  type: Optional
139
138
  }, {
140
139
  type: Inject,
141
140
  args: [MC_FILE_UPLOAD_CONFIGURATION]
141
+ }] }, { type: i9.McLocaleService, decorators: [{
142
+ type: Optional
143
+ }, {
144
+ type: Inject,
145
+ args: [MC_LOCALE_SERVICE]
142
146
  }] }]; }, propDecorators: { accept: [{
143
147
  type: Input
144
148
  }], disabled: [{
@@ -162,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
162
166
  type: ViewChild,
163
167
  args: ['input']
164
168
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBQWEsUUFBUSxFQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFDSCw0QkFBNEIsRUFNL0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBR3ZCLElBQUksOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBWXZDLE1BQU0sQ0FBQyxNQUFNLDZDQUE2QyxHQUE2QjtJQUNuRixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLHVCQUF1QixFQUFFLG9CQUFvQjtJQUM3Qyx5QkFBeUIsRUFBRSxzQkFBc0I7SUFDakQsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxRQUFRO0tBQ2pCO0NBQ0osQ0FBQztBQVlGLE1BQU0sT0FBTyw2QkFBNkI7SUFtQnRDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFB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LFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCOzRDQTlCM0MsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRTJELGNBQWM7c0JBQS9FLFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUU1QyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgICBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCxcbiAgICBPdXRwdXQsIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EaXNhYmxlIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OLFxuICAgIE1jRmlsZSxcbiAgICBNY0ZpbGVJdGVtLFxuICAgIE1jRmlsZVZhbGlkYXRvckZuLFxuICAgIE1jSW5wdXRGaWxlLFxuICAgIE1jSW5wdXRGaWxlTGFiZWxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cblxubGV0IG5leHRNdWx0aXBsZUZpbGVVcGxvYWRVbmlxdWVJZCA9IDA7XG5leHBvcnQgaW50ZXJmYWNlIE1jSW5wdXRGaWxlTXVsdGlwbGVMYWJlbCBleHRlbmRzIE1jSW5wdXRGaWxlTGFiZWwge1xuICAgIGNhcHRpb25UZXh0V2hlblNlbGVjdGVkOiBzdHJpbmc7XG4gICAgY2FwdGlvblRleHRGb3JDb21wYWN0U2l6ZTogc3RyaW5nO1xuICAgIGdyaWRIZWFkZXJzOiB7XG4gICAgICAgIGZpbGU6IHN0cmluZztcbiAgICAgICAgc2l6ZTogc3RyaW5nO1xuICAgIH07XG4gICAgW2s6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbF06IHVua25vd247XG59XG5cblxuZXhwb3J0IGNvbnN0IE1DX01VTFRJUExFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjogTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsID0ge1xuICAgIGNhcHRpb25UZXh0OiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YHRjtC00LAg0LjQu9C4JyxcbiAgICBjYXB0aW9uVGV4dFdoZW5TZWxlY3RlZDogJ9Cf0LXRgNC10YLQsNGJ0LjRgtC1INC10YnQtSDQuNC70LgnLFxuICAgIGNhcHRpb25UZXh0Rm9yQ29tcGFjdFNpemU6ICfQn9C10YDQtdGC0LDRidC40YLQtSDRhNCw0LnQu9GLINC40LvQuCcsXG4gICAgYnJvd3NlTGluazogJ9Cy0YvQsdC10YDQuNGC0LUnLFxuICAgIHRpdGxlOiAn0JfQsNCz0YDRg9C30LjRgtC1INGE0LDQudC70YsnLFxuICAgIGdyaWRIZWFkZXJzOiB7XG4gICAgICAgIGZpbGU6ICfQpNCw0LnQuycsXG4gICAgICAgIHNpemU6ICfQoNCw0LfQvNC10YAnXG4gICAgfVxufTtcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLW11bHRpcGxlLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLnNjc3MnLCAnLi9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdtYy1tdWx0aXBsZS1maWxlLXVwbG9hZCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jTXVsdGlwbGVGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBNY0lucHV0RmlsZSwgQ2FuRGlzYWJsZSB7XG4gICAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nW107XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBNY0ZpbGVJdGVtW10gPSBbXTtcbiAgICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gYG1jLW11bHRpcGxlLWZpbGUtdXBsb2FkLSR7bmV4dE11bHRpcGxlRmlsZVVwbG9hZFVuaXF1ZUlkKyt9YDtcbiAgICBASW5wdXQoKSBjdXN0b21WYWxpZGF0aW9uPzogTWNGaWxlVmFsaWRhdG9yRm5bXTtcbiAgICBAT3V0cHV0KCkgZmlsZVF1ZXVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPE1jRmlsZUl0ZW1bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPE1jRmlsZUl0ZW1bXT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21jRmlsZUljb24nLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGN1c3RvbUZpbGVJY29uOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgaGFzRm9jdXMgPSBmYWxzZTtcbiAgICBjb2x1bW5EZWZzOiB7IGhlYWRlcjogc3RyaW5nOyBjc3NDbGFzczogc3RyaW5nIH1bXTtcblxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gICAgZ2V0IGFjY2VwdGVkRmlsZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ICYmIHRoaXMuYWNjZXB0Lmxlbmd0aCA+IDAgPyB0aGlzLmFjY2VwdC5tYXAoKGV4dDogc3RyaW5nKSA9PiBgLiR7ZXh0fWApLmpvaW4oJywnKSA6ICcqLyonO1xuICAgIH1cblxuICAgIGdldCBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycyAmJiAhIXRoaXMuZXJyb3JzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUNfRklMRV9VUExPQURfQ09ORklHVVJBVElPTikgcHVibGljIGNvbmZpZzogTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IE1DX01VTFRJUExFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjtcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzID0gW1xuICAgICAgICAgICAgeyBoZWFkZXI6IHRoaXMuY29uZmlnLmdyaWRIZWFkZXJzLmZpbGUsIGNzc0NsYXNzOiAnZmlsZScgfSxcbiAgICAgICAgICAgIHsgaGVhZGVyOiB0aGlzLmNvbmZpZy5ncmlkSGVhZGVycy5zaXplLCBjc3NDbGFzczogJ3NpemUnIH0sXG4gICAgICAgICAgICB7IGhlYWRlcjogJycsIGNzc0NsYXNzOiAnYWN0aW9uJyB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiA9IHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5pbnB1dClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbikgPT4gdGhpcy5vbkZvY3VzKG9yaWdpbiA9PT0gJ2tleWJvYXJkJykpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG9uRmlsZVNlbGVjdGVkVmlhQ2xpY2soeyB0YXJnZXQgfTogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmZpbGVzLFxuICAgICAgICAgICAgLi4udGhpcy5tYXBUb0ZpbGVJdGVtKCh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMpXG4gICAgICAgIF07XG4gICAgICAgIC8qIGV2ZW4gaWYgdGhlIHVzZXIgc2VsZWN0cyB0aGUgc2FtZSBmaWxlLFxuICAgICAgICAgdGhlIG9uY2hhbmdlIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkIGV2ZXJ5IHRpbWUgdXNlciBjbGlja3Mgb24gdGhlIGNvbnRyb2wuKi9cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG51bGwpO1xuICAgICAgICB0aGlzLm9uRmlsZUxpc3RDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBGaWxlTGlzdCB8IE1jRmlsZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIC4uLnRoaXMubWFwVG9GaWxlSXRlbShmaWxlcyldO1xuXG4gICAgICAgIHRoaXMub25GaWxlTGlzdENoYW5nZSgpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzXTtcblxuICAgICAgICB0aGlzLm9uRmlsZUxpc3RDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVMaXN0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKGZvY3VzU3RhdGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmb2N1c1N0YXRlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcFRvRmlsZUl0ZW0oZmlsZXM6IEZpbGVMaXN0IHwgTWNGaWxlW10gfCBudWxsKTogTWNGaWxlSXRlbVtdIHtcbiAgICAgICAgaWYgKCFmaWxlcykgeyByZXR1cm4gW107IH1cblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpbGUpID0+IHRoaXMuaXNDb3JyZWN0RXh0ZW5zaW9uKGZpbGUpKVxuICAgICAgICAgICAgLm1hcCgoZmlsZTogRmlsZSkgPT4gKHtcbiAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgIGhhc0Vycm9yOiB0aGlzLnZhbGlkYXRlRmlsZShmaWxlKSxcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKSxcbiAgICAgICAgICAgICAgICBwcm9ncmVzczogbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5jdXN0b21WYWxpZGF0aW9uICYmIHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yc1BlckZpbGUgPSB0aGlzLmN1c3RvbVZhbGlkYXRpb24ucmVkdWNlKFxuICAgICAgICAgICAgICAgIChlcnJvcnM6IChzdHJpbmcgfCBudWxsKVtdLCB2YWxpZGF0b3JGbjogTWNGaWxlVmFsaWRhdG9yRm4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1c2godmFsaWRhdG9yRm4oZmlsZSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbXSkuZmlsdGVyKEJvb2xlYW4pIGFzIHN0cmluZ1tdO1xuXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmVycm9ycyxcbiAgICAgICAgICAgICAgICAuLi5lcnJvcnNQZXJGaWxlXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICByZXR1cm4gISFlcnJvcnNQZXJGaWxlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNDb3JyZWN0RXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsZUV4dDogc3RyaW5nID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ZWRGaWxlcyAhPT0gJyovKicgJiYgdGhpcy5hY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY2VwdGVkRmlsZXMuaW5jbHVkZXMoZmlsZUV4dCkgOiB0cnVlO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZFwiXG4gICAgIG1jRmlsZURyb3BcbiAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZpbGVzICYmIGZpbGVzLmxlbmd0aFwiXG4gICAgIFtuZ0NsYXNzXT1cInNpemVcIlxuICAgICAoZmlsZXNEcm9wcGVkKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmaWxlcy5sZW5ndGg7IGVsc2UgZmlsZU91dHB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgICpuZ0lmPVwic2l6ZSA9PT0gJ2RlZmF1bHQnIGVsc2UgY29tcGFjdENhcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtdXBsb2FkLXRvLWNsb3VkXzY0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZV9fdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm11bHRpcGxlX19oZWFkZXJcIj57eyBjb25maWcudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm11bHRpcGxlX19jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLmNhcHRpb25UZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWMtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYy1mb2N1c2VkXT1cImhhc0ZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJpbnB1dElkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLmJyb3dzZUxpbmsgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRmlsZXNcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkVmlhQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9faW5mby1zZWN0aW9uXCI+XG4gICAgPG1jLWhpbnQgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9faGludFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGludF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9tYy1oaW50PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Vycm9yc1wiPlxuICAgICAgICA8bWMtaGludCBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19oaW50IG1jLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPlxuICAgICAgICAgICAgICAgIHt7IGVycm9yIH19XG4gICAgICAgIDwvbWMtaGludD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2ZpbGVPdXRwdXQ+XG4gICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkX19kcm9wem9uZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2dyaWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLW11bHRpcGxlLXVwbG9hZGVkX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS1tdWx0aXBsZS11cGxvYWRlZF9faGVhZGVyLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidtYy1maWxlLXVwbG9hZF9fJyArIGNvbHVtbi5jc3NDbGFzc1wiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uRGVmc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uLmhlYWRlciB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bWMtbGlzdC1zZWxlY3Rpb24gW2F1dG9TZWxlY3RdPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8bWMtbGlzdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdWx0aXBsZV9fdXBsb2FkZWQtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmaWxlLmZpbGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCJkZWxldGVGaWxlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJkZWxldGVGaWxlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaW5kZXggPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19yb3dcIiBbY2xhc3MuZXJyb3JdPVwiZmlsZS5oYXNFcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19maWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInsgbG9hZGluZzogZmlsZS5sb2FkaW5nIHwgYXN5bmMsIHByb2dyZXNzOiBmaWxlLnByb2dyZXNzIHwgYXN5bmMgfSBhcyBhc3luY0RhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhc3luY0RhdGEubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShjdXN0b21GaWxlSWNvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZmlsZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWMtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwdC1uYXQtZmlsZS11cGxvYWQtbmFtZS1jZWxsX19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJhc3luY0RhdGEucHJvZ3Jlc3MgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFzeW5jRGF0YS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbWMtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1pdGVtX190ZXh0XCIgW21jRWxsaXBzaXNDZW50ZXJdPVwiZmlsZS5maWxlLm5hbWVcIiBbbWluVmlzaWJsZUxlbmd0aF09XCIxMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19zaXplXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5maWxlLnNpemUgfCBtY0RhdGFTaXplIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9fYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWNsb3NlLWNpcmNsZV8xNlwiIChjbGljayk9XCJkZWxldGVGaWxlKGluZGV4LCAkZXZlbnQpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWMtbGlzdC1vcHRpb24+XG4gICAgICAgICAgICA8L21jLWxpc3Qtc2VsZWN0aW9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXVwbG9hZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3B6b25lXCI+XG4gICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLXVwbG9hZC10by1jbG91ZF8yNFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX190ZXh0IG11bHRpcGxlX19jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbmZpZy5jYXB0aW9uVGV4dFdoZW5TZWxlY3RlZCB9fVxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYy1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYy1mb2N1c2VkXT1cImhhc0ZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiaW5wdXRJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLmJyb3dzZUxpbmsgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbXBhY3RDYXB0aW9uPlxuICAgIDxpIG1jLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfMjRcIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJkcm9wem9uZV9fdGV4dCBtdWx0aXBsZV9fY2FwdGlvblwiPlxuICAgICAgICB7eyBjb25maWcuY2FwdGlvblRleHQgfX1cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWMtbGlua1wiXG4gICAgICAgICAgICAgICBbY2xhc3MubWMtZm9jdXNlZF09XCJoYXNGb2N1c1wiXG4gICAgICAgICAgICAgICBbZm9yXT1cImlucHV0SWRcIj5cbiAgICAgICAge3sgY29uZmlnLmJyb3dzZUxpbmsgfX1cbiAgICA8L2xhYmVsPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFBYSxRQUFRLEVBQzFCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQ0gsNEJBQTRCLEVBTS9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQUd2QixJQUFJLDhCQUE4QixHQUFHLENBQUMsQ0FBQztBQVl2QyxNQUFNLENBQUMsTUFBTSw2Q0FBNkMsR0FDdEQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFXaEQsTUFBTSxPQUFPLDZCQUE2QjtJQXNCdEMsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFF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ZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gICAgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuRGlzYWJsZSwgTUNfTE9DQUxFX1NFUlZJQ0UsIE1jTG9jYWxlU2VydmljZSwgcnVSVUxvY2FsZURhdGEgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIE1DX0ZJTEVfVVBMT0FEX0NPTkZJR1VSQVRJT04sXG4gICAgTWNGaWxlLFxuICAgIE1jRmlsZUl0ZW0sXG4gICAgTWNGaWxlVmFsaWRhdG9yRm4sXG4gICAgTWNJbnB1dEZpbGUsXG4gICAgTWNJbnB1dEZpbGVMYWJlbFxufSBmcm9tICcuL2ZpbGUtdXBsb2FkJztcblxuXG5sZXQgbmV4dE11bHRpcGxlRmlsZVVwbG9hZFVuaXF1ZUlkID0gMDtcbmV4cG9ydCBpbnRlcmZhY2UgTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsIGV4dGVuZHMgTWNJbnB1dEZpbGVMYWJlbCB7XG4gICAgY2FwdGlvblRleHRXaGVuU2VsZWN0ZWQ6IHN0cmluZztcbiAgICBjYXB0aW9uVGV4dEZvckNvbXBhY3RTaXplOiBzdHJpbmc7XG4gICAgZ3JpZEhlYWRlcnM6IHtcbiAgICAgICAgZmlsZTogc3RyaW5nO1xuICAgICAgICBzaXplOiBzdHJpbmc7XG4gICAgfTtcbiAgICBbazogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogdW5rbm93bjtcbn1cblxuXG5leHBvcnQgY29uc3QgTUNfTVVMVElQTEVfRklMRV9VUExPQURfREVGQVVMVF9DT05GSUdVUkFUSU9OOiBNY0lucHV0RmlsZU11bHRpcGxlTGFiZWwgPVxuICAgIHJ1UlVMb2NhbGVEYXRhWydydS1SVSddLmZpbGVVcGxvYWQubXVsdGlwbGU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtbXVsdGlwbGUtZmlsZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuc2NzcycsICcuL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLW11bHRpcGxlLWZpbGUtdXBsb2FkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWNNdWx0aXBsZUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBNY0lucHV0RmlsZSwgQ2FuRGlzYWJsZSwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBhY2NlcHQ/OiBzdHJpbmdbXTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgZmlsZXM6IE1jRmlsZUl0ZW1bXSA9IFtdO1xuICAgIEBJbnB1dCgpIHNpemU6ICdjb21wYWN0JyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSBpbnB1dElkOiBzdHJpbmcgPSBgbWMtbXVsdGlwbGUtZmlsZS11cGxvYWQtJHtuZXh0TXVsdGlwbGVGaWxlVXBsb2FkVW5pcXVlSWQrK31gO1xuICAgIEBJbnB1dCgpIGN1c3RvbVZhbGlkYXRpb24/OiBNY0ZpbGVWYWxpZGF0b3JGbltdO1xuICAgIEBPdXRwdXQoKSBmaWxlUXVldWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TWNGaWxlSXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWNGaWxlSXRlbVtdPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWNGaWxlSWNvbicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgY3VzdG9tRmlsZUljb246IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBjb2x1bW5EZWZzOiB7IGhlYWRlcjogc3RyaW5nOyBjc3NDbGFzczogc3RyaW5nIH1bXTtcblxuICAgIGNvbmZpZzogTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsO1xuXG4gICAgc2VwYXJhdGVkQ2FwdGlvblRleHQ6IHN0cmluZ1tdO1xuICAgIHNlcGFyYXRlZENhcHRpb25UZXh0V2hlblNlbGVjdGVkOiBzdHJpbmdbXTtcbiAgICBzZXBhcmF0ZWRDYXB0aW9uVGV4dEZvckNvbXBhY3RTaXplOiBzdHJpbmdbXTtcblxuICAgIGdldCBhY2NlcHRlZEZpbGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2VwdCAmJiB0aGlzLmFjY2VwdC5sZW5ndGggPiAwID8gdGhpcy5hY2NlcHQubWFwKChleHQ6IHN0cmluZykgPT4gYC4ke2V4dH1gKS5qb2luKCcsJykgOiAnKi8qJztcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMgJiYgISF0aGlzLmVycm9ycy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NhbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OKSByZWFkb25seSBjb25maWd1cmF0aW9uOiBNY0lucHV0RmlsZU11bHRpcGxlTGFiZWwsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUNfTE9DQUxFX1NFUlZJQ0UpIHByaXZhdGUgbG9jYWxlU2VydmljZT86IE1jTG9jYWxlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmxvY2FsZVN1YnNjcmlwdGlvbiA9IHRoaXMubG9jYWxlU2VydmljZT8uY2hhbmdlcy5zdWJzY3JpYmUodGhpcy51cGRhdGVMb2NhbGVQYXJhbXMpIHx8IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgICAgICBpZiAoIWxvY2FsZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdERlZmF1bHRQYXJhbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmxvY2FsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG9uRmlsZVNlbGVjdGVkVmlhQ2xpY2soeyB0YXJnZXQgfTogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLmZpbGVzLFxuICAgICAgICAgICAgLi4udGhpcy5tYXBUb0ZpbGVJdGVtKCh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMpXG4gICAgICAgIF07XG4gICAgICAgIC8qIGV2ZW4gaWYgdGhlIHVzZXIgc2VsZWN0cyB0aGUgc2FtZSBmaWxlLFxuICAgICAgICAgdGhlIG9uY2hhbmdlIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkIGV2ZXJ5IHRpbWUgdXNlciBjbGlja3Mgb24gdGhlIGNvbnRyb2wuKi9cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG51bGwpO1xuICAgICAgICB0aGlzLm9uRmlsZUxpc3RDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBGaWxlTGlzdCB8IE1jRmlsZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIC4uLnRoaXMubWFwVG9GaWxlSXRlbShmaWxlcyldO1xuXG4gICAgICAgIHRoaXMub25GaWxlTGlzdENoYW5nZSgpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlciwgZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5maWxlcyA9IFsuLi50aGlzLmZpbGVzXTtcblxuICAgICAgICB0aGlzLm9uRmlsZUxpc3RDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVMaXN0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsZVBhcmFtcyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24gfHwgdGhpcy5sb2NhbGVTZXJ2aWNlPy5nZXRQYXJhbXMoJ2ZpbGVVcGxvYWQnKS5tdWx0aXBsZTtcblxuICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSBbXG4gICAgICAgICAgICB7IGhlYWRlcjogdGhpcy5jb25maWcuZ3JpZEhlYWRlcnMuZmlsZSwgY3NzQ2xhc3M6ICdmaWxlJyB9LFxuICAgICAgICAgICAgeyBoZWFkZXI6IHRoaXMuY29uZmlnLmdyaWRIZWFkZXJzLnNpemUsIGNzc0NsYXNzOiAnc2l6ZScgfSxcbiAgICAgICAgICAgIHsgaGVhZGVyOiAnJywgY3NzQ2xhc3M6ICdhY3Rpb24nIH1cbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLm1ha2VDYXB0aW9uVGV4dCgpO1xuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwVG9GaWxlSXRlbShmaWxlczogRmlsZUxpc3QgfCBNY0ZpbGVbXSB8IG51bGwpOiBNY0ZpbGVJdGVtW10ge1xuICAgICAgICBpZiAoIWZpbGVzKSB7IHJldHVybiBbXTsgfVxuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGZpbGVzKVxuICAgICAgICAgICAgLmZpbHRlcigoZmlsZSkgPT4gdGhpcy5pc0NvcnJlY3RFeHRlbnNpb24oZmlsZSkpXG4gICAgICAgICAgICAubWFwKChmaWxlOiBGaWxlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgaGFzRXJyb3I6IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpLFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpLFxuICAgICAgICAgICAgICAgIHByb2dyZXNzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMClcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbGlkYXRpb24gJiYgdGhpcy5jdXN0b21WYWxpZGF0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzUGVyRmlsZSA9IHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGVycm9yczogKHN0cmluZyB8IG51bGwpW10sIHZhbGlkYXRvckZuOiBNY0ZpbGVWYWxpZGF0b3JGbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh2YWxpZGF0b3JGbihmaWxlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtdKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG5cbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZXJyb3JzLFxuICAgICAgICAgICAgICAgIC4uLmVycm9yc1BlckZpbGVcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHJldHVybiAhIWVycm9yc1BlckZpbGUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NvcnJlY3RFeHRlbnNpb24oZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmaWxlRXh0OiBzdHJpbmcgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcblxuICAgICAgICByZXR1cm4gdGhpcy5hY2NlcHRlZEZpbGVzICE9PSAnKi8qJyAmJiB0aGlzLmFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMCA/IHRoaXMuYWNjZXB0ZWRGaWxlcy5pbmNsdWRlcyhmaWxlRXh0KSA6IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGVmYXVsdFBhcmFtcygpIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBNQ19NVUxUSVBMRV9GSUxFX1VQTE9BRF9ERUZBVUxUX0NPTkZJR1VSQVRJT047XG5cbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzID0gW1xuICAgICAgICAgICAgeyBoZWFkZXI6IHRoaXMuY29uZmlnLmdyaWRIZWFkZXJzLmZpbGUsIGNzc0NsYXNzOiAnZmlsZScgfSxcbiAgICAgICAgICAgIHsgaGVhZGVyOiB0aGlzLmNvbmZpZy5ncmlkSGVhZGVycy5zaXplLCBjc3NDbGFzczogJ3NpemUnIH0sXG4gICAgICAgICAgICB7IGhlYWRlcjogJycsIGNzc0NsYXNzOiAnYWN0aW9uJyB9XG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5tYWtlQ2FwdGlvblRleHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VDYXB0aW9uVGV4dCgpIHtcbiAgICAgICAgdGhpcy5zZXBhcmF0ZWRDYXB0aW9uVGV4dCA9IHRoaXMuY29uZmlnLmNhcHRpb25UZXh0LnNwbGl0KCd7eyBicm93c2VMaW5rIH19Jyk7XG4gICAgICAgIHRoaXMuc2VwYXJhdGVkQ2FwdGlvblRleHRXaGVuU2VsZWN0ZWQgPSB0aGlzLmNvbmZpZy5jYXB0aW9uVGV4dFdoZW5TZWxlY3RlZC5zcGxpdCgne3sgYnJvd3NlTGluayB9fScpO1xuICAgICAgICB0aGlzLnNlcGFyYXRlZENhcHRpb25UZXh0Rm9yQ29tcGFjdFNpemUgPSB0aGlzLmNvbmZpZy5jYXB0aW9uVGV4dEZvckNvbXBhY3RTaXplLnNwbGl0KCd7eyBicm93c2VMaW5rIH19Jyk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkXCJcbiAgICAgbWNGaWxlRHJvcFxuICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmlsZXMgJiYgZmlsZXMubGVuZ3RoXCJcbiAgICAgW25nQ2xhc3NdPVwic2l6ZVwiXG4gICAgIChmaWxlc0Ryb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbGVzLmxlbmd0aDsgZWxzZSBmaWxlT3V0cHV0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAgKm5nSWY9XCJzaXplID09PSAnZGVmYXVsdCcgZWxzZSBjb21wYWN0Q2FwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfNjRcIj48L2k+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3B6b25lX190ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXVsdGlwbGVfX2hlYWRlclwiPnt7IGNvbmZpZy50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXVsdGlwbGVfX2NhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzZXBhcmF0ZWRDYXB0aW9uVGV4dFswXSB9fTxsYWJlbCBtYy1saW5rIHBzZXVkbyBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIiBbZm9yXT1cImlucHV0SWRcIj57eyBjb25maWcuYnJvd3NlTGluayB9fTxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9sYWJlbD57eyBzZXBhcmF0ZWRDYXB0aW9uVGV4dFsxXSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2luZm8tc2VjdGlvblwiPlxuICAgIDxtYy1oaW50IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2hpbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hpbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbWMtaGludD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNFcnJvcnNcIj5cbiAgICAgICAgPG1jLWhpbnQgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9faGludCBtYy1lcnJvclwiXG4gICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnNcIj5cbiAgICAgICAgICAgICAgICB7eyBlcnJvciB9fVxuICAgICAgICA8L21jLWhpbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmaWxlT3V0cHV0PlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLXVwbG9hZF9fZHJvcHpvbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19ncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS1tdWx0aXBsZS11cGxvYWRlZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtbXVsdGlwbGUtdXBsb2FkZWRfX2hlYWRlci1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInbWMtZmlsZS11cGxvYWRfXycgKyBjb2x1bW4uY3NzQ2xhc3NcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbkRlZnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbHVtbi5oZWFkZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG1jLWxpc3Qtc2VsZWN0aW9uIFthdXRvU2VsZWN0XT1cImZhbHNlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgPG1jLWxpc3Qtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXVsdGlwbGVfX3VwbG9hZGVkLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsZS5maWxlLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5kZWxldGUpPVwiZGVsZXRlRmlsZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwiZGVsZXRlRmlsZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZGV4ID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9fcm93XCIgW2NsYXNzLmVycm9yXT1cImZpbGUuaGFzRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9fZmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ7IGxvYWRpbmc6IGZpbGUubG9hZGluZyB8IGFzeW5jLCBwcm9ncmVzczogZmlsZS5wcm9ncmVzcyB8IGFzeW5jIH0gYXMgYXN5bmNEYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYXN5bmNEYXRhLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoY3VzdG9tRmlsZUljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGZpbGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1jLXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHQtbmF0LWZpbGUtdXBsb2FkLW5hbWUtY2VsbF9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYXN5bmNEYXRhLnByb2dyZXNzIHx8IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3luY0RhdGEubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L21jLXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dFwiIFttY0VsbGlwc2lzQ2VudGVyXT1cImZpbGUuZmlsZS5uYW1lXCIgW21pblZpc2libGVMZW5ndGhdPVwiMTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9fc2l6ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZpbGUuZmlsZS5zaXplIHwgbWNEYXRhU2l6ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1jbG9zZS1jaXJjbGVfMTZcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShpbmRleCwgJGV2ZW50KVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21jLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYy1saXN0LXNlbGVjdGlvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi11cGxvYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZVwiPlxuICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfMjRcIj48L2k+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wem9uZV9fdGV4dCBtdWx0aXBsZV9fY2FwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBzZXBhcmF0ZWRDYXB0aW9uVGV4dFdoZW5TZWxlY3RlZFswXSB9fTxsYWJlbCBtYy1saW5rIHBzZXVkbyBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIiBbZm9yXT1cImlucHV0SWRcIj57eyBjb25maWcuYnJvd3NlTGluayB9fTxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9sYWJlbD57eyBzZXBhcmF0ZWRDYXB0aW9uVGV4dFdoZW5TZWxlY3RlZFsxXSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29tcGFjdENhcHRpb24+XG4gICAgPGkgbWMtaWNvbj1cIm1jLXVwbG9hZC10by1jbG91ZF8yNFwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX190ZXh0IG11bHRpcGxlX19jYXB0aW9uXCI+XG4gICAgICAgIHt7IHNlcGFyYXRlZENhcHRpb25UZXh0Rm9yQ29tcGFjdFNpemVbMF0gfX08bGFiZWwgbWMtbGluayBwc2V1ZG8gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgW2Zvcl09XCJpbnB1dElkXCI+e3sgY29uZmlnLmJyb3dzZUxpbmsgfX08bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPjwvbGFiZWw+e3sgc2VwYXJhdGVkQ2FwdGlvblRleHRGb3JDb21wYWN0U2l6ZVsxXSB9fVxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZT5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRmlsZXNcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkVmlhQ2xpY2soJGV2ZW50KVwiPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==