@skyux/forms 11.0.0-alpha.9 → 11.0.0-beta.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/documentation.json +3570 -3450
- package/esm2022/index.mjs +1 -3
- package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +5 -5
- package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +3 -3
- package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +3 -3
- package/esm2022/lib/modules/character-counter/character-counter.module.mjs +4 -4
- package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +6 -6
- package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +5 -6
- package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
- package/esm2022/lib/modules/checkbox/checkbox.component.mjs +13 -22
- package/esm2022/lib/modules/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/modules/field-group/field-group.component.mjs +5 -6
- package/esm2022/lib/modules/field-group/field-group.module.mjs +4 -4
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.mjs +22 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.mjs +5 -6
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +22 -28
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.mjs +4 -4
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.mjs +3 -3
- package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +4 -4
- package/esm2022/lib/modules/file-attachment/file-drop/file-drop.component.mjs +16 -23
- package/esm2022/lib/modules/file-attachment/file-drop/file-drop.module.mjs +4 -4
- package/esm2022/lib/modules/file-attachment/file-drop/file-item.component.mjs +7 -14
- package/esm2022/lib/modules/file-attachment/shared/file-item.service.mjs +3 -3
- package/esm2022/lib/modules/file-attachment/shared/file-size.pipe.mjs +3 -3
- package/esm2022/lib/modules/form-error/form-error.component.mjs +24 -24
- package/esm2022/lib/modules/form-error/form-error.module.mjs +4 -4
- package/esm2022/lib/modules/form-error/form-errors.component.mjs +18 -20
- package/esm2022/lib/modules/form-error/form-errors.module.mjs +4 -4
- package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-host.service.mjs +21 -4
- package/esm2022/lib/modules/input-box/input-box.component.mjs +30 -30
- package/esm2022/lib/modules/input-box/input-box.module.mjs +4 -4
- package/esm2022/lib/modules/radio/radio-group-id.service.mjs +3 -3
- package/esm2022/lib/modules/radio/radio-group.component.mjs +11 -19
- package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
- package/esm2022/lib/modules/radio/radio.component.mjs +9 -16
- package/esm2022/lib/modules/radio/radio.module.mjs +4 -4
- package/esm2022/lib/modules/required-state/required-state.directive.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +4 -4
- package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
- package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +6 -8
- package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
- package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +9 -16
- package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
- package/esm2022/testing/checkbox/checkbox-harness.mjs +2 -6
- package/fesm2022/skyux-forms-testing.mjs +1 -5
- package/fesm2022/skyux-forms-testing.mjs.map +1 -1
- package/fesm2022/skyux-forms.mjs +294 -343
- package/fesm2022/skyux-forms.mjs.map +1 -1
- package/index.d.ts +1 -2
- package/lib/modules/checkbox/checkbox.component.d.ts +1 -2
- package/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.d.ts +11 -0
- package/lib/modules/file-attachment/file-attachment/file-attachment.component.d.ts +8 -8
- package/lib/modules/file-attachment/file-drop/file-drop.component.d.ts +1 -2
- package/lib/modules/form-error/form-errors.component.d.ts +9 -5
- package/lib/modules/input-box/input-box-host.service.d.ts +10 -1
- package/lib/modules/input-box/input-box.component.d.ts +1 -6
- package/lib/modules/radio/radio-group.component.d.ts +1 -2
- package/lib/modules/radio/radio.component.d.ts +1 -2
- package/lib/modules/toggle-switch/toggle-switch.component.d.ts +1 -2
- package/package.json +14 -14
- package/esm2022/lib/modules/shared/form-field-label-text-required.directive.mjs +0 -37
- package/esm2022/lib/modules/shared/form-field-label-text-required.service.mjs +0 -21
- package/lib/modules/shared/form-field-label-text-required.directive.d.ts +0 -14
- package/lib/modules/shared/form-field-label-text-required.service.d.ts +0 -11
|
@@ -10,18 +10,16 @@ import { take } from 'rxjs/operators';
|
|
|
10
10
|
import { SkyFormErrorComponent } from '../../form-error/form-error.component';
|
|
11
11
|
import { SKY_FORM_ERRORS_ENABLED } from '../../form-error/form-errors-enabled-token';
|
|
12
12
|
import { SkyFormErrorsComponent } from '../../form-error/form-errors.component';
|
|
13
|
-
import { SkyFormFieldLabelTextRequiredDirective } from '../../shared/form-field-label-text-required.directive';
|
|
14
13
|
import { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module';
|
|
15
14
|
import { SkyFileAttachmentService } from '../file-attachment/file-attachment.service';
|
|
16
15
|
import { SkyFileSizePipe } from '../shared/file-size.pipe';
|
|
17
16
|
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "
|
|
19
|
-
import * as i2 from "@angular/
|
|
20
|
-
import * as i3 from "@
|
|
21
|
-
import * as i4 from "@skyux/
|
|
22
|
-
import * as i5 from "@skyux/
|
|
23
|
-
import * as i6 from "@skyux/
|
|
24
|
-
import * as i7 from "@skyux/core";
|
|
17
|
+
import * as i1 from "@angular/common";
|
|
18
|
+
import * as i2 from "@angular/forms";
|
|
19
|
+
import * as i3 from "@skyux/i18n";
|
|
20
|
+
import * as i4 from "@skyux/help-inline";
|
|
21
|
+
import * as i5 from "@skyux/icon";
|
|
22
|
+
import * as i6 from "@skyux/core";
|
|
25
23
|
const MAX_FILE_SIZE_DEFAULT = 500000;
|
|
26
24
|
const MIN_FILE_SIZE_DEFAULT = 0;
|
|
27
25
|
/**
|
|
@@ -254,20 +252,18 @@ export class SkyFileDropComponent {
|
|
|
254
252
|
this.rejectedFiles = rejectedFileArray;
|
|
255
253
|
}
|
|
256
254
|
}
|
|
257
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
258
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
255
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
256
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: SkyFileDropComponent, isStandalone: true, selector: "sky-file-drop", inputs: { fileUploadAriaLabel: "fileUploadAriaLabel", linkUploadAriaLabel: "linkUploadAriaLabel", minFileSize: "minFileSize", maxFileSize: "maxFileSize", multiple: "multiple", validateFn: "validateFn", acceptedTypes: "acceptedTypes", acceptedTypesErrorMessage: "acceptedTypesErrorMessage", noClick: "noClick", allowLinks: "allowLinks", labelText: "labelText", labelHidden: ["labelHidden", "labelHidden", booleanAttribute], hintText: "hintText", required: ["required", "required", booleanAttribute], helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", stacked: ["stacked", "stacked", booleanAttribute], helpKey: "helpKey" }, outputs: { filesChanged: "filesChanged", linkInputBlur: "linkInputBlur", linkChanged: "linkChanged" }, host: { properties: { "class.sky-margin-stacked-lg": "this.stacked" } }, providers: [
|
|
259
257
|
SkyFileAttachmentService,
|
|
260
258
|
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
|
261
|
-
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["fileInput"], descendants: true }], hostDirectives: [{ directive: i1.SkyFormFieldLabelTextRequiredDirective, inputs: ["labelText", "labelText"] }], ngImport: i0, template: "<fieldset>\n <legend\n *ngIf=\"labelText\"\n class=\"sky-control-label sky-font-body-default sky-margin-stacked-xs\"\n [ngClass]=\"{\n 'sky-screen-reader-only': labelHidden\n }\"\n >\n <span\n class=\"sky-margin-inline-xs\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</span\n ><span class=\"sky-screen-reader-only\" *ngIf=\"required\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span\n ><sky-help-inline\n *ngIf=\"helpPopoverContent || helpKey\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </legend>\n <div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n >\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n ></button>\n\n <input\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n #fileInput\n />\n\n <div\n class=\"sky-file-drop-contents sky-padding-even-default\"\n *ngIf=\"customEl.children.length === 0\"\n >\n <div class=\"sky-file-drop-contents-not-over\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drag_file_here'\n | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"cloud-upload\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"bullseye\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_invalid_file' | skyLibResources\n }}\n </div>\n <sky-icon icon=\"times-circle\" class=\"sky-file-upload-icon\" />\n </div>\n </div>\n\n <div class=\"sky-file-drop-contents-custom\" #customEl>\n <ng-content />\n </div>\n </div>\n <div class=\"sky-file-drop-col\" *ngIf=\"allowLinks\">\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_link_label' | skyLibResources\n }}\n </div>\n </div>\n <div class=\"sky-margin-stacked-xs\">\n <input\n type=\"text\"\n class=\"sky-form-control\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_label'\n | skyLibResources)\n \"\n [attr.aria-describedby]=\"uploadHintText.id\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </div>\n <div\n skyId\n #uploadHintText=\"skyId\"\n class=\"sky-font-deemphasized sky-file-drop-hint-text sky-margin-stacked-sm\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_placeholder'\n | skyLibResources\n }}\n </div>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-file-drop-hint-text\">\n {{ hintText }}\n </div>\n </div>\n</fieldset>\n<sky-form-errors\n *ngIf=\"labelText && rejectedFiles.length\"\n class=\"sky-file-drop-errors\"\n [id]=\"errorId\"\n [labelText]=\"labelText\"\n [showErrors]=\"rejectedFiles.length\"\n>\n <div *ngFor=\"let rejectedFile of rejectedFiles\">\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'fileType'\"\n errorName=\"fileType\"\n [errorText]=\"\n 'skyux_file_attachment_file_type_error_label_text_with_name'\n | skyLibResources: rejectedFile.file.name : rejectedFile.errorParam\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'maxFileSize'\"\n errorName=\"maxFileSize\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'minFileSize'\"\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'validate' && rejectedFile.errorParam\"\n errorName=\"validate\"\n [errorText]=\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\"\n />\n </div>\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg{display:block}.sky-file-drop-col{padding-left:5px;padding-right:5px;position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;background-color:#eeeeef;color:#212327;cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:5px}.sky-file-drop-no-click .sky-file-drop-contents{cursor:default}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-margin-stacked-xs)}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:dashed;border-width:1px}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:#72bf44;color:#212327}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:#ef4044;color:#212327}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;font-size:40px;max-height:40px;margin-top:10px}.sky-file-drop-link{cursor:default}.sky-file-drop-text-header{margin:0}.sky-file-drop-text{font-size:15px;margin-top:5px;margin-bottom:20px}.sky-file-drop-text,.sky-file-drop-text-header{line-height:1.1;display:block}.sky-file-upload-icon{color:#686c73}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-file-drop-errors{margin-bottom:10px}:host-context(.sky-theme-modern) .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}.sky-theme-modern .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SkyFileSizePipe, name: "skyFileSize" }, { kind: "component", type: SkyFormErrorComponent, selector: "sky-form-error", inputs: ["errorName", "errorText"] }, { kind: "component", type: SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }, { kind: "ngmodule", type: SkyFormsResourcesModule }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i5.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i7.λ2, selector: "[skyId]", exportAs: ["skyId"] }] }); }
|
|
259
|
+
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<fieldset>\n @if (labelText) {\n <legend\n class=\"sky-control-label sky-font-body-default sky-margin-stacked-xs\"\n [ngClass]=\"{\n 'sky-screen-reader-only': labelHidden\n }\"\n >\n <span\n class=\"sky-margin-inline-xs\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</span\n >\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n </legend>\n }\n <div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n >\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n ></button>\n\n <input\n #fileInput\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n />\n\n @if (customEl.children.length === 0) {\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-contents-not-over\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drag_file_here'\n | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"cloud-upload\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"bullseye\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_invalid_file'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"times-circle\" class=\"sky-file-upload-icon\" />\n </div>\n </div>\n }\n\n <div #customEl class=\"sky-file-drop-contents-custom\">\n <ng-content />\n </div>\n </div>\n @if (allowLinks) {\n <div class=\"sky-file-drop-col\">\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_link_label'\n | skyLibResources\n }}\n </div>\n </div>\n <div class=\"sky-margin-stacked-xs\">\n <input\n type=\"text\"\n class=\"sky-form-control\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_label'\n | skyLibResources)\n \"\n [attr.aria-describedby]=\"uploadHintText.id\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </div>\n <div\n #uploadHintText=\"skyId\"\n skyId\n class=\"sky-font-deemphasized sky-file-drop-hint-text sky-margin-stacked-sm\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_placeholder'\n | skyLibResources\n }}\n </div>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n <div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div class=\"sky-font-deemphasized sky-file-drop-hint-text\">\n {{ hintText }}\n </div>\n }\n </div>\n</fieldset>\n<sky-form-errors\n [class.sky-file-drop-errors]=\"labelText && rejectedFiles.length\"\n [id]=\"errorId\"\n [labelText]=\"labelText\"\n [touched]=\"rejectedFiles.length > 0\"\n>\n @for (rejectedFile of rejectedFiles; track rejectedFile) {\n <div>\n @if (rejectedFile.errorType === 'fileType') {\n <sky-form-error\n errorName=\"fileType\"\n [errorText]=\"\n 'skyux_file_attachment_file_type_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : rejectedFile.errorParam\n \"\n />\n } @else if (rejectedFile.errorType === 'maxFileSize') {\n <sky-form-error\n errorName=\"maxFileSize\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (rejectedFile.errorType === 'minFileSize') {\n <sky-form-error\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (\n rejectedFile.errorType === 'validate' && rejectedFile.errorParam\n ) {\n <sky-form-error\n errorName=\"validate\"\n [errorText]=\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\"\n />\n }\n </div>\n }\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg{display:block}.sky-file-drop-col{padding-left:5px;padding-right:5px;position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;background-color:#eeeeef;color:#212327;cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:5px}.sky-file-drop-no-click .sky-file-drop-contents{cursor:default}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-margin-stacked-xs)}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:dashed;border-width:1px}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:#72bf44;color:#212327}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:#ef4044;color:#212327}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;font-size:40px;max-height:40px;margin-top:10px}.sky-file-drop-link{cursor:default}.sky-file-drop-text-header{margin:0}.sky-file-drop-text{font-size:15px;margin-top:5px;margin-bottom:20px}.sky-file-drop-text,.sky-file-drop-text-header{line-height:1.1;display:block}.sky-file-upload-icon{color:#686c73}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-file-drop-errors{margin-bottom:10px}:host-context(.sky-theme-modern) .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}.sky-theme-modern .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SkyFileSizePipe, name: "skyFileSize" }, { kind: "component", type: SkyFormErrorComponent, selector: "sky-form-error", inputs: ["errorName", "errorText"] }, { kind: "component", type: SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "touched", "dirty"] }, { kind: "ngmodule", type: SkyFormsResourcesModule }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }] }); }
|
|
262
260
|
}
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropComponent, decorators: [{
|
|
264
262
|
type: Component,
|
|
265
|
-
args: [{
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
},
|
|
270
|
-
], imports: [
|
|
263
|
+
args: [{ selector: 'sky-file-drop', providers: [
|
|
264
|
+
SkyFileAttachmentService,
|
|
265
|
+
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
|
266
|
+
], standalone: true, imports: [
|
|
271
267
|
CommonModule,
|
|
272
268
|
FormsModule,
|
|
273
269
|
SkyFileSizePipe,
|
|
@@ -277,10 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
277
273
|
SkyHelpInlineModule,
|
|
278
274
|
SkyIconModule,
|
|
279
275
|
SkyIdModule,
|
|
280
|
-
], providers: [
|
|
281
|
-
SkyFileAttachmentService,
|
|
282
|
-
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
|
283
|
-
], selector: 'sky-file-drop', standalone: true, template: "<fieldset>\n <legend\n *ngIf=\"labelText\"\n class=\"sky-control-label sky-font-body-default sky-margin-stacked-xs\"\n [ngClass]=\"{\n 'sky-screen-reader-only': labelHidden\n }\"\n >\n <span\n class=\"sky-margin-inline-xs\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</span\n ><span class=\"sky-screen-reader-only\" *ngIf=\"required\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span\n ><sky-help-inline\n *ngIf=\"helpPopoverContent || helpKey\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </legend>\n <div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n >\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n ></button>\n\n <input\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n #fileInput\n />\n\n <div\n class=\"sky-file-drop-contents sky-padding-even-default\"\n *ngIf=\"customEl.children.length === 0\"\n >\n <div class=\"sky-file-drop-contents-not-over\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drag_file_here'\n | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"cloud-upload\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"bullseye\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_invalid_file' | skyLibResources\n }}\n </div>\n <sky-icon icon=\"times-circle\" class=\"sky-file-upload-icon\" />\n </div>\n </div>\n\n <div class=\"sky-file-drop-contents-custom\" #customEl>\n <ng-content />\n </div>\n </div>\n <div class=\"sky-file-drop-col\" *ngIf=\"allowLinks\">\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_link_label' | skyLibResources\n }}\n </div>\n </div>\n <div class=\"sky-margin-stacked-xs\">\n <input\n type=\"text\"\n class=\"sky-form-control\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_label'\n | skyLibResources)\n \"\n [attr.aria-describedby]=\"uploadHintText.id\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </div>\n <div\n skyId\n #uploadHintText=\"skyId\"\n class=\"sky-font-deemphasized sky-file-drop-hint-text sky-margin-stacked-sm\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_placeholder'\n | skyLibResources\n }}\n </div>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-file-drop-hint-text\">\n {{ hintText }}\n </div>\n </div>\n</fieldset>\n<sky-form-errors\n *ngIf=\"labelText && rejectedFiles.length\"\n class=\"sky-file-drop-errors\"\n [id]=\"errorId\"\n [labelText]=\"labelText\"\n [showErrors]=\"rejectedFiles.length\"\n>\n <div *ngFor=\"let rejectedFile of rejectedFiles\">\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'fileType'\"\n errorName=\"fileType\"\n [errorText]=\"\n 'skyux_file_attachment_file_type_error_label_text_with_name'\n | skyLibResources: rejectedFile.file.name : rejectedFile.errorParam\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'maxFileSize'\"\n errorName=\"maxFileSize\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'minFileSize'\"\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n <sky-form-error\n *ngIf=\"rejectedFile.errorType === 'validate' && rejectedFile.errorParam\"\n errorName=\"validate\"\n [errorText]=\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\"\n />\n </div>\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg{display:block}.sky-file-drop-col{padding-left:5px;padding-right:5px;position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;background-color:#eeeeef;color:#212327;cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:5px}.sky-file-drop-no-click .sky-file-drop-contents{cursor:default}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-margin-stacked-xs)}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:dashed;border-width:1px}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:#72bf44;color:#212327}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:#ef4044;color:#212327}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;font-size:40px;max-height:40px;margin-top:10px}.sky-file-drop-link{cursor:default}.sky-file-drop-text-header{margin:0}.sky-file-drop-text{font-size:15px;margin-top:5px;margin-bottom:20px}.sky-file-drop-text,.sky-file-drop-text-header{line-height:1.1;display:block}.sky-file-upload-icon{color:#686c73}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-file-drop-errors{margin-bottom:10px}:host-context(.sky-theme-modern) .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}.sky-theme-modern .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}\n"] }]
|
|
276
|
+
], template: "<fieldset>\n @if (labelText) {\n <legend\n class=\"sky-control-label sky-font-body-default sky-margin-stacked-xs\"\n [ngClass]=\"{\n 'sky-screen-reader-only': labelHidden\n }\"\n >\n <span\n class=\"sky-margin-inline-xs\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</span\n >\n @if (required) {\n <span class=\"sky-screen-reader-only\">{{\n 'skyux_file_attachment_required' | skyLibResources\n }}</span>\n }\n @if (helpPopoverContent || helpKey) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n }\n </legend>\n }\n <div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n >\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n ></button>\n\n <input\n #fileInput\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n />\n\n @if (customEl.children.length === 0) {\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-contents-not-over\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drag_file_here'\n | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"cloud-upload\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"bullseye\" class=\"sky-file-upload-icon\" />\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_invalid_file'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"times-circle\" class=\"sky-file-upload-icon\" />\n </div>\n </div>\n }\n\n <div #customEl class=\"sky-file-drop-contents-custom\">\n <ng-content />\n </div>\n </div>\n @if (allowLinks) {\n <div class=\"sky-file-drop-col\">\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div class=\"sky-file-drop-text-header sky-font-display-3\">\n {{\n 'skyux_file_attachment_file_upload_link_label'\n | skyLibResources\n }}\n </div>\n </div>\n <div class=\"sky-margin-stacked-xs\">\n <input\n type=\"text\"\n class=\"sky-form-control\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_label'\n | skyLibResources)\n \"\n [attr.aria-describedby]=\"uploadHintText.id\"\n [attr.aria-invalid]=\"!!rejectedFiles.length\"\n [attr.aria-errormessage]=\"\n labelText && rejectedFiles.length ? errorId : undefined\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </div>\n <div\n #uploadHintText=\"skyId\"\n skyId\n class=\"sky-font-deemphasized sky-file-drop-hint-text sky-margin-stacked-sm\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_placeholder'\n | skyLibResources\n }}\n </div>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_link_done' | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n <div #hintTextEl=\"skyId\" skyId>\n @if (hintText) {\n <div class=\"sky-font-deemphasized sky-file-drop-hint-text\">\n {{ hintText }}\n </div>\n }\n </div>\n</fieldset>\n<sky-form-errors\n [class.sky-file-drop-errors]=\"labelText && rejectedFiles.length\"\n [id]=\"errorId\"\n [labelText]=\"labelText\"\n [touched]=\"rejectedFiles.length > 0\"\n>\n @for (rejectedFile of rejectedFiles; track rejectedFile) {\n <div>\n @if (rejectedFile.errorType === 'fileType') {\n <sky-form-error\n errorName=\"fileType\"\n [errorText]=\"\n 'skyux_file_attachment_file_type_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : rejectedFile.errorParam\n \"\n />\n } @else if (rejectedFile.errorType === 'maxFileSize') {\n <sky-form-error\n errorName=\"maxFileSize\"\n [errorText]=\"\n acceptedTypesErrorMessage ??\n 'skyux_file_attachment_max_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (rejectedFile.errorType === 'minFileSize') {\n <sky-form-error\n errorName=\"minFileSize\"\n [errorText]=\"\n 'skyux_file_attachment_min_file_size_error_label_text_with_name'\n | skyLibResources\n : rejectedFile.file.name\n : (rejectedFile.errorParam | skyFileSize)\n \"\n />\n } @else if (\n rejectedFile.errorType === 'validate' && rejectedFile.errorParam\n ) {\n <sky-form-error\n errorName=\"validate\"\n [errorText]=\"rejectedFile.file.name + ': ' + rejectedFile.errorParam\"\n />\n }\n </div>\n }\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg{display:block}.sky-file-drop-col{padding-left:5px;padding-right:5px;position:relative}:host .sky-file-drop-row{display:block}:host .sky-file-drop-col{flex-basis:auto}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-row,:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:block}:host-context(.sky-responsive-container-xs) .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:auto}:host-context(.sky-responsive-container-xs) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:10px}:host-context(.sky-responsive-container-xs) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:auto}@media (min-width: 768px){:host .sky-file-drop-row{display:flex}:host .sky-file-drop-col{flex-basis:100%}:host .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}}:host-context(.sky-responsive-container-sm) .sky-file-drop-row,:host-context(.sky-responsive-container-md) .sky-file-drop-row,:host-context(.sky-responsive-container-lg) .sky-file-drop-row{display:flex}:host-context(.sky-responsive-container-sm) .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-col{flex-basis:100%}:host-context(.sky-responsive-container-sm) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-file-drop-col:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-file-drop-col:not(:last-of-type){margin-bottom:0}:host-context(.sky-responsive-container-sm) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-md) .sky-file-drop-allow-links .sky-file-drop-col,:host-context(.sky-responsive-container-lg) .sky-file-drop-allow-links .sky-file-drop-col{flex-basis:50%}button.sky-file-drop{height:100%;position:absolute;inset:0;z-index:1}button.sky-file-drop:hover{cursor:pointer}.sky-file-drop-contents{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;background-color:#eeeeef;color:#212327;cursor:pointer;width:100%;text-align:center;height:100%}.sky-file-drop-contents .sky-file-drop-link-header{margin-bottom:5px}.sky-file-drop-no-click .sky-file-drop-contents{cursor:default}.sky-file-drop-hint-text{text-align:left;margin-top:var(--sky-margin-stacked-xs)}.sky-file-drop-accept .sky-file-drop-contents,.sky-file-drop-reject .sky-file-drop-contents{border-style:dashed;border-width:1px}.sky-file-drop-accept .sky-file-drop-contents-not-over,.sky-file-drop-reject .sky-file-drop-contents-not-over{display:none}.sky-file-drop-accept .sky-file-drop-contents{border-color:#72bf44;color:#212327}.sky-file-drop-accept .sky-file-drop-contents-accept{display:block}.sky-file-drop-reject .sky-file-drop-contents{border-color:#ef4044;color:#212327}.sky-file-drop-reject .sky-file-drop-contents-reject{display:block}.sky-file-drop-contents-accept,.sky-file-drop-contents-reject{display:none}.sky-file-upload-icon{display:block;font-size:40px;max-height:40px;margin-top:10px}.sky-file-drop-link{cursor:default}.sky-file-drop-text-header{margin:0}.sky-file-drop-text{font-size:15px;margin-top:5px;margin-bottom:20px}.sky-file-drop-text,.sky-file-drop-text-header{line-height:1.1;display:block}.sky-file-upload-icon{color:#686c73}.sky-file-drop{background-color:transparent;border:none;display:block;-webkit-appearance:none;width:100%;padding:0}.sky-file-input-hidden{display:none}.sky-file-drop-errors{margin-bottom:10px}:host-context(.sky-theme-modern) .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}.sky-theme-modern .sky-control-label{color:var(--sky-text-color-deemphasized);font-size:13px}\n"] }]
|
|
284
277
|
}], propDecorators: { filesChanged: [{
|
|
285
278
|
type: Output
|
|
286
279
|
}], linkInputBlur: [{
|
|
@@ -333,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
333
326
|
type: ViewChild,
|
|
334
327
|
args: ['fileInput']
|
|
335
328
|
}] } });
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFF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QURiLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVdDLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTL0Isa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFTQyxPQUFPO3NCQUZiLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLDZCQUE2QjtnQkFTbkMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1FcnJvcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtLWZpZWxkLWxhYmVsLXRleHQtcmVxdWlyZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS1mb3Jtcy1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreUZpbGVBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4uL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlSXRlbSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0nO1xuaW1wb3J0IHsgU2t5RmlsZVNpemVQaXBlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtc2l6ZS5waXBlJztcbmltcG9ydCB7IFNreUZpbGVWYWxpZGF0ZUZuIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtdmFsaWRhdGUtZnVuY3Rpb24nO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcENoYW5nZSB9IGZyb20gJy4vZmlsZS1kcm9wLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lGaWxlTGluayB9IGZyb20gJy4vZmlsZS1saW5rJztcblxuY29uc3QgTUFYX0ZJTEVfU0laRV9ERUZBVUxUID0gNTAwMDAwO1xuY29uc3QgTUlOX0ZJTEVfU0laRV9ERUZBVUxUID0gMDtcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBlbGVtZW50IHRvIGF0dGFjaCBtdWx0aXBsZSBmaWxlcyB3aGVyZSB1c2VycyBjYW4gYnJvd3NlIG9yIGRyYWcgYW5kIGRyb3AgbG9jYWwgZmlsZXNcbiAqIG9yIHByb3ZpZGUgaHlwZXJsaW5rcyB0byBleHRlcm5hbCBmaWxlcy4gWW91IGNhbiBsZWF2ZSB0aGUgY29udGVudHMgb2YgdGhlIGNvbXBvbmVudFxuICogYmxhbmsgdG8gZGlzcGxheSB0aGUgZHJvcCB6b25lJ3MgZGVmYXVsdCBVSSwgb3IgeW91IGNhbiBzcGVjaWZ5IGN1c3RvbSBjb250ZW50IHRvXG4gKiBkaXNwbGF5IGluc3RlYWQuIFdoZW4gdGhlIG1vZHVsZSBpbml0aWFsaXplcywgaXQgZGlzYWJsZXMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhbmRcbiAqIGRyb3AgZmlsZXMgZm9yIHRoZSBlbnRpcmUgd2luZG93IHRvIHByZXZlbnQgdGhlIGJyb3dzZXIgZnJvbSBvcGVuaW5nIGZpbGVzIHRoYXQgYXJlXG4gKiBhY2NpZGVudGFsbHkgZHJvcHBlZCBvdXRzaWRlIHRoZSB0YXJnZXQgem9uZS4gSWYgeW91IGltcGxlbWVudCB5b3VyIG93biBmaWxlIGRyb3AgZnVuY3Rpb25hbGl0eVxuICogb3V0c2lkZSBvZiB0aGUgZmlsZSBkcm9wIGNvbXBvbmVudCwgeW91IGNhbiBwbGFjZSB0aGUgYHNreS1maWxlLWRyb3AtdGFyZ2V0YCBDU1MgY2xhc3NcbiAqIG9uIHRoZSBlbGVtZW50IHRoYXQgcmVjZWl2ZXMgZHJvcCBldmVudHMgdG8gZXhlbXB0IGl0IGZyb20gdGhlIGRyb3AgZXhjbHVzaW9uIHJ1bGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWREaXJlY3RpdmUsXG4gICAgICBpbnB1dHM6IFsnbGFiZWxUZXh0J10sXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBTa3lGaWxlU2l6ZVBpcGUsXG4gICAgU2t5Rm9ybUVycm9yQ29tcG9uZW50LFxuICAgIFNreUZvcm1FcnJvcnNDb21wb25lbnQsXG4gICAgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lGaWxlQXR0YWNobWVudFNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdza3ktZmlsZS1kcm9wJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtZHJvcC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlRHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGFkZCBvciByZW1vdmUgZmlsZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZURyb3BDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGxpbmsgaW5wdXQgYm94IHRyaWdnZXJzIGEgYmx1ciBldmVudC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua0lucHV0Qmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBhZGQgb3IgcmVtb3ZlIGxpbmtzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5RmlsZUxpbms+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgZmlsZSB1cGxvYWQgYnV0dG9uLiBUaGlzIHByb3ZpZGVzIGEgdGV4dCBlcXVpdmFsZW50IGZvclxuICAgKiBzY3JlZW4gcmVhZGVycyBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICogQGRlZmF1bHQgXCJEcmFnIGEgZmlsZSBoZXJlIG9yIGNsaWNrIHRvIGJyb3dzZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsZVVwbG9hZEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGxpbmsgdXBsb2FkIGlucHV0LiBUaGlzIHNldHMgdGhlIGJ1dHRvbidzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3JcbiAgICogc2NyZWVuIHJlYWRlcnMgW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZWZhdWx0IFwiTGluayB0byBhIGZpbGVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxpbmtVcGxvYWRBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gc2l6ZSBpbiBieXRlcyBmb3IgdmFsaWQgZmlsZXMuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWluRmlsZVNpemUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19taW5GaWxlU2l6ZSA9IHZhbHVlID8/IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWluRmlsZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21pbkZpbGVTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgZm9yIHZhbGlkIGZpbGVzLlxuICAgKiBAZGVmYXVsdCA1MDAwMDBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4RmlsZVNpemUodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tYXhGaWxlU2l6ZSA9IHZhbHVlID8/IE1BWF9GSUxFX1NJWkVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4RmlsZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX21heEZpbGVTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlcnMgY2FuIGRyYWcgYW5kIGRyb3AgbXVsdGlwbGUgZmlsZXMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbi4gVGhpcyB2YWxpZGF0aW9uIHJ1bnMgYWxvbmdzaWRlIHRoZSBpbnRlcm5hbFxuICAgKiBmaWxlIHZhbGlkYXRpb24uIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBgU2t5RmlsZUl0ZW1gIG9iamVjdCBhcyBhIHBhcmFtZXRlci5cbiAgICogVGhlIHN0cmluZyByZXR1cm5lZCBpcyB1c2VkIGFzIHRoZSBlcnJvciBtZXNzYWdlIGluIG11bHRpLWZpbGUgYXR0YWNobWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWxpZGF0ZUZuOiBTa3lGaWxlVmFsaWRhdGVGbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcgbGl0ZXJhbCBvZiBNSU1FIHR5cGVzIHRoYXQgdXNlcnMgY2FuIGF0dGFjaC5cbiAgICogQnkgZGVmYXVsdCwgYWxsIGZpbGUgdHlwZXMgYXJlIGFsbG93ZWQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBjdXN0b20gZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gYSBmaWxlIGRvZXNuJ3QgbWF0Y2ggdGhlIGFjY2VwdGVkIHR5cGVzLlxuICAgKiBUaGlzIHJlcGxhY2VzIGEgZGVmYXVsdCBlcnJvciBtZXNzYWdlIHRoYXQgbGlzdHMgYWxsIGFjY2VwdGVkIHR5cGVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjY2VwdGVkVHlwZXNFcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBvcHRpb24gdG8gYnJvd3NlIGZvciBmaWxlcyB0byBhdHRhY2guXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbm9DbGljazogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIG9wdGlvbiB0byBhdHRhY2ggZmlsZXMgZnJvbSBVUkxzIHJhdGhlciB0aGFuIGZyb20gbG9jYWwgZGV2aWNlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd0xpbmtzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGZpbGUgYXR0YWNobWVudCdzIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgYGxhYmVsVGV4dGAgZnJvbSB2aWV3LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBsYWJlbEhpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB1cGxvYWRpbmcgYSBmaWxlIG9yIGxpbmsgaXMgcmVxdWlyZWQuXG4gICAqIFdoZW4geW91IHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYCwgdGhlIGNvbXBvbmVudCBhZGRzIGBhcmlhLXJlcXVpcmVkYCBhbmQgYHJlcXVpcmVkYFxuICAgKiBhdHRyaWJ1dGVzIHRvIHRoZSBpbnB1dCBlbGVtZW50cyBzbyB0aGF0IHNjcmVlbiByZWFkZXJzIGFubm91bmNlIGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1yZXF1aXJlZGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtcmVxdWlyZWQpLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGZpbGUgYXR0YWNobWVudCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWxlIGF0dGFjaG1lbnQgaXMgc3RhY2tlZCBvbiBhbm90aGVyIGZvcm0gY29tcG9uZW50LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZmlsZSBhdHRhY2htZW50LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LW1hcmdpbi1zdGFja2VkLWxnJylcbiAgcHVibGljIHN0YWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSBmaWxlIGF0dGFjaG1lbnQgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpXG4gIHB1YmxpYyBpbnB1dEVsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgcHVibGljIGFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuICBwdWJsaWMgbGlua1VybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNlbnRlckV2ZW50VGFyZ2V0OiBhbnk7XG5cbiAgI19tYXhGaWxlU2l6ZSA9IE1BWF9GSUxFX1NJWkVfREVGQVVMVDtcblxuICAjX21pbkZpbGVTaXplID0gTUlOX0ZJTEVfU0laRV9ERUZBVUxUO1xuXG4gIHJlYWRvbmx5ICNmaWxlQXR0YWNobWVudFNlcnZpY2UgPSBpbmplY3QoU2t5RmlsZUF0dGFjaG1lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHJvdGVjdGVkIHJlamVjdGVkRmlsZXM6IFNreUZpbGVJdGVtW10gPSBbXTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5maWxlc0NoYW5nZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLmxpbmtDaGFuZ2VkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5saW5rSW5wdXRCbHVyLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZHJvcENsaWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5vQ2xpY2sgJiYgdGhpcy5pbnB1dEVsKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlRXZlbnQoZmlsZUNoYW5nZUV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuI2hhbmRsZUZpbGVzKFxuICAgICAgKGZpbGVDaGFuZ2VFdmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZCk/LmZpbGVzLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdFbnRlcihkcmFnRW50ZXJFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgLy8gU2F2ZSB0aGlzIHRhcmdldCB0byBrbm93IHdoZW4gdGhlIGRyYWcgZXZlbnQgbGVhdmVzXG4gICAgdGhpcy4jZW50ZXJFdmVudFRhcmdldCA9IGRyYWdFbnRlckV2ZW50LnRhcmdldDtcbiAgICBkcmFnRW50ZXJFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBkcmFnRW50ZXJFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHVibGljIGZpbGVEcmFnT3ZlcihkcmFnT3ZlckV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFuc2ZlciA9IGRyYWdPdmVyRXZlbnQuZGF0YVRyYW5zZmVyO1xuXG4gICAgZHJhZ092ZXJFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBkcmFnT3ZlckV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgIGlmICh0cmFuc2Zlci5pdGVtcykge1xuICAgICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odHJhbnNmZXIuaXRlbXMpO1xuXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZpbGUudHlwZSAmJlxuICAgICAgICAgICAgdGhpcy4jZmlsZUF0dGFjaG1lbnRTZXJ2aWNlLmZpbGVUeXBlUmVqZWN0ZWQoXG4gICAgICAgICAgICAgIGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgdGhpcy5hY2NlcHRlZFR5cGVzLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCAmJiAhdGhpcy5hY2NlcHRlZE92ZXIpIHtcbiAgICAgICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogdW50ZXN0YWJsZSAqLyBlbHNlIGlmICh0cmFuc2Zlci5maWxlcykge1xuICAgICAgICAvLyBJZiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IERhdGFUcmFuc2Zlci5pdGVtcyxcbiAgICAgICAgLy8gZGVmZXIgZmlsZS10eXBlIGNoZWNraW5nIHRvIGRyb3AgaGFuZGxlci5cbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0RhdGFUcmFuc2Zlci9pdGVtcyNCcm93c2VyX2NvbXBhdGliaWxpdHlcbiAgICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJvcChkcm9wRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGRyb3BFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBkcm9wRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IGZhbHNlO1xuXG4gICAgaWYgKGRyb3BFdmVudC5kYXRhVHJhbnNmZXIgJiYgZHJvcEV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcykge1xuICAgICAgY29uc3QgaGFzRGlyZWN0b3J5ID0gdGhpcy4jZmlsZUF0dGFjaG1lbnRTZXJ2aWNlLmhhc0RpcmVjdG9yeShcbiAgICAgICAgZHJvcEV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyxcbiAgICAgICk7XG4gICAgICBjb25zdCBpbnZhbGlkTnVtYmVyT2ZGaWxlcyA9XG4gICAgICAgICF0aGlzLm11bHRpcGxlICYmIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoID4gMTtcblxuICAgICAgaWYgKGhhc0RpcmVjdG9yeSB8fCBpbnZhbGlkTnVtYmVyT2ZGaWxlcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2hhbmRsZUZpbGVzKGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ0xlYXZlKGRyYWdMZWF2ZUV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jZW50ZXJFdmVudFRhcmdldCA9PT0gZHJhZ0xlYXZlRXZlbnQudGFyZ2V0KSB7XG4gICAgICB0aGlzLnJlamVjdGVkT3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkTGlua0VudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LndoaWNoID09PSAxMykge1xuICAgICAgdGhpcy5hZGRMaW5rKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkTGluayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubGlua0NoYW5nZWQuZW1pdCh7IHVybDogdGhpcy5saW5rVXJsIH0gYXMgU2t5RmlsZUxpbmspO1xuICAgIHRoaXMuI2Fubm91bmNlU3RhdGUoXG4gICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfYWRkZWQnLFxuICAgICAgdGhpcy5saW5rVXJsLFxuICAgICk7XG4gICAgdGhpcy5saW5rVXJsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uTGlua0JsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5saW5rSW5wdXRCbHVyLmVtaXQoKTtcbiAgfVxuXG4gICNhbm5vdW5jZVN0YXRlKHJlc291cmNlU3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAuZ2V0U3RyaW5nKHJlc291cmNlU3RyaW5nLCAuLi5hcmdzKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGludGVybmF0aW9uYWxpemVkU3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuI2xpdmVBbm5vdW5jZXJTdmMuYW5ub3VuY2UoaW50ZXJuYXRpb25hbGl6ZWRTdHJpbmcpO1xuICAgICAgfSk7XG4gIH1cblxuICAjZW1pdEZpbGVDaGFuZ2VFdmVudChcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICAgcmVqZWN0ZWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgdmFsaWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICk6IHZvaWQge1xuICAgIGlmICh0b3RhbEZpbGVzID09PSByZWplY3RlZEZpbGVBcnJheS5sZW5ndGggKyB2YWxpZEZpbGVBcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBmaWxlczogdmFsaWRGaWxlQXJyYXksXG4gICAgICAgIHJlamVjdGVkRmlsZXM6IHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgfSBhcyBTa3lGaWxlRHJvcENoYW5nZSk7XG5cbiAgICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZmlsZXNSZWplY3RlZChcbiAgICBmaWxlOiBTa3lGaWxlSXRlbSxcbiAgICB2YWxpZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIHJlamVjdGVkRmlsZUFycmF5LnB1c2goZmlsZSk7XG4gICAgdGhpcy4jZW1pdEZpbGVDaGFuZ2VFdmVudCh0b3RhbEZpbGVzLCByZWplY3RlZEZpbGVBcnJheSwgdmFsaWRGaWxlQXJyYXkpO1xuICB9XG5cbiAgI2xvYWRGaWxlKFxuICAgIGZpbGVEcm9wOiBTa3lGaWxlRHJvcENvbXBvbmVudCxcbiAgICBmaWxlOiBTa3lGaWxlSXRlbSxcbiAgICB2YWxpZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSxcbiAgICB0b3RhbEZpbGVzOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICBmaWxlLnVybCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICB2YWxpZEZpbGVBcnJheS5wdXNoKGZpbGUpO1xuICAgICAgZmlsZURyb3AuI2VtaXRGaWxlQ2hhbmdlRXZlbnQoXG4gICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICk7XG4gICAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfYWRkZWQnLFxuICAgICAgICBmaWxlLmZpbGUubmFtZSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKSA9PiB7XG4gICAgICBmaWxlRHJvcC4jZmlsZXNSZWplY3RlZChcbiAgICAgICAgZmlsZSxcbiAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICB0b3RhbEZpbGVzLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHtcbiAgICAgIGZpbGVEcm9wLiNmaWxlc1JlamVjdGVkKFxuICAgICAgICBmaWxlLFxuICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICAgcmVqZWN0ZWRGaWxlQXJyYXksXG4gICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5maWxlKTtcbiAgfVxuXG4gICNoYW5kbGVGaWxlcyhmaWxlcz86IEZpbGVMaXN0IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChmaWxlcykge1xuICAgICAgY29uc3QgdmFsaWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10gPSBbXTtcbiAgICAgIGNvbnN0IHJlamVjdGVkRmlsZUFycmF5OiBTa3lGaWxlSXRlbVtdID0gW107XG4gICAgICBjb25zdCB0b3RhbEZpbGVzID0gZmlsZXMubGVuZ3RoO1xuXG4gICAgICBjb25zdCBwcm9jZXNzZWRGaWxlcyA9IHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5jaGVja0ZpbGVzKFxuICAgICAgICBmaWxlcyxcbiAgICAgICAgdGhpcy5taW5GaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5tYXhGaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5hY2NlcHRlZFR5cGVzLFxuICAgICAgICB0aGlzLnZhbGlkYXRlRm4sXG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcHJvY2Vzc2VkRmlsZXMpIHtcbiAgICAgICAgaWYgKGZpbGUuZXJyb3JUeXBlKSB7XG4gICAgICAgICAgdGhpcy4jZmlsZXNSZWplY3RlZChcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICAgICAgdG90YWxGaWxlcyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2xvYWRGaWxlKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICB2YWxpZEZpbGVBcnJheSxcbiAgICAgICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICAgICAgdG90YWxGaWxlcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVqZWN0ZWRGaWxlcyA9IHJlamVjdGVkRmlsZUFycmF5O1xuICAgIH1cbiAgfVxufVxuIiwiPGZpZWxkc2V0PlxuICA8bGVnZW5kXG4gICAgKm5nSWY9XCJsYWJlbFRleHRcIlxuICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWwgc2t5LWZvbnQtYm9keS1kZWZhdWx0IHNreS1tYXJnaW4tc3RhY2tlZC14c1wiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknOiBsYWJlbEhpZGRlblxuICAgIH1cIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LW1hcmdpbi1pbmxpbmUteHNcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZFxuICAgICAgfVwiXG4gICAgICA+e3sgbGFiZWxUZXh0IH19PC9zcGFuXG4gICAgPjxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiICpuZ0lmPVwicmVxdWlyZWRcIj57e1xuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICB9fTwvc3BhblxuICAgID48c2t5LWhlbHAtaW5saW5lXG4gICAgICAqbmdJZj1cImhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5XCJcbiAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIC8+XG4gIDwvbGVnZW5kPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLXJvd1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2t5LWZpbGUtZHJvcC1hbGxvdy1saW5rcyc6IGFsbG93TGlua3MgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1maWxlLWRyb3AtY29sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1maWxlLWRyb3AtYWNjZXB0JzogYWNjZXB0ZWRPdmVyLFxuICAgICAgICAnc2t5LWZpbGUtZHJvcC1yZWplY3QnOiByZWplY3RlZE92ZXJcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wIHNreS1maWxlLWRyb3AtdGFyZ2V0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJkcm9wQ2xpY2tlZCgpXCJcbiAgICAgICAgKGRyYWdvdmVyKT1cImZpbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgKGRyYWdlbnRlcik9XCJmaWxlRHJhZ0VudGVyKCRldmVudClcIlxuICAgICAgICAoZHJhZ2xlYXZlKT1cImZpbGVEcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgICAgIChkcm9wKT1cImZpbGVEcm9wKCRldmVudClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGZpbGVVcGxvYWRBcmlhTGFiZWwgfHxcbiAgICAgICAgICAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9kcmFnX29yX2NsaWNrJyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFyZWplY3RlZEZpbGVzLmxlbmd0aFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIlxuICAgICAgICAgIGxhYmVsVGV4dCAmJiByZWplY3RlZEZpbGVzLmxlbmd0aCA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgICAgXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGNsYXNzPVwic2t5LWZpbGUtaW5wdXQtaGlkZGVuXCJcbiAgICAgICAgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGUgPyBtdWx0aXBsZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0ZWRUeXBlcyA/IGFjY2VwdGVkVHlwZXMgOiBudWxsXCJcbiAgICAgICAgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICNmaWxlSW5wdXRcbiAgICAgIC8+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzIHNreS1wYWRkaW5nLWV2ZW4tZGVmYXVsdFwiXG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRWwuY2hpbGRyZW4ubGVuZ3RoID09PSAwXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMtbm90LW92ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlciBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJhZ19maWxlX2hlcmUnXG4gICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtdGV4dFwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9vcl9jbGlja190b19icm93c2UnXG4gICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjbG91ZC11cGxvYWRcIiBjbGFzcz1cInNreS1maWxlLXVwbG9hZC1pY29uXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBUaGlzIHdpbGwgYXBwZWFyIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIG92ZXIgYW5kIGlzIHZhbGlkIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1jb250ZW50cy1hY2NlcHRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlciBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJvcF9maWxlc19oZXJlJ1xuICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiYnVsbHNleWVcIiBjbGFzcz1cInNreS1maWxlLXVwbG9hZC1pY29uXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBUaGlzIHdpbGwgYXBwZWFyIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIG92ZXIgYW5kIGlzIGludmFsaWQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzLXJlamVjdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLXRleHQtaGVhZGVyIHNreS1mb250LWRpc3BsYXktM1wiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9pbnZhbGlkX2ZpbGUnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwidGltZXMtY2lyY2xlXCIgY2xhc3M9XCJza3ktZmlsZS11cGxvYWQtaWNvblwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzLWN1c3RvbVwiICNjdXN0b21FbD5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbFwiICpuZ0lmPVwiYWxsb3dMaW5rc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMgc2t5LXBhZGRpbmctZXZlbi1kZWZhdWx0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWxpbmtcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1saW5rLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtdGV4dC1oZWFkZXIgc2t5LWZvbnQtZGlzcGxheS0zXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2xhYmVsJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1tYXJnaW4tc3RhY2tlZC14c1wiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICBsaW5rVXBsb2FkQXJpYUxhYmVsIHx8XG4gICAgICAgICAgICAgICAgKCdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19sYWJlbCdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cInVwbG9hZEhpbnRUZXh0LmlkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhcmVqZWN0ZWRGaWxlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgICAgICAgICBsYWJlbFRleHQgJiYgcmVqZWN0ZWRGaWxlcy5sZW5ndGggPyBlcnJvcklkIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGlua1VybFwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uTGlua0JsdXIoKVwiXG4gICAgICAgICAgICAgIChrZXl1cCk9XCJhZGRMaW5rRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHNreUlkXG4gICAgICAgICAgICAjdXBsb2FkSGludFRleHQ9XCJza3lJZFwiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktZmlsZS1kcm9wLWhpbnQtdGV4dCBza3ktbWFyZ2luLXN0YWNrZWQtc21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19wbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFsaW5rVXJsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRMaW5rKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19kb25lJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgc2t5SWQgI2hpbnRUZXh0RWw9XCJza3lJZFwiPlxuICAgIDxkaXYgKm5nSWY9XCJoaW50VGV4dFwiIGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1maWxlLWRyb3AtaGludC10ZXh0XCI+XG4gICAgICB7eyBoaW50VGV4dCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG48c2t5LWZvcm0tZXJyb3JzXG4gICpuZ0lmPVwibGFiZWxUZXh0ICYmIHJlamVjdGVkRmlsZXMubGVuZ3RoXCJcbiAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWVycm9yc1wiXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICBbc2hvd0Vycm9yc109XCJyZWplY3RlZEZpbGVzLmxlbmd0aFwiXG4+XG4gIDxkaXYgKm5nRm9yPVwibGV0IHJlamVjdGVkRmlsZSBvZiByZWplY3RlZEZpbGVzXCI+XG4gICAgPHNreS1mb3JtLWVycm9yXG4gICAgICAqbmdJZj1cInJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICdmaWxlVHlwZSdcIlxuICAgICAgZXJyb3JOYW1lPVwiZmlsZVR5cGVcIlxuICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3R5cGVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IHJlamVjdGVkRmlsZS5maWxlLm5hbWUgOiByZWplY3RlZEZpbGUuZXJyb3JQYXJhbVxuICAgICAgXCJcbiAgICAvPlxuICAgIDxza3ktZm9ybS1lcnJvclxuICAgICAgKm5nSWY9XCJyZWplY3RlZEZpbGUuZXJyb3JUeXBlID09PSAnbWF4RmlsZVNpemUnXCJcbiAgICAgIGVycm9yTmFtZT1cIm1heEZpbGVTaXplXCJcbiAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgIGFjY2VwdGVkVHlwZXNFcnJvck1lc3NhZ2UgPz9cbiAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21heF9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgIDogcmVqZWN0ZWRGaWxlLmZpbGUubmFtZVxuICAgICAgICAgICAgOiAocmVqZWN0ZWRGaWxlLmVycm9yUGFyYW0gfCBza3lGaWxlU2l6ZSlcbiAgICAgIFwiXG4gICAgLz5cbiAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICpuZ0lmPVwicmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ21pbkZpbGVTaXplJ1wiXG4gICAgICBlcnJvck5hbWU9XCJtaW5GaWxlU2l6ZVwiXG4gICAgICBbZXJyb3JUZXh0XT1cIlxuICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21pbl9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgIDogcmVqZWN0ZWRGaWxlLmZpbGUubmFtZVxuICAgICAgICAgICAgOiAocmVqZWN0ZWRGaWxlLmVycm9yUGFyYW0gfCBza3lGaWxlU2l6ZSlcbiAgICAgIFwiXG4gICAgLz5cbiAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICpuZ0lmPVwicmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ3ZhbGlkYXRlJyAmJiByZWplY3RlZEZpbGUuZXJyb3JQYXJhbVwiXG4gICAgICBlcnJvck5hbWU9XCJ2YWxpZGF0ZVwiXG4gICAgICBbZXJyb3JUZXh0XT1cInJlamVjdGVkRmlsZS5maWxlLm5hbWUgKyAnOiAnICsgcmVqZWN0ZWRGaWxlLmVycm9yUGFyYW1cIlxuICAgIC8+XG4gIDwvZGl2PlxuPC9za3ktZm9ybS1lcnJvcnM+XG4iXX0=
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFF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RGQsS0FBSztnQkFXQyxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUy9CLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFRQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsT0FBTztzQkFGYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDckMsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBU25DLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRNb2R1bGUsIFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcblxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvcnMtZW5hYmxlZC10b2tlbic7XG5pbXBvcnQgeyBTa3lGb3JtRXJyb3JzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RmlsZUF0dGFjaG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUZpbGVJdGVtIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbGUtaXRlbSc7XG5pbXBvcnQgeyBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgU2t5RmlsZVZhbGlkYXRlRm4gfSBmcm9tICcuLi9zaGFyZWQvZmlsZS12YWxpZGF0ZS1mdW5jdGlvbic7XG5cbmltcG9ydCB7IFNreUZpbGVEcm9wQ2hhbmdlIH0gZnJvbSAnLi9maWxlLWRyb3AtY2hhbmdlJztcbmltcG9ydCB7IFNreUZpbGVMaW5rIH0gZnJvbSAnLi9maWxlLWxpbmsnO1xuXG5jb25zdCBNQVhfRklMRV9TSVpFX0RFRkFVTFQgPSA1MDAwMDA7XG5jb25zdCBNSU5fRklMRV9TSVpFX0RFRkFVTFQgPSAwO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFuIGVsZW1lbnQgdG8gYXR0YWNoIG11bHRpcGxlIGZpbGVzIHdoZXJlIHVzZXJzIGNhbiBicm93c2Ugb3IgZHJhZyBhbmQgZHJvcCBsb2NhbCBmaWxlc1xuICogb3IgcHJvdmlkZSBoeXBlcmxpbmtzIHRvIGV4dGVybmFsIGZpbGVzLiBZb3UgY2FuIGxlYXZlIHRoZSBjb250ZW50cyBvZiB0aGUgY29tcG9uZW50XG4gKiBibGFuayB0byBkaXNwbGF5IHRoZSBkcm9wIHpvbmUncyBkZWZhdWx0IFVJLCBvciB5b3UgY2FuIHNwZWNpZnkgY3VzdG9tIGNvbnRlbnQgdG9cbiAqIGRpc3BsYXkgaW5zdGVhZC4gV2hlbiB0aGUgbW9kdWxlIGluaXRpYWxpemVzLCBpdCBkaXNhYmxlcyB0aGUgYWJpbGl0eSB0byBkcmFnIGFuZFxuICogZHJvcCBmaWxlcyBmb3IgdGhlIGVudGlyZSB3aW5kb3cgdG8gcHJldmVudCB0aGUgYnJvd3NlciBmcm9tIG9wZW5pbmcgZmlsZXMgdGhhdCBhcmVcbiAqIGFjY2lkZW50YWxseSBkcm9wcGVkIG91dHNpZGUgdGhlIHRhcmdldCB6b25lLiBJZiB5b3UgaW1wbGVtZW50IHlvdXIgb3duIGZpbGUgZHJvcCBmdW5jdGlvbmFsaXR5XG4gKiBvdXRzaWRlIG9mIHRoZSBmaWxlIGRyb3AgY29tcG9uZW50LCB5b3UgY2FuIHBsYWNlIHRoZSBgc2t5LWZpbGUtZHJvcC10YXJnZXRgIENTUyBjbGFzc1xuICogb24gdGhlIGVsZW1lbnQgdGhhdCByZWNlaXZlcyBkcm9wIGV2ZW50cyB0byBleGVtcHQgaXQgZnJvbSB0aGUgZHJvcCBleGNsdXNpb24gcnVsZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWZpbGUtZHJvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWRyb3AuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWRyb3AuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5RmlsZUF0dGFjaG1lbnRTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQsIHVzZVZhbHVlOiB0cnVlIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU2t5RmlsZVNpemVQaXBlLFxuICAgIFNreUZvcm1FcnJvckNvbXBvbmVudCxcbiAgICBTa3lGb3JtRXJyb3JzQ29tcG9uZW50LFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmlsZURyb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBhZGQgb3IgcmVtb3ZlIGZpbGVzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmaWxlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVEcm9wQ2hhbmdlPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBsaW5rIGlucHV0IGJveCB0cmlnZ2VycyBhIGJsdXIgZXZlbnQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGxpbmtJbnB1dEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgYWRkIG9yIHJlbW92ZSBsaW5rcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVMaW5rPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGZpbGUgdXBsb2FkIGJ1dHRvbi4gVGhpcyBwcm92aWRlcyBhIHRleHQgZXF1aXZhbGVudCBmb3JcbiAgICogc2NyZWVuIHJlYWRlcnMgW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZWZhdWx0IFwiRHJhZyBhIGZpbGUgaGVyZSBvciBjbGljayB0byBicm93c2VcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZpbGVVcGxvYWRBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSBsaW5rIHVwbG9hZCBpbnB1dC4gVGhpcyBzZXRzIHRoZSBidXR0b24ncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yXG4gICAqIHNjcmVlbiByZWFkZXJzIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVmYXVsdCBcIkxpbmsgdG8gYSBmaWxlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaW5rVXBsb2FkQXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHNpemUgaW4gYnl0ZXMgZm9yIHZhbGlkIGZpbGVzLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbkZpbGVTaXplKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWluRmlsZVNpemUgPSB2YWx1ZSA/PyBNSU5fRklMRV9TSVpFX0RFRkFVTFQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1pbkZpbGVTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19taW5GaWxlU2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIGZvciB2YWxpZCBmaWxlcy5cbiAgICogQGRlZmF1bHQgNTAwMDAwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heEZpbGVTaXplKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWF4RmlsZVNpemUgPSB2YWx1ZSA/PyBNQVhfRklMRV9TSVpFX0RFRkFVTFQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1heEZpbGVTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19tYXhGaWxlU2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHVzZXJzIGNhbiBkcmFnIGFuZCBkcm9wIG11bHRpcGxlIGZpbGVzIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb24uIFRoaXMgdmFsaWRhdGlvbiBydW5zIGFsb25nc2lkZSB0aGUgaW50ZXJuYWxcbiAgICogZmlsZSB2YWxpZGF0aW9uLiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgYFNreUZpbGVJdGVtYCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuXG4gICAqIFRoZSBzdHJpbmcgcmV0dXJuZWQgaXMgdXNlZCBhcyB0aGUgZXJyb3IgbWVzc2FnZSBpbiBtdWx0aS1maWxlIGF0dGFjaG1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdmFsaWRhdGVGbjogU2t5RmlsZVZhbGlkYXRlRm4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tYS1kZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWwgb2YgTUlNRSB0eXBlcyB0aGF0IHVzZXJzIGNhbiBhdHRhY2guXG4gICAqIEJ5IGRlZmF1bHQsIGFsbCBmaWxlIHR5cGVzIGFyZSBhbGxvd2VkLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY2NlcHRlZFR5cGVzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIGEgZmlsZSBkb2Vzbid0IG1hdGNoIHRoZSBhY2NlcHRlZCB0eXBlcy5cbiAgICogVGhpcyByZXBsYWNlcyBhIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSB0aGF0IGxpc3RzIGFsbCBhY2NlcHRlZCB0eXBlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY2NlcHRlZFR5cGVzRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgb3B0aW9uIHRvIGJyb3dzZSBmb3IgZmlsZXMgdG8gYXR0YWNoLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5vQ2xpY2s6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IHRoZSBvcHRpb24gdG8gYXR0YWNoIGZpbGVzIGZyb20gVVJMcyByYXRoZXIgdGhhbiBmcm9tIGxvY2FsIGRldmljZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dMaW5rczogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBmaWxlIGF0dGFjaG1lbnQncyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBoaWRlIGBsYWJlbFRleHRgIGZyb20gdmlldy5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbGFiZWxIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdXBsb2FkaW5nIGEgZmlsZSBvciBsaW5rIGlzIHJlcXVpcmVkLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudHMgc28gdGhhdCBzY3JlZW4gcmVhZGVycyBhbm5vdW5jZSBhbiBpbnZhbGlkIHN0YXRlIHVudGlsIHRoZSBpbnB1dCBlbGVtZW50XG4gICAqIGlzIGNvbXBsZXRlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtcmVxdWlyZWRgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLXJlcXVpcmVkKS5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgbGFiZWxUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBmaWxlIGF0dGFjaG1lbnQgbGFiZWwuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsZSBhdHRhY2htZW50IGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGZpbGUgYXR0YWNobWVudC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC1sZycpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgZmlsZSBhdHRhY2htZW50IGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICBwdWJsaWMgaW5wdXRFbDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gIHB1YmxpYyBhY2NlcHRlZE92ZXIgPSBmYWxzZTtcbiAgcHVibGljIGxpbmtVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjZW50ZXJFdmVudFRhcmdldDogYW55O1xuXG4gICNfbWF4RmlsZVNpemUgPSBNQVhfRklMRV9TSVpFX0RFRkFVTFQ7XG5cbiAgI19taW5GaWxlU2l6ZSA9IE1JTl9GSUxFX1NJWkVfREVGQVVMVDtcblxuICByZWFkb25seSAjZmlsZUF0dGFjaG1lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUZpbGVBdHRhY2htZW50U2VydmljZSk7XG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlc1N2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGVycm9ySWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIHByb3RlY3RlZCByZWplY3RlZEZpbGVzOiBTa3lGaWxlSXRlbVtdID0gW107XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5saW5rQ2hhbmdlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMubGlua0lucHV0Qmx1ci5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGRyb3BDbGlja2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ub0NsaWNrICYmIHRoaXMuaW5wdXRFbCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZUNoYW5nZUV2ZW50KGZpbGVDaGFuZ2VFdmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLiNoYW5kbGVGaWxlcyhcbiAgICAgIChmaWxlQ2hhbmdlRXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQpPy5maWxlcyxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbGVEcmFnRW50ZXIoZHJhZ0VudGVyRXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIC8vIFNhdmUgdGhpcyB0YXJnZXQgdG8ga25vdyB3aGVuIHRoZSBkcmFnIGV2ZW50IGxlYXZlc1xuICAgIHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPSBkcmFnRW50ZXJFdmVudC50YXJnZXQ7XG4gICAgZHJhZ0VudGVyRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJhZ0VudGVyRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlRHJhZ092ZXIoZHJhZ092ZXJFdmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNmZXIgPSBkcmFnT3ZlckV2ZW50LmRhdGFUcmFuc2ZlcjtcblxuICAgIGRyYWdPdmVyRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJhZ092ZXJFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRyYW5zZmVyKSB7XG4gICAgICBpZiAodHJhbnNmZXIuaXRlbXMpIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKHRyYW5zZmVyLml0ZW1zKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmaWxlLnR5cGUgJiZcbiAgICAgICAgICAgIHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5maWxlVHlwZVJlamVjdGVkKFxuICAgICAgICAgICAgICBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgIHRoaXMuYWNjZXB0ZWRUeXBlcyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMuYWNjZXB0ZWRPdmVyKSB7XG4gICAgICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmFjY2VwdGVkT3ZlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IHVudGVzdGFibGUgKi8gZWxzZSBpZiAodHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgICAgLy8gSWYgdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBEYXRhVHJhbnNmZXIuaXRlbXMsXG4gICAgICAgIC8vIGRlZmVyIGZpbGUtdHlwZSBjaGVja2luZyB0byBkcm9wIGhhbmRsZXIuXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9EYXRhVHJhbnNmZXIvaXRlbXMjQnJvd3Nlcl9jb21wYXRpYmlsaXR5XG4gICAgICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyb3AoZHJvcEV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBkcm9wRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZHJvcEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLiNlbnRlckV2ZW50VGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVqZWN0ZWRPdmVyID0gZmFsc2U7XG4gICAgdGhpcy5hY2NlcHRlZE92ZXIgPSBmYWxzZTtcblxuICAgIGlmIChkcm9wRXZlbnQuZGF0YVRyYW5zZmVyICYmIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgIGNvbnN0IGhhc0RpcmVjdG9yeSA9IHRoaXMuI2ZpbGVBdHRhY2htZW50U2VydmljZS5oYXNEaXJlY3RvcnkoXG4gICAgICAgIGRyb3BFdmVudC5kYXRhVHJhbnNmZXIuZmlsZXMsXG4gICAgICApO1xuICAgICAgY29uc3QgaW52YWxpZE51bWJlck9mRmlsZXMgPVxuICAgICAgICAhdGhpcy5tdWx0aXBsZSAmJiBkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDE7XG5cbiAgICAgIGlmIChoYXNEaXJlY3RvcnkgfHwgaW52YWxpZE51bWJlck9mRmlsZXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNoYW5kbGVGaWxlcyhkcm9wRXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsZURyYWdMZWF2ZShkcmFnTGVhdmVFdmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2VudGVyRXZlbnRUYXJnZXQgPT09IGRyYWdMZWF2ZUV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5yZWplY3RlZE92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWNjZXB0ZWRPdmVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExpbmtFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMTMpIHtcbiAgICAgIHRoaXMuYWRkTGluayhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExpbmsoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmxpbmtDaGFuZ2VkLmVtaXQoeyB1cmw6IHRoaXMubGlua1VybCB9IGFzIFNreUZpbGVMaW5rKTtcbiAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2FkZGVkJyxcbiAgICAgIHRoaXMubGlua1VybCxcbiAgICApO1xuICAgIHRoaXMubGlua1VybCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkxpbmtCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMubGlua0lucHV0Qmx1ci5lbWl0KCk7XG4gIH1cblxuICAjYW5ub3VuY2VTdGF0ZShyZXNvdXJjZVN0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgLmdldFN0cmluZyhyZXNvdXJjZVN0cmluZywgLi4uYXJncylcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnRlcm5hdGlvbmFsaXplZFN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKGludGVybmF0aW9uYWxpemVkU3RyaW5nKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2VtaXRGaWxlQ2hhbmdlRXZlbnQoXG4gICAgdG90YWxGaWxlczogbnVtYmVyLFxuICAgIHJlamVjdGVkRmlsZUFycmF5OiBTa3lGaWxlSXRlbVtdLFxuICAgIHZhbGlkRmlsZUFycmF5OiBTa3lGaWxlSXRlbVtdLFxuICApOiB2b2lkIHtcbiAgICBpZiAodG90YWxGaWxlcyA9PT0gcmVqZWN0ZWRGaWxlQXJyYXkubGVuZ3RoICsgdmFsaWRGaWxlQXJyYXkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgZmlsZXM6IHZhbGlkRmlsZUFycmF5LFxuICAgICAgICByZWplY3RlZEZpbGVzOiByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgIH0gYXMgU2t5RmlsZURyb3BDaGFuZ2UpO1xuXG4gICAgICBpZiAodGhpcy5pbnB1dEVsKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2ZpbGVzUmVqZWN0ZWQoXG4gICAgZmlsZTogU2t5RmlsZUl0ZW0sXG4gICAgdmFsaWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgcmVqZWN0ZWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgdG90YWxGaWxlczogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICByZWplY3RlZEZpbGVBcnJheS5wdXNoKGZpbGUpO1xuICAgIHRoaXMuI2VtaXRGaWxlQ2hhbmdlRXZlbnQodG90YWxGaWxlcywgcmVqZWN0ZWRGaWxlQXJyYXksIHZhbGlkRmlsZUFycmF5KTtcbiAgfVxuXG4gICNsb2FkRmlsZShcbiAgICBmaWxlRHJvcDogU2t5RmlsZURyb3BDb21wb25lbnQsXG4gICAgZmlsZTogU2t5RmlsZUl0ZW0sXG4gICAgdmFsaWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgcmVqZWN0ZWRGaWxlQXJyYXk6IFNreUZpbGVJdGVtW10sXG4gICAgdG90YWxGaWxlczogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgZmlsZS51cmwgPSBldmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgdmFsaWRGaWxlQXJyYXkucHVzaChmaWxlKTtcbiAgICAgIGZpbGVEcm9wLiNlbWl0RmlsZUNoYW5nZUV2ZW50KFxuICAgICAgICB0b3RhbEZpbGVzLFxuICAgICAgICByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICApO1xuICAgICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9maWxlX2FkZGVkJyxcbiAgICAgICAgZmlsZS5maWxlLm5hbWUsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgZmlsZURyb3AuI2ZpbGVzUmVqZWN0ZWQoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHZhbGlkRmlsZUFycmF5LFxuICAgICAgICByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgICAgdG90YWxGaWxlcyxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKSA9PiB7XG4gICAgICBmaWxlRHJvcC4jZmlsZXNSZWplY3RlZChcbiAgICAgICAgZmlsZSxcbiAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICAgIHJlamVjdGVkRmlsZUFycmF5LFxuICAgICAgICB0b3RhbEZpbGVzLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUuZmlsZSk7XG4gIH1cblxuICAjaGFuZGxlRmlsZXMoZmlsZXM/OiBGaWxlTGlzdCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoZmlsZXMpIHtcbiAgICAgIGNvbnN0IHZhbGlkRmlsZUFycmF5OiBTa3lGaWxlSXRlbVtdID0gW107XG4gICAgICBjb25zdCByZWplY3RlZEZpbGVBcnJheTogU2t5RmlsZUl0ZW1bXSA9IFtdO1xuICAgICAgY29uc3QgdG90YWxGaWxlcyA9IGZpbGVzLmxlbmd0aDtcblxuICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZXMgPSB0aGlzLiNmaWxlQXR0YWNobWVudFNlcnZpY2UuY2hlY2tGaWxlcyhcbiAgICAgICAgZmlsZXMsXG4gICAgICAgIHRoaXMubWluRmlsZVNpemUsXG4gICAgICAgIHRoaXMubWF4RmlsZVNpemUsXG4gICAgICAgIHRoaXMuYWNjZXB0ZWRUeXBlcyxcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZuLFxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHByb2Nlc3NlZEZpbGVzKSB7XG4gICAgICAgIGlmIChmaWxlLmVycm9yVHlwZSkge1xuICAgICAgICAgIHRoaXMuI2ZpbGVzUmVqZWN0ZWQoXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICAgICAgICByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNsb2FkRmlsZShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgdmFsaWRGaWxlQXJyYXksXG4gICAgICAgICAgICByZWplY3RlZEZpbGVBcnJheSxcbiAgICAgICAgICAgIHRvdGFsRmlsZXMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnJlamVjdGVkRmlsZXMgPSByZWplY3RlZEZpbGVBcnJheTtcbiAgICB9XG4gIH1cbn1cbiIsIjxmaWVsZHNldD5cbiAgQGlmIChsYWJlbFRleHQpIHtcbiAgICA8bGVnZW5kXG4gICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsIHNreS1mb250LWJvZHktZGVmYXVsdCBza3ktbWFyZ2luLXN0YWNrZWQteHNcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXNjcmVlbi1yZWFkZXItb25seSc6IGxhYmVsSGlkZGVuXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNreS1tYXJnaW4taW5saW5lLXhzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgICAgIH1cIlxuICAgICAgICA+e3sgbGFiZWxUZXh0IH19PC9zcGFuXG4gICAgICA+XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9yZXF1aXJlZCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSB7XG4gICAgICAgIDxza3ktaGVscC1pbmxpbmVcbiAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA8L2xlZ2VuZD5cbiAgfVxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wLXJvd1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2t5LWZpbGUtZHJvcC1hbGxvdy1saW5rcyc6IGFsbG93TGlua3MgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1maWxlLWRyb3AtY29sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1maWxlLWRyb3AtYWNjZXB0JzogYWNjZXB0ZWRPdmVyLFxuICAgICAgICAnc2t5LWZpbGUtZHJvcC1yZWplY3QnOiByZWplY3RlZE92ZXJcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1kcm9wIHNreS1maWxlLWRyb3AtdGFyZ2V0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgZmlsZVVwbG9hZEFyaWFMYWJlbCB8fFxuICAgICAgICAgICgnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2RyYWdfb3JfY2xpY2snIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIXJlamVjdGVkRmlsZXMubGVuZ3RoXCJcbiAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiXG4gICAgICAgICAgbGFiZWxUZXh0ICYmIHJlamVjdGVkRmlsZXMubGVuZ3RoID8gZXJyb3JJZCA6IHVuZGVmaW5lZFxuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwiZHJvcENsaWNrZWQoKVwiXG4gICAgICAgIChkcmFnb3Zlcik9XCJmaWxlRHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgICAgIChkcmFnZW50ZXIpPVwiZmlsZURyYWdFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgKGRyYWdsZWF2ZSk9XCJmaWxlRHJhZ0xlYXZlKCRldmVudClcIlxuICAgICAgICAoZHJvcCk9XCJmaWxlRHJvcCgkZXZlbnQpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgY2xhc3M9XCJza3ktZmlsZS1pbnB1dC1oaWRkZW5cIlxuICAgICAgICBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aXBsZSA/IG11bHRpcGxlIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFjY2VwdF09XCJhY2NlcHRlZFR5cGVzID8gYWNjZXB0ZWRUeXBlcyA6IG51bGxcIlxuICAgICAgICAoY2hhbmdlKT1cImZpbGVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIC8+XG5cbiAgICAgIEBpZiAoY3VzdG9tRWwuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzIHNreS1wYWRkaW5nLWV2ZW4tZGVmYXVsdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbnRlbnRzLW5vdC1vdmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlciBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2RyYWdfZmlsZV9oZXJlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtdGV4dFwiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfb3JfY2xpY2tfdG9fYnJvd3NlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNreS1pY29uIGljb249XCJjbG91ZC11cGxvYWRcIiBjbGFzcz1cInNreS1maWxlLXVwbG9hZC1pY29uXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVGhpcyB3aWxsIGFwcGVhciB3aGVuIGZpbGUgaXMgZHJhZ2dlZCBvdmVyIGFuZCBpcyB2YWxpZCAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1jb250ZW50cy1hY2NlcHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLXRleHQtaGVhZGVyIHNreS1mb250LWRpc3BsYXktM1wiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZHJvcF9maWxlc19oZXJlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNreS1pY29uIGljb249XCJidWxsc2V5ZVwiIGNsYXNzPVwic2t5LWZpbGUtdXBsb2FkLWljb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBUaGlzIHdpbGwgYXBwZWFyIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIG92ZXIgYW5kIGlzIGludmFsaWQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMtcmVqZWN0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlciBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ludmFsaWRfZmlsZSdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwidGltZXMtY2lyY2xlXCIgY2xhc3M9XCJza3ktZmlsZS11cGxvYWQtaWNvblwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2ICNjdXN0b21FbCBjbGFzcz1cInNreS1maWxlLWRyb3AtY29udGVudHMtY3VzdG9tXCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGFsbG93TGlua3MpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1kcm9wLWNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1jb250ZW50cyBza3ktcGFkZGluZy1ldmVuLWRlZmF1bHRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1saW5rXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC1saW5rLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtZHJvcC10ZXh0LWhlYWRlciBza3ktZm9udC1kaXNwbGF5LTNcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LW1hcmdpbi1zdGFja2VkLXhzXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICBsaW5rVXBsb2FkQXJpYUxhYmVsIHx8XG4gICAgICAgICAgICAgICAgICAoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwidXBsb2FkSGludFRleHQuaWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhIXJlamVjdGVkRmlsZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCAmJiByZWplY3RlZEZpbGVzLmxlbmd0aCA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGlua1VybFwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25MaW5rQmx1cigpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiYWRkTGlua0VudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICN1cGxvYWRIaW50VGV4dD1cInNreUlkXCJcbiAgICAgICAgICAgICAgc2t5SWRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LWZpbGUtZHJvcC1oaW50LXRleHQgc2t5LW1hcmdpbi1zdGFja2VkLXNtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2xpbmtfcGxhY2Vob2xkZXInXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFsaW5rVXJsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZExpbmsoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX2RvbmUnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2ICNoaW50VGV4dEVsPVwic2t5SWRcIiBza3lJZD5cbiAgICBAaWYgKGhpbnRUZXh0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1maWxlLWRyb3AtaGludC10ZXh0XCI+XG4gICAgICAgIHt7IGhpbnRUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9maWVsZHNldD5cbjxza3ktZm9ybS1lcnJvcnNcbiAgW2NsYXNzLnNreS1maWxlLWRyb3AtZXJyb3JzXT1cImxhYmVsVGV4dCAmJiByZWplY3RlZEZpbGVzLmxlbmd0aFwiXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICBbdG91Y2hlZF09XCJyZWplY3RlZEZpbGVzLmxlbmd0aCA+IDBcIlxuPlxuICBAZm9yIChyZWplY3RlZEZpbGUgb2YgcmVqZWN0ZWRGaWxlczsgdHJhY2sgcmVqZWN0ZWRGaWxlKSB7XG4gICAgPGRpdj5cbiAgICAgIEBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ2ZpbGVUeXBlJykge1xuICAgICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgICBlcnJvck5hbWU9XCJmaWxlVHlwZVwiXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV90eXBlX2Vycm9yX2xhYmVsX3RleHRfd2l0aF9uYW1lJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIDogcmVqZWN0ZWRGaWxlLmZpbGUubmFtZVxuICAgICAgICAgICAgICAgIDogcmVqZWN0ZWRGaWxlLmVycm9yUGFyYW1cbiAgICAgICAgICBcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAocmVqZWN0ZWRGaWxlLmVycm9yVHlwZSA9PT0gJ21heEZpbGVTaXplJykge1xuICAgICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgICBlcnJvck5hbWU9XCJtYXhGaWxlU2l6ZVwiXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJcbiAgICAgICAgICAgIGFjY2VwdGVkVHlwZXNFcnJvck1lc3NhZ2UgPz9cbiAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9tYXhfZmlsZV9zaXplX2Vycm9yX2xhYmVsX3RleHRfd2l0aF9uYW1lJ1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICAgIDogcmVqZWN0ZWRGaWxlLmZpbGUubmFtZVxuICAgICAgICAgICAgICAgIDogKHJlamVjdGVkRmlsZS5lcnJvclBhcmFtIHwgc2t5RmlsZVNpemUpXG4gICAgICAgICAgXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2UgaWYgKHJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICdtaW5GaWxlU2l6ZScpIHtcbiAgICAgICAgPHNreS1mb3JtLWVycm9yXG4gICAgICAgICAgZXJyb3JOYW1lPVwibWluRmlsZVNpemVcIlxuICAgICAgICAgIFtlcnJvclRleHRdPVwiXG4gICAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X21pbl9maWxlX3NpemVfZXJyb3JfbGFiZWxfdGV4dF93aXRoX25hbWUnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgOiByZWplY3RlZEZpbGUuZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgOiAocmVqZWN0ZWRGaWxlLmVycm9yUGFyYW0gfCBza3lGaWxlU2l6ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAoXG4gICAgICAgIHJlamVjdGVkRmlsZS5lcnJvclR5cGUgPT09ICd2YWxpZGF0ZScgJiYgcmVqZWN0ZWRGaWxlLmVycm9yUGFyYW1cbiAgICAgICkge1xuICAgICAgICA8c2t5LWZvcm0tZXJyb3JcbiAgICAgICAgICBlcnJvck5hbWU9XCJ2YWxpZGF0ZVwiXG4gICAgICAgICAgW2Vycm9yVGV4dF09XCJyZWplY3RlZEZpbGUuZmlsZS5uYW1lICsgJzogJyArIHJlamVjdGVkRmlsZS5lcnJvclBhcmFtXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9za3ktZm9ybS1lcnJvcnM+XG4iXX0=
|
|
@@ -4,11 +4,11 @@ import { SkyFileDropComponent } from './file-drop.component';
|
|
|
4
4
|
import { SkyFileItemComponent } from './file-item.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class SkyFileDropModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropModule, imports: [SkyFileDropComponent, SkyFileItemComponent], exports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropModule, imports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule] }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileDropModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
exports: [SkyFileDropComponent, SkyFileItemComponent, SkyFormErrorModule],
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
1
|
import { Component, EventEmitter, Input, Output, inject, } from '@angular/core';
|
|
3
2
|
import { SkyLiveAnnouncerService } from '@skyux/core';
|
|
4
3
|
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
@@ -8,9 +7,8 @@ import { SkyFormsResourcesModule } from '../../shared/sky-forms-resources.module
|
|
|
8
7
|
import { SkyFileSizePipe } from '../shared/file-size.pipe';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "../shared/file-item.service";
|
|
11
|
-
import * as i2 from "@
|
|
12
|
-
import * as i3 from "@skyux/
|
|
13
|
-
import * as i4 from "@skyux/icon";
|
|
10
|
+
import * as i2 from "@skyux/i18n";
|
|
11
|
+
import * as i3 from "@skyux/icon";
|
|
14
12
|
export class SkyFileItemComponent {
|
|
15
13
|
/**
|
|
16
14
|
* The summary information to display about file attachments. For local files,
|
|
@@ -144,20 +142,15 @@ export class SkyFileItemComponent {
|
|
|
144
142
|
});
|
|
145
143
|
}
|
|
146
144
|
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileItemComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.SkyFileItemService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: SkyFileItemComponent, isStandalone: true, selector: "sky-file-item", inputs: { fileItem: "fileItem" }, outputs: { deleteFile: "deleteFile" }, ngImport: i0, template: "@if (fileItem) {\n <div class=\"sky-file-item sky-padding-even-default\">\n <div class=\"sky-file-item-title\">\n <div class=\"sky-file-item-name-container\">\n <div class=\"sky-file-item-name\">\n @if (isFile) {\n <strong>{{ fileName }}</strong>\n } @else {\n <strong>{{ url }}</strong>\n }\n </div>\n @if (isFile) {\n <div class=\"sky-file-item-size\">({{ fileSize | skyFileSize }})</div>\n }\n </div>\n <div class=\"sky-file-item-controls\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-file-item-btn-delete\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete'\n | skyLibResources: (isFile ? fileName : url)\n \"\n (click)=\"itemDelete()\"\n >\n <sky-icon icon=\"trash-o\" size=\"lg\" />\n </button>\n </div>\n </div>\n <div class=\"sky-file-item-content\">\n <div class=\"sky-file-item-preview\">\n @if (isImage) {\n <div class=\"sky-file-item-preview-img-container\">\n <img\n class=\"sky-file-item-preview-img\"\n [src]=\"url\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n />\n </div>\n } @else {\n <div class=\"sky-file-item-preview-other\">\n <sky-icon [icon]=\"icon\" />\n </div>\n }\n </div>\n <div class=\"sky-file-item-content-custom\">\n <ng-content />\n </div>\n </div>\n </div>\n}\n", styles: [".sky-file-item{border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4;background-color:#eeeeef;margin-bottom:10px}.sky-file-item-name-container{flex:1 1 auto;overflow:hidden}.sky-file-item-controls{flex:0 1 auto;padding-left:15px}.sky-file-item-name{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}.sky-file-item-title{margin-bottom:10px;display:flex}.sky-file-item-content{display:flex}.sky-file-item-preview{flex-basis:25%}.sky-file-item-content-custom{flex-basis:75%}.sky-file-item-preview-img-container{text-align:center}.sky-file-item-preview-img{max-width:100%;height:auto;box-shadow:0 0 5px #666}.sky-file-item-preview-other{color:#686c73;font-size:100px;line-height:1;text-align:center;width:100%}\n"], dependencies: [{ kind: "pipe", type: SkyFileSizePipe, name: "skyFileSize" }, { kind: "ngmodule", type: SkyFormsResourcesModule }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }] }); }
|
|
149
147
|
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileItemComponent, decorators: [{
|
|
151
149
|
type: Component,
|
|
152
|
-
args: [{ imports: [
|
|
153
|
-
CommonModule,
|
|
154
|
-
SkyFileSizePipe,
|
|
155
|
-
SkyFormsResourcesModule,
|
|
156
|
-
SkyIconModule,
|
|
157
|
-
], selector: 'sky-file-item', standalone: true, template: "<div class=\"sky-file-item sky-padding-even-default\" *ngIf=\"fileItem\">\n <div class=\"sky-file-item-title\">\n <div class=\"sky-file-item-name-container\">\n <div class=\"sky-file-item-name\">\n <strong *ngIf=\"isFile\">{{ fileName }}</strong>\n <strong *ngIf=\"!isFile\">{{ url }}</strong>\n </div>\n <div class=\"sky-file-item-size\" *ngIf=\"isFile\">\n ({{ fileSize | skyFileSize }})\n </div>\n </div>\n <div class=\"sky-file-item-controls\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-file-item-btn-delete\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete' | skyLibResources\n \"\n (click)=\"itemDelete()\"\n >\n <sky-icon icon=\"trash-o\" size=\"lg\" />\n </button>\n </div>\n </div>\n <div class=\"sky-file-item-content\">\n <div class=\"sky-file-item-preview\">\n <div *ngIf=\"isImage\" class=\"sky-file-item-preview-img-container\">\n <img\n class=\"sky-file-item-preview-img\"\n [src]=\"url\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n />\n </div>\n <div *ngIf=\"!isImage\" class=\"sky-file-item-preview-other\">\n <sky-icon [icon]=\"icon\" />\n </div>\n </div>\n <div class=\"sky-file-item-content-custom\">\n <ng-content />\n </div>\n </div>\n</div>\n", styles: [".sky-file-item{border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4;background-color:#eeeeef;margin-bottom:10px}.sky-file-item-name-container{flex:1 1 auto;overflow:hidden}.sky-file-item-controls{flex:0 1 auto;padding-left:15px}.sky-file-item-name{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}.sky-file-item-title{margin-bottom:10px;display:flex}.sky-file-item-content{display:flex}.sky-file-item-preview{flex-basis:25%}.sky-file-item-content-custom{flex-basis:75%}.sky-file-item-preview-img-container{text-align:center}.sky-file-item-preview-img{max-width:100%;height:auto;box-shadow:0 0 5px #666}.sky-file-item-preview-other{color:#686c73;font-size:100px;line-height:1;text-align:center;width:100%}\n"] }]
|
|
150
|
+
args: [{ imports: [SkyFileSizePipe, SkyFormsResourcesModule, SkyIconModule], selector: 'sky-file-item', standalone: true, template: "@if (fileItem) {\n <div class=\"sky-file-item sky-padding-even-default\">\n <div class=\"sky-file-item-title\">\n <div class=\"sky-file-item-name-container\">\n <div class=\"sky-file-item-name\">\n @if (isFile) {\n <strong>{{ fileName }}</strong>\n } @else {\n <strong>{{ url }}</strong>\n }\n </div>\n @if (isFile) {\n <div class=\"sky-file-item-size\">({{ fileSize | skyFileSize }})</div>\n }\n </div>\n <div class=\"sky-file-item-controls\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-file-item-btn-delete\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete'\n | skyLibResources: (isFile ? fileName : url)\n \"\n (click)=\"itemDelete()\"\n >\n <sky-icon icon=\"trash-o\" size=\"lg\" />\n </button>\n </div>\n </div>\n <div class=\"sky-file-item-content\">\n <div class=\"sky-file-item-preview\">\n @if (isImage) {\n <div class=\"sky-file-item-preview-img-container\">\n <img\n class=\"sky-file-item-preview-img\"\n [src]=\"url\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n />\n </div>\n } @else {\n <div class=\"sky-file-item-preview-other\">\n <sky-icon [icon]=\"icon\" />\n </div>\n }\n </div>\n <div class=\"sky-file-item-content-custom\">\n <ng-content />\n </div>\n </div>\n </div>\n}\n", styles: [".sky-file-item{border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4;background-color:#eeeeef;margin-bottom:10px}.sky-file-item-name-container{flex:1 1 auto;overflow:hidden}.sky-file-item-controls{flex:0 1 auto;padding-left:15px}.sky-file-item-name{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}.sky-file-item-title{margin-bottom:10px;display:flex}.sky-file-item-content{display:flex}.sky-file-item-preview{flex-basis:25%}.sky-file-item-content-custom{flex-basis:75%}.sky-file-item-preview-img-container{text-align:center}.sky-file-item-preview-img{max-width:100%;height:auto;box-shadow:0 0 5px #666}.sky-file-item-preview-other{color:#686c73;font-size:100px;line-height:1;text-align:center;width:100%}\n"] }]
|
|
158
151
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.SkyFileItemService }], propDecorators: { fileItem: [{
|
|
159
152
|
type: Input
|
|
160
153
|
}], deleteFile: [{
|
|
161
154
|
type: Output
|
|
162
155
|
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUdsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQWdCM0QsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7Ozs7O09BTUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUE0QztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMs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QUcsQ0FBQztpQkFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDYixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWE7aUJBQ2YsU0FBUyxDQUNSLGdEQUFnRCxFQUNoRCxJQUFJLENBQUMsUUFBUSxDQUNkO2lCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2IsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzs4R0E1SlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isa0pDcENqQyxnK0NBNkNBLDgzQkRuQkksWUFBWSw4SEFDWixlQUFlLG1EQUNmLHVCQUF1Qix1R0FDdkIsYUFBYTs7MkZBT0osb0JBQW9CO2tCQVpoQyxTQUFTOzhCQUNDO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGFBQWE7cUJBQ2QsWUFDUyxlQUFlLGNBQ2IsSUFBSTtxSEFhTCxRQUFRO3NCQURsQixLQUFLO2dCQXlCQyxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycyxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcblxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1pdGVtJztcbmltcG9ydCB7IFNreUZpbGVJdGVtU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1zaXplLnBpcGUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlTGluayB9IGZyb20gJy4vZmlsZS1saW5rJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5RmlsZVNpemVQaXBlLFxuICAgIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gIF0sXG4gIHNlbGVjdG9yOiAnc2t5LWZpbGUtaXRlbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9maWxlLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RmlsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgLyoqXG4gICAqIFRoZSBzdW1tYXJ5IGluZm9ybWF0aW9uIHRvIGRpc3BsYXkgYWJvdXQgZmlsZSBhdHRhY2htZW50cy4gRm9yIGxvY2FsIGZpbGVzLFxuICAgKiB0aGUgZGVmYXVsdCBzdW1tYXJ5IGluY2x1ZGVzIHRoZSBmaWxlIG5hbWUsIGZpbGUgc2l6ZSwgZmlsZSBwcmV2aWV3LCBhbmQgYSBkZWxldGUgYnV0dG9uLlxuICAgKiBGb3IgZXh0ZXJuYWwgZmlsZXMsIHRoZSBkZWZhdWx0IHN1bW1hcnkgaW5jbHVkZXMgdGhlIFVSTCBhbmQgYSBkZWxldGUgYnV0dG9uLlxuICAgKiBZb3UgY2FuIGluY2x1ZGUgYWRkaXRpb25hbCBpbnB1dHMgdG8gZGlzcGxheSB1c2VyLWVudGVyZWQgbWV0YWRhdGEuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWxlSXRlbSh2YWx1ZTogU2t5RmlsZUl0ZW0gfCBTa3lGaWxlTGluayB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19maWxlSXRlbSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSAmJiAnZmlsZScgaW4gdmFsdWUpIHtcbiAgICAgIHRoaXMuaXNGaWxlID0gdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmlzRmlsZSh2YWx1ZSk7XG4gICAgICB0aGlzLmlzSW1hZ2UgPSB0aGlzLiNmaWxlSXRlbVNlcnZpY2UuaXNJbWFnZSh2YWx1ZSk7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gdmFsdWUuZmlsZS5uYW1lO1xuICAgICAgdGhpcy5maWxlU2l6ZSA9IHZhbHVlLmZpbGUuc2l6ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0ZpbGUgPSB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSAnJztcbiAgICAgIHRoaXMuZmlsZVNpemUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMudXJsID0gdmFsdWU/LnVybCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZUl0ZW0oKTogU2t5RmlsZUl0ZW0gfCBTa3lGaWxlTGluayB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19maWxlSXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgYW4gaXRlbS4gVGhlIGRlbGV0ZWQgaXRlbSBpcyBwYXNzZWQgdG8gdGhlXG4gICAqIGZ1bmN0aW9uLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBkZWxldGVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lGaWxlTGluayB8IFNreUZpbGVJdGVtPigpO1xuXG4gIHB1YmxpYyBmaWxlTmFtZSA9ICcnO1xuXG4gIHB1YmxpYyBmaWxlU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1cmwgPSAnJztcblxuICBwdWJsaWMgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0ZpbGUgPSBmYWxzZTtcbiAgcHVibGljIGlzSW1hZ2UgPSBmYWxzZTtcblxuICAjX2ZpbGVJdGVtOiBTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rIHwgdW5kZWZpbmVkO1xuXG4gICNkaWZmZXI6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PjtcbiAgI2ZpbGVJdGVtU2VydmljZTogU2t5RmlsZUl0ZW1TZXJ2aWNlO1xuXG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKGRpZmZlcnM6IEtleVZhbHVlRGlmZmVycywgZmlsZUl0ZW1TZXJ2aWNlOiBTa3lGaWxlSXRlbVNlcnZpY2UpIHtcbiAgICB0aGlzLiNkaWZmZXIgPSBkaWZmZXJzLmZpbmQoe30pLmNyZWF0ZSgpO1xuICAgIHRoaXMuI2ZpbGVJdGVtU2VydmljZSA9IGZpbGVJdGVtU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsZUl0ZW0pIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLiNkaWZmZXIuZGlmZih0aGlzLmZpbGVJdGVtKTtcblxuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgbGV0IGNsczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBleHRlbnNpb25VcHBlciA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5nZXRGaWxlRXh0ZW5zaW9uVXBwZXIoXG4gICAgICAgICAgdGhpcy5maWxlSXRlbSBhcyBTa3lGaWxlSXRlbSxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGZpbGVUeXBlVXBwZXI6IHN0cmluZztcblxuICAgICAgICBzd2l0Y2ggKGV4dGVuc2lvblVwcGVyKSB7XG4gICAgICAgICAgY2FzZSAnLlBERic6XG4gICAgICAgICAgICBjbHMgPSAncGRmJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5HWic6XG4gICAgICAgICAgY2FzZSAnLlJBUic6XG4gICAgICAgICAgY2FzZSAnLlRHWic6XG4gICAgICAgICAgY2FzZSAnLlpJUCc6XG4gICAgICAgICAgICBjbHMgPSAnYXJjaGl2ZSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuUFBUJzpcbiAgICAgICAgICBjYXNlICcuUFBUWCc6XG4gICAgICAgICAgICBjbHMgPSAncG93ZXJwb2ludCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuRE9DJzpcbiAgICAgICAgICBjYXNlICcuRE9DWCc6XG4gICAgICAgICAgICBjbHMgPSAnd29yZCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuWExTJzpcbiAgICAgICAgICBjYXNlICcuWExTWCc6XG4gICAgICAgICAgICBjbHMgPSAnZXhjZWwnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLlRYVCc6XG4gICAgICAgICAgICBjbHMgPSAndGV4dCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuSFRNJzpcbiAgICAgICAgICBjYXNlICcuSFRNTCc6XG4gICAgICAgICAgICBjbHMgPSAnY29kZSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNscykge1xuICAgICAgICAgIGZpbGVUeXBlVXBwZXIgPSB0aGlzLiNmaWxlSXRlbVNlcnZpY2UuZ2V0RmlsZVR5cGVVcHBlcihcbiAgICAgICAgICAgIHRoaXMuZmlsZUl0ZW0gYXMgU2t5RmlsZUl0ZW0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHN3aXRjaCAoZmlsZVR5cGVVcHBlci5zdWJzdHIoMCwgZmlsZVR5cGVVcHBlci5pbmRleE9mKCcvJykpKSB7XG4gICAgICAgICAgICBjYXNlICdBVURJTyc6XG4gICAgICAgICAgICAgIGNscyA9ICdhdWRpbyc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSU1BR0UnOlxuICAgICAgICAgICAgICAvLyBOb3JtYWxseSBpbWFnZXMgYXJlIGRpc3BsYXllZCBhcyB0aHVtYm5haWxzLCBidXQgaWYgYW4gaW1hZ2UgdHlwZSBpcyBub3QgcmVjb2duaXplZFxuICAgICAgICAgICAgICAvLyBhcyBiZWluZyB3aWRlbHkgc3VwcG9ydGVkIGJ5IG1vZGVybiBicm93c2VycyAoZS5nLiBUSUZGIGZpbGVzKSB0aGVuIGFuIGljb24gc2hvdWxkXG4gICAgICAgICAgICAgIC8vIGJlIGRpc3BsYXllZCBpbnN0ZWFkLlxuICAgICAgICAgICAgICBjbHMgPSAnaW1hZ2UnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1RFWFQnOlxuICAgICAgICAgICAgICBjbHMgPSAndGV4dCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVklERU8nOlxuICAgICAgICAgICAgICBjbHMgPSAndmlkZW8nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmljb24gPSAnZmlsZS0nICsgKGNscyA/IGNscyArICctJyA6ICcnKSArICdvJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pY29uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtRGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlRmlsZS5lbWl0KHRoaXMuZmlsZUl0ZW0pO1xuICAgIGlmICghdGhpcy5pc0ZpbGUpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfbGlua19yZW1vdmVkJywgdGhpcy51cmwpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlU3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZVN0cmluZyk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgICAgLmdldFN0cmluZyhcbiAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfdXBsb2FkX2ZpbGVfcmVtb3ZlZCcsXG4gICAgICAgICAgdGhpcy5maWxlTmFtZSxcbiAgICAgICAgKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZVN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuI2xpdmVBbm5vdW5jZXJTdmMuYW5ub3VuY2UocmVzb3VyY2VTdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtIHNreS1wYWRkaW5nLWV2ZW4tZGVmYXVsdFwiICpuZ0lmPVwiZmlsZUl0ZW1cIj5cbiAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tdGl0bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1uYW1lLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tbmFtZVwiPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiaXNGaWxlXCI+e3sgZmlsZU5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cIiFpc0ZpbGVcIj57eyB1cmwgfX08L3N0cm9uZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tc2l6ZVwiICpuZ0lmPVwiaXNGaWxlXCI+XG4gICAgICAgICh7eyBmaWxlU2l6ZSB8IHNreUZpbGVTaXplIH19KVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tY29udHJvbHNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWZpbGUtaXRlbS1idG4tZGVsZXRlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAnc2t5dXhfZmlsZV9hdHRhY2htZW50X2ZpbGVfaXRlbV9kZWxldGUnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJpdGVtRGVsZXRlKClcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cInRyYXNoLW9cIiBzaXplPVwibGdcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tcHJldmlld1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImlzSW1hZ2VcIiBjbGFzcz1cInNreS1maWxlLWl0ZW0tcHJldmlldy1pbWctY29udGFpbmVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBjbGFzcz1cInNreS1maWxlLWl0ZW0tcHJldmlldy1pbWdcIlxuICAgICAgICAgIFtzcmNdPVwidXJsXCJcbiAgICAgICAgICBbYWx0XT1cIlxuICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9pbWFnZV9wcmV2aWV3X2FsdF90ZXh0J1xuICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgIFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNJbWFnZVwiIGNsYXNzPVwic2t5LWZpbGUtaXRlbS1wcmV2aWV3LW90aGVyXCI+XG4gICAgICAgIDxza3ktaWNvbiBbaWNvbl09XCJpY29uXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLWNvbnRlbnQtY3VzdG9tXCI+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFXM0QsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7Ozs7O09BTUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUE0QztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElB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Q0FBQztpQkFDYixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWE7aUJBQ2YsU0FBUyxDQUNSLGdEQUFnRCxFQUNoRCxJQUFJLENBQUMsUUFBUSxDQUNkO2lCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2IsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzs4R0E1SlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isa0pDOUJqQyw2cURBc0RBLDAzQkQ5QlksZUFBZSxtREFBRSx1QkFBdUIsdUdBQUUsYUFBYTs7MkZBTXRELG9CQUFvQjtrQkFQaEMsU0FBUzs4QkFDQyxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsWUFDeEQsZUFBZSxjQUNiLElBQUk7cUhBYUwsUUFBUTtzQkFEbEIsS0FBSztnQkF5QkMsVUFBVTtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycyxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcblxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LWZvcm1zLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RmlsZUl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1pdGVtJztcbmltcG9ydCB7IFNreUZpbGVJdGVtU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9maWxlLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lGaWxlU2l6ZVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1zaXplLnBpcGUnO1xuXG5pbXBvcnQgeyBTa3lGaWxlTGluayB9IGZyb20gJy4vZmlsZS1saW5rJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtTa3lGaWxlU2l6ZVBpcGUsIFNreUZvcm1zUmVzb3VyY2VzTW9kdWxlLCBTa3lJY29uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdza3ktZmlsZS1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtaXRlbS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lGaWxlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICAvKipcbiAgICogVGhlIHN1bW1hcnkgaW5mb3JtYXRpb24gdG8gZGlzcGxheSBhYm91dCBmaWxlIGF0dGFjaG1lbnRzLiBGb3IgbG9jYWwgZmlsZXMsXG4gICAqIHRoZSBkZWZhdWx0IHN1bW1hcnkgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZSwgZmlsZSBzaXplLCBmaWxlIHByZXZpZXcsIGFuZCBhIGRlbGV0ZSBidXR0b24uXG4gICAqIEZvciBleHRlcm5hbCBmaWxlcywgdGhlIGRlZmF1bHQgc3VtbWFyeSBpbmNsdWRlcyB0aGUgVVJMIGFuZCBhIGRlbGV0ZSBidXR0b24uXG4gICAqIFlvdSBjYW4gaW5jbHVkZSBhZGRpdGlvbmFsIGlucHV0cyB0byBkaXNwbGF5IHVzZXItZW50ZXJlZCBtZXRhZGF0YS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpbGVJdGVtKHZhbHVlOiBTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2ZpbGVJdGVtID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlICYmICdmaWxlJyBpbiB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0ZpbGUgPSB0aGlzLiNmaWxlSXRlbVNlcnZpY2UuaXNGaWxlKHZhbHVlKTtcbiAgICAgIHRoaXMuaXNJbWFnZSA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5pc0ltYWdlKHZhbHVlKTtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSB2YWx1ZS5maWxlLm5hbWU7XG4gICAgICB0aGlzLmZpbGVTaXplID0gdmFsdWUuZmlsZS5zaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRmlsZSA9IHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5maWxlTmFtZSA9ICcnO1xuICAgICAgdGhpcy5maWxlU2l6ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy51cmwgPSB2YWx1ZT8udXJsID8/ICcnO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWxlSXRlbSgpOiBTa3lGaWxlSXRlbSB8IFNreUZpbGVMaW5rIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZpbGVJdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IHRoZSBkZWxldGUgYnV0dG9uIGZvciBhbiBpdGVtLiBUaGUgZGVsZXRlZCBpdGVtIGlzIHBhc3NlZCB0byB0aGVcbiAgICogZnVuY3Rpb24uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGV0ZUZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUZpbGVMaW5rIHwgU2t5RmlsZUl0ZW0+KCk7XG5cbiAgcHVibGljIGZpbGVOYW1lID0gJyc7XG5cbiAgcHVibGljIGZpbGVTaXplOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHVybCA9ICcnO1xuXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGlzRmlsZSA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbWFnZSA9IGZhbHNlO1xuXG4gICNfZmlsZUl0ZW06IFNreUZpbGVJdGVtIHwgU2t5RmlsZUxpbmsgfCB1bmRlZmluZWQ7XG5cbiAgI2RpZmZlcjogS2V5VmFsdWVEaWZmZXI8YW55LCBhbnk+O1xuICAjZmlsZUl0ZW1TZXJ2aWNlOiBTa3lGaWxlSXRlbVNlcnZpY2U7XG5cbiAgcmVhZG9ubHkgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNyZXNvdXJjZXNTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLCBmaWxlSXRlbVNlcnZpY2U6IFNreUZpbGVJdGVtU2VydmljZSkge1xuICAgIHRoaXMuI2RpZmZlciA9IGRpZmZlcnMuZmluZCh7fSkuY3JlYXRlKCk7XG4gICAgdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlID0gZmlsZUl0ZW1TZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlSXRlbSkge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuI2RpZmZlci5kaWZmKHRoaXMuZmlsZUl0ZW0pO1xuXG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICBsZXQgY2xzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvblVwcGVyID0gdGhpcy4jZmlsZUl0ZW1TZXJ2aWNlLmdldEZpbGVFeHRlbnNpb25VcHBlcihcbiAgICAgICAgICB0aGlzLmZpbGVJdGVtIGFzIFNreUZpbGVJdGVtLFxuICAgICAgICApO1xuICAgICAgICBsZXQgZmlsZVR5cGVVcHBlcjogc3RyaW5nO1xuXG4gICAgICAgIHN3aXRjaCAoZXh0ZW5zaW9uVXBwZXIpIHtcbiAgICAgICAgICBjYXNlICcuUERGJzpcbiAgICAgICAgICAgIGNscyA9ICdwZGYnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnLkdaJzpcbiAgICAgICAgICBjYXNlICcuUkFSJzpcbiAgICAgICAgICBjYXNlICcuVEdaJzpcbiAgICAgICAgICBjYXNlICcuWklQJzpcbiAgICAgICAgICAgIGNscyA9ICdhcmNoaXZlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5QUFQnOlxuICAgICAgICAgIGNhc2UgJy5QUFRYJzpcbiAgICAgICAgICAgIGNscyA9ICdwb3dlcnBvaW50JztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5ET0MnOlxuICAgICAgICAgIGNhc2UgJy5ET0NYJzpcbiAgICAgICAgICAgIGNscyA9ICd3b3JkJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5YTFMnOlxuICAgICAgICAgIGNhc2UgJy5YTFNYJzpcbiAgICAgICAgICAgIGNscyA9ICdleGNlbCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICcuVFhUJzpcbiAgICAgICAgICAgIGNscyA9ICd0ZXh0JztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy5IVE0nOlxuICAgICAgICAgIGNhc2UgJy5IVE1MJzpcbiAgICAgICAgICAgIGNscyA9ICdjb2RlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2xzKSB7XG4gICAgICAgICAgZmlsZVR5cGVVcHBlciA9IHRoaXMuI2ZpbGVJdGVtU2VydmljZS5nZXRGaWxlVHlwZVVwcGVyKFxuICAgICAgICAgICAgdGhpcy5maWxlSXRlbSBhcyBTa3lGaWxlSXRlbSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgc3dpdGNoIChmaWxlVHlwZVVwcGVyLnN1YnN0cigwLCBmaWxlVHlwZVVwcGVyLmluZGV4T2YoJy8nKSkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0FVRElPJzpcbiAgICAgICAgICAgICAgY2xzID0gJ2F1ZGlvJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJTUFHRSc6XG4gICAgICAgICAgICAgIC8vIE5vcm1hbGx5IGltYWdlcyBhcmUgZGlzcGxheWVkIGFzIHRodW1ibmFpbHMsIGJ1dCBpZiBhbiBpbWFnZSB0eXBlIGlzIG5vdCByZWNvZ25pemVkXG4gICAgICAgICAgICAgIC8vIGFzIGJlaW5nIHdpZGVseSBzdXBwb3J0ZWQgYnkgbW9kZXJuIGJyb3dzZXJzIChlLmcuIFRJRkYgZmlsZXMpIHRoZW4gYW4gaWNvbiBzaG91bGRcbiAgICAgICAgICAgICAgLy8gYmUgZGlzcGxheWVkIGluc3RlYWQuXG4gICAgICAgICAgICAgIGNscyA9ICdpbWFnZSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVEVYVCc6XG4gICAgICAgICAgICAgIGNscyA9ICd0ZXh0JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdWSURFTyc6XG4gICAgICAgICAgICAgIGNscyA9ICd2aWRlbyc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWNvbiA9ICdmaWxlLScgKyAoY2xzID8gY2xzICsgJy0nIDogJycpICsgJ28nO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmljb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGl0ZW1EZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVGaWxlLmVtaXQodGhpcy5maWxlSXRlbSk7XG4gICAgaWYgKCF0aGlzLmlzRmlsZSkge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzU3ZjXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9saW5rX3JlbW92ZWQnLCB0aGlzLnVybClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2VTdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyU3ZjLmFubm91bmNlKHJlc291cmNlU3RyaW5nKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1N2Y1xuICAgICAgICAuZ2V0U3RyaW5nKFxuICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV91cGxvYWRfZmlsZV9yZW1vdmVkJyxcbiAgICAgICAgICB0aGlzLmZpbGVOYW1lLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc291cmNlU3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZShyZXNvdXJjZVN0cmluZyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChmaWxlSXRlbSkge1xuICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbSBza3ktcGFkZGluZy1ldmVuLWRlZmF1bHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tbmFtZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tbmFtZVwiPlxuICAgICAgICAgIEBpZiAoaXNGaWxlKSB7XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGZpbGVOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHVybCB9fTwvc3Ryb25nPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoaXNGaWxlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1maWxlLWl0ZW0tc2l6ZVwiPih7eyBmaWxlU2l6ZSB8IHNreUZpbGVTaXplIH19KTwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLWNvbnRyb2xzXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1maWxlLWl0ZW0tYnRuLWRlbGV0ZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICdza3l1eF9maWxlX2F0dGFjaG1lbnRfZmlsZV9pdGVtX2RlbGV0ZSdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IChpc0ZpbGUgPyBmaWxlTmFtZSA6IHVybClcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGljayk9XCJpdGVtRGVsZXRlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJ0cmFzaC1vXCIgc2l6ZT1cImxnXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1wcmV2aWV3XCI+XG4gICAgICAgIEBpZiAoaXNJbWFnZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLXByZXZpZXctaW1nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBjbGFzcz1cInNreS1maWxlLWl0ZW0tcHJldmlldy1pbWdcIlxuICAgICAgICAgICAgICBbc3JjXT1cInVybFwiXG4gICAgICAgICAgICAgIFthbHRdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2ZpbGVfYXR0YWNobWVudF9maWxlX3VwbG9hZF9pbWFnZV9wcmV2aWV3X2FsdF90ZXh0J1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZmlsZS1pdGVtLXByZXZpZXctb3RoZXJcIj5cbiAgICAgICAgICAgIDxza3ktaWNvbiBbaWNvbl09XCJpY29uXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWZpbGUtaXRlbS1jb250ZW50LWN1c3RvbVwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -61,10 +61,10 @@ export class SkyFileItemService {
|
|
|
61
61
|
}
|
|
62
62
|
return fileType.toUpperCase();
|
|
63
63
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
65
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileItemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileItemService, providedIn: 'root' }); }
|
|
66
66
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyFileItemService, decorators: [{
|
|
68
68
|
type: Injectable,
|
|
69
69
|
args: [{ providedIn: 'root' }]
|
|
70
70
|
}] });
|