ngx-histaff-alpha 2.3.9 → 2.4.1
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/esm2022/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.mjs +26 -8
- package/esm2022/lib/app/libraries/core-list/core-list/core-list.component.mjs +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +22 -5
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.d.ts +5 -1
- package/lib/app/libraries/core-list/core-list/core-list.component.d.ts +1 -1
- package/package.json +1 -1
package/esm2022/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.mjs
CHANGED
|
@@ -16,13 +16,14 @@ import * as i1 from "../../alert/alert.service";
|
|
|
16
16
|
import * as i2 from "../../../services/multi-language.service";
|
|
17
17
|
import * as i3 from "../../../services/app-config.service";
|
|
18
18
|
import * as i4 from "../../../services/uploaded-file.service";
|
|
19
|
-
import * as i5 from "
|
|
20
|
-
import * as i6 from "@angular/
|
|
19
|
+
import * as i5 from "../../services/dom.service";
|
|
20
|
+
import * as i6 from "@angular/common";
|
|
21
|
+
import * as i7 from "@angular/forms";
|
|
21
22
|
export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
22
23
|
writeValue(obj) {
|
|
23
24
|
this.valueToShow = obj?.serverFileName || '';
|
|
24
25
|
}
|
|
25
|
-
constructor(injector, alertService, mls, appConfigService, uploadedFileService, renderer) {
|
|
26
|
+
constructor(injector, alertService, mls, appConfigService, uploadedFileService, renderer, domService) {
|
|
26
27
|
super();
|
|
27
28
|
this.injector = injector;
|
|
28
29
|
this.alertService = alertService;
|
|
@@ -30,8 +31,10 @@ export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
30
31
|
this.appConfigService = appConfigService;
|
|
31
32
|
this.uploadedFileService = uploadedFileService;
|
|
32
33
|
this.renderer = renderer;
|
|
34
|
+
this.domService = domService;
|
|
33
35
|
this.dropdownHeight = 0;
|
|
34
36
|
this.dropdownPadding = 0;
|
|
37
|
+
this.dropdownZIndex = 1;
|
|
35
38
|
}
|
|
36
39
|
ngOnChanges(changes) {
|
|
37
40
|
if (changes['valueToShow']) {
|
|
@@ -55,6 +58,7 @@ export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
55
58
|
this.dropdownPadding = 0;
|
|
56
59
|
}
|
|
57
60
|
});
|
|
61
|
+
this.dropdownZIndex = this.domService.getMaxZIndex() + 1;
|
|
58
62
|
});
|
|
59
63
|
}
|
|
60
64
|
onClickUpload() {
|
|
@@ -137,14 +141,28 @@ export class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
137
141
|
}
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
|
-
|
|
144
|
+
clear() {
|
|
145
|
+
this.value = null;
|
|
146
|
+
this.valueToShow = '';
|
|
147
|
+
this.onChange(null);
|
|
148
|
+
const sibling = this.ngControl.control?.parent?.get(this.assignTo);
|
|
149
|
+
if (!sibling) {
|
|
150
|
+
if (isDevMode()) {
|
|
151
|
+
this.alertService.error(`Chưa khai báo field '${this.assignTo}'`, noneAutoClosedAlertOptions);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
sibling.patchValue(null);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, deps: [{ token: i0.Injector }, { token: i1.AlertService }, { token: i2.MultiLanguageService }, { token: i3.AppConfigService }, { token: i4.UploadedFileService }, { token: i0.Renderer2 }, { token: i5.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
159
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreAttachmentComponent, isStandalone: true, selector: "core-attachment", inputs: { assignTo: "assignTo", readonly: "readonly", valueToShow: "valueToShow" }, providers: [
|
|
142
160
|
{
|
|
143
161
|
provide: NG_VALUE_ACCESSOR,
|
|
144
162
|
multi: true,
|
|
145
163
|
useExisting: CoreAttachmentComponent,
|
|
146
164
|
}
|
|
147
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% -
|
|
165
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n @if (!!valueToShow) {\r\n <i class=\"feather-x\" (click)=\"clear()\"></i>\r\n }\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px', zIndex: dropdownZIndex }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 70px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.core-attachment-container i.feather-x{display:block;position:absolute;right:35px;top:5px;z-index:1;font-size:24px;color:#d3d3d3;cursor:pointer}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: UploadedFilenameCutoffPipe, name: "uploadedFilenameCutoff" }, { kind: "pipe", type: MapAttachmentToServerPipe, name: "mapAttachmentToServer" }] }); }
|
|
148
166
|
}
|
|
149
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, decorators: [{
|
|
150
168
|
type: Component,
|
|
@@ -161,8 +179,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
161
179
|
multi: true,
|
|
162
180
|
useExisting: CoreAttachmentComponent,
|
|
163
181
|
}
|
|
164
|
-
], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% -
|
|
165
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AlertService }, { type: i2.MultiLanguageService }, { type: i3.AppConfigService }, { type: i4.UploadedFileService }, { type: i0.Renderer2 }], propDecorators: { assignTo: [{
|
|
182
|
+
], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n @if (!!valueToShow) {\r\n <i class=\"feather-x\" (click)=\"clear()\"></i>\r\n }\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px', zIndex: dropdownZIndex }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 70px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.core-attachment-container i.feather-x{display:block;position:absolute;right:35px;top:5px;z-index:1;font-size:24px;color:#d3d3d3;cursor:pointer}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"] }]
|
|
183
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AlertService }, { type: i2.MultiLanguageService }, { type: i3.AppConfigService }, { type: i4.UploadedFileService }, { type: i0.Renderer2 }, { type: i5.DomService }], propDecorators: { assignTo: [{
|
|
166
184
|
type: Input
|
|
167
185
|
}], readonly: [{
|
|
168
186
|
type: Input
|
|
@@ -175,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
175
193
|
type: ViewChild,
|
|
176
194
|
args: ['rawInput']
|
|
177
195
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQW1DLEtBQUssRUFBb0MsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRyxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsMEJB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Q2hCLDBCQUEwQiwwREFDMUIseUJBQXlCOzsyRkFhaEIsdUJBQXVCO2tCQXJCbkMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLDJCQUEyQjtxQkFDNUIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLHlCQUF5Qjt5QkFDckM7cUJBQ0Y7b09BS1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDWSxRQUFRO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFhQyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IGF0dGFjaG1lbnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2F0dGFjaG1lbnRPcHRpb25zJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGJsb2JfdG9fYmFzZTY0X3NjcmlwdCB9IGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9qcy9ibG9iMmJhc2U2NF93ayc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IGNvcmVGaWxlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvY29yZUZpbGVVdGlscyc7XHJcblxyXG5pbXBvcnQgeyBVcGxvYWRlZEZpbGVuYW1lQ3V0b2ZmUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy91cGxvYWRlZC1maWxlbmFtZS1jdXRvZmYucGlwZSc7XHJcbmltcG9ydCB7IFVwbG9hZGVkRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWRlZC1maWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXBBdHRhY2htZW50VG9TZXJ2ZXJQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL21hcC1hdHRhY2htZW50LXRvLXNlcnZlci5waXBlJztcclxuaW1wb3J0IHsgSW1hZ2VFcnJvclJlc29sdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9pbWFnZS1lcnJvci1yZXNvbHZlci5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUF0dGFjaG1lbnQge1xyXG4gIGFzc2lnblRvOiBzdHJpbmc7XHJcbiAgc2VydmVyRmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZU5hbWU6IHN0cmluZztcclxuICBjbGllbnRGaWxlVHlwZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVEYXRhOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1hdHRhY2htZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFVwbG9hZGVkRmlsZW5hbWVDdXRvZmZQaXBlLFxyXG4gICAgTWFwQXR0YWNobWVudFRvU2VydmVyUGlwZSxcclxuICAgIEltYWdlRXJyb3JSZXNvbHZlckRpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVBdHRhY2htZW50Q29tcG9uZW50LFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVBdHRhY2htZW50Q29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBuZ0NvbnRyb2whOiBOZ0NvbnRyb2w7XHJcblxyXG4gIEBJbnB1dCgpIGFzc2lnblRvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHJlYWRvbmx5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSB2YWx1ZVRvU2hvdyE6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgcHJldmlld2FibGUhOiBib29sZWFuO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlQXR0YWNobWVudCB8IG51bGw7XHJcbiAgb3ZlcnJpZGUgb25DaGFuZ2UhOiAoXzogSUNvcmVBdHRhY2htZW50IHwgbnVsbCkgPT4gdm9pZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElDb3JlQXR0YWNobWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBvYmo/LnNlcnZlckZpbGVOYW1lIHx8ICcnXHJcbiAgfVxyXG5cclxuICB3b3JrZXIhOiBXb3JrZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jhd0lucHV0JykgcmF3SW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuXHJcbiAgZHJvcGRvd25IZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgZHJvcGRvd25QYWRkaW5nOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgdXBsb2FkZWRGaWxlU2VydmljZTogVXBsb2FkZWRGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddKSB7XHJcbiAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddPy5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMucHJldmlld2FibGUgPSB0aGlzLnVwbG9hZGVkRmlsZVNlcnZpY2UuY2FuUHJldmlld0FzSW1hZ2UodGhpcy52YWx1ZVRvU2hvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcblxyXG4gICAgaWYgKCEhIXRoaXMuYXNzaWduVG8gJiYgISEhdGhpcy5yZWFkb25seSAmJiBpc0Rldk1vZGUoKSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgXHJcbiAgICAgIENvcmVBdHRhY2htZW50Q29tcG9uZW50IHJlcXVpcmVkIGlucHV0ICdhc3NpZ25UbydcclxuICAgICAgYCwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgICAgdGhpcy5kcm9wZG93bkhlaWdodCA9IDA7XHJcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duUGFkZGluZyA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkNsaWNrVXBsb2FkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgdGhpcy5kcm9wZG93bkhlaWdodCA9IDA7XHJcbiAgICB0aGlzLmRyb3Bkb3duUGFkZGluZyA9IDA7XHJcbiAgICB0aGlzLnJhd0lucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snKSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrRG93bmxvYWQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMudXBsb2FkZWRGaWxlU2VydmljZS5jYW5QcmV2aWV3QXNJbWFnZSh0aGlzLnZhbHVlVG9TaG93KSkge1xyXG5cclxuICAgICAgdGhpcy5kcm9wZG93bkhlaWdodCA9IHRoaXMuZHJvcGRvd25IZWlnaHQgPT09IDAgPyAyMDAgOiAwO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duUGFkZGluZyA9IHRoaXMuZHJvcGRvd25QYWRkaW5nID09PSAwID8gMTUgOiAwO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciB1cmkgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkwgKyAnLycgKyB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU1RBVElDX0ZPTERFUiArICcvYXR0YWNobWVudHMvJyArIHRoaXMudmFsdWVUb1Nob3dcclxuICAgICAgZmV0Y2godXJpKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmJsb2IoKSlcclxuICAgICAgICAudGhlbihibG9iID0+IHtcclxuICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgICAgICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy52YWx1ZVRvU2hvdy5zdWJzdHJpbmcoNTIpO1xyXG4gICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGlzUHJldmlld2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3YWJsZVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZTogYW55KSB7XHJcblxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBhdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGAke3RoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9BVFRBQ0hNRU5UX01BWElNVU1fQVRUQUNITUVOVF9GSUxFX1NJWkVfRVJST1IpfSAoJHthdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZX0gYnl0ZXMpYCwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmlsZVwiLCBmaWxlKVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlTmFtZSA9IGZpbGUubmFtZVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlVHlwZSA9IGZpbGUudHlwZVxyXG4gICAgICBsZXQgY2xpZW50RmlsZURhdGEgPSBcIlwiXHJcblxyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTtcclxuICAgICAgaWYgKHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JfdG9fYmFzZTY0X3NjcmlwdClcclxuICAgICAgICB0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndvcmtlciBtZXNzYWdlXCIsIGUpXHJcbiAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IGUuZGF0YVxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5pbmRleE9mKCdiYXNlNjQsJyk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICAgIGFzc2lnblRvOiB0aGlzLmFzc2lnblRvLFxyXG4gICAgICAgICAgICBzZXJ2ZXJGaWxlTmFtZTogdGhpcy52YWx1ZT8uc2VydmVyRmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlVHlwZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjbGllbnRGaWxlTmFtZTtcclxuICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoYmxvYik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29yZUZpbGVVdGlscy5wcm90b3R5cGUuYmxvYlRvQmFzZTY0KGJsb2IpLnRoZW4oKGNsaWVudEZpbGVEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtYXR0YWNobWVudC1jb250YWluZXJcIj5cclxuICAgIDxpbnB1dCBpZD1cInJhd0lucHV0XCIgI3Jhd0lucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBuZ0RlZmF1bHRDb250cm9sIFsobmdNb2RlbCldPVwidmFsdWVUb1Nob3dcIiByZWFkb25seVxyXG4gICAgICAgIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10by1zaG93XCIgW2FwcFRvb2x0aXBdPVwidmFsdWVUb1Nob3cgfCB1cGxvYWRlZEZpbGVuYW1lQ3V0b2ZmXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAoISF2YWx1ZVRvU2hvdyAmJiAhISF0b3VjaGVkKSA/ICd0cmFuc2xhdGUoMzBweCknIDogJ3RyYW5zbGF0ZSgwcHgpJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIHt7IHZhbHVlVG9TaG93IHwgdXBsb2FkZWRGaWxlbmFtZUN1dG9mZiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWljb24td3JhcHBlclwiIChjbGljayk9XCJvbkNsaWNrVXBsb2FkKClcIiBbY2xhc3Mub3BhY2l0eTBdPVwicmVhZG9ubHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci11cGxvYWRcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoISF2YWx1ZVRvU2hvdyAmJiAhISF0b3VjaGVkKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtaWNvbi13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xpY2tEb3dubG9hZCgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItZG93bmxvYWRcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBbbmdTdHlsZV09XCJ7IGhlaWdodDogZHJvcGRvd25IZWlnaHQgKyAncHgnLCBwYWRkaW5nOiBkcm9wZG93blBhZGRpbmcgKyAncHgnIH1cIj5cclxuICAgICAgICBAaWYgKHByZXZpZXdhYmxlKSB7XHJcbiAgICAgICAgPGltZyBbc3JjXT1cInZhbHVlVG9TaG93IHwgbWFwQXR0YWNobWVudFRvU2VydmVyXCIgaW1hZ2VFcnJvclJlc29sdmVyIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQW1DLEtBQUssRUFBb0MsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRyxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsMEJB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aEMsU0FBUzt1QkFBQyxXQUFXO2dCQWFDLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucywgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgYXR0YWNobWVudE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXR0YWNobWVudE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYmxvYl90b19iYXNlNjRfc2NyaXB0IH0gZnJvbSAnLi4vLi4vLi4vLi4vYXNzZXRzL2pzL2Jsb2IyYmFzZTY0X3drJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgY29yZUZpbGVVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL2Fzc2V0cy9qcy9jb3JlRmlsZVV0aWxzJztcclxuXHJcbmltcG9ydCB7IFVwbG9hZGVkRmlsZW5hbWVDdXRvZmZQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3VwbG9hZGVkLWZpbGVuYW1lLWN1dG9mZi5waXBlJztcclxuaW1wb3J0IHsgVXBsb2FkZWRGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VwbG9hZGVkLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hcEF0dGFjaG1lbnRUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF0dGFjaG1lbnQtdG8tc2VydmVyLnBpcGUnO1xyXG5pbXBvcnQgeyBJbWFnZUVycm9yUmVzb2x2ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2ltYWdlLWVycm9yLXJlc29sdmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb3JlQXR0YWNobWVudCB7XHJcbiAgYXNzaWduVG86IHN0cmluZztcclxuICBzZXJ2ZXJGaWxlTmFtZT86IHN0cmluZztcclxuICBjbGllbnRGaWxlTmFtZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVUeXBlOiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZURhdGE6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWF0dGFjaG1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgVXBsb2FkZWRGaWxlbmFtZUN1dG9mZlBpcGUsXHJcbiAgICBNYXBBdHRhY2htZW50VG9TZXJ2ZXJQaXBlLFxyXG4gICAgSW1hZ2VFcnJvclJlc29sdmVyRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29yZUF0dGFjaG1lbnRDb21wb25lbnQsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUF0dGFjaG1lbnRDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgQElucHV0KCkgYXNzaWduVG8hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHZhbHVlVG9TaG93ITogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBwcmV2aWV3YWJsZSE6IGJvb2xlYW47XHJcblxyXG4gIG92ZXJyaWRlIHZhbHVlITogSUNvcmVBdHRhY2htZW50IHwgbnVsbDtcclxuICBvdmVycmlkZSBvbkNoYW5nZSE6IChfOiBJQ29yZUF0dGFjaG1lbnQgfCBudWxsKSA9PiB2b2lkO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogSUNvcmVBdHRhY2htZW50IHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IG9iaj8uc2VydmVyRmlsZU5hbWUgfHwgJydcclxuICB9XHJcblxyXG4gIHdvcmtlciE6IFdvcmtlcjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncmF3SW5wdXQnKSByYXdJbnB1dCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxpc3RlbmVyRm4hOiAoKSA9PiB2b2lkO1xyXG5cclxuICBkcm9wZG93bkhlaWdodDogbnVtYmVyID0gMDtcclxuICBkcm9wZG93blBhZGRpbmc6IG51bWJlciA9IDA7XHJcbiAgZHJvcGRvd25aSW5kZXg6IG51bWJlciA9IDE7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1cGxvYWRlZEZpbGVTZXJ2aWNlOiBVcGxvYWRlZEZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlVG9TaG93J10pIHtcclxuICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IGNoYW5nZXNbJ3ZhbHVlVG9TaG93J10/LmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5wcmV2aWV3YWJsZSA9IHRoaXMudXBsb2FkZWRGaWxlU2VydmljZS5jYW5QcmV2aWV3QXNJbWFnZSh0aGlzLnZhbHVlVG9TaG93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcclxuXHJcbiAgICBpZiAoISEhdGhpcy5hc3NpZ25UbyAmJiAhISF0aGlzLnJlYWRvbmx5ICYmIGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGBcclxuICAgICAgQ29yZUF0dGFjaG1lbnRDb21wb25lbnQgcmVxdWlyZWQgaW5wdXQgJ2Fzc2lnblRvJ1xyXG4gICAgICBgLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duSGVpZ2h0ID0gMDtcclxuICAgICAgICAgIHRoaXMuZHJvcGRvd25QYWRkaW5nID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duWkluZGV4ID0gdGhpcy5kb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkNsaWNrVXBsb2FkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgdGhpcy5kcm9wZG93bkhlaWdodCA9IDA7XHJcbiAgICB0aGlzLmRyb3Bkb3duUGFkZGluZyA9IDA7XHJcbiAgICB0aGlzLnJhd0lucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snKSk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrRG93bmxvYWQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMudXBsb2FkZWRGaWxlU2VydmljZS5jYW5QcmV2aWV3QXNJbWFnZSh0aGlzLnZhbHVlVG9TaG93KSkge1xyXG5cclxuICAgICAgdGhpcy5kcm9wZG93bkhlaWdodCA9IHRoaXMuZHJvcGRvd25IZWlnaHQgPT09IDAgPyAyMDAgOiAwO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duUGFkZGluZyA9IHRoaXMuZHJvcGRvd25QYWRkaW5nID09PSAwID8gMTUgOiAwO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciB1cmkgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkwgKyAnLycgKyB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU1RBVElDX0ZPTERFUiArICcvYXR0YWNobWVudHMvJyArIHRoaXMudmFsdWVUb1Nob3dcclxuICAgICAgZmV0Y2godXJpKVxyXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmJsb2IoKSlcclxuICAgICAgICAudGhlbihibG9iID0+IHtcclxuICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgICAgICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy52YWx1ZVRvU2hvdy5zdWJzdHJpbmcoNTIpO1xyXG4gICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGlzUHJldmlld2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3YWJsZVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZTogYW55KSB7XHJcblxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBhdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGAke3RoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9BVFRBQ0hNRU5UX01BWElNVU1fQVRUQUNITUVOVF9GSUxFX1NJWkVfRVJST1IpfSAoJHthdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZX0gYnl0ZXMpYCwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmlsZVwiLCBmaWxlKVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlTmFtZSA9IGZpbGUubmFtZVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlVHlwZSA9IGZpbGUudHlwZVxyXG4gICAgICBsZXQgY2xpZW50RmlsZURhdGEgPSBcIlwiXHJcblxyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTtcclxuICAgICAgaWYgKHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JfdG9fYmFzZTY0X3NjcmlwdClcclxuICAgICAgICB0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndvcmtlciBtZXNzYWdlXCIsIGUpXHJcbiAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IGUuZGF0YVxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5pbmRleE9mKCdiYXNlNjQsJyk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICAgIGFzc2lnblRvOiB0aGlzLmFzc2lnblRvLFxyXG4gICAgICAgICAgICBzZXJ2ZXJGaWxlTmFtZTogdGhpcy52YWx1ZT8uc2VydmVyRmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlVHlwZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjbGllbnRGaWxlTmFtZTtcclxuICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoYmxvYik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29yZUZpbGVVdGlscy5wcm90b3R5cGUuYmxvYlRvQmFzZTY0KGJsb2IpLnRoZW4oKGNsaWVudEZpbGVEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTp2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9ICcnO1xyXG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICAgIGNvbnN0IHNpYmxpbmcgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5wYXJlbnQ/LmdldCh0aGlzLmFzc2lnblRvKTtcclxuICAgIGlmICghc2libGluZykge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgQ2jGsGEga2hhaSBiw6FvIGZpZWxkICcke3RoaXMuYXNzaWduVG99J2AsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2libGluZy5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWF0dGFjaG1lbnQtY29udGFpbmVyXCI+XHJcbiAgICA8aW5wdXQgaWQ9XCJyYXdJbnB1dFwiICNyYXdJbnB1dCB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgbmdEZWZhdWx0Q29udHJvbCBbKG5nTW9kZWwpXT1cInZhbHVlVG9TaG93XCIgcmVhZG9ubHlcclxuICAgICAgICBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdG8tc2hvd1wiIFthcHBUb29sdGlwXT1cInZhbHVlVG9TaG93IHwgdXBsb2FkZWRGaWxlbmFtZUN1dG9mZlwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogKCEhdmFsdWVUb1Nob3cgJiYgISEhdG91Y2hlZCkgPyAndHJhbnNsYXRlKDMwcHgpJyA6ICd0cmFuc2xhdGUoMHB4KSdcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICB7eyB2YWx1ZVRvU2hvdyB8IHVwbG9hZGVkRmlsZW5hbWVDdXRvZmYgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYgKCEhdmFsdWVUb1Nob3cpIHtcclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIiAoY2xpY2spPVwiY2xlYXIoKVwiPjwvaT5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbi13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xpY2tVcGxvYWQoKVwiIFtjbGFzcy5vcGFjaXR5MF09XCJyZWFkb25seVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXVwbG9hZFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmICghIXZhbHVlVG9TaG93ICYmICEhIXRvdWNoZWQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJkb3dubG9hZC1pY29uLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGlja0Rvd25sb2FkKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1kb3dubG9hZFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBkcm9wZG93bkhlaWdodCArICdweCcsIHBhZGRpbmc6IGRyb3Bkb3duUGFkZGluZyArICdweCcsIHpJbmRleDogZHJvcGRvd25aSW5kZXggfVwiPlxyXG4gICAgICAgIEBpZiAocHJldmlld2FibGUpIHtcclxuICAgICAgICA8aW1nIFtzcmNdPVwidmFsdWVUb1Nob3cgfCBtYXBBdHRhY2htZW50VG9TZXJ2ZXJcIiBpbWFnZUVycm9yUmVzb2x2ZXIgLz5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
|
|
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
96
96
|
}], options: [{
|
|
97
97
|
type: Input
|
|
98
98
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWxpc3QvY29yZS1saXN0L2NvcmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1saXN0L2NvcmUtbGlzdC9jb3JlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFnQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUEyQmxFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSw0QkFBNEI7SUFnQmpFLFlBQ1UsR0FBeUIsRUFDekIsUUFBa0I7UUFDeEIsS0FBSyxFQUFFLENBQUE7UUFGRCxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWDVCLGtCQUFh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RUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7U0FDRixzRUNsQ0gsaXpCQWVNLDBneGRETUYsWUFBWSwrUEFDWixXQUFXLCttQkFDWCxrQkFBa0IscURBQ2xCLGFBQWE7OzJGQVlKLGlCQUFpQjtrQkFuQjdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixhQUFhO3FCQUNkLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxtQkFBbUI7eUJBQy9CO3FCQUNGO2dIQU1RLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGhyZWVkb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGhyZWVkb3RzL3RocmVlZG90cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVMaXN0T3B0aW9uIHtcclxuICB2YWx1ZTogbnVtYmVyO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRocmVlZG90c0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29yZUxpc3RDb21wb25lbnRcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTGlzdENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgb3B0aW9ucyE6IElDb3JlTGlzdE9wdGlvbltdO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGxvY2FsT3B0aW9uczogSUNvcmVMaXN0T3B0aW9uW10gPSBbXTtcclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHBsYWNlaG9sZGVyID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01NT05fUExBQ0VfSE9MREVSX1NFQVJDSF9IRVJFO1xyXG4gIHRleHQhOiBzdHJpbmc7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxhbmchOiBzdHJpbmc7XHJcbiAgc2VhcmNoU3RyZWFtJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkgeyBzdXBlcigpIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoISEheCkgdGhpcy50ZXh0ID0gXCJcIlxyXG4gICAgICAgIH0pIVxyXG4gICAgICApXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIC8qKioqKioqKioqKi9cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnNlYXJjaFN0cmVhbSQucGlwZShcclxuICAgICAgICBtYXAoeCA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIm1hcFwiLCB4KVxyXG4gICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgICApLnN1YnNjcmliZSh0ZXh0ID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMuc2VhcmNoU3RyZWFtJFwiLCB0ZXh0KVxyXG4gICAgICAgIHRoaXMubG9jYWxPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcih4ID0+IHgudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGV4dC50b0xvd2VyQ2FzZSgpKSA+PSAwKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBhc3luYyBvblNjcm9sbExvYWREYXRhKCl7XHJcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50PSB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50XHJcbiAgICBjb25zb2xlLmxvZyhuYXRpdmVFbGVtZW50LnNjcm9sbFRvcClcclxuICAgIGlmKG5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgTWF0aC5yb3VuZChuYXRpdmVFbGVtZW50LnNjcm9sbFRvcCkgPT09IG5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICAmJiAgdGhpcy5vcHRpb25zLmxlbmd0aCAhPT0gdGhpcy50b3RhbENvdW50KXtcclxuICAgICAgLy90aGlzLmxvY2FsT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcclxuICAgICAgdGhpcy5wYWdlSW5kZXggKz0xO1xyXG4gICAgICBuYXRpdmVFbGVtZW50LnNjcm9sbFRvcD0wO1xyXG4gICAgfVxyXG4gIH1cclxuICAqL1xyXG5cclxuICBvbkxpc3RJdGVtQ2xpY2sob3B0aW9uOiBJQ29yZUxpc3RPcHRpb24pIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ29yZUxpc3RDb21wb25lbnQgb25MaXN0SXRlbUNsaWNrXCIsIG9wdGlvbik7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUob3B0aW9uLnZhbHVlKVxyXG4gICAgdGhpcy5vbkNoYW5nZShvcHRpb24udmFsdWUpXHJcbiAgfVxyXG5cclxuICBvblNlYXJjaFRleHRDaGFuZ2UoZTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm9uU2VhcmNoVGV4dENoYW5nZVwiLCBlKVxyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC10aHJlZWRvdHMgKm5nSWY9XCJsb2FkaW5nXCI+PC9hcHAtdGhyZWVkb3RzPlxyXG48ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWxpc3QtY29udGFpbmVyXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgPGg0ICpuZ0lmPVwiISF0aXRsZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlOiBsYW5nfX08L2g0PlxyXG4gICAgPGRpdiBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIHNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlOiBsYW5nXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoVGV4dENoYW5nZSgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dWwgI3VsRWxlbWVudD5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbG9jYWxPcHRpb25zOyBsZXQgaW5kZXggPSBpbmRleFwiIChjbGljayk9XCJvbkxpc3RJdGVtQ2xpY2sob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIm9wdGlvbi52YWx1ZSA9PT0gdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBvcHRpb24udGV4dCB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWxpc3QvY29yZS1saXN0L2NvcmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1saXN0L2NvcmUtbGlzdC9jb3JlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFnQixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUEyQmxFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSw0QkFBNEI7SUFnQmpFLFlBQ1UsR0FBeUIsRUFDekIsUUFBa0I7UUFDeEIsS0FBSyxFQUFFLENBQUE7UUFGRCxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWDVCLGtCQUFh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RUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7U0FDRixzRUNsQ0gsaXpCQWVNLDBneGRETUYsWUFBWSwrUEFDWixXQUFXLCttQkFDWCxrQkFBa0IscURBQ2xCLGFBQWE7OzJGQVlKLGlCQUFpQjtrQkFuQjdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixhQUFhO3FCQUNkLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxtQkFBbUI7eUJBQy9CO3FCQUNGO2dIQU1RLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGhyZWVkb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGhyZWVkb3RzL3RocmVlZG90cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVMaXN0T3B0aW9uIHtcclxuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRocmVlZG90c0NvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29yZUxpc3RDb21wb25lbnRcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTGlzdENvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgb3B0aW9ucyE6IElDb3JlTGlzdE9wdGlvbltdO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGxvY2FsT3B0aW9uczogSUNvcmVMaXN0T3B0aW9uW10gPSBbXTtcclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHBsYWNlaG9sZGVyID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT01NT05fUExBQ0VfSE9MREVSX1NFQVJDSF9IRVJFO1xyXG4gIHRleHQhOiBzdHJpbmc7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxhbmchOiBzdHJpbmc7XHJcbiAgc2VhcmNoU3RyZWFtJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkgeyBzdXBlcigpIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLmxvY2FsT3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoISEheCkgdGhpcy50ZXh0ID0gXCJcIlxyXG4gICAgICAgIH0pIVxyXG4gICAgICApXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIC8qKioqKioqKioqKi9cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnNlYXJjaFN0cmVhbSQucGlwZShcclxuICAgICAgICBtYXAoeCA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIm1hcFwiLCB4KVxyXG4gICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgICApLnN1YnNjcmliZSh0ZXh0ID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMuc2VhcmNoU3RyZWFtJFwiLCB0ZXh0KVxyXG4gICAgICAgIHRoaXMubG9jYWxPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcih4ID0+IHgudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGV4dC50b0xvd2VyQ2FzZSgpKSA+PSAwKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBhc3luYyBvblNjcm9sbExvYWREYXRhKCl7XHJcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50PSB0aGlzLnVsRWxlbWVudC5uYXRpdmVFbGVtZW50XHJcbiAgICBjb25zb2xlLmxvZyhuYXRpdmVFbGVtZW50LnNjcm9sbFRvcClcclxuICAgIGlmKG5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgTWF0aC5yb3VuZChuYXRpdmVFbGVtZW50LnNjcm9sbFRvcCkgPT09IG5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICAmJiAgdGhpcy5vcHRpb25zLmxlbmd0aCAhPT0gdGhpcy50b3RhbENvdW50KXtcclxuICAgICAgLy90aGlzLmxvY2FsT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcclxuICAgICAgdGhpcy5wYWdlSW5kZXggKz0xO1xyXG4gICAgICBuYXRpdmVFbGVtZW50LnNjcm9sbFRvcD0wO1xyXG4gICAgfVxyXG4gIH1cclxuICAqL1xyXG5cclxuICBvbkxpc3RJdGVtQ2xpY2sob3B0aW9uOiBJQ29yZUxpc3RPcHRpb24pIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ29yZUxpc3RDb21wb25lbnQgb25MaXN0SXRlbUNsaWNrXCIsIG9wdGlvbik7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUob3B0aW9uLnZhbHVlKVxyXG4gICAgdGhpcy5vbkNoYW5nZShvcHRpb24udmFsdWUpXHJcbiAgfVxyXG5cclxuICBvblNlYXJjaFRleHRDaGFuZ2UoZTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm9uU2VhcmNoVGV4dENoYW5nZVwiLCBlKVxyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC10aHJlZWRvdHMgKm5nSWY9XCJsb2FkaW5nXCI+PC9hcHAtdGhyZWVkb3RzPlxyXG48ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWxpc3QtY29udGFpbmVyXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgPGg0ICpuZ0lmPVwiISF0aXRsZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlOiBsYW5nfX08L2g0PlxyXG4gICAgPGRpdiBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIHNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlOiBsYW5nXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoVGV4dENoYW5nZSgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dWwgI3VsRWxlbWVudD5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbG9jYWxPcHRpb25zOyBsZXQgaW5kZXggPSBpbmRleFwiIChjbGljayk9XCJvbkxpc3RJdGVtQ2xpY2sob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIm9wdGlvbi52YWx1ZSA9PT0gdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyBvcHRpb24udGV4dCB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -14768,7 +14768,7 @@ class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
14768
14768
|
writeValue(obj) {
|
|
14769
14769
|
this.valueToShow = obj?.serverFileName || '';
|
|
14770
14770
|
}
|
|
14771
|
-
constructor(injector, alertService, mls, appConfigService, uploadedFileService, renderer) {
|
|
14771
|
+
constructor(injector, alertService, mls, appConfigService, uploadedFileService, renderer, domService) {
|
|
14772
14772
|
super();
|
|
14773
14773
|
this.injector = injector;
|
|
14774
14774
|
this.alertService = alertService;
|
|
@@ -14776,8 +14776,10 @@ class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
14776
14776
|
this.appConfigService = appConfigService;
|
|
14777
14777
|
this.uploadedFileService = uploadedFileService;
|
|
14778
14778
|
this.renderer = renderer;
|
|
14779
|
+
this.domService = domService;
|
|
14779
14780
|
this.dropdownHeight = 0;
|
|
14780
14781
|
this.dropdownPadding = 0;
|
|
14782
|
+
this.dropdownZIndex = 1;
|
|
14781
14783
|
}
|
|
14782
14784
|
ngOnChanges(changes) {
|
|
14783
14785
|
if (changes['valueToShow']) {
|
|
@@ -14801,6 +14803,7 @@ class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
14801
14803
|
this.dropdownPadding = 0;
|
|
14802
14804
|
}
|
|
14803
14805
|
});
|
|
14806
|
+
this.dropdownZIndex = this.domService.getMaxZIndex() + 1;
|
|
14804
14807
|
});
|
|
14805
14808
|
}
|
|
14806
14809
|
onClickUpload() {
|
|
@@ -14883,14 +14886,28 @@ class CoreAttachmentComponent extends CoreFormControlBaseComponent {
|
|
|
14883
14886
|
}
|
|
14884
14887
|
}
|
|
14885
14888
|
}
|
|
14886
|
-
|
|
14889
|
+
clear() {
|
|
14890
|
+
this.value = null;
|
|
14891
|
+
this.valueToShow = '';
|
|
14892
|
+
this.onChange(null);
|
|
14893
|
+
const sibling = this.ngControl.control?.parent?.get(this.assignTo);
|
|
14894
|
+
if (!sibling) {
|
|
14895
|
+
if (isDevMode()) {
|
|
14896
|
+
this.alertService.error(`Chưa khai báo field '${this.assignTo}'`, noneAutoClosedAlertOptions);
|
|
14897
|
+
}
|
|
14898
|
+
}
|
|
14899
|
+
else {
|
|
14900
|
+
sibling.patchValue(null);
|
|
14901
|
+
}
|
|
14902
|
+
}
|
|
14903
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, deps: [{ token: i0.Injector }, { token: AlertService }, { token: MultiLanguageService }, { token: AppConfigService }, { token: UploadedFileService }, { token: i0.Renderer2 }, { token: DomService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14887
14904
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreAttachmentComponent, isStandalone: true, selector: "core-attachment", inputs: { assignTo: "assignTo", readonly: "readonly", valueToShow: "valueToShow" }, providers: [
|
|
14888
14905
|
{
|
|
14889
14906
|
provide: NG_VALUE_ACCESSOR,
|
|
14890
14907
|
multi: true,
|
|
14891
14908
|
useExisting: CoreAttachmentComponent,
|
|
14892
14909
|
}
|
|
14893
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% -
|
|
14910
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "rawInput", first: true, predicate: ["rawInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n @if (!!valueToShow) {\r\n <i class=\"feather-x\" (click)=\"clear()\"></i>\r\n }\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px', zIndex: dropdownZIndex }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 70px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.core-attachment-container i.feather-x{display:block;position:absolute;right:35px;top:5px;z-index:1;font-size:24px;color:#d3d3d3;cursor:pointer}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: UploadedFilenameCutoffPipe, name: "uploadedFilenameCutoff" }, { kind: "pipe", type: MapAttachmentToServerPipe, name: "mapAttachmentToServer" }] }); }
|
|
14894
14911
|
}
|
|
14895
14912
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreAttachmentComponent, decorators: [{
|
|
14896
14913
|
type: Component,
|
|
@@ -14907,8 +14924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
14907
14924
|
multi: true,
|
|
14908
14925
|
useExisting: CoreAttachmentComponent,
|
|
14909
14926
|
}
|
|
14910
|
-
], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px' }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% -
|
|
14911
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: AlertService }, { type: MultiLanguageService }, { type: AppConfigService }, { type: UploadedFileService }, { type: i0.Renderer2 }], propDecorators: { assignTo: [{
|
|
14927
|
+
], template: "<div #container class=\"core-attachment-container\">\r\n <input id=\"rawInput\" #rawInput type=\"file\" (change)=\"handleInputChange($event)\">\r\n <div class=\"form-control\" type=\"text\" ngDefaultControl [(ngModel)]=\"valueToShow\" readonly\r\n [class.form-control-disabled]=\"disabled\">\r\n <div class=\"text-to-show\" [appTooltip]=\"valueToShow | uploadedFilenameCutoff\" [ngStyle]=\"{\r\n transform: (!!valueToShow && !!!touched) ? 'translate(30px)' : 'translate(0px)'\r\n }\">\r\n {{ valueToShow | uploadedFilenameCutoff }}\r\n </div>\r\n @if (!!valueToShow) {\r\n <i class=\"feather-x\" (click)=\"clear()\"></i>\r\n }\r\n </div>\r\n <div class=\"upload-icon-wrapper\" (click)=\"onClickUpload()\" [class.opacity0]=\"readonly\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-upload\"></i>\r\n </div>\r\n </div>\r\n @if (!!valueToShow && !!!touched) {\r\n <div class=\"download-icon-wrapper\" (click)=\"onClickDownload()\">\r\n <div class=\"flex-wrapper\">\r\n <i class=\"feather-download\"></i>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"dropdown\" [ngStyle]=\"{ height: dropdownHeight + 'px', padding: dropdownPadding + 'px', zIndex: dropdownZIndex }\">\r\n @if (previewable) {\r\n <img [src]=\"valueToShow | mapAttachmentToServer\" imageErrorResolver />\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-attachment-container{--height: 35px;display:block;position:relative;background-color:#fff;width:100%}.core-attachment-container .dropdown{box-sizing:border-box;display:block;position:absolute;width:100%;overflow:hidden;background-color:#fff;font-size:15px;box-shadow:0 1rem 3rem #0000002e;transition:height .25s linear;z-index:calc(var(--max-z-index) + 1)}.core-attachment-container .dropdown img{transform:none;max-width:100%;max-height:170px}.core-attachment-container .dropdown img:hover{transform:none}.core-attachment-container #rawInput{display:none}.core-attachment-container .text-to-show{width:calc(100% - 70px);height:calc(var(--height) - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.core-attachment-container i.feather-x{display:block;position:absolute;right:35px;top:5px;z-index:1;font-size:24px;color:#d3d3d3;cursor:pointer}.core-attachment-container>.upload-icon-wrapper{right:3px;top:3px}.core-attachment-container>.download-icon-wrapper{left:3px;top:3px}.core-attachment-container>.upload-icon-wrapper,.core-attachment-container>.download-icon-wrapper{display:block;position:absolute;background-color:#e9e9e9;width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);border-radius:.275rem;cursor:pointer}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper,.core-attachment-container>.download-icon-wrapper>.flex-wrapper{width:calc(var(--height) - 6px);height:calc(var(--height) - 6px);display:flex;align-items:center;justify-content:center}.core-attachment-container>.upload-icon-wrapper>.flex-wrapper>i,.core-attachment-container>.download-icon-wrapper>.flex-wrapper>i{color:#848484;font-size:20px}.core-attachment-container .source-container{display:block;background-color:var(--color-bg-main);padding:var(--size-layout-block-cell-spacing);max-width:1200px;max-height:800px;overflow:hidden;border-radius:10px}.core-attachment-container .source-container i{font-size:20px;cursor:pointer;float:right}.core-attachment-container .source-container.d-none{display:none}.core-attachment-container .source-container>caption{display:block;width:100%}\n"] }]
|
|
14928
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: AlertService }, { type: MultiLanguageService }, { type: AppConfigService }, { type: UploadedFileService }, { type: i0.Renderer2 }, { type: DomService }], propDecorators: { assignTo: [{
|
|
14912
14929
|
type: Input
|
|
14913
14930
|
}], readonly: [{
|
|
14914
14931
|
type: Input
|