@impartner/design-components 1.0.5 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/alert/alert.component.mjs +48 -6
- package/esm2020/lib/alert/alert.module.mjs +6 -5
- package/esm2020/lib/avatar/avatar.component.mjs +4 -3
- package/esm2020/lib/avatar/avatar.module.mjs +6 -5
- package/esm2020/lib/badge/badge.component.mjs +4 -3
- package/esm2020/lib/badge/badge.module.mjs +6 -5
- package/esm2020/lib/data-card/data-card.component.mjs +4 -3
- package/esm2020/lib/data-card/data-card.module.mjs +6 -5
- package/esm2020/lib/file-upload/file-upload.component.mjs +6 -5
- package/esm2020/lib/file-upload/file-upload.module.mjs +7 -6
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +4 -3
- package/esm2020/lib/form-field/controls/select/select.module.mjs +15 -5
- package/esm2020/lib/icon/icon.component.mjs +6 -4
- package/esm2020/lib/pagination/pagination.component.mjs +6 -5
- package/esm2020/lib/pagination/pagination.module.mjs +20 -5
- package/esm2020/lib/scrollable/scrollable.component.mjs +3 -3
- package/esm2020/lib/select-icon/select-icon.component.mjs +7 -6
- package/fesm2015/impartner-design-components.mjs +118 -52
- package/fesm2015/impartner-design-components.mjs.map +1 -1
- package/fesm2020/impartner-design-components.mjs +118 -52
- package/fesm2020/impartner-design-components.mjs.map +1 -1
- package/lib/alert/alert.component.d.ts +20 -3
- package/lib/alert/alert.module.d.ts +2 -1
- package/lib/avatar/avatar.module.d.ts +2 -1
- package/lib/badge/badge.module.d.ts +2 -1
- package/lib/data-card/data-card.module.d.ts +2 -1
- package/lib/file-upload/file-upload.module.d.ts +2 -1
- package/lib/form-field/controls/select/select.module.d.ts +2 -1
- package/lib/icon/icon.component.d.ts +3 -1
- package/lib/pagination/pagination.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -10,8 +10,9 @@ import * as i1 from "../form-field";
|
|
|
10
10
|
import * as i2 from "@angular/forms";
|
|
11
11
|
import * as i3 from "@angular/common";
|
|
12
12
|
import * as i4 from "../button/button.component";
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "./
|
|
13
|
+
import * as i5 from "../icon/icon.component";
|
|
14
|
+
import * as i6 from "./directives/file-drop.directive";
|
|
15
|
+
import * as i7 from "./pipes/human-readable-byte-size.pipe";
|
|
15
16
|
const _FileUploadComponentBase = mixinTabIndex(mixinDisabled(mixinErrorState(class {
|
|
16
17
|
constructor(_defaultErrorStateMatcher, _formRoot, _parentForm, _parentFormGroup, ngControl) {
|
|
17
18
|
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
@@ -275,7 +276,7 @@ FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
275
276
|
provide: ImpdcFormFieldControl,
|
|
276
277
|
useExisting: FileUploadComponent
|
|
277
278
|
}
|
|
278
|
-
], viewQueries: [{ propertyName: "fileDropElementRef", first: true, predicate: FileDropDirective, descendants: true, read: ElementRef }, { propertyName: "fileUploadInputEltRef", first: true, predicate: ["fileUploadInputElt"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span
|
|
279
|
+
], viewQueries: [{ propertyName: "fileDropElementRef", first: true, predicate: FileDropDirective, descendants: true, read: ElementRef }, { propertyName: "fileUploadInputEltRef", first: true, predicate: ["fileUploadInputElt"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i5.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }, { kind: "directive", type: i6.FileDropDirective, selector: "[impdcFileDrop]", outputs: ["filesDropped"] }, { kind: "pipe", type: i7.HumanReadableByteSizePipe, name: "humanReadableByteSize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
279
280
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
280
281
|
type: Component,
|
|
281
282
|
args: [{ selector: 'impdc-file-upload, [impdc-file-upload]', inputs: ['disabled', 'tabIndex'], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
@@ -296,7 +297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
296
297
|
provide: ImpdcFormFieldControl,
|
|
297
298
|
useExisting: FileUploadComponent
|
|
298
299
|
}
|
|
299
|
-
], template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span
|
|
300
|
+
], template: "<div class=\"impdc-file-upload-container\">\n <div\n class=\"impdc-file-upload-dropzone\"\n [ngClass]=\"{\n 'hide-upload': !canUpload\n }\"\n impdcFileDrop\n (filesDropped)=\"handleDrop($event)\"\n (keyup.enter)=\"fileUploadInputElt.click()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [tabindex]=\"disabled ? '-1' : '0'\">\n <input\n class=\"file-upload-input\"\n type=\"file\"\n #fileUploadInputElt\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n (change)=\"handleChange($event)\"\n tabindex=\"-1\" />\n <span\n impdc-icon\n theme=\"regular\"\n name=\"cloud-upload-alt\"\n class=\"upload-icon\"></span>\n <p class=\"upload-text\">{{ uploadText }}</p>\n </div>\n <div class=\"current-files\" *ngIf=\"filesForDisplay.length\">\n <ng-container *ngFor=\"let file of filesForDisplay; let idx = index\">\n <div class=\"current-file\">\n <div class=\"current-file-details\">\n <div class=\"name\">{{ file.name }}</div>\n <div class=\"size\">{{ file.size | humanReadableByteSize }}</div>\n </div>\n <div *ngIf=\"!disabled\" class=\"current-file-actions\">\n <button\n impdcButton\n theme=\"close\"\n tabindex=\"0\"\n (keyup.enter)=\"removeFile(idx)\"\n (click)=\"removeFile(idx)\"></button>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone{color:var(--impd-color-red-500);border-color:var(--impd-color-red-500)}:host.impdc-file-upload--invalid .impdc-file-upload-dropzone .upload-text{color:var(--impd-color-red-900)}:host.impdc-file-upload--invalid .impdc-file-upload-container .current-files .current-file{border-color:var(--impd-color-red-500)}:host.impdc-file-upload--disabled .impdc-file-upload-dropzone{color:var(--impd-color-gray-300);background-color:var(--impd-color-gray-50)}:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:focus,:host:not(.impdc-file-upload--disabled) .impdc-file-upload-dropzone:has(label > button:focus){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container{display:flex;flex-direction:column;gap:var(--impd-size-2);width:100%}.impdc-file-upload-container .file-hover:not(.disabled){background-color:var(--impd-color-gray-50);border:2px solid var(--impd-color-motion-blue-500);border-radius:var(--impd-border-radius-md);outline:none}.impdc-file-upload-container .current-files{display:flex;flex-direction:column;gap:var(--impd-size-2)}.impdc-file-upload-container .current-files .current-file{display:inline-flex;background-color:var(--impd-color-gray-50);padding:var(--impd-size-4);gap:var(--impd-size-4);border-radius:var(--impd-border-radius-md);border:1px solid var(--impd-color-gray-200);justify-content:space-between;align-items:center;color:var(--impd-color-gray-600)}.impdc-file-upload-container .current-files .current-file .current-file-details{display:flex;flex-direction:column}.impdc-file-upload-container .current-files .current-file .current-file-details .name{color:var(--impd-color-gray-900);font-size:1.4rem;font-weight:500}.impdc-file-upload-container .current-files .current-file .current-file-details .size{font-size:1.4rem}.impdc-file-upload-container .current-files .current-file .current-file-actions .btn.btn-close-fa{color:var(--impd-color-gray-600)}.impdc-file-upload-dropzone{position:relative;display:flex;flex-direction:column;width:100%;min-height:10rem;padding:3.2rem 1.6rem;gap:2rem;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--impd-color-gray-200);color:var(--impd-color-motion-blue-600);border-radius:5px}.impdc-file-upload-dropzone.hide-upload{display:none}.impdc-file-upload-dropzone .upload-icon{font-size:33px;color:inherit}.impdc-file-upload-dropzone .upload-text{margin:0;font-size:14px;line-height:20px;color:inherit}.impdc-file-upload-dropzone .button-text{border-color:var(--impd-color-motion-blue-600);background-color:var(--impd-color-motion-blue-600);color:#fff}.impdc-file-upload-dropzone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:2;cursor:pointer}.impdc-file-upload-dropzone input:disabled{cursor:default}\n"] }]
|
|
300
301
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
301
302
|
type: Optional
|
|
302
303
|
}, {
|
|
@@ -331,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
331
332
|
}], required: [{
|
|
332
333
|
type: Input
|
|
333
334
|
}] } });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFPTCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFnQiwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFakQsTUFBTSx3QkFBd0IsR0FBRyxhQUFhLENBQzVDLGFBQWEsQ0FDWCxlQUFlLENBQ2I7SUFHRSxZQUNTLHlCQUE0QyxFQUM1QyxTQUF3QixFQUN4QixXQUFtQixFQUNuQixnQkFBb0MsRUFDcEMsU0FBMkI7UUFKM0IsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFtQjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLGdCQUFXLEdBQVgsV0FB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QUM3QyxxQkFBcUIsRUFBRSxZQUFZO3dCQUNuQyxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxvQ0FBb0MsRUFBRSxZQUFZO3dCQUNsRCxxQ0FBcUMsRUFBRSxVQUFVO3dCQUNqRCxrQ0FBa0MsRUFBRSxPQUFPO3dCQUMzQyxTQUFTLEVBQUUscUJBQXFCO3FCQUNqQyxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjs7MEJBdUVFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLElBQUk7OzBCQUFJLFFBQVE7NENBNURULGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSzNDLHFCQUFxQjtzQkFEM0IsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT2xELFFBQVE7c0JBRFAsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQUlVLGlCQUFpQjtzQkFEaEMsS0FBSztnQkE2R0ssS0FBSztzQkFEZixLQUFLO2dCQTBCSyxFQUFFO3NCQURaLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdDb250cm9sLFxuICBOZ0Zvcm0sXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQge1xuICBFcnJvclN0YXRlTWF0Y2hlcixcbiAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gIElIYXNFcnJvclN0YXRlLFxuICBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gIEltcGRjRm9ybVJvb3QsXG4gIElNUERDX0ZPUk1fUk9PVCxcbiAgbWl4aW5EaXNhYmxlZCxcbiAgbWl4aW5FcnJvclN0YXRlLFxuICBtaXhpblRhYkluZGV4XG59IGZyb20gJy4uL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRmlsZURyb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG5jb25zdCBfRmlsZVVwbG9hZENvbXBvbmVudEJhc2UgPSBtaXhpblRhYkluZGV4KFxuICBtaXhpbkRpc2FibGVkKFxuICAgIG1peGluRXJyb3JTdGF0ZShcbiAgICAgIGNsYXNzIHtcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgICAgIHB1YmxpYyBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3QsXG4gICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgICBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICAgICAgICkge31cbiAgICAgIH1cbiAgICApXG4gIClcbik7XG5cbi8qKlxuICogVGhlIGBGaWxlVXBsb2FkQ29tcG9uZW50YCAoYDxpbXBkYy1maWxlLXVwbG9hZGAgb3IgYDxhbnkgaW1wZGMtZmlsZS11cGxvYWRgKSBpcyBhIGZpbGUgc2VsZWN0b3IgdGhhdCBzdXBwb3J0cyBkcmFnIGFuZCBkcm9wLlxuICogVG8gdXNlLCBpbXBvcnQgYEZpbGVVcGxvYWRNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZmlsZS11cGxvYWQsIFtpbXBkYy1maWxlLXVwbG9hZF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGFiSW5kZXgnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdpbXBkYy1maWxlLXVwbG9hZCcsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0taW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tbXVsdGlwbGVdJzogJ211bHRpcGxlJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1lbXB0eV0nOiAnZW1wdHknLFxuICAgICcoZm9jdXMpJzogJ19vbkZvY3VzKCk7IGZvY3VzKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEltcGRjRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgZXh0ZW5kcyBfRmlsZVVwbG9hZENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50c1xuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvcixcbiAgICBJbXBkY0Zvcm1GaWVsZENvbnRyb2w8RmlsZSB8IEZpbGVbXT4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGUsXG4gICAgRG9DaGVjayxcbiAgICBPbkRlc3Ryb3lcbntcbiAgQFZpZXdDaGlsZChGaWxlRHJvcERpcmVjdGl2ZSwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByb3RlY3RlZCBmaWxlRHJvcEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdmaWxlVXBsb2FkSW5wdXRFbHQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGZpbGVVcGxvYWRJbnB1dEVsdFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgc3VwcG9ydHMgdXBsb2FkaW5nIG11bHRpcGxlIGZpbGVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGluc3RydWN0aW9uYWwgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBmaWxlIHVwbG9hZCBkcm9wem9uZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHVwbG9hZFRleHQgPSAnRHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlIG9yIGNsaWNrIHRvIHVwbG9hZCc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBmaWxlIHR5cGVzIHRoYXQgYXJlIGFjY2VwdGVkIGJ5IHRoZSBjb250cm9sLlxuICAgKi9cbiAgQElucHV0KClcbiAgYWNjZXB0ID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGVycm9yU3RhdGVNYXRjaGVyITogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgcHVibGljIGdldCBjYW5VcGxvYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgfHwgdGhpcy5fdmFsdWUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYWNjZXB0VHlwZXMoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5hY2NlcHQgfHwgIXRoaXMuYWNjZXB0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFjY2VwdFxuICAgICAgLnNwbGl0KCcsJylcbiAgICAgIC5tYXAoYSA9PiBhLnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoYSA9PiAhIWEpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBmaWxlc0ZvckRpc3BsYXkoKTogcmVhZG9ubHkgRmlsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgfHwgW107XG4gIH1cblxuICBwcml2YXRlIF9jdmFPbkNoYW5nZTogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2N2YU9uVG91Y2hlZDogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3VpZCA9IGBpbXBkYy1maWxlLXVwbG9hZC0ke25hbm9pZCgpfWA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSU1QRENfRk9STV9ST09UKSBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3QsXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgX2Zvcm1Sb290LFxuICAgICAgX3BhcmVudEZvcm0sXG4gICAgICBfcGFyZW50Rm9ybUdyb3VwLFxuICAgICAgbmdDb250cm9sXG4gICAgKTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5hZGRWYWxpZGF0b3JzKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIGhhbmRsZUNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgfCBudWxsID0gKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkgfHwge30pXG4gICAgICAuZmlsZXM7XG5cbiAgICBpZiAoIWZpbGVMaXN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbWVyZ2VOZXdGaWxlc1dpdGhFeGlzdGluZ0ZpbGVzKGZpbGVMaXN0KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBoYW5kbGVEcm9wKGV2ZW50OiBGaWxlTGlzdCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICFldmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhldmVudCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVtb3ZlRmlsZShmaWxlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld0ZpbGVzQXJyID0gWy4uLnRoaXMuX3ZhbHVlXTtcbiAgICBuZXdGaWxlc0Fyci5zcGxpY2UoZmlsZUluZGV4LCAxKTtcblxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlRnJvbUludGVyYWN0aW9uKG5ld0ZpbGVzQXJyKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5maWxlRHJvcEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qIExpZmVjeWNsZSBIb29rcyAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qIEltcGRjRm9ybUZpZWxkQ29udHJvbCAqL1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZShzKSBjdXJyZW50bHkgdXBsb2FkZWQgaW50byB0aGUgY29udHJvbC4gUmV0dXJucyBgRmlsZSB8IG51bGxgIHdoZW4gYG11bHRpcGxlYCBpcyBgZmFsc2VgLFxuICAgKiBhbmQgYEZpbGVbXWAgd2hlbiBgbXVsdGlwbGVgIGlzIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRmlsZSB8IEZpbGVbXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gWy4uLnRoaXMuX3ZhbHVlXSA6IHRoaXMuX3ZhbHVlWzBdO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUobmV3VmFsdWU6IEZpbGUgfCBGaWxlW10gfCBudWxsKSB7XG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWUgPyBbLi4ubmV3VmFsdWVdIDogW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlID8gW25ld1ZhbHVlXSA6IFtdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVMaXN0ID0gdGhpcy5fZ2V0RmlsZUxpc3QodGhpcy5fdmFsdWUpO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5maWxlVXBsb2FkSW5wdXRFbHRSZWYgJiZcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmLm5hdGl2ZUVsZW1lbnQuZmlsZXMgPSBmaWxlTGlzdDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHJlYWRvbmx5IEZpbGVbXSA9IFtdO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2YWx1ZSB8fCB0aGlzLl91aWQ7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX2lkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNldCByZXF1aXJlZG5lc3Mgb2YgY29udHJvbCBpbiBhIHRlbXBsYXRlLWJhc2VkIG1hbm5lcjtcbiAgICogbm90IG5lY2Vzc2FyeSB3aGVuIHVzaW5nIHRoZSBBbmd1bGFyIHJlYWN0aXZlIGZvcm1zIEFQSSBhbmQgYHJlcXVpcmVkYCB2YWxpZGF0b3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9yZXF1aXJlZCA/P1xuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/P1xuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQ7XG4gIH1cbiAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250cm9sVHlwZTogc3RyaW5nID0gJ2ltcGRjLWZpbGUtdXBsb2FkJztcbiAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRzQWZmaXhlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qIENvbnRyb2xWYWx1ZUFjY2Vzc29yICovXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2N2YU9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fY3ZhT25Ub3VjaGVkID0gZm47XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyogVmFsaWRhdG9yICovXG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMucmVxdWlyZWQgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID09PSAwXG4gICAgICA/IHsgcmVxdWlyZWQ6IHRydWUgfVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgLyogSW50ZXJuYWxzICovXG5cbiAgcHJvdGVjdGVkIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZm9jdXNlZCA9IHRydWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9jdmFPblRvdWNoZWQgJiYgdGhpcy5fY3ZhT25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbihuZXdWYWx1ZTogRmlsZVtdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgdGhpcy5fY3ZhT25DaGFuZ2UgJiYgdGhpcy5fY3ZhT25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5fY3ZhT25Ub3VjaGVkICYmIHRoaXMuX2N2YU9uVG91Y2hlZCgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhmaWxlTGlzdDogRmlsZUxpc3QgfCBudWxsKSB7XG4gICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS5sZW5ndGggPT0gMSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBGaWxlcyA9IFsuLi50aGlzLl92YWx1ZV07XG5cbiAgICBBcnJheS5mcm9tKGZpbGVMaXN0KS5mb3JFYWNoKG5ld0ZpbGUgPT4ge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRlbXBGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4aXN0aW5nRmlsZSA9IHRlbXBGaWxlcy5maW5kKFxuICAgICAgICBleGlzdGluZyA9PlxuICAgICAgICAgIGV4aXN0aW5nLm5hbWUgPT09IG5ld0ZpbGUubmFtZSAmJlxuICAgICAgICAgIGV4aXN0aW5nLmxhc3RNb2RpZmllZCA9PT0gbmV3RmlsZS5sYXN0TW9kaWZpZWQgJiZcbiAgICAgICAgICBleGlzdGluZy5zaXplID09PSBuZXdGaWxlLnNpemVcbiAgICAgICk7XG5cbiAgICAgIGlmIChleGlzdGluZ0ZpbGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fYWNjZXB0ZWRGaWxlVHlwZShuZXdGaWxlLnR5cGUsIG5ld0ZpbGUubmFtZSkpIHtcbiAgICAgICAgdGVtcEZpbGVzLnB1c2gobmV3RmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbih0ZW1wRmlsZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RmlsZUxpc3QoZmlsZXM6IHJlYWRvbmx5IEZpbGVbXSk6IEZpbGVMaXN0IHtcbiAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XG5cbiAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChmaWxlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhVHJhbnNmZXIuZmlsZXM7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFeHRlbnNpb25zKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbmFtZVNlZ21lbnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcbiAgICBsZXQgZXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChuYW1lU2VnbWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gICAgfVxuXG4gICAgY29uc3QgZXh0ZW5zaW9uID0gYC4ke25hbWVTZWdtZW50cy5zbGljZSgxKS5qb2luKCcuJyl9YDtcbiAgICBleHRlbnNpb25zLnB1c2goZXh0ZW5zaW9uKTtcblxuICAgIGlmIChuYW1lU2VnbWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICByZXR1cm4gZXh0ZW5zaW9ucztcbiAgICB9XG5cbiAgICBjb25zdCBzdWIgPSBgLiR7bmFtZVNlZ21lbnRzLnNsaWNlKDIpLmpvaW4oJy4nKX1gO1xuICAgIGNvbnN0IHN1YkV4dGVuc2lvbnMgPSB0aGlzLl9nZXRFeHRlbnNpb25zKHN1Yik7XG4gICAgZXh0ZW5zaW9ucyA9IFsuLi5leHRlbnNpb25zLCAuLi5zdWJFeHRlbnNpb25zXTtcblxuICAgIHJldHVybiBleHRlbnNpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWNjZXB0ZWRGaWxlVHlwZSh0eXBlOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0VHlwZXMgfHwgdGhpcy5hY2NlcHRUeXBlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkQnlUeXBlID0gdGhpcy5hY2NlcHRUeXBlcy5pbmNsdWRlcyh0eXBlKTtcblxuICAgIGlmIChhY2NlcHRlZEJ5VHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbnMgPSB0aGlzLl9nZXRFeHRlbnNpb25zKGZpbGVOYW1lKTtcblxuICAgIGlmICghZmlsZUV4dGVuc2lvbnMgfHwgZmlsZUV4dGVuc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXB0ZWRCeUV4dGVuc2lvbiA9IHRoaXMuYWNjZXB0VHlwZXMuc29tZSh0eXBlID0+XG4gICAgICBmaWxlRXh0ZW5zaW9ucy5pbmNsdWRlcyh0eXBlKVxuICAgICk7XG5cbiAgICByZXR1cm4gYWNjZXB0ZWRCeUV4dGVuc2lvbjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImltcGRjLWZpbGUtdXBsb2FkLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJpbXBkYy1maWxlLXVwbG9hZC1kcm9wem9uZVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2hpZGUtdXBsb2FkJzogIWNhblVwbG9hZFxuICAgIH1cIlxuICAgIGltcGRjRmlsZURyb3BcbiAgICAoZmlsZXNEcm9wcGVkKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiXG4gICAgKGtleXVwLmVudGVyKT1cImZpbGVVcGxvYWRJbnB1dEVsdC5jbGljaygpXCJcbiAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gICAgKGJsdXIpPVwiX29uQmx1cigpXCJcbiAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAnLTEnIDogJzAnXCI+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZpbGUtdXBsb2FkLWlucHV0XCJcbiAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICNmaWxlVXBsb2FkSW5wdXRFbHRcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICB0YWJpbmRleD1cIi0xXCIgLz5cbiAgICA8c3BhbiBjbGFzcz1cImZhcyBmYS1jbG91ZC11cGxvYWQtYWx0IHVwbG9hZC1pY29uXCI+PC9zcGFuPlxuICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHRcIj57eyB1cGxvYWRUZXh0IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImN1cnJlbnQtZmlsZXNcIiAqbmdJZj1cImZpbGVzRm9yRGlzcGxheS5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzRm9yRGlzcGxheTsgbGV0IGlkeCA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1maWxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50LWZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemVcIj57eyBmaWxlLnNpemUgfCBodW1hblJlYWRhYmxlQnl0ZVNpemUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRcIiBjbGFzcz1cImN1cnJlbnQtZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAgIHRoZW1lPVwiY2xvc2VcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZW1vdmVGaWxlKGlkeClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoaWR4KVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFPTCxVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFnQiwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFJTCxxQkFBcUIsRUFFckIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBRWpELE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUM1QyxhQUFhLENBQ1gsZUFBZSxDQUNiO0lBR0UsWUFDUyx5QkFBNEMsRUFDNUMsU0FBd0IsRUFDeEIsV0FBbUIsRUFDbkIsZ0JBQW9DLEVBQ3BDLFNBQTJCO1FBSjNCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBbUI7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixnQkFBVyxHQUFYLFdB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QkFDN0MscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsb0NBQW9DLEVBQUUsWUFBWTt3QkFDbEQscUNBQXFDLEVBQUUsVUFBVTt3QkFDakQsa0NBQWtDLEVBQUUsT0FBTzt3QkFDM0MsU0FBUyxFQUFFLHFCQUFxQjtxQkFDakMsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7OzBCQXVFRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzswQkFDUixJQUFJOzswQkFBSSxRQUFROzRDQTVEVCxrQkFBa0I7c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUszQyxxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9sRCxRQUFRO3NCQURQLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFJVSxpQkFBaUI7c0JBRGhDLEtBQUs7Z0JBNkdLLEtBQUs7c0JBRGYsS0FBSztnQkEwQkssRUFBRTtzQkFEWixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSW1wZGNGb3JtRmllbGRDb250cm9sLFxuICBJbXBkY0Zvcm1Sb290LFxuICBJTVBEQ19GT1JNX1JPT1QsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlID0gbWl4aW5UYWJJbmRleChcbiAgbWl4aW5EaXNhYmxlZChcbiAgICBtaXhpbkVycm9yU3RhdGUoXG4gICAgICBjbGFzcyB7XG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgICAgICBwdWJsaWMgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbFxuICAgICAgICApIHt9XG4gICAgICB9XG4gICAgKVxuICApXG4pO1xuXG4vKipcbiAqIFRoZSBgRmlsZVVwbG9hZENvbXBvbmVudGAgKGA8aW1wZGMtZmlsZS11cGxvYWRgIG9yIGA8YW55IGltcGRjLWZpbGUtdXBsb2FkYCkgaXMgYSBmaWxlIHNlbGVjdG9yIHRoYXQgc3VwcG9ydHMgZHJhZyBhbmQgZHJvcC5cbiAqIFRvIHVzZSwgaW1wb3J0IGBGaWxlVXBsb2FkTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLWZpbGUtdXBsb2FkLCBbaW1wZGMtZmlsZS11cGxvYWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnaW1wZGMtZmlsZS11cGxvYWQnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICdbYXR0ci5hcmlhLXJlcXVpcmVkXSc6ICdyZXF1aXJlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWZpbGUtdXBsb2FkLS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZmlsZS11cGxvYWQtLW11bHRpcGxlXSc6ICdtdWx0aXBsZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1maWxlLXVwbG9hZC0tZW1wdHldJzogJ2VtcHR5JyxcbiAgICAnKGZvY3VzKSc6ICdfb25Gb2N1cygpOyBmb2N1cygpJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogRmlsZVVwbG9hZENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50XG4gIGV4dGVuZHMgX0ZpbGVVcGxvYWRDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHNcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBWYWxpZGF0b3IsXG4gICAgSW1wZGNGb3JtRmllbGRDb250cm9sPEZpbGUgfCBGaWxlW10+LFxuICAgIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICAgIElIYXNFcnJvclN0YXRlLFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95XG57XG4gIEBWaWV3Q2hpbGQoRmlsZURyb3BEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgZmlsZURyb3BFbGVtZW50UmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnZmlsZVVwbG9hZElucHV0RWx0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBmaWxlVXBsb2FkSW5wdXRFbHRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIHN1cHBvcnRzIHVwbG9hZGluZyBtdWx0aXBsZSBmaWxlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0cnVjdGlvbmFsIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgZmlsZSB1cGxvYWQgZHJvcHpvbmUuXG4gICAqL1xuICBASW5wdXQoKVxuICB1cGxvYWRUZXh0ID0gJ0RyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZSBvciBjbGljayB0byB1cGxvYWQnO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgZmlsZSB0eXBlcyB0aGF0IGFyZSBhY2NlcHRlZCBieSB0aGUgY29udHJvbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGFjY2VwdCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlciE6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIHB1YmxpYyBnZXQgY2FuVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlIHx8IHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFjY2VwdFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0IHx8ICF0aGlzLmFjY2VwdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHRcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKGEgPT4gYS50cmltKCkpXG4gICAgICAuZmlsdGVyKGEgPT4gISFhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNGb3JEaXNwbGF5KCk6IHJlYWRvbmx5IEZpbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3ZhT25DaGFuZ2U6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9jdmFPblRvdWNoZWQ6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF91aWQgPSBgaW1wZGMtZmlsZS11cGxvYWQtJHtuYW5vaWQoKX1gO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElNUERDX0ZPUk1fUk9PVCkgX2Zvcm1Sb290OiBJbXBkY0Zvcm1Sb290LFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uYWRkVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9ICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpIHx8IHt9KVxuICAgICAgLmZpbGVzO1xuXG4gICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lcmdlTmV3RmlsZXNXaXRoRXhpc3RpbmdGaWxlcyhmaWxlTGlzdCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRmlsZUxpc3QpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZXZlbnQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlbW92ZUZpbGUoZmlsZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdGaWxlc0FyciA9IFsuLi50aGlzLl92YWx1ZV07XG4gICAgbmV3RmlsZXNBcnIuc3BsaWNlKGZpbGVJbmRleCwgMSk7XG5cbiAgICB0aGlzLl91cGRhdGVWYWx1ZUZyb21JbnRlcmFjdGlvbihuZXdGaWxlc0Fycik7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuZmlsZURyb3BFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiBMaWZlY3ljbGUgSG9va3MgKi9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgKi9cblxuICAvKipcbiAgICogVGhlIGZpbGUocykgY3VycmVudGx5IHVwbG9hZGVkIGludG8gdGhlIGNvbnRyb2wuIFJldHVybnMgYEZpbGUgfCBudWxsYCB3aGVuIGBtdWx0aXBsZWAgaXMgYGZhbHNlYCxcbiAgICogYW5kIGBGaWxlW11gIHdoZW4gYG11bHRpcGxlYCBpcyBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEZpbGUgfCBGaWxlW10gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKG5ld1ZhbHVlOiBGaWxlIHwgRmlsZVtdIHwgbnVsbCkge1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlID8gWy4uLm5ld1ZhbHVlXSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZSA/IFtuZXdWYWx1ZV0gOiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuX2dldEZpbGVMaXN0KHRoaXMuX3ZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmlsZVVwbG9hZElucHV0RWx0UmVmICYmXG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRJbnB1dEVsdFJlZi5uYXRpdmVFbGVtZW50LmZpbGVzID0gZmlsZUxpc3Q7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiByZWFkb25seSBGaWxlW10gPSBbXTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcml2YXRlIF9pZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG4gIHByaXZhdGUgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1maWxlLXVwbG9hZCc7XG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCA9IGZuO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qIFZhbGlkYXRvciAqL1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA9PT0gMFxuICAgICAgPyB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qIEludGVybmFscyAqL1xuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fY3ZhT25Ub3VjaGVkICYmIHRoaXMuX2N2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24obmV3VmFsdWU6IEZpbGVbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblxuICAgIHRoaXMuX2N2YU9uQ2hhbmdlICYmIHRoaXMuX2N2YU9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2N2YU9uVG91Y2hlZCAmJiB0aGlzLl9jdmFPblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9tZXJnZU5ld0ZpbGVzV2l0aEV4aXN0aW5nRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZUxpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID09IDEgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wRmlsZXMgPSBbLi4udGhpcy5fdmFsdWVdO1xuXG4gICAgQXJyYXkuZnJvbShmaWxlTGlzdCkuZm9yRWFjaChuZXdGaWxlID0+IHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0ZW1wRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBleGlzdGluZ0ZpbGUgPSB0ZW1wRmlsZXMuZmluZChcbiAgICAgICAgZXhpc3RpbmcgPT5cbiAgICAgICAgICBleGlzdGluZy5uYW1lID09PSBuZXdGaWxlLm5hbWUgJiZcbiAgICAgICAgICBleGlzdGluZy5sYXN0TW9kaWZpZWQgPT09IG5ld0ZpbGUubGFzdE1vZGlmaWVkICYmXG4gICAgICAgICAgZXhpc3Rpbmcuc2l6ZSA9PT0gbmV3RmlsZS5zaXplXG4gICAgICApO1xuXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2VwdGVkRmlsZVR5cGUobmV3RmlsZS50eXBlLCBuZXdGaWxlLm5hbWUpKSB7XG4gICAgICAgIHRlbXBGaWxlcy5wdXNoKG5ld0ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVmFsdWVGcm9tSW50ZXJhY3Rpb24odGVtcEZpbGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpbGVMaXN0KGZpbGVzOiByZWFkb25seSBGaWxlW10pOiBGaWxlTGlzdCB7XG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xuXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YVRyYW5zZmVyLmZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5hbWVTZWdtZW50cyA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgbGV0IGV4dGVuc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBleHRlbnNpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGAuJHtuYW1lU2VnbWVudHMuc2xpY2UoMSkuam9pbignLicpfWA7XG4gICAgZXh0ZW5zaW9ucy5wdXNoKGV4dGVuc2lvbik7XG5cbiAgICBpZiAobmFtZVNlZ21lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gYC4ke25hbWVTZWdtZW50cy5zbGljZSgyKS5qb2luKCcuJyl9YDtcbiAgICBjb25zdCBzdWJFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhzdWIpO1xuICAgIGV4dGVuc2lvbnMgPSBbLi4uZXh0ZW5zaW9ucywgLi4uc3ViRXh0ZW5zaW9uc107XG5cbiAgICByZXR1cm4gZXh0ZW5zaW9ucztcbiAgfVxuXG4gIHByaXZhdGUgX2FjY2VwdGVkRmlsZVR5cGUodHlwZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdFR5cGVzIHx8IHRoaXMuYWNjZXB0VHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRlZEJ5VHlwZSA9IHRoaXMuYWNjZXB0VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoYWNjZXB0ZWRCeVR5cGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb25zID0gdGhpcy5fZ2V0RXh0ZW5zaW9ucyhmaWxlTmFtZSk7XG5cbiAgICBpZiAoIWZpbGVFeHRlbnNpb25zIHx8IGZpbGVFeHRlbnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY2VwdGVkQnlFeHRlbnNpb24gPSB0aGlzLmFjY2VwdFR5cGVzLnNvbWUodHlwZSA9PlxuICAgICAgZmlsZUV4dGVuc2lvbnMuaW5jbHVkZXModHlwZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjY2VwdGVkQnlFeHRlbnNpb247XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbXBkYy1maWxlLXVwbG9hZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW1wZGMtZmlsZS11cGxvYWQtZHJvcHpvbmVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdoaWRlLXVwbG9hZCc6ICFjYW5VcGxvYWRcbiAgICB9XCJcbiAgICBpbXBkY0ZpbGVEcm9wXG4gICAgKGZpbGVzRHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgIChrZXl1cC5lbnRlcik9XCJmaWxlVXBsb2FkSW5wdXRFbHQuY2xpY2soKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgIChibHVyKT1cIl9vbkJsdXIoKVwiXG4gICAgW3RhYmluZGV4XT1cImRpc2FibGVkID8gJy0xJyA6ICcwJ1wiPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmaWxlLXVwbG9hZC1pbnB1dFwiXG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAjZmlsZVVwbG9hZElucHV0RWx0XG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiIC8+XG4gICAgPHNwYW5cbiAgICAgIGltcGRjLWljb25cbiAgICAgIHRoZW1lPVwicmVndWxhclwiXG4gICAgICBuYW1lPVwiY2xvdWQtdXBsb2FkLWFsdFwiXG4gICAgICBjbGFzcz1cInVwbG9hZC1pY29uXCI+PC9zcGFuPlxuICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHRcIj57eyB1cGxvYWRUZXh0IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImN1cnJlbnQtZmlsZXNcIiAqbmdJZj1cImZpbGVzRm9yRGlzcGxheS5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzRm9yRGlzcGxheTsgbGV0IGlkeCA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1maWxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50LWZpbGUtZGV0YWlsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemVcIj57eyBmaWxlLnNpemUgfCBodW1hblJlYWRhYmxlQnl0ZVNpemUgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGlzYWJsZWRcIiBjbGFzcz1cImN1cnJlbnQtZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAgIHRoZW1lPVwiY2xvc2VcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJyZW1vdmVGaWxlKGlkeClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoaWR4KVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2,8 +2,9 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { FileDropDirective } from './directives';
|
|
4
4
|
import { FileUploadComponent } from './file-upload.component';
|
|
5
|
-
import { ButtonModule } from '../button';
|
|
6
5
|
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { ButtonModule } from '../button';
|
|
7
|
+
import { IconModule } from '../icon';
|
|
7
8
|
import { HumanReadableByteSizePipe } from './pipes';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export class FileUploadModule {
|
|
@@ -12,18 +13,18 @@ export class FileUploadModule {
|
|
|
12
13
|
FileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
14
|
FileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, declarations: [FileDropDirective,
|
|
14
15
|
FileUploadComponent,
|
|
15
|
-
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule], exports: [FileDropDirective, FileUploadComponent] });
|
|
16
|
-
FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule] });
|
|
16
|
+
HumanReadableByteSizePipe], imports: [CommonModule, FormsModule, ButtonModule, IconModule], exports: [IconModule, FileDropDirective, FileUploadComponent] });
|
|
17
|
+
FileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, imports: [CommonModule, FormsModule, ButtonModule, IconModule, IconModule] });
|
|
17
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: FileUploadModule, decorators: [{
|
|
18
19
|
type: NgModule,
|
|
19
20
|
args: [{
|
|
20
|
-
imports: [CommonModule, FormsModule, ButtonModule],
|
|
21
|
+
imports: [CommonModule, FormsModule, ButtonModule, IconModule],
|
|
21
22
|
declarations: [
|
|
22
23
|
FileDropDirective,
|
|
23
24
|
FileUploadComponent,
|
|
24
25
|
HumanReadableByteSizePipe
|
|
25
26
|
],
|
|
26
|
-
exports: [FileDropDirective, FileUploadComponent]
|
|
27
|
+
exports: [IconModule, FileDropDirective, FileUploadComponent]
|
|
27
28
|
}]
|
|
28
29
|
}], ctorParameters: function () { return []; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVdwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGdCQUFlLENBQUM7OzhHQURMLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQU56QixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHlCQUF5QixhQUpqQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLGFBTW5ELFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7K0dBRWpELGdCQUFnQixZQVJqQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBTW5ELFVBQVU7NEZBRVQsZ0JBQWdCO2tCQVQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztvQkFDOUQsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlRHJvcERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5pbXBvcnQgeyBIdW1hblJlYWRhYmxlQnl0ZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaWxlRHJvcERpcmVjdGl2ZSxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIEh1bWFuUmVhZGFibGVCeXRlU2l6ZVBpcGVcbiAgXSxcbiAgZXhwb3J0czogW0ljb25Nb2R1bGUsIEZpbGVEcm9wRGlyZWN0aXZlLCBGaWxlVXBsb2FkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
|
|
@@ -6,6 +6,7 @@ import { Subject } from 'rxjs';
|
|
|
6
6
|
import { IMPDC_SELECT_OPTION_PARENT_COMPONENT } from '../option-parent';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../../../icon/icon.component";
|
|
9
10
|
export class SelectOptionSelectionChangeEvent {
|
|
10
11
|
constructor(source, isUserInput = false) {
|
|
11
12
|
this.source = source;
|
|
@@ -109,7 +110,7 @@ export class SelectOptionComponent extends NgbDropdownItem {
|
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
SelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectOptionComponent, deps: [{ token: IMPDC_SELECT_OPTION_PARENT_COMPONENT, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
SelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SelectOptionComponent, selector: "impdc-select-option", inputs: { value: "value", label: "label", id: "id", disabled: "disabled" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "_selectViaInteraction()", "keydown": "_handleKeydown($event)" }, properties: { "class.impdc-select-option--single": "!multiple", "class.impdc-select-option--multiple": "multiple", "class.impdc-select-option--selected": "selected" } }, usesInheritance: true, ngImport: i0, template: "<ng-template #singleSelectTemplate>\n <span>{{ label || ' ' }}</span>\n <span
|
|
113
|
+
SelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SelectOptionComponent, selector: "impdc-select-option", inputs: { value: "value", label: "label", id: "id", disabled: "disabled" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "_selectViaInteraction()", "keydown": "_handleKeydown($event)" }, properties: { "class.impdc-select-option--single": "!multiple", "class.impdc-select-option--multiple": "multiple", "class.impdc-select-option--selected": "selected" } }, usesInheritance: true, ngImport: i0, template: "<ng-template #singleSelectTemplate>\n <span>{{ label || ' ' }}</span>\n <span\n *ngIf=\"selected\"\n impdc-icon\n name=\"check\"\n class=\"selected-check ms-auto\"></span>\n</ng-template>\n\n<ng-template #multipleSelectTemplate>\n <div class=\"d-flex align-items-center gap-5\">\n <span>\n <input\n class=\"form-check-input opacity-100\"\n type=\"checkbox\"\n disabled\n readonly=\"readonly\"\n [attr.checked]=\"selected ? 'checked' : null\" />\n </span>\n <span>\n {{ label }}\n </span>\n </div>\n</ng-template>\n\n<ng-template\n [ngTemplateOutlet]=\"\n multiple ? multipleSelectTemplate : singleSelectTemplate\n \"></ng-template>\n", styles: [":host{background-color:var(--impd-color-white);color:var(--impd-color-gray-600);padding:var(--impd-size-2) var(--impd-size-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:flex!important;align-items:center;column-gap:var(--impd-size-2);cursor:pointer}:host:hover,:host:focus{background-color:var(--impd-color-gray-100);border:0;outline:0}:host.impdc-select-option--selected{font-weight:var(--impd-font-weight-semibold)}:host.impdc-select-option--single .selected-check{display:none}:host.impdc-select-option--single.impdc-select-option--selected{background-color:var(--impd-color-motion-blue-600);color:var(--impd-color-white)}:host.impdc-select-option--single.impdc-select-option--selected:hover,:host.impdc-select-option--single.impdc-select-option--selected:focus{background:linear-gradient(to top,rgba(0,0,0,.1),rgba(0,0,0,.1)) var(--impd-color-motion-blue-600);color:var(--impd-color-white);border:0;outline:0}:host.impdc-select-option--single.impdc-select-option--selected .selected-check{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectOptionComponent, decorators: [{
|
|
114
115
|
type: Component,
|
|
115
116
|
args: [{ selector: 'impdc-select-option', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
@@ -118,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
118
119
|
'[class.impdc-select-option--selected]': 'selected',
|
|
119
120
|
'(click)': '_selectViaInteraction()',
|
|
120
121
|
'(keydown)': '_handleKeydown($event)'
|
|
121
|
-
}, template: "<ng-template #singleSelectTemplate>\n <span>{{ label || ' ' }}</span>\n <span
|
|
122
|
+
}, template: "<ng-template #singleSelectTemplate>\n <span>{{ label || ' ' }}</span>\n <span\n *ngIf=\"selected\"\n impdc-icon\n name=\"check\"\n class=\"selected-check ms-auto\"></span>\n</ng-template>\n\n<ng-template #multipleSelectTemplate>\n <div class=\"d-flex align-items-center gap-5\">\n <span>\n <input\n class=\"form-check-input opacity-100\"\n type=\"checkbox\"\n disabled\n readonly=\"readonly\"\n [attr.checked]=\"selected ? 'checked' : null\" />\n </span>\n <span>\n {{ label }}\n </span>\n </div>\n</ng-template>\n\n<ng-template\n [ngTemplateOutlet]=\"\n multiple ? multipleSelectTemplate : singleSelectTemplate\n \"></ng-template>\n", styles: [":host{background-color:var(--impd-color-white);color:var(--impd-color-gray-600);padding:var(--impd-size-2) var(--impd-size-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:flex!important;align-items:center;column-gap:var(--impd-size-2);cursor:pointer}:host:hover,:host:focus{background-color:var(--impd-color-gray-100);border:0;outline:0}:host.impdc-select-option--selected{font-weight:var(--impd-font-weight-semibold)}:host.impdc-select-option--single .selected-check{display:none}:host.impdc-select-option--single.impdc-select-option--selected{background-color:var(--impd-color-motion-blue-600);color:var(--impd-color-white)}:host.impdc-select-option--single.impdc-select-option--selected:hover,:host.impdc-select-option--single.impdc-select-option--selected:focus{background:linear-gradient(to top,rgba(0,0,0,.1),rgba(0,0,0,.1)) var(--impd-color-motion-blue-600);color:var(--impd-color-white);border:0;outline:0}:host.impdc-select-option--single.impdc-select-option--selected .selected-check{display:inline-block}\n"] }]
|
|
122
123
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
123
124
|
type: Optional
|
|
124
125
|
}, {
|
|
@@ -135,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
135
136
|
}], onSelectionChange: [{
|
|
136
137
|
type: Output
|
|
137
138
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvc2VsZWN0L29wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9zZWxlY3Qvb3B0aW9uL3NlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBRUwsMEJBQTBCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBRUwsb0NBQW9DLEVBQ3JDLE1BQU0sa0JBQWtCLENBQUM7OztBQUUxQixNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLFlBQ1MsTUFBNkIsRUFDN0IsY0FBYyxLQUFLO1FBRG5CLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQ3pCLENBQUM7Q0FDTDtBQWdCRCxNQUFNLE9BQU8scUJBQ1gsU0FBUSxlQUFlO0lBMkR2QixZQUdtQixPQUFxQyxFQUNyQyxlQUFrQyxFQUNuRCxXQUF1QixFQUN2QixTQUFvQjtRQUVwQixLQUFLLENB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Q0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFvQjtRQUNqRCx1Q0FBdUM7UUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNwRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzttSEF0SVUscUJBQXFCLGtCQThEdEIsb0NBQW9DO3VHQTlEbkMscUJBQXFCLDZkQzlDbEMsNnFCQXlCQTs0RkRxQmEscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLFFBRXpDO3dCQUNKLHFDQUFxQyxFQUFFLFdBQVc7d0JBQ2xELHVDQUF1QyxFQUFFLFVBQVU7d0JBQ25ELHVDQUF1QyxFQUFFLFVBQVU7d0JBQ25ELFNBQVMsRUFBRSx5QkFBeUI7d0JBQ3BDLFdBQVcsRUFBRSx3QkFBd0I7cUJBQ3RDOzswQkErREUsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxvQ0FBb0M7NkhBdkN2QyxLQUFLO3NCQURYLEtBQUs7Z0JBT0ssS0FBSztzQkFEZixLQUFLO2dCQVlDLEVBQUU7c0JBRFIsS0FBSztnQkFPYyxRQUFRO3NCQUQzQixLQUFLO2dCQVdVLGlCQUFpQjtzQkFGaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25JdGVtIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5VmFsdWVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIElTZWxlY3RPcHRpb25QYXJlbnRDb21wb25lbnQsXG4gIElNUERDX1NFTEVDVF9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVFxufSBmcm9tICcuLi9vcHRpb24tcGFyZW50JztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PFQgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNvdXJjZTogU2VsZWN0T3B0aW9uQ29tcG9uZW50LFxuICAgIHB1YmxpYyBpc1VzZXJJbnB1dCA9IGZhbHNlXG4gICkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtc2VsZWN0LW9wdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3NlbGVjdC1vcHRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5pbXBkYy1zZWxlY3Qtb3B0aW9uLS1zaW5nbGVdJzogJyFtdWx0aXBsZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1zZWxlY3Qtb3B0aW9uLS1tdWx0aXBsZV0nOiAnbXVsdGlwbGUnLFxuICAgICdbY2xhc3MuaW1wZGMtc2VsZWN0LW9wdGlvbi0tc2VsZWN0ZWRdJzogJ3NlbGVjdGVkJyxcbiAgICAnKGNsaWNrKSc6ICdfc2VsZWN0VmlhSW50ZXJhY3Rpb24oKScsXG4gICAgJyhrZXlkb3duKSc6ICdfaGFuZGxlS2V5ZG93bigkZXZlbnQpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUID0gYW55PlxuICBleHRlbmRzIE5nYkRyb3Bkb3duSXRlbVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQgJiYgISF0aGlzLl9wYXJlbnQubXVsdGlwbGU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzcGVjaWZpYyB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgc2VsZWN0IG9wdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWx1ZT86IFQ7XG5cbiAgLyoqXG4gICAqIExhYmVsIHRleHQgZGVzY3JpYmluZyB0aGUgc2VsZWN0IG9wdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cbiAgcHVibGljIHNldCBsYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbGFiZWwgPSBsYWJlbDtcbiAgICB0aGlzLl9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgfVxuICBwcml2YXRlIF9sYWJlbCA9ICcnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZCA9IGBpbXBkYy1vcHRpb24tJHtuYW5vaWQoKX1gO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpYyBzZWxlY3Qgb3B0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fX2Rpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX19kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBTZWxlY3RPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudDxUPlxuICA+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KElNUERDX1NFTEVDVF9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVClcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnQ6IElTZWxlY3RPcHRpb25QYXJlbnRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfcmVuZGVyZXIpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBkZXNlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCB3aGVuIGFjdGl2YXRlZCBmcm9tIHRoZSBrZXlib2FyZC4gKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzSW50ZXJhY3Rpb25LZXlFdmVudChldmVudCkpIHtcbiAgICAgIHRoaXMuX3NlbGVjdFZpYUludGVyYWN0aW9uKCk7XG5cbiAgICAgIC8vIFByZXZlbnQgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmcgZG93biBhbmQgZm9ybSBzdWJtaXRzLlxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogYFNlbGVjdHMgdGhlIG9wdGlvbiB3aGlsZSBpbmRpY2F0aW5nIHRoZSBzZWxlY3Rpb24gY2FtZSBmcm9tIHRoZSB1c2VyLiBVc2VkIHRvXG4gICAqIGRldGVybWluZSBpZiB0aGUgc2VsZWN0J3MgdmlldyAtPiBtb2RlbCBjYWxsYmFjayBzaG91bGQgYmUgaW52b2tlZC5gXG4gICAqL1xuICBwcm90ZWN0ZWQgX3NlbGVjdFZpYUludGVyYWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0aGlzLm11bHRpcGxlID8gIXRoaXMuX3NlbGVjdGVkIDogdHJ1ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudChpc1VzZXJJbnB1dCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KFxuICAgICAgbmV3IFNlbGVjdE9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KHRoaXMsIGlzVXNlcklucHV0KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc0ludGVyYWN0aW9uS2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBCYWlsIGlmIGtleSBpc24ndCBcImVudGVyXCIgb3IgXCJzcGFjZVwiXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgIT09IDEzICYmIGV2ZW50LmtleUNvZGUgIT09IDMyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQmFpbCBpZiBrZXlwcmVzcyBoYXMgYW55IG1vZGlmZXJzXG4gICAgaWYgKGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNzaW5nbGVTZWxlY3RUZW1wbGF0ZT5cbiAgPHNwYW4+e3sgbGFiZWwgfHwgJyZuYnNwOycgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRcIiBjbGFzcz1cInNlbGVjdGVkLWNoZWNrIG1zLWF1dG8gZmFzIGZhLWNoZWNrXCI+PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtdWx0aXBsZVNlbGVjdFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtNVwiPlxuICAgIDxzcGFuPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBvcGFjaXR5LTEwMFwiXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGRpc2FibGVkXG4gICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5jaGVja2VkXT1cInNlbGVjdGVkID8gJ2NoZWNrZWQnIDogbnVsbFwiIC8+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgIG11bHRpcGxlID8gbXVsdGlwbGVTZWxlY3RUZW1wbGF0ZSA6IHNpbmdsZVNlbGVjdFRlbXBsYXRlXG4gIFwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tZmllbGQvY29udHJvbHMvc2VsZWN0L29wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9zZWxlY3Qvb3B0aW9uL3NlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBRUwsMEJBQTBCLEVBQzNCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBRUwsb0NBQW9DLEVBQ3JDLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFMUIsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNTLE1BQTZCLEVBQzdCLGNBQWMsS0FBSztRQURuQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUN6QixDQUFDO0NBQ0w7QUFnQkQsTUFBTSxPQUFPLHFCQUNYLFNBQVEsZUFBZTtJQTJEdkIsWUFHbUIsT0FBcUMsRUFDckMsZUFBa0MsRUFDbkQsV0FBdUIsRUFDdkIsU0FBb0I7UUFFcEIsS0FBSyxD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LENBQ3hELENBQUM7SUFDSixDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBb0I7UUFDakQsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDaEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELG9DQUFvQztRQUNwQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDcEUsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7bUhBdElVLHFCQUFxQixrQkE4RHRCLG9DQUFvQzt1R0E5RG5DLHFCQUFxQiw2ZEM5Q2xDLDhzQkE2QkE7NEZEaUJhLHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxRQUV6Qzt3QkFDSixxQ0FBcUMsRUFBRSxXQUFXO3dCQUNsRCx1Q0FBdUMsRUFBRSxVQUFVO3dCQUNuRCx1Q0FBdUMsRUFBRSxVQUFVO3dCQUNuRCxTQUFTLEVBQUUseUJBQXlCO3dCQUNwQyxXQUFXLEVBQUUsd0JBQXdCO3FCQUN0Qzs7MEJBK0RFLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0NBQW9DOzZIQXZDdkMsS0FBSztzQkFEWCxLQUFLO2dCQU9LLEtBQUs7c0JBRGYsS0FBSztnQkFZQyxFQUFFO3NCQURSLEtBQUs7Z0JBT2MsUUFBUTtzQkFEM0IsS0FBSztnQkFXVSxpQkFBaUI7c0JBRmhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duSXRlbSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eVZhbHVlXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBJU2VsZWN0T3B0aW9uUGFyZW50Q29tcG9uZW50LFxuICBJTVBEQ19TRUxFQ1RfT1BUSU9OX1BBUkVOVF9DT01QT05FTlRcbn0gZnJvbSAnLi4vb3B0aW9uLXBhcmVudCc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudDxUID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzb3VyY2U6IFNlbGVjdE9wdGlvbkNvbXBvbmVudCxcbiAgICBwdWJsaWMgaXNVc2VySW5wdXQgPSBmYWxzZVxuICApIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXNlbGVjdC1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaW1wZGMtc2VsZWN0LW9wdGlvbi0tc2luZ2xlXSc6ICchbXVsdGlwbGUnLFxuICAgICdbY2xhc3MuaW1wZGMtc2VsZWN0LW9wdGlvbi0tbXVsdGlwbGVdJzogJ211bHRpcGxlJyxcbiAgICAnW2NsYXNzLmltcGRjLXNlbGVjdC1vcHRpb24tLXNlbGVjdGVkXSc6ICdzZWxlY3RlZCcsXG4gICAgJyhjbGljayknOiAnX3NlbGVjdFZpYUludGVyYWN0aW9uKCknLFxuICAgICcoa2V5ZG93biknOiAnX2hhbmRsZUtleWRvd24oJGV2ZW50KSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCA9IGFueT5cbiAgZXh0ZW5kcyBOZ2JEcm9wZG93bkl0ZW1cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcbntcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX3NlbGVjdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50ICYmICEhdGhpcy5fcGFyZW50Lm11bHRpcGxlO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIHNlbGVjdCBvcHRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdmFsdWU/OiBUO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB0ZXh0IGRlc2NyaWJpbmcgdGhlIHNlbGVjdCBvcHRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICB9XG4gIHB1YmxpYyBzZXQgbGFiZWwobGFiZWw6IHN0cmluZykge1xuICAgIHRoaXMuX2xhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5fZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gIH1cbiAgcHJpdmF0ZSBfbGFiZWwgPSAnJztcblxuICAvKiogQGlnbm9yZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQgPSBgaW1wZGMtb3B0aW9uLSR7bmFub2lkKCl9YDtcblxuICAvKipcbiAgICogVXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWMgc2VsZWN0IG9wdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX19kaXNhYmxlZDtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIHB1YmxpYyByZWFkb25seSBvblNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2VsZWN0T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ8VD5cbiAgPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChJTVBEQ19TRUxFQ1RfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50OiBJU2VsZWN0T3B0aW9uUGFyZW50Q29tcG9uZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLl9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLl9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQgd2hlbiBhY3RpdmF0ZWQgZnJvbSB0aGUga2V5Ym9hcmQuICovXG4gIHByb3RlY3RlZCBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc0ludGVyYWN0aW9uS2V5RXZlbnQoZXZlbnQpKSB7XG4gICAgICB0aGlzLl9zZWxlY3RWaWFJbnRlcmFjdGlvbigpO1xuXG4gICAgICAvLyBQcmV2ZW50IHRoZSBwYWdlIGZyb20gc2Nyb2xsaW5nIGRvd24gYW5kIGZvcm0gc3VibWl0cy5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGBTZWxlY3RzIHRoZSBvcHRpb24gd2hpbGUgaW5kaWNhdGluZyB0aGUgc2VsZWN0aW9uIGNhbWUgZnJvbSB0aGUgdXNlci4gVXNlZCB0b1xuICAgKiBkZXRlcm1pbmUgaWYgdGhlIHNlbGVjdCdzIHZpZXcgLT4gbW9kZWwgY2FsbGJhY2sgc2hvdWxkIGJlIGludm9rZWQuYFxuICAgKi9cbiAgcHJvdGVjdGVkIF9zZWxlY3RWaWFJbnRlcmFjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5tdWx0aXBsZSA/ICF0aGlzLl9zZWxlY3RlZCA6IHRydWU7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuX2VtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoaXNVc2VySW5wdXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdChcbiAgICAgIG5ldyBTZWxlY3RPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCh0aGlzLCBpc1VzZXJJbnB1dClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNJbnRlcmFjdGlvbktleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gQmFpbCBpZiBrZXkgaXNuJ3QgXCJlbnRlclwiIG9yIFwic3BhY2VcIlxuICAgIGlmIChldmVudC5rZXlDb2RlICE9PSAxMyAmJiBldmVudC5rZXlDb2RlICE9PSAzMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEJhaWwgaWYga2V5cHJlc3MgaGFzIGFueSBtb2RpZmVyc1xuICAgIGlmIChldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjc2luZ2xlU2VsZWN0VGVtcGxhdGU+XG4gIDxzcGFuPnt7IGxhYmVsIHx8ICcmbmJzcDsnIH19PC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwic2VsZWN0ZWRcIlxuICAgIGltcGRjLWljb25cbiAgICBuYW1lPVwiY2hlY2tcIlxuICAgIGNsYXNzPVwic2VsZWN0ZWQtY2hlY2sgbXMtYXV0b1wiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3RUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTVcIj5cbiAgICA8c3Bhbj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgb3BhY2l0eS0xMDBcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBkaXNhYmxlZFxuICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIuY2hlY2tlZF09XCJzZWxlY3RlZCA/ICdjaGVja2VkJyA6IG51bGxcIiAvPlxuICAgIDwvc3Bhbj5cbiAgICA8c3Bhbj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICBbbmdUZW1wbGF0ZU91dGxldF09XCJcbiAgICBtdWx0aXBsZSA/IG11bHRpcGxlU2VsZWN0VGVtcGxhdGUgOiBzaW5nbGVTZWxlY3RUZW1wbGF0ZVxuICBcIj48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
+
import { IconModule } from '../../../icon';
|
|
4
5
|
import { SelectOptionComponent } from './option/select-option.component';
|
|
5
6
|
import { SelectComponent } from './select.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export class SelectModule {
|
|
8
9
|
}
|
|
9
10
|
SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
-
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, declarations: [SelectOptionComponent, SelectComponent], imports: [CommonModule, NgbDropdownModule], exports: [
|
|
11
|
-
|
|
11
|
+
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, declarations: [SelectOptionComponent, SelectComponent], imports: [CommonModule, NgbDropdownModule, IconModule], exports: [NgbDropdownModule,
|
|
12
|
+
IconModule,
|
|
13
|
+
SelectOptionComponent,
|
|
14
|
+
SelectComponent] });
|
|
15
|
+
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, imports: [CommonModule, NgbDropdownModule, IconModule, NgbDropdownModule,
|
|
16
|
+
IconModule] });
|
|
12
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, decorators: [{
|
|
13
18
|
type: NgModule,
|
|
14
19
|
args: [{
|
|
20
|
+
imports: [CommonModule, NgbDropdownModule, IconModule],
|
|
15
21
|
declarations: [SelectOptionComponent, SelectComponent],
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
exports: [
|
|
23
|
+
NgbDropdownModule,
|
|
24
|
+
IconModule,
|
|
25
|
+
SelectOptionComponent,
|
|
26
|
+
SelectComponent
|
|
27
|
+
]
|
|
18
28
|
}]
|
|
19
29
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1maWVsZC9jb250cm9scy9zZWxlY3Qvc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFZckQsTUFBTSxPQUFPLFlBQVk7OzBHQUFaLFlBQVk7MkdBQVosWUFBWSxpQkFSUixxQkFBcUIsRUFBRSxlQUFlLGFBRDNDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxVQUFVLGFBR25ELGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YscUJBQXFCO1FBQ3JCLGVBQWU7MkdBR04sWUFBWSxZQVRiLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBR25ELGlCQUFpQjtRQUNqQixVQUFVOzRGQUtELFlBQVk7a0JBVnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQztvQkFDdEQsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsZUFBZSxDQUFDO29CQUN0RCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLHFCQUFxQjt3QkFDckIsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2ljb24nO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb24vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIEljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtTZWxlY3RPcHRpb25Db21wb25lbnQsIFNlbGVjdENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFNlbGVjdE9wdGlvbkNvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2R1bGUge31cbiJdfQ==
|
|
@@ -6,7 +6,8 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
* To use, import `IconModule` or another module that imports and exports that module from `@impartner/design-components`.
|
|
7
7
|
*/
|
|
8
8
|
export class IconComponent {
|
|
9
|
-
constructor() {
|
|
9
|
+
constructor(_changeDetectorRef) {
|
|
10
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
10
11
|
this._loading = true;
|
|
11
12
|
this._licensed = false;
|
|
12
13
|
/**
|
|
@@ -52,16 +53,17 @@ export class IconComponent {
|
|
|
52
53
|
if (iconFontFamily.includes('Font Awesome')) {
|
|
53
54
|
this._licensed = !iconFontFamily.includes('Free');
|
|
54
55
|
this._loading = false;
|
|
56
|
+
this._changeDetectorRef.detectChanges();
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
|
-
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
62
|
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: { name: "name", theme: "theme", size: "size" }, viewQueries: [{ propertyName: "iconRef", first: true, predicate: ["icon"], descendants: true, static: true }], ngImport: i0, template: "<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n", encapsulation: i0.ViewEncapsulation.None });
|
|
61
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IconComponent, decorators: [{
|
|
62
64
|
type: Component,
|
|
63
65
|
args: [{ selector: 'impdc-icon, [impdc-icon]', encapsulation: ViewEncapsulation.None, template: "<i\n #icon\n class=\"{{ typeClass }} fa-{{ name }}\"\n [style.font-size]=\"computedSize\"></i>\n" }]
|
|
64
|
-
}], propDecorators: { name: [{
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
|
|
65
67
|
type: Input
|
|
66
68
|
}], theme: [{
|
|
67
69
|
type: Input
|
|
@@ -71,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
71
73
|
type: ViewChild,
|
|
72
74
|
args: ['icon', { static: true }]
|
|
73
75
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCwyQkFBMkIsRUFDNUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFekI7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGFBQWE7SUEyQnhCLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBMUJqRCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFTMUI7OztXQUdHO1FBRUgsVUFBSyxHQUF5QixPQUFPLENBQUM7UUFFdEM7OztXQUdHO1FBRUgsU0FBSSxHQUFvQixRQUFRLENBQUM7SUFJMkIsQ0FBQztJQUU3RCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDbEIsS0FBSyxPQUFPO29CQUNWLE9BQU8sS0FBSyxDQUFDO2dCQUNmLEtBQUssU0FBUztvQkFDWixPQUFPLEtBQUssQ0FBQztnQkFDZixnQkFBZ0I7Z0JBQ2hCO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0Y7UUFDRCxJQUNFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7WUFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1gsMkJBQTJCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDL0M7WUFDQSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdCO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixvSEFBb0g7WUFDcEgsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUMzQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDekM7U0FDRjtJQUNILENBQUM7OzJHQXZFVSxhQUFhOytGQUFiLGFBQWEsdU9DeEIxQixxR0FJQTs0RkRvQmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSwwQkFBMEIsaUJBRXJCLGlCQUFpQixDQUFDLElBQUk7d0dBV3JDLElBQUk7c0JBREgsS0FBSztnQkFRTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sSUFBSTtzQkFESCxLQUFLO2dCQUcrQixPQUFPO3NCQUEzQyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvbnRBd2Vzb21lSWNvbixcbiAgRm9udEF3ZXNvbWVJY29uVGhlbWUsXG4gIEZvbnRBd2Vzb21lRnJlZVJlZ3VsYXJJY29uc1xufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIFRoZSBgSWNvbkNvbXBvbmVudGAgKGA8aW1wZGMtaWNvbmAgb3IgYDxhbnkgaW1wZGMtaWNvbmApIGlzIGFuIGljb24gd3JhcHBlciB1dGlsaXppbmcgRm9udCBBd2Vzb21lIDUuXG4gKiBUbyB1c2UsIGltcG9ydCBgSWNvbk1vZHVsZWAgb3IgYW5vdGhlciBtb2R1bGUgdGhhdCBpbXBvcnRzIGFuZCBleHBvcnRzIHRoYXQgbW9kdWxlIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy1pY29uLCBbaW1wZGMtaWNvbl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBwcml2YXRlIF9sb2FkaW5nID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfbGljZW5zZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIEZvbnQgQXdlc29tZSA1IGljb24gbmFtZS4gU2VlIHtAbGluayBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NS9zZWFyY2h9LiBMb2NhbFxuICAgKiBkZXZlbG9wbWVudCBtYXkgbm90IHJlcHJlc2VudCB0aGUgY29tcGxldGUgbGlzdCBvZiBhdmFpbGFibGUgaWNvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBuYW1lPzogRm9udEF3ZXNvbWVJY29uO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9udCBBd2Vzb21lIDUgaWNvbiBzdHlsZS4gTG9jYWwgZGV2ZWxvcG1lbnQgbWF5IGZhbGxiYWNrIHRvIGEgZnJlZSBhdmFpbGFibGVcbiAgICogdGhlbWUgd2hlbiBwb3NzaWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiBGb250QXdlc29tZUljb25UaGVtZSA9ICdzb2xpZCc7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHNpemUgYXMgYSBzdHJpbmcgb3IgbnVtYmVyLiBTdHJpbmcgdmFsdWVzIGFyZSB1c2VkIGRpcmVjdGx5IHdoZXJlYXMgbnVtYmVycyBhcmVcbiAgICogaW50ZXJwcmV0ZWQgYXMgcGl4ZWxzLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2l6ZTogc3RyaW5nIHwgbnVtYmVyID0gJzEuOHJlbSc7XG5cbiAgQFZpZXdDaGlsZCgnaWNvbicsIHsgc3RhdGljOiB0cnVlIH0pIGljb25SZWYhOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBwdWJsaWMgZ2V0IHR5cGVDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9saWNlbnNlZCkge1xuICAgICAgc3dpdGNoICh0aGlzLnRoZW1lKSB7XG4gICAgICAgIGNhc2UgJ2xpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gJ2ZhbCc7XG4gICAgICAgIGNhc2UgJ3JlZ3VsYXInOlxuICAgICAgICAgIHJldHVybiAnZmFyJztcbiAgICAgICAgLy8gY2FzZSAnc29saWQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnZmFzJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgKHRoaXMudGhlbWUgPT09ICdsaWdodCcgfHwgdGhpcy50aGVtZSA9PT0gJ3JlZ3VsYXInKSAmJlxuICAgICAgISF0aGlzLm5hbWUgJiZcbiAgICAgIEZvbnRBd2Vzb21lRnJlZVJlZ3VsYXJJY29ucy5pbmNsdWRlcyh0aGlzLm5hbWUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gJ2Zhcic7XG4gICAgfVxuICAgIHJldHVybiAnZmFzJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29tcHV0ZWRTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKE51bWJlci5pc05hTih0aGlzLnNpemUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaXplLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMuc2l6ZX1weGA7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIC8vIER1cmluZyBpbml0IGFuZCBwb3NzaWJseSBhIGZldyBjaGVja3MsIGBpY29uRm9udEZhbWlseWAgd2lsbCBiZSBhbiBpbmhlcml0ZWQgZm9udCwgbGF0ZXIgaXQgd2lsbCBiZSBGb250IEF3ZXNvbWUuXG4gICAgICBjb25zdCBpY29uRm9udEZhbWlseSA9IGdldENvbXB1dGVkU3R5bGUoXG4gICAgICAgIHRoaXMuaWNvblJlZi5uYXRpdmVFbGVtZW50XG4gICAgICApLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5Jyk7XG4gICAgICBpZiAoaWNvbkZvbnRGYW1pbHkuaW5jbHVkZXMoJ0ZvbnQgQXdlc29tZScpKSB7XG4gICAgICAgIHRoaXMuX2xpY2Vuc2VkID0gIWljb25Gb250RmFtaWx5LmluY2x1ZGVzKCdGcmVlJyk7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGlcbiAgI2ljb25cbiAgY2xhc3M9XCJ7eyB0eXBlQ2xhc3MgfX0gZmEte3sgbmFtZSB9fVwiXG4gIFtzdHlsZS5mb250LXNpemVdPVwiY29tcHV0ZWRTaXplXCI+PC9pPlxuIl19
|