@ptsecurity/mosaic 17.0.0 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_theming.scss +121 -25
- package/_visual.scss +82 -19
- package/autocomplete/autocomplete-trigger.directive.d.ts +7 -1
- package/core/styles/theming/_components-theming.scss +4 -2
- package/core/styles/theming/_scrollbars.scss +17 -2
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +14 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/file-upload/file-upload.module.mjs +8 -4
- package/esm2022/file-upload/multiple-file-upload.component.mjs +15 -34
- package/esm2022/file-upload/single-file-upload.component.mjs +15 -34
- package/esm2022/form-field/form-field.mjs +2 -2
- package/esm2022/select/select.component.mjs +14 -7
- package/esm2022/tabs/tab-header.component.mjs +2 -2
- package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
- package/esm2022/tags/tag-input.mjs +28 -8
- package/esm2022/tree-select/tree-select.component.mjs +21 -8
- package/fesm2022/ptsecurity-mosaic-autocomplete.mjs +13 -1
- package/fesm2022/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-core.mjs +1 -1
- package/fesm2022/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-file-upload.mjs +26 -58
- package/fesm2022/ptsecurity-mosaic-file-upload.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-form-field.mjs +2 -2
- package/fesm2022/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-select.mjs +13 -6
- package/fesm2022/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-tabs.mjs +4 -4
- package/fesm2022/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-tags.mjs +26 -7
- package/fesm2022/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2022/ptsecurity-mosaic-tree-select.mjs +20 -7
- package/fesm2022/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +1 -1
- package/file-upload/file-upload.module.d.ts +2 -1
- package/file-upload/file-upload.scss +0 -8
- package/file-upload/multiple-file-upload.component.d.ts +4 -12
- package/file-upload/multiple-file-upload.component.scss +56 -24
- package/file-upload/single-file-upload.component.d.ts +4 -12
- package/file-upload/single-file-upload.component.scss +6 -0
- package/form-field/form-field.scss +2 -0
- package/link/_link-theme.scss +2 -1
- package/package.json +25 -25
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/select/select.component.d.ts +1 -0
- package/tabs/_tabs-theme.scss +5 -0
- package/tabs/tab-header.scss +12 -0
- package/tabs/tab-nav-bar/tab-nav-bar.scss +12 -0
- package/tags/tag-input.d.ts +9 -4
- package/tree-select/tree-select.component.d.ts +1 -0
@@ -1,15 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import { BehaviorSubject, Subscription } from 'rxjs';
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Inject, Input, Optional, Output, Renderer2, TemplateRef, ViewChild } from '@angular/core';
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
4
3
|
import { MC_FILE_UPLOAD_CONFIGURATION } from './file-upload';
|
5
4
|
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/
|
7
|
-
import * as i2 from "@
|
8
|
-
import * as i3 from "@ptsecurity/mosaic/
|
9
|
-
import * as i4 from "@ptsecurity/mosaic/
|
10
|
-
import * as i5 from "@ptsecurity/mosaic/
|
11
|
-
import * as i6 from "@ptsecurity/mosaic/
|
12
|
-
import * as i7 from "@ptsecurity/mosaic/
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@ptsecurity/mosaic/progress-spinner";
|
7
|
+
import * as i3 from "@ptsecurity/mosaic/icon";
|
8
|
+
import * as i4 from "@ptsecurity/mosaic/list";
|
9
|
+
import * as i5 from "@ptsecurity/mosaic/form-field";
|
10
|
+
import * as i6 from "@ptsecurity/mosaic/ellipsis-center";
|
11
|
+
import * as i7 from "@ptsecurity/mosaic/link";
|
13
12
|
import * as i8 from "./file-drop";
|
14
13
|
import * as i9 from "@ptsecurity/mosaic/core";
|
15
14
|
let nextMultipleFileUploadUniqueId = 0;
|
@@ -31,9 +30,7 @@ export class McMultipleFileUploadComponent {
|
|
31
30
|
get hasErrors() {
|
32
31
|
return this.errors && !!this.errors.length;
|
33
32
|
}
|
34
|
-
constructor(
|
35
|
-
this.focusMonitor = focusMonitor;
|
36
|
-
this.cdr = cdr;
|
33
|
+
constructor(renderer, config) {
|
37
34
|
this.renderer = renderer;
|
38
35
|
this.config = config;
|
39
36
|
this.errors = [];
|
@@ -41,8 +38,6 @@ export class McMultipleFileUploadComponent {
|
|
41
38
|
this.size = 'default';
|
42
39
|
this.inputId = `mc-multiple-file-upload-${nextMultipleFileUploadUniqueId++}`;
|
43
40
|
this.fileQueueChanged = new EventEmitter();
|
44
|
-
this.hasFocus = false;
|
45
|
-
this.focusMonitorSubscription = Subscription.EMPTY;
|
46
41
|
this.config = config || MC_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION;
|
47
42
|
this.columnDefs = [
|
48
43
|
{ header: this.config.gridHeaders.file, cssClass: 'file' },
|
@@ -50,13 +45,6 @@ export class McMultipleFileUploadComponent {
|
|
50
45
|
{ header: '', cssClass: 'action' }
|
51
46
|
];
|
52
47
|
}
|
53
|
-
ngAfterViewInit() {
|
54
|
-
this.focusMonitorSubscription = this.focusMonitor.monitor(this.input)
|
55
|
-
.subscribe((origin) => this.onFocus(origin === 'keyboard'));
|
56
|
-
}
|
57
|
-
ngOnDestroy() {
|
58
|
-
this.focusMonitorSubscription.unsubscribe();
|
59
|
-
}
|
60
48
|
onFileSelectedViaClick({ target }) {
|
61
49
|
if (this.disabled) {
|
62
50
|
return;
|
@@ -89,13 +77,6 @@ export class McMultipleFileUploadComponent {
|
|
89
77
|
onFileListChange() {
|
90
78
|
this.fileQueueChanged.emit(this.files);
|
91
79
|
}
|
92
|
-
onFocus(focusState) {
|
93
|
-
if (this.disabled) {
|
94
|
-
return;
|
95
|
-
}
|
96
|
-
this.hasFocus = focusState;
|
97
|
-
this.cdr.markForCheck();
|
98
|
-
}
|
99
80
|
mapToFileItem(files) {
|
100
81
|
if (!files) {
|
101
82
|
return [];
|
@@ -126,15 +107,15 @@ export class McMultipleFileUploadComponent {
|
|
126
107
|
const fileExt = file.name.split('.').pop() || '';
|
127
108
|
return this.acceptedFiles !== '*/*' && this.acceptedFiles.length > 0 ? this.acceptedFiles.includes(fileExt) : true;
|
128
109
|
}
|
129
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McMultipleFileUploadComponent, deps: [{ token:
|
130
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", 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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-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 }); }
|
110
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McMultipleFileUploadComponent, deps: [{ token: i0.Renderer2 }, { token: MC_FILE_UPLOAD_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
111
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", 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 mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </label>\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 {{ config.captionTextWhenSelected }}\n <label mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\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 mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </label>\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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-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
112
|
}
|
132
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McMultipleFileUploadComponent, decorators: [{
|
133
114
|
type: Component,
|
134
115
|
args: [{ selector: 'mc-multiple-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
135
116
|
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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-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: () => [{ type:
|
117
|
+
}, 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 mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </label>\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 {{ config.captionTextWhenSelected }}\n <label mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\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 mc-link pseudo [tabIndex]=\"-1\" [for]=\"inputId\" [disabled]=\"disabled\">\n {{ config.browseLink }}\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </label>\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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-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"] }]
|
118
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: undefined, decorators: [{
|
138
119
|
type: Optional
|
139
120
|
}, {
|
140
121
|
type: Inject,
|
@@ -162,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
162
143
|
type: ViewChild,
|
163
144
|
args: ['input']
|
164
145
|
}] } });
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBQWEsUUFBUSxFQUMxQixNQUFNLEVBQUUsU0FBUyxFQUNqQixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFDSCw0QkFBNEIsRUFNL0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBR3ZCLElBQUksOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBWXZDLE1BQU0sQ0FBQyxNQUFNLDZDQUE2QyxHQUE2QjtJQUNuRixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLHVCQUF1QixFQUFFLG9CQUFvQjtJQUM3Qyx5QkFBeUIsRUFBRSxzQkFBc0I7SUFDakQsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxRQUFRO0tBQ2pCO0NBQ0osQ0FBQztBQVlGLE1BQU0sT0FBTyw2QkFBNkI7SUFtQnRDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFB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dUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUseUJBQXlCO3FCQUNuQzs7MEJBaUNJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCO3lDQTlCM0MsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRTJELGNBQWM7c0JBQS9FLFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUU1QyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgICBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCxcbiAgICBPdXRwdXQsIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EaXNhYmxlIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OLFxuICAgIE1jRmlsZSxcbiAgICBNY0ZpbGVJdGVtLFxuICAgIE1jRmlsZVZhbGlkYXRvckZuLFxuICAgIE1jSW5wdXRGaWxlLFxuICAgIE1jSW5wdXRGaWxlTGFiZWxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cblxubGV0IG5leHRNdWx0aXBsZUZpbGVVcGxvYWRVbmlxdWVJZCA9IDA7XG5leHBvcnQgaW50ZXJmYWNlIE1jSW5wdXRGaWxlTXVsdGlwbGVMYWJlbCBleHRlbmRzIE1jSW5wdXRGaWxlTGFiZWwge1xuICAgIGNhcHRpb25UZXh0V2hlblNlbGVjdGVkOiBzdHJpbmc7XG4gICAgY2FwdGlvblRleHRGb3JDb21wYWN0U2l6ZTogc3RyaW5nO1xuICAgIGdyaWRIZWFkZXJzOiB7XG4gICAgICAgIGZpbGU6IHN0cmluZztcbiAgICAgICAgc2l6ZTogc3RyaW5nO1xuICAgIH07XG4gICAgW2s6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbF06IHVua25vd247XG59XG5cblxuZXhwb3J0IGNvbnN0IE1DX01VTFRJUExFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjogTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsID0ge1xuICAgIGNhcHRpb25UZXh0OiAn0J/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=
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFBRSxRQUFRLEVBQ2YsTUFBTSxFQUFFLFNBQVMsRUFDakIsV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFDSCw0QkFBNEIsRUFNL0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7O0FBR3ZCLElBQUksOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBWXZDLE1BQU0sQ0FBQyxNQUFNLDZDQUE2QyxHQUE2QjtJQUNuRixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLHVCQUF1QixFQUFFLG9CQUFvQjtJQUM3Qyx5QkFBeUIsRUFBRSxzQkFBc0I7SUFDakQsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxRQUFRO0tBQ2pCO0NBQ0osQ0FBQztBQVlGLE1BQU0sT0FBTyw2QkFBNkI7SUFnQnRDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFN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QU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZILENBQUM7aUlBeEdRLDZCQUE2QiwyQ0EwQmQsNEJBQTRCO3FIQTFCM0MsNkJBQTZCLDBaQVVhLFdBQVcsNkhDcEVsRSxvMktBNEhBOzsyRkRsRWEsNkJBQTZCO2tCQVR6QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUseUJBQXlCO3FCQUNuQzs7MEJBNEJJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCO3lDQXpCM0MsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRTJELGNBQWM7c0JBQS9FLFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUU1QyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgICBJbnB1dCwgT3B0aW9uYWwsXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuRGlzYWJsZSB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIE1DX0ZJTEVfVVBMT0FEX0NPTkZJR1VSQVRJT04sXG4gICAgTWNGaWxlLFxuICAgIE1jRmlsZUl0ZW0sXG4gICAgTWNGaWxlVmFsaWRhdG9yRm4sXG4gICAgTWNJbnB1dEZpbGUsXG4gICAgTWNJbnB1dEZpbGVMYWJlbFxufSBmcm9tICcuL2ZpbGUtdXBsb2FkJztcblxuXG5sZXQgbmV4dE11bHRpcGxlRmlsZVVwbG9hZFVuaXF1ZUlkID0gMDtcbmV4cG9ydCBpbnRlcmZhY2UgTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsIGV4dGVuZHMgTWNJbnB1dEZpbGVMYWJlbCB7XG4gICAgY2FwdGlvblRleHRXaGVuU2VsZWN0ZWQ6IHN0cmluZztcbiAgICBjYXB0aW9uVGV4dEZvckNvbXBhY3RTaXplOiBzdHJpbmc7XG4gICAgZ3JpZEhlYWRlcnM6IHtcbiAgICAgICAgZmlsZTogc3RyaW5nO1xuICAgICAgICBzaXplOiBzdHJpbmc7XG4gICAgfTtcbiAgICBbazogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogdW5rbm93bjtcbn1cblxuXG5leHBvcnQgY29uc3QgTUNfTVVMVElQTEVfRklMRV9VUExPQURfREVGQVVMVF9DT05GSUdVUkFUSU9OOiBNY0lucHV0RmlsZU11bHRpcGxlTGFiZWwgPSB7XG4gICAgY2FwdGlvblRleHQ6ICfQn9C10YDQtdGC0LDRidC40YLQtSDRgdGO0LTQsCDQuNC70LgnLFxuICAgIGNhcHRpb25UZXh0V2hlblNlbGVjdGVkOiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0LXRidC1INC40LvQuCcsXG4gICAgY2FwdGlvblRleHRGb3JDb21wYWN0U2l6ZTogJ9Cf0LXRgNC10YLQsNGJ0LjRgtC1INGE0LDQudC70Ysg0LjQu9C4JyxcbiAgICBicm93c2VMaW5rOiAn0LLRi9Cx0LXRgNC40YLQtScsXG4gICAgdGl0bGU6ICfQl9Cw0LPRgNGD0LfQuNGC0LUg0YTQsNC50LvRiycsXG4gICAgZ3JpZEhlYWRlcnM6IHtcbiAgICAgICAgZmlsZTogJ9Ck0LDQudC7JyxcbiAgICAgICAgc2l6ZTogJ9Cg0LDQt9C80LXRgCdcbiAgICB9XG59O1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtbXVsdGlwbGUtZmlsZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aXBsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuc2NzcycsICcuL211bHRpcGxlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLW11bHRpcGxlLWZpbGUtdXBsb2FkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWNNdWx0aXBsZUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBNY0lucHV0RmlsZSwgQ2FuRGlzYWJsZSB7XG4gICAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nW107XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBNY0ZpbGVJdGVtW10gPSBbXTtcbiAgICBASW5wdXQoKSBzaXplOiAnY29tcGFjdCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gYG1jLW11bHRpcGxlLWZpbGUtdXBsb2FkLSR7bmV4dE11bHRpcGxlRmlsZVVwbG9hZFVuaXF1ZUlkKyt9YDtcbiAgICBASW5wdXQoKSBjdXN0b21WYWxpZGF0aW9uPzogTWNGaWxlVmFsaWRhdG9yRm5bXTtcbiAgICBAT3V0cHV0KCkgZmlsZVF1ZXVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPE1jRmlsZUl0ZW1bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPE1jRmlsZUl0ZW1bXT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21jRmlsZUljb24nLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGN1c3RvbUZpbGVJY29uOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgY29sdW1uRGVmczogeyBoZWFkZXI6IHN0cmluZzsgY3NzQ2xhc3M6IHN0cmluZyB9W107XG5cbiAgICBnZXQgYWNjZXB0ZWRGaWxlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NlcHQgJiYgdGhpcy5hY2NlcHQubGVuZ3RoID4gMCA/IHRoaXMuYWNjZXB0Lm1hcCgoZXh0OiBzdHJpbmcpID0+IGAuJHtleHR9YCkuam9pbignLCcpIDogJyovKic7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzICYmICEhdGhpcy5lcnJvcnMubGVuZ3RoO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUNfRklMRV9VUExPQURfQ09ORklHVVJBVElPTikgcHVibGljIGNvbmZpZzogTWNJbnB1dEZpbGVNdWx0aXBsZUxhYmVsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IE1DX01VTFRJUExFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjtcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzID0gW1xuICAgICAgICAgICAgeyBoZWFkZXI6IHRoaXMuY29uZmlnLmdyaWRIZWFkZXJzLmZpbGUsIGNzc0NsYXNzOiAnZmlsZScgfSxcbiAgICAgICAgICAgIHsgaGVhZGVyOiB0aGlzLmNvbmZpZy5ncmlkSGVhZGVycy5zaXplLCBjc3NDbGFzczogJ3NpemUnIH0sXG4gICAgICAgICAgICB7IGhlYWRlcjogJycsIGNzc0NsYXNzOiAnYWN0aW9uJyB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgb25GaWxlU2VsZWN0ZWRWaWFDbGljayh7IHRhcmdldCB9OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cbiAgICAgICAgdGhpcy5maWxlcyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuZmlsZXMsXG4gICAgICAgICAgICAuLi50aGlzLm1hcFRvRmlsZUl0ZW0oKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcylcbiAgICAgICAgXTtcbiAgICAgICAgLyogZXZlbiBpZiB0aGUgdXNlciBzZWxlY3RzIHRoZSBzYW1lIGZpbGUsXG4gICAgICAgICB0aGUgb25jaGFuZ2UgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgZXZlcnkgdGltZSB1c2VyIGNsaWNrcyBvbiB0aGUgY29udHJvbC4qL1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgbnVsbCk7XG4gICAgICAgIHRoaXMub25GaWxlTGlzdENoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRmlsZURyb3BwZWQoZmlsZXM6IEZpbGVMaXN0IHwgTWNGaWxlW10pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbLi4udGhpcy5maWxlcywgLi4udGhpcy5tYXBUb0ZpbGVJdGVtKGZpbGVzKV07XG5cbiAgICAgICAgdGhpcy5vbkZpbGVMaXN0Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsZShpbmRleDogbnVtYmVyLCBldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXNdO1xuXG4gICAgICAgIHRoaXMub25GaWxlTGlzdENoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRmlsZUxpc3RDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZVF1ZXVlQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwVG9GaWxlSXRlbShmaWxlczogRmlsZUxpc3QgfCBNY0ZpbGVbXSB8IG51bGwpOiBNY0ZpbGVJdGVtW10ge1xuICAgICAgICBpZiAoIWZpbGVzKSB7IHJldHVybiBbXTsgfVxuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGZpbGVzKVxuICAgICAgICAgICAgLmZpbHRlcigoZmlsZSkgPT4gdGhpcy5pc0NvcnJlY3RFeHRlbnNpb24oZmlsZSkpXG4gICAgICAgICAgICAubWFwKChmaWxlOiBGaWxlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgaGFzRXJyb3I6IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpLFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpLFxuICAgICAgICAgICAgICAgIHByb2dyZXNzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMClcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbGlkYXRpb24gJiYgdGhpcy5jdXN0b21WYWxpZGF0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzUGVyRmlsZSA9IHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGVycm9yczogKHN0cmluZyB8IG51bGwpW10sIHZhbGlkYXRvckZuOiBNY0ZpbGVWYWxpZGF0b3JGbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh2YWxpZGF0b3JGbihmaWxlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtdKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG5cbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZXJyb3JzLFxuICAgICAgICAgICAgICAgIC4uLmVycm9yc1BlckZpbGVcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHJldHVybiAhIWVycm9yc1BlckZpbGUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NvcnJlY3RFeHRlbnNpb24oZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmaWxlRXh0OiBzdHJpbmcgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcblxuICAgICAgICByZXR1cm4gdGhpcy5hY2NlcHRlZEZpbGVzICE9PSAnKi8qJyAmJiB0aGlzLmFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMCA/IHRoaXMuYWNjZXB0ZWRGaWxlcy5pbmNsdWRlcyhmaWxlRXh0KSA6IHRydWU7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkXCJcbiAgICAgbWNGaWxlRHJvcFxuICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmlsZXMgJiYgZmlsZXMubGVuZ3RoXCJcbiAgICAgW25nQ2xhc3NdPVwic2l6ZVwiXG4gICAgIChmaWxlc0Ryb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbGVzLmxlbmd0aDsgZWxzZSBmaWxlT3V0cHV0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAgKm5nSWY9XCJzaXplID09PSAnZGVmYXVsdCcgZWxzZSBjb21wYWN0Q2FwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfNjRcIj48L2k+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3B6b25lX190ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXVsdGlwbGVfX2hlYWRlclwiPnt7IGNvbmZpZy50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXVsdGlwbGVfX2NhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb25maWcuY2FwdGlvblRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgbWMtbGluayBwc2V1ZG8gW3RhYkluZGV4XT1cIi0xXCIgW2Zvcl09XCJpbnB1dElkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbmZpZy5icm93c2VMaW5rIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19pbmZvLXNlY3Rpb25cIj5cbiAgICA8bWMtaGludCBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19oaW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoaW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L21jLWhpbnQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRXJyb3JzXCI+XG4gICAgICAgIDxtYy1oaW50IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2hpbnQgbWMtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+XG4gICAgICAgICAgICAgICAge3sgZXJyb3IgfX1cbiAgICAgICAgPC9tYy1oaW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZmlsZU91dHB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWRfX2Ryb3B6b25lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9fZ3JpZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtbXVsdGlwbGUtdXBsb2FkZWRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1maWxlLW11bHRpcGxlLXVwbG9hZGVkX19oZWFkZXItaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ21jLWZpbGUtdXBsb2FkX18nICsgY29sdW1uLmNzc0NsYXNzXCIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5EZWZzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4uaGVhZGVyIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxtYy1saXN0LXNlbGVjdGlvbiBbYXV0b1NlbGVjdF09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxtYy1saXN0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm11bHRpcGxlX191cGxvYWRlZC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbGUuZmlsZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cImRlbGV0ZUZpbGUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uYmFja3NwYWNlKT1cImRlbGV0ZUZpbGUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IGxldCBpbmRleCA9IGluZGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX3Jvd1wiIFtjbGFzcy5lcnJvcl09XCJmaWxlLmhhc0Vycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX2ZpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBsb2FkaW5nOiBmaWxlLmxvYWRpbmcgfCBhc3luYywgcHJvZ3Jlc3M6IGZpbGUucHJvZ3Jlc3MgfCBhc3luYyB9IGFzIGFzeW5jRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFzeW5jRGF0YS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGN1c3RvbUZpbGVJY29uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmaWxlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYy1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB0LW5hdC1maWxlLXVwbG9hZC1uYW1lLWNlbGxfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFzeW5jRGF0YS5wcm9ncmVzcyB8fCAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXN5bmNEYXRhLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tYy1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLWl0ZW1fX3RleHRcIiBbbWNFbGxpcHNpc0NlbnRlcl09XCJmaWxlLmZpbGUubmFtZVwiIFttaW5WaXNpYmxlTGVuZ3RoXT1cIjEwXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRfX3NpemVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxlLmZpbGUuc2l6ZSB8IG1jRGF0YVNpemUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtY2xvc2UtY2lyY2xlXzE2XCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoaW5kZXgsICRldmVudClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYy1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWMtbGlzdC1zZWxlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tdXBsb2FkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVcIj5cbiAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtdXBsb2FkLXRvLWNsb3VkXzI0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcHpvbmVfX3RleHQgbXVsdGlwbGVfX2NhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLmNhcHRpb25UZXh0V2hlblNlbGVjdGVkIH19XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBtYy1saW5rIHBzZXVkbyBbdGFiSW5kZXhdPVwiLTFcIiBbZm9yXT1cImlucHV0SWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbmZpZy5icm93c2VMaW5rIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29tcGFjdENhcHRpb24+XG4gICAgPGkgbWMtaWNvbj1cIm1jLXVwbG9hZC10by1jbG91ZF8yNFwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX190ZXh0IG11bHRpcGxlX19jYXB0aW9uXCI+XG4gICAgICAgIHt7IGNvbmZpZy5jYXB0aW9uVGV4dCB9fVxuICAgICAgICA8bGFiZWwgbWMtbGluayBwc2V1ZG8gW3RhYkluZGV4XT1cIi0xXCIgW2Zvcl09XCJpbnB1dElkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgICB7eyBjb25maWcuYnJvd3NlTGluayB9fVxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0VGVtcGxhdGU+XG4gICAgPGlucHV0ICNpbnB1dFxuICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRlZEZpbGVzXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZFZpYUNsaWNrKCRldmVudClcIj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
@@ -1,15 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import { BehaviorSubject, Subscription } from 'rxjs';
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Optional, Output, Renderer2, ViewChild } from '@angular/core';
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
4
3
|
import { MC_FILE_UPLOAD_CONFIGURATION } from './file-upload';
|
5
4
|
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/
|
7
|
-
import * as i2 from "@
|
8
|
-
import * as i3 from "@ptsecurity/mosaic/
|
9
|
-
import * as i4 from "@ptsecurity/mosaic/
|
10
|
-
import * as i5 from "@ptsecurity/mosaic/
|
11
|
-
import * as i6 from "@ptsecurity/mosaic/
|
12
|
-
import * as i7 from "@ptsecurity/mosaic/
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@ptsecurity/mosaic/progress-spinner";
|
7
|
+
import * as i3 from "@ptsecurity/mosaic/icon";
|
8
|
+
import * as i4 from "@ptsecurity/mosaic/button";
|
9
|
+
import * as i5 from "@ptsecurity/mosaic/form-field";
|
10
|
+
import * as i6 from "@ptsecurity/mosaic/ellipsis-center";
|
11
|
+
import * as i7 from "@ptsecurity/mosaic/link";
|
13
12
|
import * as i8 from "./file-drop";
|
14
13
|
let nextSingleFileUploadUniqueId = 0;
|
15
14
|
export const MC_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION = {
|
@@ -20,9 +19,7 @@ export class McSingleFileUploadComponent {
|
|
20
19
|
get acceptedFiles() {
|
21
20
|
return this.accept && this.accept.length > 0 ? this.accept.map((ext) => `.${ext}`).join(',') : '*/*';
|
22
21
|
}
|
23
|
-
constructor(
|
24
|
-
this.focusMonitor = focusMonitor;
|
25
|
-
this.cdr = cdr;
|
22
|
+
constructor(renderer, config) {
|
26
23
|
this.renderer = renderer;
|
27
24
|
this.config = config;
|
28
25
|
this.disabled = false;
|
@@ -30,17 +27,8 @@ export class McSingleFileUploadComponent {
|
|
30
27
|
this.files = [];
|
31
28
|
this.inputId = `mc-single-file-upload-${nextSingleFileUploadUniqueId++}`;
|
32
29
|
this.fileQueueChanged = new EventEmitter();
|
33
|
-
this.hasFocus = false;
|
34
|
-
this.focusMonitorSubscription = Subscription.EMPTY;
|
35
30
|
this.config = config || MC_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION;
|
36
31
|
}
|
37
|
-
ngAfterViewInit() {
|
38
|
-
this.focusMonitorSubscription = this.focusMonitor.monitor(this.input)
|
39
|
-
.subscribe((origin) => this.onFocus(origin === 'keyboard'));
|
40
|
-
}
|
41
|
-
ngOnDestroy() {
|
42
|
-
this.focusMonitorSubscription.unsubscribe();
|
43
|
-
}
|
44
32
|
onFileSelectedViaClick({ target }) {
|
45
33
|
if (this.disabled) {
|
46
34
|
return;
|
@@ -73,13 +61,6 @@ export class McSingleFileUploadComponent {
|
|
73
61
|
this.fileQueueChanged.emit(this.files[0]);
|
74
62
|
}
|
75
63
|
}
|
76
|
-
onFocus(focusState) {
|
77
|
-
if (this.disabled) {
|
78
|
-
return;
|
79
|
-
}
|
80
|
-
this.hasFocus = focusState;
|
81
|
-
this.cdr.markForCheck();
|
82
|
-
}
|
83
64
|
mapToFileItem(file) {
|
84
65
|
this.validateFile(file);
|
85
66
|
return {
|
@@ -100,15 +81,15 @@ export class McSingleFileUploadComponent {
|
|
100
81
|
const fileExt = file.name.split('.').pop() || '';
|
101
82
|
return this.acceptedFiles !== '*/*' && this.acceptedFiles.length > 0 ? this.acceptedFiles.includes(fileExt) : true;
|
102
83
|
}
|
103
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McSingleFileUploadComponent, deps: [{ token:
|
104
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: McSingleFileUploadComponent, selector: "mc-single-file-upload", inputs: { accept: "accept", disabled: "disabled", errors: "errors", files: "files", inputId: "inputId", customValidation: "customValidation" }, outputs: { fileQueueChanged: "fileQueueChanged" }, host: { classAttribute: "mc-single-file-upload" }, 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.mc-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\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 <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\"\n >\n</div>\n<mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n</mc-hint>\n<ng-container *ngIf=\"errors && errors.length\">\n <mc-hint class=\"mc-file-upload__hint mc-error\" *ngFor=\"let error of errors\">{{ error }}</mc-hint>\n</ng-container>\n\n\n<ng-template #fileOutput>\n <div class=\"file-item\" *ngIf=\"files && files.length\">\n <div class=\"file-item__text-wrapper\">\n <ng-container *ngIf=\"{ loading: files[0].loading | async, progress: files[0].progress | async} as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\">\n <ng-content select=\"[mc-icon]\"></ng-content>\n </ng-container>\n\n <mc-progress-spinner\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <div class=\"file-item__text\" [mcEllipsisCenter]=\"files[0].file.name\" [minVisibleLength]=\"10\"></div>\n </div>\n <button mc-button\n class=\"mc-button_transparent\"\n [disabled]=\"disabled\"\n (keydown.delete)=\"deleteItem()\"\n (keydown.backspace)=\"deleteItem()\"\n (click)=\"deleteItem($event)\">\n <i mc-icon=\"mc-close-circle_16\"></i>\n </button>\n </div>\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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-file-upload{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;border-radius:var(--mc-file-upload-size-single-border-radius, 4px);border-width:var(--mc-file-upload-size-single-border-width, 1px);border-style:var(--mc-file-upload-size-single-border-style, dashed)}.mc-file-upload .file-item{width:100%}.mc-file-upload .file-item .file-item__text-wrapper{display:flex;align-items:center;width:100%}.mc-file-upload .file-item .file-item__text-wrapper .file-item__text{margin-left:8px;width:120px;flex-grow:1}.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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
84
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McSingleFileUploadComponent, deps: [{ token: i0.Renderer2 }, { token: MC_FILE_UPLOAD_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
85
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: McSingleFileUploadComponent, selector: "mc-single-file-upload", inputs: { accept: "accept", disabled: "disabled", errors: "errors", files: "files", inputId: "inputId", customValidation: "customValidation" }, outputs: { fileQueueChanged: "fileQueueChanged" }, host: { classAttribute: "mc-single-file-upload" }, 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.mc-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\n {{ config.captionText }}\n <label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">\n {{ config.browseLink }}\n <input #input type=\"file\" class=\"cdk-visually-hidden\" [id]=\"inputId\" [accept]=\"acceptedFiles\" [disabled]=\"disabled\" (change)=\"onFileSelectedViaClick($event)\">\n </label>\n </span>\n </div>\n</div>\n\n<mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n</mc-hint>\n<ng-container *ngIf=\"errors && errors.length\">\n <mc-hint class=\"mc-file-upload__hint mc-error\" *ngFor=\"let error of errors\">{{ error }}</mc-hint>\n</ng-container>\n\n\n<ng-template #fileOutput>\n <div class=\"file-item\" *ngIf=\"files && files.length\">\n <div class=\"file-item__text-wrapper\">\n <ng-container *ngIf=\"{ loading: files[0].loading | async, progress: files[0].progress | async} as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\">\n <ng-content select=\"[mc-icon]\"></ng-content>\n </ng-container>\n\n <mc-progress-spinner\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <div class=\"file-item__text\" [mcEllipsisCenter]=\"files[0].file.name\" [minVisibleLength]=\"10\"></div>\n </div>\n <button mc-button\n class=\"mc-button_transparent\"\n [disabled]=\"disabled\"\n (keydown.delete)=\"deleteItem()\"\n (keydown.backspace)=\"deleteItem()\"\n (click)=\"deleteItem($event)\">\n <i mc-icon=\"mc-close-circle_16\"></i>\n </button>\n </div>\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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-file-upload{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;border-radius:var(--mc-file-upload-size-single-border-radius, 4px);border-width:var(--mc-file-upload-size-single-border-width, 1px);border-style:var(--mc-file-upload-size-single-border-style, dashed)}.mc-file-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .file-item{width:100%}.mc-file-upload .file-item .file-item__text-wrapper{display:flex;align-items:center;width:100%}.mc-file-upload .file-item .file-item__text-wrapper .file-item__text{margin-left:8px;width:120px;flex-grow:1}.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.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i4.McButtonCssStyler, selector: "[mc-button]" }, { 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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
105
86
|
}
|
106
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: McSingleFileUploadComponent, decorators: [{
|
107
88
|
type: Component,
|
108
89
|
args: [{ selector: 'mc-single-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
109
90
|
class: 'mc-single-file-upload'
|
110
|
-
}, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.mc-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\n {{ config.captionText }}\n <label
|
111
|
-
}], ctorParameters: () => [{ type:
|
91
|
+
}, template: "<div class=\"mc-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.mc-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i mc-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\n {{ config.captionText }}\n <label mc-link pseudo [disabled]=\"disabled\" [tabIndex]=\"-1\" [for]=\"inputId\">\n {{ config.browseLink }}\n <input #input type=\"file\" class=\"cdk-visually-hidden\" [id]=\"inputId\" [accept]=\"acceptedFiles\" [disabled]=\"disabled\" (change)=\"onFileSelectedViaClick($event)\">\n </label>\n </span>\n </div>\n</div>\n\n<mc-hint class=\"mc-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n</mc-hint>\n<ng-container *ngIf=\"errors && errors.length\">\n <mc-hint class=\"mc-file-upload__hint mc-error\" *ngFor=\"let error of errors\">{{ error }}</mc-hint>\n</ng-container>\n\n\n<ng-template #fileOutput>\n <div class=\"file-item\" *ngIf=\"files && files.length\">\n <div class=\"file-item__text-wrapper\">\n <ng-container *ngIf=\"{ loading: files[0].loading | async, progress: files[0].progress | async} as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\">\n <ng-content select=\"[mc-icon]\"></ng-content>\n </ng-container>\n\n <mc-progress-spinner\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></mc-progress-spinner>\n </ng-container>\n\n <div class=\"file-item__text\" [mcEllipsisCenter]=\"files[0].file.name\" [minVisibleLength]=\"10\"></div>\n </div>\n <button mc-button\n class=\"mc-button_transparent\"\n [disabled]=\"disabled\"\n (keydown.delete)=\"deleteItem()\"\n (keydown.backspace)=\"deleteItem()\"\n (click)=\"deleteItem($event)\">\n <i mc-icon=\"mc-close-circle_16\"></i>\n </button>\n </div>\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;-moz-user-select:none;-ms-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;-moz-user-select:none;-ms-user-select:none;user-select:none}.mc-file-upload{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;border-radius:var(--mc-file-upload-size-single-border-radius, 4px);border-width:var(--mc-file-upload-size-single-border-width, 1px);border-style:var(--mc-file-upload-size-single-border-style, dashed)}.mc-file-upload .dropzone .dropzone__text{margin-left:6px}.mc-file-upload .file-item{width:100%}.mc-file-upload .file-item .file-item__text-wrapper{display:flex;align-items:center;width:100%}.mc-file-upload .file-item .file-item__text-wrapper .file-item__text{margin-left:8px;width:120px;flex-grow:1}.mc-hint{display:block}.mc-file-upload__hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}\n"] }]
|
92
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: undefined, decorators: [{
|
112
93
|
type: Optional
|
113
94
|
}, {
|
114
95
|
type: Inject,
|
@@ -131,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
131
112
|
type: ViewChild,
|
132
113
|
args: ['input']
|
133
114
|
}] } });
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9zaW5nbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFBYSxRQUFRLEVBQzFCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQ0gsNEJBQTRCLEVBTS9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBR3ZCLElBQUksNEJBQTRCLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFxQjtJQUN6RSxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFVBQVUsRUFBRSxVQUFVO0NBQ3pCLENBQUM7QUFXRixNQUFNLE9BQU8sMkJBQTJCO0lBZXBDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMs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LENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZILENBQUM7aUlBckdRLDJCQUEyQix3R0F1QlosNEJBQTRCO3FIQXZCM0MsMkJBQTJCLG1aQ3hDeEMsbXlFQTJEQTs7MkZEbkJhLDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLHVCQUF1QjtxQkFDakM7OzBCQXlCSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDRCQUE0Qjt5Q0F0QjNDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRWEsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgICBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCxcbiAgICBPdXRwdXQsIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EaXNhYmxlIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OLFxuICAgIE1jRmlsZSxcbiAgICBNY0ZpbGVJdGVtLFxuICAgIE1jRmlsZVZhbGlkYXRvckZuLFxuICAgIE1jSW5wdXRGaWxlLFxuICAgIE1jSW5wdXRGaWxlTGFiZWxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cblxubGV0IG5leHRTaW5nbGVGaWxlVXBsb2FkVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY29uc3QgTUNfU0lOR0xFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjogTWNJbnB1dEZpbGVMYWJlbCA9IHtcbiAgICBjYXB0aW9uVGV4dDogJ9Cf0LXRgNC10YLQsNGJ0LjRgtC1INGE0LDQudC7INC40LvQuCcsXG4gICAgYnJvd3NlTGluazogJ9Cy0YvQsdC10YDQuNGC0LUnXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLXNpbmdsZS1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuc2NzcycsICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdtYy1zaW5nbGUtZmlsZS11cGxvYWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNY1NpbmdsZUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE1jSW5wdXRGaWxlLCBDYW5EaXNhYmxlIHtcbiAgICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBNY0ZpbGVJdGVtW10gPSBbXTtcbiAgICBASW5wdXQoKSBpbnB1dElkOiBzdHJpbmcgPSBgbWMtc2luZ2xlLWZpbGUtdXBsb2FkLSR7bmV4dFNpbmdsZUZpbGVVcGxvYWRVbmlxdWVJZCsrfWA7XG4gICAgQElucHV0KCkgY3VzdG9tVmFsaWRhdGlvbj86IE1jRmlsZVZhbGlkYXRvckZuW107XG4gICAgQE91dHB1dCgpIGZpbGVRdWV1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxNY0ZpbGVJdGVtIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1jRmlsZUl0ZW0gfCBudWxsPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIGhhc0ZvY3VzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAgIGdldCBhY2NlcHRlZEZpbGVzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2VwdCAmJiB0aGlzLmFjY2VwdC5sZW5ndGggPiAwID8gdGhpcy5hY2NlcHQubWFwKChleHQ6IHN0cmluZykgPT4gYC4ke2V4dH1gKS5qb2luKCcsJykgOiAnKi8qJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUNfRklMRV9VUExPQURfQ09ORklHVVJBVElPTikgcHVibGljIGNvbmZpZzogTWNJbnB1dEZpbGVMYWJlbFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZyB8fCBNQ19TSU5HTEVfRklMRV9VUExPQURfREVGQVVMVF9DT05GSUdVUkFUSU9OO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24gPSB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuaW5wdXQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcmlnaW4pID0+IHRoaXMub25Gb2N1cyhvcmlnaW4gPT09ICdrZXlib2FyZCcpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVTZWxlY3RlZFZpYUNsaWNrKHsgdGFyZ2V0IH06IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlTGlzdCB8IG51bGwgPSAodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzO1xuICAgICAgICBpZiAoZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlcyA9IFt0aGlzLm1hcFRvRmlsZUl0ZW0oZmlsZXNbMF0pXTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVF1ZXVlQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXNbMF0pO1xuICAgICAgICB9XG4gICAgICAgIC8qIGV2ZW4gaWYgdGhlIHVzZXIgc2VsZWN0cyB0aGUgc2FtZSBmaWxlLFxuICAgICAgICAgdGhlIG9uY2hhbmdlIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkIGV2ZXJ5IHRpbWUgdXNlciBjbGlja3Mgb24gdGhlIGNvbnRyb2wuKi9cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG51bGwpO1xuICAgIH1cblxuICAgIGRlbGV0ZUl0ZW0oZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBGaWxlTGlzdCB8IE1jRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzQ29ycmVjdEV4dGVuc2lvbihmaWxlc1swXSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGZpbGUpID0+IHRoaXMubWFwVG9GaWxlSXRlbShmaWxlKSk7XG4gICAgICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdCh0aGlzLmZpbGVzWzBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoZm9jdXNTdGF0ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZvY3VzU3RhdGU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwVG9GaWxlSXRlbShmaWxlOiBGaWxlKTogTWNGaWxlSXRlbSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgcHJvZ3Jlc3M6IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKSxcbiAgICAgICAgICAgIGxvYWRpbmc6IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXN0b21WYWxpZGF0aW9uICYmIHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5jdXN0b21WYWxpZGF0aW9uLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoZXJyb3JzOiAoc3RyaW5nIHwgbnVsbClbXSwgdmFsaWRhdG9yRm46IE1jRmlsZVZhbGlkYXRvckZuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKHZhbGlkYXRvckZuKGZpbGUpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW10pLmZpbHRlcihCb29sZWFuKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNDb3JyZWN0RXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsZUV4dDogc3RyaW5nID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ZWRGaWxlcyAhPT0gJyovKicgJiYgdGhpcy5hY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY2VwdGVkRmlsZXMuaW5jbHVkZXMoZmlsZUV4dCkgOiB0cnVlO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYy1maWxlLXVwbG9hZFwiXG4gICAgIG1jRmlsZURyb3BcbiAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgW2NsYXNzLm1jLWVycm9yXT1cImVycm9ycyAmJiBlcnJvcnMubGVuZ3RoXCJcbiAgICAgKGZpbGVzRHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3B6b25lXCIgKm5nSWY9XCIhZmlsZXMubGVuZ3RoOyBlbHNlIGZpbGVPdXRwdXRcIj5cbiAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfMjRcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX190ZXh0XCI+XG4gICAgICAgICAgICAgICAge3sgY29uZmlnLmNhcHRpb25UZXh0IH19XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWMtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYy1mb2N1c2VkXT1cImhhc0ZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJpbnB1dElkXCI+XG4gICAgICAgICAgICAgICAge3sgY29uZmlnLmJyb3dzZUxpbmsgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRmlsZXNcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkVmlhQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuPC9kaXY+XG48bWMtaGludCBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19oaW50XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hpbnRdXCI+PC9uZy1jb250ZW50PlxuPC9tYy1oaW50PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9ycyAmJiBlcnJvcnMubGVuZ3RoXCI+XG4gICAgPG1jLWhpbnQgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9faGludCBtYy1lcnJvclwiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnNcIj57eyBlcnJvciB9fTwvbWMtaGludD5cbjwvbmctY29udGFpbmVyPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZmlsZU91dHB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nSWY9XCJmaWxlcyAmJiBmaWxlcy5sZW5ndGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBsb2FkaW5nOiBmaWxlc1swXS5sb2FkaW5nIHwgYXN5bmMsIHByb2dyZXNzOiBmaWxlc1swXS5wcm9ncmVzcyB8IGFzeW5jfSBhcyBhc3luY0RhdGFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFzeW5jRGF0YS5sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYy1pY29uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxtYy1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJhc3luY0RhdGEucHJvZ3Jlc3MgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXN5bmNEYXRhLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgID48L21jLXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dFwiIFttY0VsbGlwc2lzQ2VudGVyXT1cImZpbGVzWzBdLmZpbGUubmFtZVwiIFttaW5WaXNpYmxlTGVuZ3RoXT1cIjEwXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIG1jLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCJkZWxldGVJdGVtKClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJkZWxldGVJdGVtKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1jbG9zZS1jaXJjbGVfMTZcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9maWxlLXVwbG9hZC9zaW5nbGUtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2ZpbGUtdXBsb2FkL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUFFLFFBQVEsRUFDZixNQUFNLEVBQUUsU0FBUyxFQUNqQixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQ0gsNEJBQTRCLEVBTS9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBR3ZCLElBQUksNEJBQTRCLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFxQjtJQUN6RSxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFVBQVUsRUFBRSxVQUFVO0NBQ3pCLENBQUM7QUFXRixNQUFNLE9BQU8sMkJBQTJCO0lBV3BDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakgsQ0FBQztJQUVELFlBQ1ksUUFBbUIsRUFDOEIsTUFBd0I7UUFEekUsYUFBUSxH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LEVBQ0QsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBYSxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBVTtRQUNqQyxNQUFNLE9BQU8sR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFekQsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkgsQ0FBQztpSUFoRlEsMkJBQTJCLDJDQWlCWiw0QkFBNEI7cUhBakIzQywyQkFBMkIsbVpDdEN4Qyxrc0VBbURBOzsyRkRiYSwyQkFBMkI7a0JBVHZDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSx1QkFBdUI7cUJBQ2pDOzswQkFtQkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw0QkFBNEI7eUNBaEIzQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gICAgSW5wdXQsIE9wdGlvbmFsLFxuICAgIE91dHB1dCwgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRpc2FibGUgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OLFxuICAgIE1jRmlsZSxcbiAgICBNY0ZpbGVJdGVtLFxuICAgIE1jRmlsZVZhbGlkYXRvckZuLFxuICAgIE1jSW5wdXRGaWxlLFxuICAgIE1jSW5wdXRGaWxlTGFiZWxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cblxubGV0IG5leHRTaW5nbGVGaWxlVXBsb2FkVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY29uc3QgTUNfU0lOR0xFX0ZJTEVfVVBMT0FEX0RFRkFVTFRfQ09ORklHVVJBVElPTjogTWNJbnB1dEZpbGVMYWJlbCA9IHtcbiAgICBjYXB0aW9uVGV4dDogJ9Cf0LXRgNC10YLQsNGJ0LjRgtC1INGE0LDQudC7INC40LvQuCcsXG4gICAgYnJvd3NlTGluazogJ9Cy0YvQsdC10YDQuNGC0LUnXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLXNpbmdsZS1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuc2NzcycsICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdtYy1zaW5nbGUtZmlsZS11cGxvYWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNY1NpbmdsZUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBNY0lucHV0RmlsZSwgQ2FuRGlzYWJsZSB7XG4gICAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmdbXTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgICBASW5wdXQoKSBmaWxlczogTWNGaWxlSXRlbVtdID0gW107XG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gYG1jLXNpbmdsZS1maWxlLXVwbG9hZC0ke25leHRTaW5nbGVGaWxlVXBsb2FkVW5pcXVlSWQrK31gO1xuICAgIEBJbnB1dCgpIGN1c3RvbVZhbGlkYXRpb24/OiBNY0ZpbGVWYWxpZGF0b3JGbltdO1xuICAgIEBPdXRwdXQoKSBmaWxlUXVldWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TWNGaWxlSXRlbSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxNY0ZpbGVJdGVtIHwgbnVsbD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBnZXQgYWNjZXB0ZWRGaWxlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NlcHQgJiYgdGhpcy5hY2NlcHQubGVuZ3RoID4gMCA/IHRoaXMuYWNjZXB0Lm1hcCgoZXh0OiBzdHJpbmcpID0+IGAuJHtleHR9YCkuam9pbignLCcpIDogJyovKic7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQ19GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OKSBwdWJsaWMgY29uZmlnOiBNY0lucHV0RmlsZUxhYmVsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IE1DX1NJTkdMRV9GSUxFX1VQTE9BRF9ERUZBVUxUX0NPTkZJR1VSQVRJT047XG4gICAgfVxuXG4gICAgb25GaWxlU2VsZWN0ZWRWaWFDbGljayh7IHRhcmdldCB9OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBjb25zdCBmaWxlczogRmlsZUxpc3QgfCBudWxsID0gKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcztcbiAgICAgICAgaWYgKGZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbdGhpcy5tYXBUb0ZpbGVJdGVtKGZpbGVzWzBdKV07XG4gICAgICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdCh0aGlzLmZpbGVzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBldmVuIGlmIHRoZSB1c2VyIHNlbGVjdHMgdGhlIHNhbWUgZmlsZSxcbiAgICAgICAgIHRoZSBvbmNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZCBldmVyeSB0aW1lIHVzZXIgY2xpY2tzIG9uIHRoZSBjb250cm9sLiovXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBudWxsKTtcbiAgICB9XG5cbiAgICBkZWxldGVJdGVtKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgdGhpcy5maWxlUXVldWVDaGFuZ2VkLmVtaXQobnVsbCk7XG4gICAgfVxuXG4gICAgb25GaWxlRHJvcHBlZChmaWxlczogRmlsZUxpc3QgfCBNY0ZpbGVbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAodGhpcy5pc0NvcnJlY3RFeHRlbnNpb24oZmlsZXNbMF0pKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgICAgICAgICAubWFwKChmaWxlKSA9PiB0aGlzLm1hcFRvRmlsZUl0ZW0oZmlsZSkpO1xuICAgICAgICAgICAgdGhpcy5maWxlUXVldWVDaGFuZ2VkLmVtaXQodGhpcy5maWxlc1swXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcFRvRmlsZUl0ZW0oZmlsZTogRmlsZSk6IE1jRmlsZUl0ZW0ge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZShmaWxlKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIHByb2dyZXNzOiBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCksXG4gICAgICAgICAgICBsb2FkaW5nOiBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVGaWxlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tVmFsaWRhdGlvbiAmJiB0aGlzLmN1c3RvbVZhbGlkYXRpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMuY3VzdG9tVmFsaWRhdGlvbi5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGVycm9yczogKHN0cmluZyB8IG51bGwpW10sIHZhbGlkYXRvckZuOiBNY0ZpbGVWYWxpZGF0b3JGbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh2YWxpZGF0b3JGbihmaWxlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9ycztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFtdKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ29ycmVjdEV4dGVuc2lvbihmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbGVFeHQ6IHN0cmluZyA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpIHx8ICcnO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2VwdGVkRmlsZXMgIT09ICcqLyonICYmIHRoaXMuYWNjZXB0ZWRGaWxlcy5sZW5ndGggPiAwID8gdGhpcy5hY2NlcHRlZEZpbGVzLmluY2x1ZGVzKGZpbGVFeHQpIDogdHJ1ZTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtZmlsZS11cGxvYWRcIlxuICAgICBtY0ZpbGVEcm9wXG4gICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgIFtjbGFzcy5tYy1lcnJvcl09XCJlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aFwiXG4gICAgIChmaWxlc0Ryb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wem9uZVwiICpuZ0lmPVwiIWZpbGVzLmxlbmd0aDsgZWxzZSBmaWxlT3V0cHV0XCI+XG4gICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtdXBsb2FkLXRvLWNsb3VkXzI0XCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wem9uZV9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbmZpZy5jYXB0aW9uVGV4dCB9fVxuICAgICAgICAgICAgICAgIDxsYWJlbCBtYy1saW5rIHBzZXVkbyBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIiBbZm9yXT1cImlucHV0SWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY29uZmlnLmJyb3dzZUxpbmsgfX1cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNpbnB1dCB0eXBlPVwiZmlsZVwiIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiIFtpZF09XCJpbnB1dElkXCIgW2FjY2VwdF09XCJhY2NlcHRlZEZpbGVzXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZFZpYUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bWMtaGludCBjbGFzcz1cIm1jLWZpbGUtdXBsb2FkX19oaW50XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hpbnRdXCI+PC9uZy1jb250ZW50PlxuPC9tYy1oaW50PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9ycyAmJiBlcnJvcnMubGVuZ3RoXCI+XG4gICAgPG1jLWhpbnQgY2xhc3M9XCJtYy1maWxlLXVwbG9hZF9faGludCBtYy1lcnJvclwiICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnNcIj57eyBlcnJvciB9fTwvbWMtaGludD5cbjwvbmctY29udGFpbmVyPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZmlsZU91dHB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nSWY9XCJmaWxlcyAmJiBmaWxlcy5sZW5ndGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBsb2FkaW5nOiBmaWxlc1swXS5sb2FkaW5nIHwgYXN5bmMsIHByb2dyZXNzOiBmaWxlc1swXS5wcm9ncmVzcyB8IGFzeW5jfSBhcyBhc3luY0RhdGFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFzeW5jRGF0YS5sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYy1pY29uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxtYy1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJhc3luY0RhdGEucHJvZ3Jlc3MgfHwgMFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXN5bmNEYXRhLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgID48L21jLXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dFwiIFttY0VsbGlwc2lzQ2VudGVyXT1cImZpbGVzWzBdLmZpbGUubmFtZVwiIFttaW5WaXNpYmxlTGVuZ3RoXT1cIjEwXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIG1jLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCJkZWxldGVJdGVtKClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJkZWxldGVJdGVtKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1jbG9zZS1jaXJjbGVfMTZcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|