@c8y/ngx-components 1017.0.8 → 1017.0.9
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/actility-device-registration/actility-device-registration.component.mjs +3 -3
- package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
- package/esm2020/context-dashboard/dashboard-detail.component.mjs +3 -3
- package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +43 -51
- package/esm2020/context-dashboard/widget-preview.component.mjs +3 -3
- package/esm2020/core/authentication/sms-challenge.component.mjs +3 -3
- package/esm2020/core/authentication/totp-challenge.component.mjs +3 -3
- package/esm2020/core/breadcrumb/breadcrumb-outlet.component.mjs +3 -3
- package/esm2020/core/dashboard/dashboard-child.component.mjs +3 -3
- package/esm2020/core/dashboard/widget-time-context.component.mjs +3 -3
- package/esm2020/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2020/core/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/core/drop-area/drop-area.component.mjs +3 -3
- package/esm2020/core/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/core/header/application/app-switcher.component.mjs +3 -3
- package/esm2020/core/login/credentials.component.mjs +3 -3
- package/esm2020/core/login/login.component.mjs +3 -3
- package/esm2020/core/modal/modal.component.mjs +3 -3
- package/esm2020/core/select/typeahead.component.mjs +3 -3
- package/esm2020/device-grid/columns/alarms.cell-renderer.component.mjs +3 -3
- package/esm2020/loriot-device-registration/loriot-device-registration-button.component.mjs +3 -1
- package/esm2020/loriot-device-registration/loriot-device-registration.component.mjs +3 -3
- package/esm2020/operations/bulk-operations-list/bulk-operations-list.component.mjs +3 -3
- package/esm2020/operations/operations-list/operations-list-item.component.mjs +3 -3
- package/esm2020/operations/operations-list/operations-list.component.mjs +3 -3
- package/esm2020/register-device/bulk/bulk-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/extensible/single/extensible-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/general/general-device-registration.component.mjs +3 -3
- package/esm2020/repository/software/device-tab/device-software-list.component.mjs +3 -3
- package/esm2020/repository/software/device-tab/installed-software.component.mjs +3 -3
- package/esm2020/repository/software/list/add-software-modal.component.mjs +3 -3
- package/esm2020/sigfox-device-registration/sigfox-device-registration.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-actility-device-registration.mjs +2 -2
- package/fesm2015/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +48 -56
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-grid.mjs +2 -2
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs +4 -2
- package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
- package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs +4 -4
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-register-device.mjs +8 -8
- package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-software.mjs +6 -6
- package/fesm2015/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
- package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +28 -28
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-actility-device-registration.mjs +2 -2
- package/fesm2020/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +48 -56
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +2 -2
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs +4 -2
- package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
- package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs +4 -4
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-register-device.mjs +8 -8
- package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-software.mjs +6 -6
- package/fesm2020/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
- package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +28 -28
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +6 -9
- package/package.json +2 -2
|
@@ -214,9 +214,9 @@ export class LoriotDeviceRegistrationComponent {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
LoriotDeviceRegistrationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoriotDeviceRegistrationComponent, deps: [{ token: i1.BsModalRef }, { token: i2.LoriotProviderService }, { token: i3.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
LoriotDeviceRegistrationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoriotDeviceRegistrationComponent, selector: "c8y-loriot-registration", ngImport: i0, template: "<c8y-modal [headerClasses]=\"'dialog-header'\"
|
|
217
|
+
LoriotDeviceRegistrationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoriotDeviceRegistrationComponent, selector: "c8y-loriot-registration", ngImport: i0, template: "<c8y-modal\n [title]=\"'LORIOT registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'c8y-device-connect'\"></span>\n </ng-container>\n <ng-container *ngIf=\"state === 'loadPending'; else registrationForm\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-container>\n\n <ng-template #registrationForm>\n <c8y-stepper\n [hideStepProgress]=\"true\"\n linear\n c8y-modal-body\n *ngIf=\"(errorMessages$ | async).length === 0; else errorMessagesPresent\"\n >\n <cdk-step [stepControl]=\"form\">\n <div class=\"p-b-16\">\n <p class=\"modal-subtitle sticky-top\">\n {{ 'Register a single LORIOT device' | translate }}\n </p>\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n class=\"d-block p-l-24 p-r-24 p-t-16\"\n ></formly-form>\n </div>\n <c8y-stepper-buttons\n [labels]=\"registrationStepLabels\"\n (onNext)=\"create($event)\"\n (onCancel)=\"bsModalRef.hide()\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [pending]=\"state === 'registrationPending'\"\n [disabled]=\"!form.valid\"\n class=\"modal-footer d-block sticky-bottom separator-top bg-component\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <div class=\"p-16 text-center\" *ngIf=\"state === 'registrationPending'\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"m-24\">\n <c8y-operation-result\n *ngIf=\"state === 'registrationSuccess'\"\n text=\"{{ 'Device registered' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead m-b-0\"\n ></c8y-operation-result>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n (onCustom)=\"bsModalRef.hide()\"\n [showButtons]=\"{ custom: true }\"\n [labels]=\"finalStepLabels\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n </ng-template>\n\n <ng-template #errorMessagesPresent>\n <div class=\"m-24\">\n <c8y-operation-result\n *ngIf=\"state === 'registrationError'\"\n text=\"{{ 'Failed to register' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n <div\n *ngFor=\"let msg of errorMessages$ | async\"\n class=\"m-b-8\"\n [ngClass]=\"{\n 'text-center': state === 'registrationError',\n 'alert alert-danger': state === 'loadError'\n }\"\n >\n <span [innerHTML]=\"msg | translate\"></span>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-template>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: i3.OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "component", type: i3.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: i3.C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "component", type: i5.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: i3.C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }, { kind: "component", type: i6.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
218
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoriotDeviceRegistrationComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
|
-
args: [{ selector: 'c8y-loriot-registration', template: "<c8y-modal [headerClasses]=\"'dialog-header'\"
|
|
220
|
+
args: [{ selector: 'c8y-loriot-registration', template: "<c8y-modal\n [title]=\"'LORIOT registration' | translate\"\n [headerClasses]=\"'dialog-header'\"\n [customFooter]=\"true\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'c8y-device-connect'\"></span>\n </ng-container>\n <ng-container *ngIf=\"state === 'loadPending'; else registrationForm\">\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-container>\n\n <ng-template #registrationForm>\n <c8y-stepper\n [hideStepProgress]=\"true\"\n linear\n c8y-modal-body\n *ngIf=\"(errorMessages$ | async).length === 0; else errorMessagesPresent\"\n >\n <cdk-step [stepControl]=\"form\">\n <div class=\"p-b-16\">\n <p class=\"modal-subtitle sticky-top\">\n {{ 'Register a single LORIOT device' | translate }}\n </p>\n <formly-form\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n class=\"d-block p-l-24 p-r-24 p-t-16\"\n ></formly-form>\n </div>\n <c8y-stepper-buttons\n [labels]=\"registrationStepLabels\"\n (onNext)=\"create($event)\"\n (onCancel)=\"bsModalRef.hide()\"\n [showButtons]=\"{ cancel: true, next: true }\"\n [pending]=\"state === 'registrationPending'\"\n [disabled]=\"!form.valid\"\n class=\"modal-footer d-block sticky-bottom separator-top bg-component\"\n ></c8y-stepper-buttons>\n </cdk-step>\n <cdk-step state=\"final\">\n <div class=\"p-16 text-center\" *ngIf=\"state === 'registrationPending'\">\n <c8y-loading></c8y-loading>\n </div>\n <div class=\"m-24\">\n <c8y-operation-result\n *ngIf=\"state === 'registrationSuccess'\"\n text=\"{{ 'Device registered' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"success\"\n class=\"lead m-b-0\"\n ></c8y-operation-result>\n </div>\n\n <c8y-stepper-buttons\n class=\"sticky-bottom d-block p-t-16 p-b-16 separator-top bg-component\"\n (onCustom)=\"bsModalRef.hide()\"\n [showButtons]=\"{ custom: true }\"\n [labels]=\"finalStepLabels\"\n ></c8y-stepper-buttons>\n </cdk-step>\n </c8y-stepper>\n </ng-template>\n\n <ng-template #errorMessagesPresent>\n <div class=\"m-24\">\n <c8y-operation-result\n *ngIf=\"state === 'registrationError'\"\n text=\"{{ 'Failed to register' | translate }}\"\n [size]=\"84\"\n [vertical]=\"true\"\n type=\"error\"\n class=\"lead\"\n ></c8y-operation-result>\n <div\n *ngFor=\"let msg of errorMessages$ | async\"\n class=\"m-b-8\"\n [ngClass]=\"{\n 'text-center': state === 'registrationError',\n 'alert alert-danger': state === 'loadError'\n }\"\n >\n <span [innerHTML]=\"msg | translate\"></span>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"bsModalRef.hide()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n </ng-template>\n</c8y-modal>\n" }]
|
|
221
221
|
}], ctorParameters: function () { return [{ type: i1.BsModalRef }, { type: i2.LoriotProviderService }, { type: i3.GainsightService }]; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBZTVDLE1BQU0sT0FBTyxpQ0FBaUM7SUF3SzVDLFlBQ1MsVUFBc0IsRUFDckIsYUFBb0MsRUFDcEMsZ0JBQWtDO1FBRm5DLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLHFCQUFnQixHQUFoQixn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LGdCQUFnQixDQUFDLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7OEhBdE9VLGlDQUFpQztrSEFBakMsaUNBQWlDLCtEQ3hCOUMscTZHQTZHQTsyRkRyRmEsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNFLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWZlciwgZm9ya0pvaW4sIGZyb20sIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDZGtTdGVwIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgTG9yaW90UHJvdmlkZXJTZXJ2aWNlLCBFcnJvck5hbWUgfSBmcm9tICcuL2xvcmlvdC1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgdGFrZVVudGlsLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBMb3Jpb3REZXZpY2UsIExvcmlvdERldmljZUZvcm1seSB9IGZyb20gJy4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuXG50eXBlIFN0YXRlID1cbiAgfCAnbG9hZFBlbmRpbmcnXG4gIHwgJ2xvYWRTdWNjZXNzJ1xuICB8ICdsb2FkRXJyb3InXG4gIHwgJ3JlZ2lzdHJhdGlvblBlbmRpbmcnXG4gIHwgJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnXG4gIHwgJ3JlZ2lzdHJhdGlvbkVycm9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxvcmlvdC1yZWdpc3RyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJ2xvcmlvdC1kZXZpY2UtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMb3Jpb3REZXZpY2VSZWdpc3RyYXRpb25Db21wb25lbnQge1xuICBzdGVwcGVyOiBDOHlTdGVwcGVyO1xuICByZWFkb25seSBQQUdJTkc6IG9iamVjdCA9IHtcbiAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICBwYWdlU2l6ZTogMTBcbiAgfTtcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsOiBMb3Jpb3REZXZpY2VGb3JtbHkgPSB7fSBhcyBhbnk7XG4gIHByb3RvY29scyQgPSB0aGlzLmdldFByb3RvY29scyQoKTtcbiAgY29ubmVjdGlvbnMkID0gdGhpcy5nZXRDb25uZWN0aW9ucyQoKTtcbiAgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBsb2FkJCA9IHRoaXMuY29ubmVjdGlvbnMkLnBpcGUoXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiBvZihlcnJvcikpLFxuICAgIHN3aXRjaE1hcChjb25uZWN0aW9ucyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbm5lY3Rpb25zIGluc3RhbmNlb2YgRXJyb3IgJiZcbiAgICAgICAgY29ubmVjdGlvbnMubmFtZSA9PT0gRXJyb3JOYW1lLk5vQ29ubmVjdGl2aXR5U2V0dGluZ3NFcnJvclxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBvZihbY29ubmVjdGlvbnNdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JrSm9pbihbXG4gICAgICAgIG9mKGNvbm5lY3Rpb25zKSxcbiAgICAgICAgdGhpcy5wcm90b2NvbHMkLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiBvZihlcnJvcikpKVxuICAgICAgXSk7XG4gICAgfSksXG4gICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKHJlc3VsdCA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBFcnJvcjtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcChlcnJvcnMgPT4ge1xuICAgICAgcmV0dXJuIGVycm9ycy5sZW5ndGggPT09IDAgPyBvZihbXSkgOiB0aHJvd0Vycm9yKGVycm9ycyk7XG4gICAgfSlcbiAgKTtcblxuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXG4gICAge1xuICAgICAga2V5OiAndGl0bGUnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0xPUklPVCBMb1JhJyksXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdUaXRsZScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZGV2ZXVpJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRkVEQ0JBOTg3NjU0MzIxMCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2UgRVVJJyksXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBwYXR0ZXJuOiAnXihbQS1GMC05XXsxNn0pJCdcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgIG1lc3NhZ2VzOiB7XG4gICAgICAgICAgcGF0dGVybjogZ2V0dGV4dCgnTXVzdCBiZSBhIHZhbGlkIDE2IGRpZ2l0IHVwcGVyY2FzZSBoZXhhZGVjaW1hbCBudW1iZXIuJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYXBwZXVpJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRkVEQ0JBOTg3NjU0MzIxMCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBFVUknKSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHBhdHRlcm46ICdeKFthLWZBLUYwLTldezE2fSkkJ1xuICAgICAgfSxcbiAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgICBwYXR0ZXJuOiBnZXR0ZXh0KCdNdXN0IGJlIGEgdmFsaWQgMTYgZGlnaXQgaGV4YWRlY2ltYWwgbnVtYmVyLicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FwcGtleScsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ0ZFRENCQTk4NzY1NDMyMTBGRURDQkE5ODc2NTQzMjEwJyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0FwcGxpY2F0aW9uIGtleScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgcGF0dGVybjogJ14oW2EtZkEtRjAtOV17MzJ9KSQnXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICBtZXNzYWdlczoge1xuICAgICAgICAgIHBhdHRlcm46IGdldHRleHQoJ011c3QgYmUgYSB2YWxpZCAzMiBkaWdpdCBoZXhhZGVjaW1hbCBudW1iZXIuJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY29ubmVjdGlvbicsXG4gICAgICB0eXBlOiAndHlwZWFoZWFkJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgYzh5Rm9yT3B0aW9uczogdGhpcy5jb25uZWN0aW9ucyQsXG4gICAgICAgIGRpc3BsYXlQcm9wZXJ0eTogJ25hbWUnLFxuICAgICAgICB2YWx1ZVByb3BlcnRpZXM6IFsnbmFtZSddXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdhcHBsaWNhdGlvbicsXG4gICAgICB0eXBlOiAndHlwZWFoZWFkJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQXBwbGljYXRpb24gbmFtZScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0xPUklPVCBhcHBsaWNhdGlvbicpLFxuICAgICAgICBkaXNwbGF5UHJvcGVydHk6ICduYW1lJyxcbiAgICAgICAgdmFsdWVQcm9wZXJ0aWVzOiBbJ2hleElkJ11cbiAgICAgIH0sXG4gICAgICBob29rczoge1xuICAgICAgICBvbkluaXQ6IGZpZWxkID0+IHtcbiAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQ29udHJvbCA9IGZpZWxkLmZvcm0uZ2V0KCdjb25uZWN0aW9uJyk7XG4gICAgICAgICAgY29ubmVjdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoKHsgbmFtZSB9KSA9PiB0aGlzLmdldEFwcGxpY2F0aW9ucyQobmFtZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBhcHBzID0+IHtcbiAgICAgICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuYzh5Rm9yT3B0aW9ucyA9IG9mKGFwcHMpO1xuICAgICAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQuZm9ybS5jb250cm9scy5hcHBsaWNhdGlvbi5zZXRFcnJvcnMoeyBhcHBsaWNhdGlvbjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBmaWVsZC52YWxpZGF0b3JzLmFwcGxpY2F0aW9uLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICBhcHBsaWNhdGlvbjoge1xuICAgICAgICAgIGV4cHJlc3Npb246IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLnN0YXR1cyA9PT0gJ1ZBTElEJztcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2U6ICgpID0+ICcnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2RldmljZVR5cGUnLFxuICAgICAgdHlwZTogJ3R5cGVhaGVhZCcsXG4gICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RldmljZSBwcm90b2NvbCcpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgYzh5Rm9yT3B0aW9uczogdGhpcy5wcm90b2NvbHMkLFxuICAgICAgICBkaXNwbGF5UHJvcGVydHk6ICduYW1lJyxcbiAgICAgICAgdmFsdWVQcm9wZXJ0aWVzOiBbJ2lkJywgJ25hbWUnXVxuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICByZWdpc3RyYXRpb25TdGVwTGFiZWxzID0ge1xuICAgIG5leHQ6IGdldHRleHQoJ1JlZ2lzdGVyJylcbiAgfTtcbiAgZmluYWxTdGVwTGFiZWxzID0ge1xuICAgIGJhY2s6IGdldHRleHQoJ0Nsb3NlJylcbiAgfTtcblxuICBzdGF0ZTogU3RhdGUgPSAnbG9hZFBlbmRpbmcnO1xuICBlcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFcnJvcltdPihbXSk7XG4gIGVycm9yTWVzc2FnZXMkID0gdGhpcy5lcnJvcnMkLnBpcGUoXG4gICAgbWFwKGVycm9ycyA9PiBlcnJvcnMubWFwKGVycm9yID0+IGVycm9yLm1lc3NhZ2UpKSxcbiAgICBtYXAobWVzc2FnZXMgPT4gdW5pcShtZXNzYWdlcykpXG4gICk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgbG9yaW90U2VydmljZTogTG9yaW90UHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHtcbiAgICB0aGlzLmxvYWQkLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdsb2FkU3VjY2Vzcyc7XG4gICAgICB9LFxuICAgICAgZXJyb3JzID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdsb2FkRXJyb3InO1xuICAgICAgICB0aGlzLmVycm9ycyQubmV4dChlcnJvcnMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoZXZlbnQ6IHsgc3RlcHBlcjogQzh5U3RlcHBlcjsgc3RlcDogQ2RrU3RlcCB9KSB7XG4gICAgdGhpcy5zdGF0ZSA9ICdyZWdpc3RyYXRpb25QZW5kaW5nJztcbiAgICBjb25zdCBsb3Jpb3REZXZpY2UgPSB0aGlzLmdldExvcmlvdERldmljZVRvU2VuZCgpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvcmlvdFNlcnZpY2UuY3JlYXRlRGV2aWNlKGxvcmlvdERldmljZSk7XG4gICAgICB0aGlzLnN0YXRlID0gJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnLFxuICAgICAgICBuYW1lOiAnbG9yaW90UmVnaXN0cmF0aW9uJ1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAncmVnaXN0cmF0aW9uRXJyb3InO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvbkZhaWx1cmUnLFxuICAgICAgICBuYW1lOiAnbG9yaW90UmVnaXN0cmF0aW9uJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmVycm9ycyQubmV4dChbZXJyb3JdKTtcbiAgICB9XG5cbiAgICBldmVudC5zdGVwcGVyLm5leHQoKTtcbiAgfVxuXG4gIGdldExvcmlvdERldmljZVRvU2VuZCgpIHtcbiAgICBjb25zdCBsb3Jpb3REZXZpY2U6IExvcmlvdERldmljZSA9IGNsb25lRGVlcCh0aGlzLm1vZGVsKTtcbiAgICBsb3Jpb3REZXZpY2UubG5zQ29ubmVjdGlvbk5hbWUgPSB0aGlzLm1vZGVsLmNvbm5lY3Rpb24ubmFtZTtcbiAgICBkZWxldGUgKGxvcmlvdERldmljZSBhcyBhbnkpLmNvbm5lY3Rpb247XG4gICAgbG9yaW90RGV2aWNlLmFwcGlkID0gdGhpcy5tb2RlbC5hcHBsaWNhdGlvbi5oZXhJZDtcbiAgICBkZWxldGUgKGxvcmlvdERldmljZSBhcyBhbnkpLmFwcGxpY2F0aW9uO1xuICAgIHJldHVybiBsb3Jpb3REZXZpY2U7XG4gIH1cblxuICBnZXRQcm90b2NvbHMkKCkge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMubG9yaW90U2VydmljZS5nZXRBdmFpbGFibGVQcm90b2NvbHMoKSkpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgZ2V0Q29ubmVjdGlvbnMkKCkge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMubG9yaW90U2VydmljZS5nZXRDb25uZWN0aW9ucygpKSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBnZXRBcHBsaWNhdGlvbnMkKG5hbWUpIHtcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLmxvcmlvdFNlcnZpY2UuZ2V0QXBwbGljYXRpb25zKG5hbWUpKSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGM4eS1tb2RhbCBbaGVhZGVyQ2xhc3Nlc109XCInZGlhbG9nLWhlYWRlcidcIiBbY3VzdG9tRm9vdGVyXT1cInRydWVcIj5cbiAgPG5nLWNvbnRhaW5lciBjOHktbW9kYWwtdGl0bGU+XG4gICAgPHNwYW4gW2M4eUljb25dPVwiJ2M4eS1kZXZpY2UtY29ubmVjdCdcIj48L3NwYW4+XG4gICAgPGg0Pnt7ICdMT1JJT1QgcmVnaXN0cmF0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGUgPT09ICdsb2FkUGVuZGluZyc7IGVsc2UgcmVnaXN0cmF0aW9uRm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNyZWdpc3RyYXRpb25Gb3JtPlxuICAgIDxjOHktc3RlcHBlclxuICAgICAgW2hpZGVTdGVwUHJvZ3Jlc3NdPVwidHJ1ZVwiXG4gICAgICBsaW5lYXJcbiAgICAgICpuZ0lmPVwiKGVycm9yTWVzc2FnZXMkIHwgYXN5bmMpLmxlbmd0aCA9PT0gMDsgZWxzZSBlcnJvck1lc3NhZ2VzUHJlc2VudFwiXG4gICAgPlxuICAgICAgPGNkay1zdGVwIFtzdGVwQ29udHJvbF09XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWItMTZcIj5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJcbiAgICAgICAgICAgICAgcC1sLTI0IHAtci0yNCBwLXQtMTYgcC1iLTE2XG4gICAgICAgICAgICAgIG0tYi0wXG4gICAgICAgICAgICAgIHN0aWNreS10b3BcbiAgICAgICAgICAgICAgc2VwYXJhdG9yLWJvdHRvbVxuICAgICAgICAgICAgICBsZWFkXG4gICAgICAgICAgICAgIHRleHQtY2VudGVyXG4gICAgICAgICAgICAgIGJnLWNvbXBvbmVudFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnUmVnaXN0ZXIgYSBzaW5nbGUgTE9SSU9UIGRldmljZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGZvcm1seS1mb3JtXG4gICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgICAgICAgIFttb2RlbF09XCJtb2RlbFwiXG4gICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgcC1sLTI0IHAtci0yNCBwLXQtMTZcIlxuICAgICAgICAgID48L2Zvcm1seS1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgICBbbGFiZWxzXT1cInJlZ2lzdHJhdGlvblN0ZXBMYWJlbHNcIlxuICAgICAgICAgIChvbk5leHQpPVwiY3JlYXRlKCRldmVudClcIlxuICAgICAgICAgIChvbkNhbmNlbCk9XCJic01vZGFsUmVmLmhpZGUoKVwiXG4gICAgICAgICAgW3Nob3dCdXR0b25zXT1cInsgY2FuY2VsOiB0cnVlLCBuZXh0OiB0cnVlIH1cIlxuICAgICAgICAgIFtwZW5kaW5nXT1cInN0YXRlID09PSAncmVnaXN0cmF0aW9uUGVuZGluZydcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiXG4gICAgICAgICAgY2xhc3M9XCJtb2RhbC1mb290ZXIgc3RpY2t5LWJvdHRvbSBzZXBhcmF0b3ItdG9wIGJnLXdoaXRlXCJcbiAgICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICAgIDwvY2RrLXN0ZXA+XG4gICAgICA8Y2RrLXN0ZXAgc3RhdGU9XCJmaW5hbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlclwiICpuZ0lmPVwic3RhdGUgPT09ICdyZWdpc3RyYXRpb25QZW5kaW5nJ1wiPlxuICAgICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tMjRcIj5cbiAgICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICAgICpuZ0lmPVwic3RhdGUgPT09ICdyZWdpc3RyYXRpb25TdWNjZXNzJ1wiXG4gICAgICAgICAgICB0ZXh0PVwie3sgJ0RldmljZSByZWdpc3RlcmVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWQgbS1iLTBcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICAgIGNsYXNzPVwic3RpY2t5LWJvdHRvbSBkLWJsb2NrIHAtdC0xNiBwLWItMTYgc2VwYXJhdG9yLXRvcCBiZy13aGl0ZVwiXG4gICAgICAgICAgKG9uQ3VzdG9tKT1cImJzTW9kYWxSZWYuaGlkZSgpXCJcbiAgICAgICAgICBbc2hvd0J1dHRvbnNdPVwieyBjdXN0b206IHRydWUgfVwiXG4gICAgICAgICAgW2xhYmVsc109XCJmaW5hbFN0ZXBMYWJlbHNcIlxuICAgICAgICA+PC9jOHktc3RlcHBlci1idXR0b25zPlxuICAgICAgPC9jZGstc3RlcD5cbiAgICA8L2M4eS1zdGVwcGVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZXJyb3JNZXNzYWdlc1ByZXNlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIm0tMjRcIj5cbiAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAqbmdJZj1cInN0YXRlID09PSAncmVnaXN0cmF0aW9uRXJyb3InXCJcbiAgICAgICAgdGV4dD1cInt7ICdGYWlsZWQgdG8gcmVnaXN0ZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IG1zZyBvZiBlcnJvck1lc3NhZ2VzJCB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJtLWItOFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1jZW50ZXInOiBzdGF0ZSA9PT0gJ3JlZ2lzdHJhdGlvbkVycm9yJyxcbiAgICAgICAgICAnYWxlcnQgYWxlcnQtZGFuZ2VyJzogc3RhdGUgPT09ICdsb2FkRXJyb3InXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIm1zZyB8IHRyYW5zbGF0ZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0aXRsZT1cInt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAoY2xpY2spPVwiYnNNb2RhbFJlZi5oaWRlKClcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgQ2xvc2VcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9jOHktbW9kYWw+XG4iXX0=
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBZTVDLE1BQU0sT0FBTyxpQ0FBaUM7SUF3SzVDLFlBQ1MsVUFBc0IsRUFDckIsYUFBb0MsRUFDcEMsZ0JBQWtDO1FBRm5DLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLHFCQUFnQixHQUFoQixn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LGdCQUFnQixDQUFDLElBQUk7UUFDbkIsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7OEhBdE9VLGlDQUFpQztrSEFBakMsaUNBQWlDLCtEQ3hCOUMsNHZHQXNHQTsyRkQ5RWEsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNFLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWZlciwgZm9ya0pvaW4sIGZyb20sIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDZGtTdGVwIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgTG9yaW90UHJvdmlkZXJTZXJ2aWNlLCBFcnJvck5hbWUgfSBmcm9tICcuL2xvcmlvdC1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgdGFrZVVudGlsLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBMb3Jpb3REZXZpY2UsIExvcmlvdERldmljZUZvcm1seSB9IGZyb20gJy4vbG9yaW90LWRldmljZS1yZWdpc3RyYXRpb24ubW9kZWwnO1xuXG50eXBlIFN0YXRlID1cbiAgfCAnbG9hZFBlbmRpbmcnXG4gIHwgJ2xvYWRTdWNjZXNzJ1xuICB8ICdsb2FkRXJyb3InXG4gIHwgJ3JlZ2lzdHJhdGlvblBlbmRpbmcnXG4gIHwgJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnXG4gIHwgJ3JlZ2lzdHJhdGlvbkVycm9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWxvcmlvdC1yZWdpc3RyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJ2xvcmlvdC1kZXZpY2UtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMb3Jpb3REZXZpY2VSZWdpc3RyYXRpb25Db21wb25lbnQge1xuICBzdGVwcGVyOiBDOHlTdGVwcGVyO1xuICByZWFkb25seSBQQUdJTkc6IG9iamVjdCA9IHtcbiAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICBwYWdlU2l6ZTogMTBcbiAgfTtcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsOiBMb3Jpb3REZXZpY2VGb3JtbHkgPSB7fSBhcyBhbnk7XG4gIHByb3RvY29scyQgPSB0aGlzLmdldFByb3RvY29scyQoKTtcbiAgY29ubmVjdGlvbnMkID0gdGhpcy5nZXRDb25uZWN0aW9ucyQoKTtcbiAgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBsb2FkJCA9IHRoaXMuY29ubmVjdGlvbnMkLnBpcGUoXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiBvZihlcnJvcikpLFxuICAgIHN3aXRjaE1hcChjb25uZWN0aW9ucyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbm5lY3Rpb25zIGluc3RhbmNlb2YgRXJyb3IgJiZcbiAgICAgICAgY29ubmVjdGlvbnMubmFtZSA9PT0gRXJyb3JOYW1lLk5vQ29ubmVjdGl2aXR5U2V0dGluZ3NFcnJvclxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBvZihbY29ubmVjdGlvbnNdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JrSm9pbihbXG4gICAgICAgIG9mKGNvbm5lY3Rpb25zKSxcbiAgICAgICAgdGhpcy5wcm90b2NvbHMkLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiBvZihlcnJvcikpKVxuICAgICAgXSk7XG4gICAgfSksXG4gICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdHMuZmlsdGVyKHJlc3VsdCA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBFcnJvcjtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcChlcnJvcnMgPT4ge1xuICAgICAgcmV0dXJuIGVycm9ycy5sZW5ndGggPT09IDAgPyBvZihbXSkgOiB0aHJvd0Vycm9yKGVycm9ycyk7XG4gICAgfSlcbiAgKTtcblxuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXG4gICAge1xuICAgICAga2V5OiAndGl0bGUnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0xPUklPVCBMb1JhJyksXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdUaXRsZScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZGV2ZXVpJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRkVEQ0JBOTg3NjU0MzIxMCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2UgRVVJJyksXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBwYXR0ZXJuOiAnXihbQS1GMC05XXsxNn0pJCdcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgIG1lc3NhZ2VzOiB7XG4gICAgICAgICAgcGF0dGVybjogZ2V0dGV4dCgnTXVzdCBiZSBhIHZhbGlkIDE2IGRpZ2l0IHVwcGVyY2FzZSBoZXhhZGVjaW1hbCBudW1iZXIuJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYXBwZXVpJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRkVEQ0JBOTg3NjU0MzIxMCcsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBFVUknKSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHBhdHRlcm46ICdeKFthLWZBLUYwLTldezE2fSkkJ1xuICAgICAgfSxcbiAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgICBwYXR0ZXJuOiBnZXR0ZXh0KCdNdXN0IGJlIGEgdmFsaWQgMTYgZGlnaXQgaGV4YWRlY2ltYWwgbnVtYmVyLicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FwcGtleScsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ0ZFRENCQTk4NzY1NDMyMTBGRURDQkE5ODc2NTQzMjEwJyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0FwcGxpY2F0aW9uIGtleScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgcGF0dGVybjogJ14oW2EtZkEtRjAtOV17MzJ9KSQnXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICBtZXNzYWdlczoge1xuICAgICAgICAgIHBhdHRlcm46IGdldHRleHQoJ011c3QgYmUgYSB2YWxpZCAzMiBkaWdpdCBoZXhhZGVjaW1hbCBudW1iZXIuJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY29ubmVjdGlvbicsXG4gICAgICB0eXBlOiAndHlwZWFoZWFkJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgYzh5Rm9yT3B0aW9uczogdGhpcy5jb25uZWN0aW9ucyQsXG4gICAgICAgIGRpc3BsYXlQcm9wZXJ0eTogJ25hbWUnLFxuICAgICAgICB2YWx1ZVByb3BlcnRpZXM6IFsnbmFtZSddXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdhcHBsaWNhdGlvbicsXG4gICAgICB0eXBlOiAndHlwZWFoZWFkJyxcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQXBwbGljYXRpb24gbmFtZScpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ0xPUklPVCBhcHBsaWNhdGlvbicpLFxuICAgICAgICBkaXNwbGF5UHJvcGVydHk6ICduYW1lJyxcbiAgICAgICAgdmFsdWVQcm9wZXJ0aWVzOiBbJ2hleElkJ11cbiAgICAgIH0sXG4gICAgICBob29rczoge1xuICAgICAgICBvbkluaXQ6IGZpZWxkID0+IHtcbiAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQ29udHJvbCA9IGZpZWxkLmZvcm0uZ2V0KCdjb25uZWN0aW9uJyk7XG4gICAgICAgICAgY29ubmVjdGlvbkNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoKHsgbmFtZSB9KSA9PiB0aGlzLmdldEFwcGxpY2F0aW9ucyQobmFtZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBhcHBzID0+IHtcbiAgICAgICAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuYzh5Rm9yT3B0aW9ucyA9IG9mKGFwcHMpO1xuICAgICAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQuZm9ybS5jb250cm9scy5hcHBsaWNhdGlvbi5zZXRFcnJvcnMoeyBhcHBsaWNhdGlvbjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBmaWVsZC52YWxpZGF0b3JzLmFwcGxpY2F0aW9uLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICBhcHBsaWNhdGlvbjoge1xuICAgICAgICAgIGV4cHJlc3Npb246IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLnN0YXR1cyA9PT0gJ1ZBTElEJztcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2U6ICgpID0+ICcnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2RldmljZVR5cGUnLFxuICAgICAgdHlwZTogJ3R5cGVhaGVhZCcsXG4gICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0RldmljZSBwcm90b2NvbCcpLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgYzh5Rm9yT3B0aW9uczogdGhpcy5wcm90b2NvbHMkLFxuICAgICAgICBkaXNwbGF5UHJvcGVydHk6ICduYW1lJyxcbiAgICAgICAgdmFsdWVQcm9wZXJ0aWVzOiBbJ2lkJywgJ25hbWUnXVxuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICByZWdpc3RyYXRpb25TdGVwTGFiZWxzID0ge1xuICAgIG5leHQ6IGdldHRleHQoJ1JlZ2lzdGVyJylcbiAgfTtcbiAgZmluYWxTdGVwTGFiZWxzID0ge1xuICAgIGJhY2s6IGdldHRleHQoJ0Nsb3NlJylcbiAgfTtcblxuICBzdGF0ZTogU3RhdGUgPSAnbG9hZFBlbmRpbmcnO1xuICBlcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFcnJvcltdPihbXSk7XG4gIGVycm9yTWVzc2FnZXMkID0gdGhpcy5lcnJvcnMkLnBpcGUoXG4gICAgbWFwKGVycm9ycyA9PiBlcnJvcnMubWFwKGVycm9yID0+IGVycm9yLm1lc3NhZ2UpKSxcbiAgICBtYXAobWVzc2FnZXMgPT4gdW5pcShtZXNzYWdlcykpXG4gICk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgbG9yaW90U2VydmljZTogTG9yaW90UHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHtcbiAgICB0aGlzLmxvYWQkLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdsb2FkU3VjY2Vzcyc7XG4gICAgICB9LFxuICAgICAgZXJyb3JzID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdsb2FkRXJyb3InO1xuICAgICAgICB0aGlzLmVycm9ycyQubmV4dChlcnJvcnMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoZXZlbnQ6IHsgc3RlcHBlcjogQzh5U3RlcHBlcjsgc3RlcDogQ2RrU3RlcCB9KSB7XG4gICAgdGhpcy5zdGF0ZSA9ICdyZWdpc3RyYXRpb25QZW5kaW5nJztcbiAgICBjb25zdCBsb3Jpb3REZXZpY2UgPSB0aGlzLmdldExvcmlvdERldmljZVRvU2VuZCgpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvcmlvdFNlcnZpY2UuY3JlYXRlRGV2aWNlKGxvcmlvdERldmljZSk7XG4gICAgICB0aGlzLnN0YXRlID0gJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvblN1Y2Nlc3MnLFxuICAgICAgICBuYW1lOiAnbG9yaW90UmVnaXN0cmF0aW9uJ1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAncmVnaXN0cmF0aW9uRXJyb3InO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnZG1EZXZpY2VSZWdpc3RyYXRpb24nLCB7XG4gICAgICAgIGFjdGlvbjogJ3JlZ2lzdHJhdGlvbkZhaWx1cmUnLFxuICAgICAgICBuYW1lOiAnbG9yaW90UmVnaXN0cmF0aW9uJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmVycm9ycyQubmV4dChbZXJyb3JdKTtcbiAgICB9XG5cbiAgICBldmVudC5zdGVwcGVyLm5leHQoKTtcbiAgfVxuXG4gIGdldExvcmlvdERldmljZVRvU2VuZCgpIHtcbiAgICBjb25zdCBsb3Jpb3REZXZpY2U6IExvcmlvdERldmljZSA9IGNsb25lRGVlcCh0aGlzLm1vZGVsKTtcbiAgICBsb3Jpb3REZXZpY2UubG5zQ29ubmVjdGlvbk5hbWUgPSB0aGlzLm1vZGVsLmNvbm5lY3Rpb24ubmFtZTtcbiAgICBkZWxldGUgKGxvcmlvdERldmljZSBhcyBhbnkpLmNvbm5lY3Rpb247XG4gICAgbG9yaW90RGV2aWNlLmFwcGlkID0gdGhpcy5tb2RlbC5hcHBsaWNhdGlvbi5oZXhJZDtcbiAgICBkZWxldGUgKGxvcmlvdERldmljZSBhcyBhbnkpLmFwcGxpY2F0aW9uO1xuICAgIHJldHVybiBsb3Jpb3REZXZpY2U7XG4gIH1cblxuICBnZXRQcm90b2NvbHMkKCkge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMubG9yaW90U2VydmljZS5nZXRBdmFpbGFibGVQcm90b2NvbHMoKSkpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgZ2V0Q29ubmVjdGlvbnMkKCkge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMubG9yaW90U2VydmljZS5nZXRDb25uZWN0aW9ucygpKSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBnZXRBcHBsaWNhdGlvbnMkKG5hbWUpIHtcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLmxvcmlvdFNlcnZpY2UuZ2V0QXBwbGljYXRpb25zKG5hbWUpKSkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGM4eS1tb2RhbFxuICBbdGl0bGVdPVwiJ0xPUklPVCByZWdpc3RyYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgW2hlYWRlckNsYXNzZXNdPVwiJ2RpYWxvZy1oZWFkZXInXCJcbiAgW2N1c3RvbUZvb3Rlcl09XCJ0cnVlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBjOHktbW9kYWwtdGl0bGU+XG4gICAgPHNwYW4gW2M4eUljb25dPVwiJ2M4eS1kZXZpY2UtY29ubmVjdCdcIj48L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGUgPT09ICdsb2FkUGVuZGluZyc7IGVsc2UgcmVnaXN0cmF0aW9uRm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNyZWdpc3RyYXRpb25Gb3JtPlxuICAgIDxjOHktc3RlcHBlclxuICAgICAgW2hpZGVTdGVwUHJvZ3Jlc3NdPVwidHJ1ZVwiXG4gICAgICBsaW5lYXJcbiAgICAgIGM4eS1tb2RhbC1ib2R5XG4gICAgICAqbmdJZj1cIihlcnJvck1lc3NhZ2VzJCB8IGFzeW5jKS5sZW5ndGggPT09IDA7IGVsc2UgZXJyb3JNZXNzYWdlc1ByZXNlbnRcIlxuICAgID5cbiAgICAgIDxjZGstc3RlcCBbc3RlcENvbnRyb2xdPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1iLTE2XCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtb2RhbC1zdWJ0aXRsZSBzdGlja3ktdG9wXCI+XG4gICAgICAgICAgICB7eyAnUmVnaXN0ZXIgYSBzaW5nbGUgTE9SSU9UIGRldmljZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGZvcm1seS1mb3JtXG4gICAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgICAgICAgIFttb2RlbF09XCJtb2RlbFwiXG4gICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgcC1sLTI0IHAtci0yNCBwLXQtMTZcIlxuICAgICAgICAgID48L2Zvcm1seS1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGM4eS1zdGVwcGVyLWJ1dHRvbnNcbiAgICAgICAgICBbbGFiZWxzXT1cInJlZ2lzdHJhdGlvblN0ZXBMYWJlbHNcIlxuICAgICAgICAgIChvbk5leHQpPVwiY3JlYXRlKCRldmVudClcIlxuICAgICAgICAgIChvbkNhbmNlbCk9XCJic01vZGFsUmVmLmhpZGUoKVwiXG4gICAgICAgICAgW3Nob3dCdXR0b25zXT1cInsgY2FuY2VsOiB0cnVlLCBuZXh0OiB0cnVlIH1cIlxuICAgICAgICAgIFtwZW5kaW5nXT1cInN0YXRlID09PSAncmVnaXN0cmF0aW9uUGVuZGluZydcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiXG4gICAgICAgICAgY2xhc3M9XCJtb2RhbC1mb290ZXIgZC1ibG9jayBzdGlja3ktYm90dG9tIHNlcGFyYXRvci10b3AgYmctY29tcG9uZW50XCJcbiAgICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICAgIDwvY2RrLXN0ZXA+XG4gICAgICA8Y2RrLXN0ZXAgc3RhdGU9XCJmaW5hbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlclwiICpuZ0lmPVwic3RhdGUgPT09ICdyZWdpc3RyYXRpb25QZW5kaW5nJ1wiPlxuICAgICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tMjRcIj5cbiAgICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICAgICpuZ0lmPVwic3RhdGUgPT09ICdyZWdpc3RyYXRpb25TdWNjZXNzJ1wiXG4gICAgICAgICAgICB0ZXh0PVwie3sgJ0RldmljZSByZWdpc3RlcmVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgICBjbGFzcz1cImxlYWQgbS1iLTBcIlxuICAgICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Yzh5LXN0ZXBwZXItYnV0dG9uc1xuICAgICAgICAgIGNsYXNzPVwic3RpY2t5LWJvdHRvbSBkLWJsb2NrIHAtdC0xNiBwLWItMTYgc2VwYXJhdG9yLXRvcCBiZy1jb21wb25lbnRcIlxuICAgICAgICAgIChvbkN1c3RvbSk9XCJic01vZGFsUmVmLmhpZGUoKVwiXG4gICAgICAgICAgW3Nob3dCdXR0b25zXT1cInsgY3VzdG9tOiB0cnVlIH1cIlxuICAgICAgICAgIFtsYWJlbHNdPVwiZmluYWxTdGVwTGFiZWxzXCJcbiAgICAgICAgPjwvYzh5LXN0ZXBwZXItYnV0dG9ucz5cbiAgICAgIDwvY2RrLXN0ZXA+XG4gICAgPC9jOHktc3RlcHBlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2Vycm9yTWVzc2FnZXNQcmVzZW50PlxuICAgIDxkaXYgY2xhc3M9XCJtLTI0XCI+XG4gICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgKm5nSWY9XCJzdGF0ZSA9PT0gJ3JlZ2lzdHJhdGlvbkVycm9yJ1wiXG4gICAgICAgIHRleHQ9XCJ7eyAnRmFpbGVkIHRvIHJlZ2lzdGVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBtc2cgb2YgZXJyb3JNZXNzYWdlcyQgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwibS1iLThcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3RleHQtY2VudGVyJzogc3RhdGUgPT09ICdyZWdpc3RyYXRpb25FcnJvcicsXG4gICAgICAgICAgJ2FsZXJ0IGFsZXJ0LWRhbmdlcic6IHN0YXRlID09PSAnbG9hZEVycm9yJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJtc2cgfCB0cmFuc2xhdGVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdGl0bGU9XCJ7eyAnQ2xvc2UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgID5cbiAgICAgICAge3sgJ0Nsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2M4eS1tb2RhbD5cbiJdfQ==
|
|
@@ -113,10 +113,10 @@ export class BulkOperationsListComponent {
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
BulkOperationsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BulkOperationsListComponent, deps: [{ token: i1.OperationBulkRealtimeService }, { token: i2.BulkOperationsService }, { token: i3.BulkOperationModalsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
BulkOperationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BulkOperationsListComponent, selector: "c8y-bulk-operations", providers: [OperationBulkRealtimeService], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }, { propertyName: "datePicker", first: true, predicate: DatePickerComponent, descendants: true, static: true }, { propertyName: "listItems", predicate: BulkOperationListItemComponent, descendants: true }], ngImport: i0, template: "<c8y-title>
|
|
116
|
+
BulkOperationsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BulkOperationsListComponent, selector: "c8y-bulk-operations", providers: [OperationBulkRealtimeService], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }, { propertyName: "datePicker", first: true, predicate: DatePickerComponent, descendants: true, static: true }, { propertyName: "listItems", predicate: BulkOperationListItemComponent, descendants: true }], ngImport: i0, template: "<c8y-title>{{ 'Bulk operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-energy'\"\n [label]=\"'Bulk operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item *ngIf=\"bulkTypes?.length\" itemClass=\"navbar-form\" [placement]=\"'left'\">\n <label class=\"hidden-sm hidden-xs\" translate>Type</label>\n <c8y-select\n style=\"width: 180px\"\n [items]=\"bulkTypes\"\n [selected]=\"selectedTypeFilters\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"selectedTypeFilters = $event; typeFilter$.next(selectedTypeFilters)\"\n ></c8y-select>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"bulkOperationStatusOptions\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-date-picker (onDateSelected)=\"timeFilter$.next($event)\"></c8y-date-picker>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n *ngIf=\"bulkTypes?.length\"\n class=\"btn btn-link d-flex a-i-center\"\n (click)=\"addBulkOperation()\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ action: bulkActions.OPEN_ADD_BULK_OPERATION_DIALOG }\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Add bulk operation' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && !isFilterApplied()\"\n icon=\"c8y-energy\"\n [title]=\"'No items to display' | translate\"\n [subtitle]=\"'Bulk operations will be displayed here' | translate\"\n>\n <button\n type=\"button\"\n *ngIf=\"bulkTypes?.length\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"addBulkOperation()\"\n translate\n >\n Add bulk operation\n </button>\n</c8y-ui-empty-state>\n\n<!-- No results empty state -->\n<c8y-ui-empty-state\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && isFilterApplied()\"\n icon=\"search\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"resetFilter()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group\n class=\"m-b-24\"\n [ngClass]=\"{ 'dd-low': (bulkOperations$ | async)?.data.length < 10 }\"\n>\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item--double-actions c8y-list__item\"\n *ngIf=\"(bulkOperations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i c8yIcon=\"refresh\" class=\"invisible\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\">\n {{ 'Progress' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Status' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let bulkOperation of bulkOperations$ | async;\n let i = index;\n realtime: realtime;\n pipe: filterPipe;\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-bulk-operation-list-item\n [bulkOperation]=\"bulkOperation\"\n (reload)=\"reload$.next()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n class=\"d-contents\"\n ></c8y-bulk-operation-list-item>\n </div>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.SelectComponent, selector: "c8y-select", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection"], outputs: ["onChange"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.DatePickerComponent, selector: "c8y-date-picker", outputs: ["onDateSelected"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title"] }, { kind: "component", type: i5.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "component", type: i6.BulkOperationListItemComponent, selector: "c8y-bulk-operation-list-item", inputs: ["bulkOperation", "detailsCollapsed", "readOnly"], outputs: ["showFailedOperation", "reload"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
117
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BulkOperationsListComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
|
-
args: [{ selector: 'c8y-bulk-operations', providers: [OperationBulkRealtimeService], template: "<c8y-title>
|
|
119
|
+
args: [{ selector: 'c8y-bulk-operations', providers: [OperationBulkRealtimeService], template: "<c8y-title>{{ 'Bulk operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-energy'\"\n [label]=\"'Bulk operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item *ngIf=\"bulkTypes?.length\" itemClass=\"navbar-form\" [placement]=\"'left'\">\n <label class=\"hidden-sm hidden-xs\" translate>Type</label>\n <c8y-select\n style=\"width: 180px\"\n [items]=\"bulkTypes\"\n [selected]=\"selectedTypeFilters\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"selectedTypeFilters = $event; typeFilter$.next(selectedTypeFilters)\"\n ></c8y-select>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-status-filter\n #statusFilter\n [options]=\"bulkOperationStatusOptions\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <c8y-date-picker (onDateSelected)=\"timeFilter$.next($event)\"></c8y-date-picker>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n *ngIf=\"bulkTypes?.length\"\n class=\"btn btn-link d-flex a-i-center\"\n (click)=\"addBulkOperation()\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ action: bulkActions.OPEN_ADD_BULK_OPERATION_DIALOG }\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Add bulk operation' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i c8yIcon=\"refresh\" [ngClass]=\"{ 'icon-spin': refreshLoading }\" class=\"m-r-4\"></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && !isFilterApplied()\"\n icon=\"c8y-energy\"\n [title]=\"'No items to display' | translate\"\n [subtitle]=\"'Bulk operations will be displayed here' | translate\"\n>\n <button\n type=\"button\"\n *ngIf=\"bulkTypes?.length\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"addBulkOperation()\"\n translate\n >\n Add bulk operation\n </button>\n</c8y-ui-empty-state>\n\n<!-- No results empty state -->\n<c8y-ui-empty-state\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && isFilterApplied()\"\n icon=\"search\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n>\n <button\n type=\"button\"\n title=\"{{ 'Reset filter' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"resetFilter()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group\n class=\"m-b-24\"\n [ngClass]=\"{ 'dd-low': (bulkOperations$ | async)?.data.length < 10 }\"\n>\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item--double-actions c8y-list__item\"\n *ngIf=\"(bulkOperations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i c8yIcon=\"refresh\" class=\"invisible\"></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\">\n {{ 'Progress' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Status' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let bulkOperation of bulkOperations$ | async;\n let i = index;\n realtime: realtime;\n pipe: filterPipe;\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-bulk-operation-list-item\n [bulkOperation]=\"bulkOperation\"\n (reload)=\"reload$.next()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n class=\"d-contents\"\n ></c8y-bulk-operation-list-item>\n </div>\n</c8y-list-group>\n" }]
|
|
120
120
|
}], ctorParameters: function () { return [{ type: i1.OperationBulkRealtimeService }, { type: i2.BulkOperationsService }, { type: i3.BulkOperationModalsService }]; }, propDecorators: { listItems: [{
|
|
121
121
|
type: ViewChildren,
|
|
122
122
|
args: [BulkOperationListItemComponent]
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
127
127
|
type: ViewChild,
|
|
128
128
|
args: [DatePickerComponent, { static: true }]
|
|
129
129
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9idWxrLW9wZXJhdGlvbnMtbGlzdC9idWxrLW9wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9ucy1saXN0L2J1bGstb3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFFOUIsTUFBTSx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLEVBQ0wscUJBQXFCLEVBRXRCLE1BQU0sd0RBQXdELENBQUM7QUFDaEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSxtREFBbUQsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQU1wRixNQUFNLE9BQU8sMkJBQTJCO0lBeUN0QyxZQUNTLFFBQXNDLEVBQ3JDLHFCQUE0QyxFQUM1Qyww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VSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3RixDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBd0I7UUFDckQsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDOzt3SEF6SVUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsOENBRjNCLENBQUMsNEJBQTRCLENBQUMsbUxBa0I5QixtQkFBbUIsNkVBSGhCLDhCQUE4QixnREN4QzlDLHM2SkE2SkE7MkZEbElhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFFcEIsQ0FBQyw0QkFBNEIsQ0FBQztnTUFnQnpDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyw4QkFBOEI7Z0JBRUMsWUFBWTtzQkFBeEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNPLFVBQVU7c0JBQTNELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElPcGVyYXRpb25CdWxrLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIE9wZXJhdGlvbkJ1bGtSZWFsdGltZVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEJ1bGtPcGVyYXRpb25MaXN0SXRlbUNvbXBvbmVudCxcbiAgQlVMS19PUEVSQVRJT05fU1RBVFVTX09QVElPTlMsXG4gIE9wZXJhdGlvblN0YXR1c09wdGlvbnNNYXBcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLWxpc3QtaXRlbSc7XG5pbXBvcnQge1xuICBCdWxrT3BlcmF0aW9uc1NlcnZpY2UsXG4gIE9wZXJhdGlvblR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9ucy1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFDVElPTlNfQlVMSyxcbiAgQlVMS19PUEVSQVRJT05fRVZFTlRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3Byb2R1Y3QtZXhwZXJpZW5jZSc7XG5pbXBvcnQgeyBTdGF0dXNPcHRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvc2hhcmVkJztcbmltcG9ydCB7IFN0YXR1c0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9zdGF0dXMtZmlsdGVyJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCdWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZSB9IGZyb20gJy4vbW9kYWxzL2J1bGstb3BlcmF0aW9uLW1vZGFscy5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1idWxrLW9wZXJhdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtPcGVyYXRpb25CdWxrUmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBCdWxrT3BlcmF0aW9uc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBidWxrVHlwZXM6IE9wZXJhdGlvblR5cGVbXSA9IFtdO1xuICBzZWxlY3RlZFR5cGVGaWx0ZXJzID0gdGhpcy5nZXRUeXBlRmlsdGVycygpO1xuICBidWxrT3BlcmF0aW9uU3RhdHVzT3B0aW9uczogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IEJVTEtfT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TO1xuICBCVUxLX09QRVJBVElPTl9FVkVOVCA9IEJVTEtfT1BFUkFUSU9OX0VWRU5UO1xuICBidWxrQWN0aW9ucyA9IEFDVElPTlNfQlVMSztcblxuICBmaWx0ZXJQaXBlO1xuICByZWZyZXNoTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzdGF0dXNGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8U3RhdHVzT3B0aW9uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgdHlwZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25UeXBlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcmVsb2FkJDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgQFZpZXdDaGlsZHJlbihCdWxrT3BlcmF0aW9uTGlzdEl0ZW1Db21wb25lbnQpXG4gIGxpc3RJdGVtczogUXVlcnlMaXN0PEJ1bGtPcGVyYXRpb25MaXN0SXRlbUNvbXBvbmVudD47XG4gIEBWaWV3Q2hpbGQoJ3N0YXR1c0ZpbHRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHN0YXR1c0ZpbHRlcjogU3RhdHVzRmlsdGVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKERhdGVQaWNrZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVQaWNrZXI6IERhdGVQaWNrZXJDb21wb25lbnQ7XG5cbiAgYnVsa09wZXJhdGlvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElPcGVyYXRpb25CdWxrPj4gPSBjb21iaW5lTGF0ZXN0KFxuICAgIHRoaXMuc3RhdHVzRmlsdGVyJCxcbiAgICB0aGlzLnRpbWVGaWx0ZXIkLFxuICAgIHRoaXMudHlwZUZpbHRlciQsXG4gICAgdGhpcy5yZWxvYWQkXG4gICkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoTG9hZGluZyA9IHRydWU7XG4gICAgfSksXG4gICAgc3dpdGNoTWFwKChbc3RhdHVzRmlsdGVycywgdGltZUZpbHRlcnNdKSA9PiB0aGlzLmZpbHRlcihzdGF0dXNGaWx0ZXJzLCB0aW1lRmlsdGVycykpLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMudHlwZUZpbHRlciQpLFxuICAgIG1hcCgoW3Jlc3VsdCwgdHlwZUZpbHRlcl06IFtJUmVzdWx0TGlzdDxJT3BlcmF0aW9uQnVsaz4sIE9wZXJhdGlvblR5cGVbXV0pID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUobWFwKChkYXRhOiBbXSkgPT4gdGhpcy5maWx0ZXJCeVR5cGUoZGF0YSwgdHlwZUZpbHRlcikpKTtcbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgZGF0YTogdGhpcy5maWx0ZXJCeVR5cGUocmVzdWx0LmRhdGEsIHR5cGVGaWx0ZXIpIH07XG4gICAgfSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHByaXZhdGUgYWxsRmlsdGVyRnJhZ21lbnRzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhbHRpbWU6IE9wZXJhdGlvbkJ1bGtSZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBidWxrT3BlcmF0aW9uc1NlcnZpY2U6IEJ1bGtPcGVyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGJ1bGtPcGVyYXRpb25Nb2RhbHNTZXJ2aWNlOiBCdWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFsbEZpbHRlckZyYWdtZW50cyA9IHRoaXMuZmxhdHRlbkZpbHRlckZyYWdtZW50cyh0aGlzLmdldFR5cGVGaWx0ZXJzKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5idWxrVHlwZXMgPSB0aGlzLmJ1bGtPcGVyYXRpb25zU2VydmljZS5nZXRCdWxrVHlwZXMoKTtcbiAgfVxuXG4gIGZpbHRlckJ5VHlwZShidWxrT3BlcmF0aW9uczogSU9wZXJhdGlvbkJ1bGtbXSwgdHlwZUZpbHRlcikge1xuICAgIGNvbnN0IGZsYXR0ZW5lZEZyYWdtZW50czogc3RyaW5nW10gPSB0aGlzLmZsYXR0ZW5GaWx0ZXJGcmFnbWVudHModHlwZUZpbHRlcik7XG4gICAgaWYgKFxuICAgICAgLy8gcmV0dXJuIGRhdGEgdW5maWx0ZXJlZCBpZiBubyBmaWx0ZXJzIHNlbGVjdGVkLi4uXG4gICAgICAhZmxhdHRlbmVkRnJhZ21lbnRzLmxlbmd0aCB8fFxuICAgICAgLy8gLi4ub3Igd2hlbiBhbGwgZmlsdGVycyBhcmUgc2VsZWN0ZWRcbiAgICAgIHRoaXMuYWxsRmlsdGVyRnJhZ21lbnRzLmV2ZXJ5KGZyYWdtZW50ID0+IGZsYXR0ZW5lZEZyYWdtZW50cy5pbmNsdWRlcyhmcmFnbWVudCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gYnVsa09wZXJhdGlvbnM7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gYnVsa09wZXJhdGlvbnMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGl0ZW0ub3BlcmF0aW9uUHJvdG90eXBlKS5zb21lKGtleSA9PiBmbGF0dGVuZWRGcmFnbWVudHMuaW5jbHVkZXMoa2V5KSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdGF0dXNGaWx0ZXIkLm5leHQobnVsbCk7XG4gICAgdGhpcy50aW1lRmlsdGVyJC5uZXh0KG51bGwpO1xuICAgIHRoaXMudHlwZUZpbHRlciQubmV4dChudWxsKTtcblxuICAgIHRoaXMuZGF0ZVBpY2tlci5jbGVhckZpbHRlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWRUeXBlRmlsdGVycyA9IHRoaXMuZ2V0VHlwZUZpbHRlcnMoKTtcbiAgICB0aGlzLnN0YXR1c0ZpbHRlci5yZXNldCgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBcHBsaWVkKCkge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuc3RhdHVzRmlsdGVyJC5nZXRWYWx1ZSgpPy5sZW5ndGggfHxcbiAgICAgICEhdGhpcy50eXBlRmlsdGVyJC5nZXRWYWx1ZSgpPy5sZW5ndGggfHxcbiAgICAgICEhdGhpcy50aW1lRmlsdGVyJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlcihzdGF0dXNGaWx0ZXJzLCB0aW1lRmlsdGVyKSB7XG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIHN0YXR1c0ZpbHRlcnMgJiYgc3RhdHVzRmlsdGVycy5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZ2VuZXJhbFN0YXR1czogZmxhdHRlbihzdGF0dXNGaWx0ZXJzLm1hcChzdGF0dXNGaWx0ZXIgPT4gc3RhdHVzRmlsdGVyLmdlbmVyYWxTdGF0dXNlcykpXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9O1xuXG4gICAgY29uc3QgdGltZSA9IHRpbWVGaWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIC4uLih0aW1lRmlsdGVyLmRhdGVGcm9tICYmIHtcbiAgICAgICAgICAgIGRhdGVGcm9tOiB0aW1lRmlsdGVyLmRhdGVGcm9tLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAuLi4odGltZUZpbHRlci5kYXRlVG8gJiYge1xuICAgICAgICAgICAgZGF0ZVRvOiB0aW1lRmlsdGVyLmRhdGVUby50b0lTT1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgOiB7fTtcbiAgICByZXR1cm4gdGhpcy5nZXRCdWxrT3BlcmF0aW9ucyh7IC4uLnN0YXR1cywgLi4udGltZSB9KTtcbiAgfVxuXG4gIGdldEJ1bGtPcGVyYXRpb25zKGZpbHRlcj8pIHtcbiAgICByZXR1cm4gdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0QnVsa09wZXJhdGlvbnMoZmlsdGVyKTtcbiAgfVxuXG4gIGdldFR5cGVGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLmJ1bGtPcGVyYXRpb25zU2VydmljZS5nZXRCdWxrVHlwZXMoKTtcbiAgfVxuXG4gIGFkZEJ1bGtPcGVyYXRpb24oKSB7XG4gICAgdGhpcy5idWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZS5zaG93TmV3QnVsa09wZXJhdGlvbk1vZGFsKCk7XG4gIH1cblxuICBvcGVuRmFpbGVkT3BlcmF0aW9uKGZhaWxlZFBhcmVudElkKSB7XG4gICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmJ1bGtPcGVyYXRpb24uaWQgPT09IGZhaWxlZFBhcmVudElkKSB7XG4gICAgICAgIGl0ZW0ubGlzdEl0ZW0uY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIGl0ZW0ubGlzdEl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wYXJlT3BlcmF0aW9ucyhvcGVyYXRpb25BOiBJT3BlcmF0aW9uQnVsaywgb3BlcmF0aW9uQjogSU9wZXJhdGlvbkJ1bGspOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShvcGVyYXRpb25BLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUob3BlcmF0aW9uQi5zdGFydERhdGUpLmdldFRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlbkZpbHRlckZyYWdtZW50cyhmaWx0ZXJzOiBPcGVyYXRpb25UeXBlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIChmaWx0ZXJzIHx8IFtdKS5yZWR1Y2UoKGZsYXR0ZW5lZCwgY3VycmVudCkgPT4gZmxhdHRlbmVkLmNvbmNhdChjdXJyZW50LmZyYWdtZW50cyksIFtdKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT4ge3sgJ0RldmljZSBjb250cm9sJyAgfCB0cmFuc2xhdGUgfX08L2M4eS10aXRsZT5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW92ZXJ2aWV3cydcIlxuICAgIFtsYWJlbF09XCInT3ZlcnZpZXdzJyB8IHRyYW5zbGF0ZVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1kZXZpY2UtY29udHJvbCdcIlxuICAgIFtsYWJlbF09XCInRGV2aWNlIENvbnRyb2wnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInZGV2aWNlY29udHJvbC9zaW5nbGUnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWVuZXJneSdcIlxuICAgIFtsYWJlbF09XCIgJ0J1bGsgb3BlcmF0aW9ucycgfCB0cmFuc2xhdGVcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gKm5nSWY9XCJidWxrVHlwZXM/Lmxlbmd0aFwiIGl0ZW1DbGFzcz1cIm5hdmJhci1mb3JtXCIgW3BsYWNlbWVudF09XCInbGVmdCdcIj5cbiAgPGxhYmVsIGNsYXNzPVwiaGlkZGVuLXNtIGhpZGRlbi14c1wiIHRyYW5zbGF0ZT5UeXBlPC9sYWJlbD5cbiAgPGM4eS1zZWxlY3RcbiAgICBzdHlsZT1cIndpZHRoOiAxODBweFwiXG4gICAgW2l0ZW1zXT1cImJ1bGtUeXBlc1wiXG4gICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkVHlwZUZpbHRlcnNcIlxuICAgIFtkaXNhYmxlQXBwbHlPbk5vU2VsZWN0aW9uXT1cInRydWVcIlxuICAgIChvbkNoYW5nZSk9XCJzZWxlY3RlZFR5cGVGaWx0ZXJzID0gJGV2ZW50OyB0eXBlRmlsdGVyJC5uZXh0KHNlbGVjdGVkVHlwZUZpbHRlcnMpXCJcbiAgPjwvYzh5LXNlbGVjdD5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbGVmdCdcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiPlxuICA8Yzh5LXN0YXR1cy1maWx0ZXJcbiAgICAjc3RhdHVzRmlsdGVyXG4gICAgW29wdGlvbnNdPVwiYnVsa09wZXJhdGlvblN0YXR1c09wdGlvbnNcIlxuICAgIChvbkZpbHRlckNoYW5nZWQpPVwic3RhdHVzRmlsdGVyJC5uZXh0KCRldmVudClcIlxuICA+PC9jOHktc3RhdHVzLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbGVmdCdcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiPlxuICA8Yzh5LWRhdGUtcGlja2VyIChvbkRhdGVTZWxlY3RlZCk9XCJ0aW1lRmlsdGVyJC5uZXh0KCRldmVudClcIj48L2M4eS1kYXRlLXBpY2tlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxjOHktcmVhbHRpbWUtYnRuIFtzZXJ2aWNlXT1cInJlYWx0aW1lXCI+PC9jOHktcmVhbHRpbWUtYnRuPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cImJ1bGtUeXBlcz8ubGVuZ3RoXCJcbiAgICBjbGFzcz1cImJ0biBidG4tbGluayBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgKGNsaWNrKT1cImFkZEJ1bGtPcGVyYXRpb24oKVwiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIGJ1bGsgb3BlcmF0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBbYWN0aW9uTmFtZV09XCJCVUxLX09QRVJBVElPTl9FVkVOVFwiXG4gICAgW2FjdGlvbkRhdGFdPVwieyBhY3Rpb246IGJ1bGtBY3Rpb25zLk9QRU5fQUREX0JVTEtfT1BFUkFUSU9OX0RJQUxPRyB9XCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICB7eyAnQWRkIGJ1bGsgb3BlcmF0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGQtZmxleCBhLWktY2VudGVyXCJcbiAgICB0aXRsZT1cInt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwicmVsb2FkJC5uZXh0KClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInJlZnJlc2hcIiBbbmdDbGFzc109XCJ7ICdpY29uLXNwaW4nOiByZWZyZXNoTG9hZGluZyB9XCIgY2xhc3M9XCJtLXItNFwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj5cbiAgICAgIHt7ICdSZWxvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPCEtLSBFbXB0eSBzdGF0ZSAtLT5cbjxjOHktdWktZW1wdHktc3RhdGVcbiAgKm5nSWY9XCIoYnVsa09wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMCAmJiAhaXNGaWx0ZXJBcHBsaWVkKClcIlxuICBpY29uPVwiYzh5LWVuZXJneVwiXG4gIFt0aXRsZV09XCInTm8gaXRlbXMgdG8gZGlzcGxheScgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ0J1bGsgb3BlcmF0aW9ucyB3aWxsIGJlIGRpc3BsYXllZCBoZXJlJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAqbmdJZj1cImJ1bGtUeXBlcz8ubGVuZ3RoXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgYnVsayBvcGVyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgKGNsaWNrKT1cImFkZEJ1bGtPcGVyYXRpb24oKVwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBBZGQgYnVsayBvcGVyYXRpb25cbiAgPC9idXR0b24+XG48L2M4eS11aS1lbXB0eS1zdGF0ZT5cblxuPCEtLSBObyByZXN1bHRzIGVtcHR5IHN0YXRlIC0tPlxuPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAqbmdJZj1cIihidWxrT3BlcmF0aW9ucyQgfCBhc3luYyk/LmRhdGEubGVuZ3RoID09PSAwICYmIGlzRmlsdGVyQXBwbGllZCgpXCJcbiAgaWNvbj1cInNlYXJjaFwiXG4gIFt0aXRsZV09XCInTm8gcmVzdWx0cyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ0FkanVzdCBvciByZXNldCB0aGUgZmlsdGVyLicgfCB0cmFuc2xhdGVcIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGl0bGU9XCJ7eyAnUmVzZXQgZmlsdGVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgIChjbGljayk9XCJyZXNldEZpbHRlcigpXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIFJlc2V0IGZpbHRlclxuICA8L2J1dHRvbj5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuXG48IS0tIERldGFpbGVkIGxpc3Qgb2Ygb3BlcmF0aW9ucyArIGxvYWQgbW9yZSBidXR0b24gLS0+XG48Yzh5LWxpc3QtZ3JvdXBcbiAgY2xhc3M9XCJtLWItMjRcIlxuICBbbmdDbGFzc109XCJ7ICdkZC1sb3cnOiAoYnVsa09wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA8IDEwIH1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwYWdlLXN0aWNreS1oZWFkZXIgaGlkZGVuLXhzIGM4eS1saXN0X19pdGVtLS1kb3VibGUtYWN0aW9ucyBjOHktbGlzdF9faXRlbVwiXG4gICAgKm5nSWY9XCIoYnVsa09wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2Jsb2NrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2ljb25cIj5cbiAgICAgICAgPGkgYzh5SWNvbj1cInJlZnJlc2hcIiBjbGFzcz1cImludmlzaWJsZVwiPjwvaT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWZsZXgtNTdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cbiAgICAgICAgICAgIHt7ICdPcGVyYXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAge3sgJ1Byb2dyZXNzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxuICAgICAgICAgICAge3sgJ1N0YXR1cycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYWN0aW9uc1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgKmM4eUZvcj1cIlxuICAgICAgbGV0IGJ1bGtPcGVyYXRpb24gb2YgYnVsa09wZXJhdGlvbnMkIHwgYXN5bmM7XG4gICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgcmVhbHRpbWU6IHJlYWx0aW1lO1xuICAgICAgcGlwZTogZmlsdGVyUGlwZTtcbiAgICAgIGNvbXBhcmF0b3I6IGNvbXBhcmVPcGVyYXRpb25zLmJpbmQodGhpcyk7XG4gICAgICBsb2FkTW9yZTogJ2F1dG8nXG4gICAgXCJcbiAgPlxuICAgIDxjOHktYnVsay1vcGVyYXRpb24tbGlzdC1pdGVtXG4gICAgICBbYnVsa09wZXJhdGlvbl09XCJidWxrT3BlcmF0aW9uXCJcbiAgICAgIChyZWxvYWQpPVwicmVsb2FkJC5uZXh0KClcIlxuICAgICAgKHNob3dGYWlsZWRPcGVyYXRpb24pPVwib3BlbkZhaWxlZE9wZXJhdGlvbigkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgPjwvYzh5LWJ1bGstb3BlcmF0aW9uLWxpc3QtaXRlbT5cbiAgPC9kaXY+XG48L2M4eS1saXN0LWdyb3VwPlxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9idWxrLW9wZXJhdGlvbnMtbGlzdC9idWxrLW9wZXJhdGlvbnMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9ucy1saXN0L2J1bGstb3BlcmF0aW9ucy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFFOUIsTUFBTSx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLEVBQ0wscUJBQXFCLEVBRXRCLE1BQU0sd0RBQXdELENBQUM7QUFDaEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSxtREFBbUQsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQU1wRixNQUFNLE9BQU8sMkJBQTJCO0lBeUN0QyxZQUNTLFFBQXNDLEVBQ3JDLHFCQUE0QyxFQUM1Qyww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VSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3RixDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBd0I7UUFDckQsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDOzt3SEF6SVUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsOENBRjNCLENBQUMsNEJBQTRCLENBQUMsbUxBa0I5QixtQkFBbUIsNkVBSGhCLDhCQUE4QixnREN4QzlDLG82SkE2SkE7MkZEbElhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFFcEIsQ0FBQyw0QkFBNEIsQ0FBQztnTUFnQnpDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyw4QkFBOEI7Z0JBRUMsWUFBWTtzQkFBeEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNPLFVBQVU7c0JBQTNELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElPcGVyYXRpb25CdWxrLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIE9wZXJhdGlvbkJ1bGtSZWFsdGltZVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEJ1bGtPcGVyYXRpb25MaXN0SXRlbUNvbXBvbmVudCxcbiAgQlVMS19PUEVSQVRJT05fU1RBVFVTX09QVElPTlMsXG4gIE9wZXJhdGlvblN0YXR1c09wdGlvbnNNYXBcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLWxpc3QtaXRlbSc7XG5pbXBvcnQge1xuICBCdWxrT3BlcmF0aW9uc1NlcnZpY2UsXG4gIE9wZXJhdGlvblR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9ucy1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFDVElPTlNfQlVMSyxcbiAgQlVMS19PUEVSQVRJT05fRVZFTlRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3Byb2R1Y3QtZXhwZXJpZW5jZSc7XG5pbXBvcnQgeyBTdGF0dXNPcHRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvc2hhcmVkJztcbmltcG9ydCB7IFN0YXR1c0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9zdGF0dXMtZmlsdGVyJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCdWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZSB9IGZyb20gJy4vbW9kYWxzL2J1bGstb3BlcmF0aW9uLW1vZGFscy5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1idWxrLW9wZXJhdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnVsay1vcGVyYXRpb25zLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtPcGVyYXRpb25CdWxrUmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBCdWxrT3BlcmF0aW9uc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBidWxrVHlwZXM6IE9wZXJhdGlvblR5cGVbXSA9IFtdO1xuICBzZWxlY3RlZFR5cGVGaWx0ZXJzID0gdGhpcy5nZXRUeXBlRmlsdGVycygpO1xuICBidWxrT3BlcmF0aW9uU3RhdHVzT3B0aW9uczogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IEJVTEtfT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TO1xuICBCVUxLX09QRVJBVElPTl9FVkVOVCA9IEJVTEtfT1BFUkFUSU9OX0VWRU5UO1xuICBidWxrQWN0aW9ucyA9IEFDVElPTlNfQlVMSztcblxuICBmaWx0ZXJQaXBlO1xuICByZWZyZXNoTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzdGF0dXNGaWx0ZXIkOiBCZWhhdmlvclN1YmplY3Q8U3RhdHVzT3B0aW9uW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgdHlwZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25UeXBlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcmVsb2FkJDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgQFZpZXdDaGlsZHJlbihCdWxrT3BlcmF0aW9uTGlzdEl0ZW1Db21wb25lbnQpXG4gIGxpc3RJdGVtczogUXVlcnlMaXN0PEJ1bGtPcGVyYXRpb25MaXN0SXRlbUNvbXBvbmVudD47XG4gIEBWaWV3Q2hpbGQoJ3N0YXR1c0ZpbHRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHN0YXR1c0ZpbHRlcjogU3RhdHVzRmlsdGVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKERhdGVQaWNrZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVQaWNrZXI6IERhdGVQaWNrZXJDb21wb25lbnQ7XG5cbiAgYnVsa09wZXJhdGlvbnMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElPcGVyYXRpb25CdWxrPj4gPSBjb21iaW5lTGF0ZXN0KFxuICAgIHRoaXMuc3RhdHVzRmlsdGVyJCxcbiAgICB0aGlzLnRpbWVGaWx0ZXIkLFxuICAgIHRoaXMudHlwZUZpbHRlciQsXG4gICAgdGhpcy5yZWxvYWQkXG4gICkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoTG9hZGluZyA9IHRydWU7XG4gICAgfSksXG4gICAgc3dpdGNoTWFwKChbc3RhdHVzRmlsdGVycywgdGltZUZpbHRlcnNdKSA9PiB0aGlzLmZpbHRlcihzdGF0dXNGaWx0ZXJzLCB0aW1lRmlsdGVycykpLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMudHlwZUZpbHRlciQpLFxuICAgIG1hcCgoW3Jlc3VsdCwgdHlwZUZpbHRlcl06IFtJUmVzdWx0TGlzdDxJT3BlcmF0aW9uQnVsaz4sIE9wZXJhdGlvblR5cGVbXV0pID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUobWFwKChkYXRhOiBbXSkgPT4gdGhpcy5maWx0ZXJCeVR5cGUoZGF0YSwgdHlwZUZpbHRlcikpKTtcbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgZGF0YTogdGhpcy5maWx0ZXJCeVR5cGUocmVzdWx0LmRhdGEsIHR5cGVGaWx0ZXIpIH07XG4gICAgfSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHByaXZhdGUgYWxsRmlsdGVyRnJhZ21lbnRzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhbHRpbWU6IE9wZXJhdGlvbkJ1bGtSZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBidWxrT3BlcmF0aW9uc1NlcnZpY2U6IEJ1bGtPcGVyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGJ1bGtPcGVyYXRpb25Nb2RhbHNTZXJ2aWNlOiBCdWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFsbEZpbHRlckZyYWdtZW50cyA9IHRoaXMuZmxhdHRlbkZpbHRlckZyYWdtZW50cyh0aGlzLmdldFR5cGVGaWx0ZXJzKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5idWxrVHlwZXMgPSB0aGlzLmJ1bGtPcGVyYXRpb25zU2VydmljZS5nZXRCdWxrVHlwZXMoKTtcbiAgfVxuXG4gIGZpbHRlckJ5VHlwZShidWxrT3BlcmF0aW9uczogSU9wZXJhdGlvbkJ1bGtbXSwgdHlwZUZpbHRlcikge1xuICAgIGNvbnN0IGZsYXR0ZW5lZEZyYWdtZW50czogc3RyaW5nW10gPSB0aGlzLmZsYXR0ZW5GaWx0ZXJGcmFnbWVudHModHlwZUZpbHRlcik7XG4gICAgaWYgKFxuICAgICAgLy8gcmV0dXJuIGRhdGEgdW5maWx0ZXJlZCBpZiBubyBmaWx0ZXJzIHNlbGVjdGVkLi4uXG4gICAgICAhZmxhdHRlbmVkRnJhZ21lbnRzLmxlbmd0aCB8fFxuICAgICAgLy8gLi4ub3Igd2hlbiBhbGwgZmlsdGVycyBhcmUgc2VsZWN0ZWRcbiAgICAgIHRoaXMuYWxsRmlsdGVyRnJhZ21lbnRzLmV2ZXJ5KGZyYWdtZW50ID0+IGZsYXR0ZW5lZEZyYWdtZW50cy5pbmNsdWRlcyhmcmFnbWVudCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gYnVsa09wZXJhdGlvbnM7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gYnVsa09wZXJhdGlvbnMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGl0ZW0ub3BlcmF0aW9uUHJvdG90eXBlKS5zb21lKGtleSA9PiBmbGF0dGVuZWRGcmFnbWVudHMuaW5jbHVkZXMoa2V5KSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdGF0dXNGaWx0ZXIkLm5leHQobnVsbCk7XG4gICAgdGhpcy50aW1lRmlsdGVyJC5uZXh0KG51bGwpO1xuICAgIHRoaXMudHlwZUZpbHRlciQubmV4dChudWxsKTtcblxuICAgIHRoaXMuZGF0ZVBpY2tlci5jbGVhckZpbHRlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWRUeXBlRmlsdGVycyA9IHRoaXMuZ2V0VHlwZUZpbHRlcnMoKTtcbiAgICB0aGlzLnN0YXR1c0ZpbHRlci5yZXNldCgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBcHBsaWVkKCkge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuc3RhdHVzRmlsdGVyJC5nZXRWYWx1ZSgpPy5sZW5ndGggfHxcbiAgICAgICEhdGhpcy50eXBlRmlsdGVyJC5nZXRWYWx1ZSgpPy5sZW5ndGggfHxcbiAgICAgICEhdGhpcy50aW1lRmlsdGVyJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlcihzdGF0dXNGaWx0ZXJzLCB0aW1lRmlsdGVyKSB7XG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIHN0YXR1c0ZpbHRlcnMgJiYgc3RhdHVzRmlsdGVycy5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZ2VuZXJhbFN0YXR1czogZmxhdHRlbihzdGF0dXNGaWx0ZXJzLm1hcChzdGF0dXNGaWx0ZXIgPT4gc3RhdHVzRmlsdGVyLmdlbmVyYWxTdGF0dXNlcykpXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9O1xuXG4gICAgY29uc3QgdGltZSA9IHRpbWVGaWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIC4uLih0aW1lRmlsdGVyLmRhdGVGcm9tICYmIHtcbiAgICAgICAgICAgIGRhdGVGcm9tOiB0aW1lRmlsdGVyLmRhdGVGcm9tLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAuLi4odGltZUZpbHRlci5kYXRlVG8gJiYge1xuICAgICAgICAgICAgZGF0ZVRvOiB0aW1lRmlsdGVyLmRhdGVUby50b0lTT1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgOiB7fTtcbiAgICByZXR1cm4gdGhpcy5nZXRCdWxrT3BlcmF0aW9ucyh7IC4uLnN0YXR1cywgLi4udGltZSB9KTtcbiAgfVxuXG4gIGdldEJ1bGtPcGVyYXRpb25zKGZpbHRlcj8pIHtcbiAgICByZXR1cm4gdGhpcy5idWxrT3BlcmF0aW9uc1NlcnZpY2UuZ2V0QnVsa09wZXJhdGlvbnMoZmlsdGVyKTtcbiAgfVxuXG4gIGdldFR5cGVGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLmJ1bGtPcGVyYXRpb25zU2VydmljZS5nZXRCdWxrVHlwZXMoKTtcbiAgfVxuXG4gIGFkZEJ1bGtPcGVyYXRpb24oKSB7XG4gICAgdGhpcy5idWxrT3BlcmF0aW9uTW9kYWxzU2VydmljZS5zaG93TmV3QnVsa09wZXJhdGlvbk1vZGFsKCk7XG4gIH1cblxuICBvcGVuRmFpbGVkT3BlcmF0aW9uKGZhaWxlZFBhcmVudElkKSB7XG4gICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmJ1bGtPcGVyYXRpb24uaWQgPT09IGZhaWxlZFBhcmVudElkKSB7XG4gICAgICAgIGl0ZW0ubGlzdEl0ZW0uY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIGl0ZW0ubGlzdEl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wYXJlT3BlcmF0aW9ucyhvcGVyYXRpb25BOiBJT3BlcmF0aW9uQnVsaywgb3BlcmF0aW9uQjogSU9wZXJhdGlvbkJ1bGspOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgRGF0ZShvcGVyYXRpb25BLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUob3BlcmF0aW9uQi5zdGFydERhdGUpLmdldFRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlbkZpbHRlckZyYWdtZW50cyhmaWx0ZXJzOiBPcGVyYXRpb25UeXBlW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIChmaWx0ZXJzIHx8IFtdKS5yZWR1Y2UoKGZsYXR0ZW5lZCwgY3VycmVudCkgPT4gZmxhdHRlbmVkLmNvbmNhdChjdXJyZW50LmZyYWdtZW50cyksIFtdKTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnQnVsayBvcGVyYXRpb25zJyB8IHRyYW5zbGF0ZSB9fTwvYzh5LXRpdGxlPlxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktb3ZlcnZpZXdzJ1wiXG4gICAgW2xhYmVsXT1cIidPdmVydmlld3MnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LWRldmljZS1jb250cm9sJ1wiXG4gICAgW2xhYmVsXT1cIidEZXZpY2UgY29udHJvbCcgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cIidkZXZpY2Vjb250cm9sL3NpbmdsZSdcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktZW5lcmd5J1wiXG4gICAgW2xhYmVsXT1cIidCdWxrIG9wZXJhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbjwvYzh5LWJyZWFkY3J1bWI+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtICpuZ0lmPVwiYnVsa1R5cGVzPy5sZW5ndGhcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCI+XG4gIDxsYWJlbCBjbGFzcz1cImhpZGRlbi1zbSBoaWRkZW4teHNcIiB0cmFuc2xhdGU+VHlwZTwvbGFiZWw+XG4gIDxjOHktc2VsZWN0XG4gICAgc3R5bGU9XCJ3aWR0aDogMTgwcHhcIlxuICAgIFtpdGVtc109XCJidWxrVHlwZXNcIlxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFR5cGVGaWx0ZXJzXCJcbiAgICBbZGlzYWJsZUFwcGx5T25Ob1NlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICAob25DaGFuZ2UpPVwic2VsZWN0ZWRUeXBlRmlsdGVycyA9ICRldmVudDsgdHlwZUZpbHRlciQubmV4dChzZWxlY3RlZFR5cGVGaWx0ZXJzKVwiXG4gID48L2M4eS1zZWxlY3Q+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCIgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm1cIj5cbiAgPGM4eS1zdGF0dXMtZmlsdGVyXG4gICAgI3N0YXR1c0ZpbHRlclxuICAgIFtvcHRpb25zXT1cImJ1bGtPcGVyYXRpb25TdGF0dXNPcHRpb25zXCJcbiAgICAob25GaWx0ZXJDaGFuZ2VkKT1cInN0YXR1c0ZpbHRlciQubmV4dCgkZXZlbnQpXCJcbiAgPjwvYzh5LXN0YXR1cy1maWx0ZXI+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCIgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm1cIj5cbiAgPGM4eS1kYXRlLXBpY2tlciAob25EYXRlU2VsZWN0ZWQpPVwidGltZUZpbHRlciQubmV4dCgkZXZlbnQpXCI+PC9jOHktZGF0ZS1waWNrZXI+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8Yzh5LXJlYWx0aW1lLWJ0biBbc2VydmljZV09XCJyZWFsdGltZVwiPjwvYzh5LXJlYWx0aW1lLWJ0bj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJidWxrVHlwZXM/Lmxlbmd0aFwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgIChjbGljayk9XCJhZGRCdWxrT3BlcmF0aW9uKClcIlxuICAgIHRpdGxlPVwie3sgJ0FkZCBidWxrIG9wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiQlVMS19PUEVSQVRJT05fRVZFTlRcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgYWN0aW9uOiBidWxrQWN0aW9ucy5PUEVOX0FERF9CVUxLX09QRVJBVElPTl9ESUFMT0cgfVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAge3sgJ0FkZCBidWxrIG9wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGluayBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgKGNsaWNrKT1cInJlbG9hZCQubmV4dCgpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJyZWZyZXNoXCIgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogcmVmcmVzaExvYWRpbmcgfVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICB7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjwhLS0gRW1wdHkgc3RhdGUgLS0+XG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICpuZ0lmPVwiKGJ1bGtPcGVyYXRpb25zJCB8IGFzeW5jKT8uZGF0YS5sZW5ndGggPT09IDAgJiYgIWlzRmlsdGVyQXBwbGllZCgpXCJcbiAgaWNvbj1cImM4eS1lbmVyZ3lcIlxuICBbdGl0bGVdPVwiJ05vIGl0ZW1zIHRvIGRpc3BsYXknIHwgdHJhbnNsYXRlXCJcbiAgW3N1YnRpdGxlXT1cIidCdWxrIG9wZXJhdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZScgfCB0cmFuc2xhdGVcIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKm5nSWY9XCJidWxrVHlwZXM/Lmxlbmd0aFwiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIGJ1bGsgb3BlcmF0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgIChjbGljayk9XCJhZGRCdWxrT3BlcmF0aW9uKClcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgQWRkIGJ1bGsgb3BlcmF0aW9uXG4gIDwvYnV0dG9uPlxuPC9jOHktdWktZW1wdHktc3RhdGU+XG5cbjwhLS0gTm8gcmVzdWx0cyBlbXB0eSBzdGF0ZSAtLT5cbjxjOHktdWktZW1wdHktc3RhdGVcbiAgKm5nSWY9XCIoYnVsa09wZXJhdGlvbnMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMCAmJiBpc0ZpbHRlckFwcGxpZWQoKVwiXG4gIGljb249XCJzZWFyY2hcIlxuICBbdGl0bGVdPVwiJ05vIHJlc3VsdHMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgW3N1YnRpdGxlXT1cIidBZGp1c3Qgb3IgcmVzZXQgdGhlIGZpbHRlci4nIHwgdHJhbnNsYXRlXCJcbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IGZpbHRlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXIoKVwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBSZXNldCBmaWx0ZXJcbiAgPC9idXR0b24+XG48L2M4eS11aS1lbXB0eS1zdGF0ZT5cblxuPCEtLSBEZXRhaWxlZCBsaXN0IG9mIG9wZXJhdGlvbnMgKyBsb2FkIG1vcmUgYnV0dG9uIC0tPlxuPGM4eS1saXN0LWdyb3VwXG4gIGNsYXNzPVwibS1iLTI0XCJcbiAgW25nQ2xhc3NdPVwieyAnZGQtbG93JzogKGJ1bGtPcGVyYXRpb25zJCB8IGFzeW5jKT8uZGF0YS5sZW5ndGggPCAxMCB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicGFnZS1zdGlja3ktaGVhZGVyIGhpZGRlbi14cyBjOHktbGlzdF9faXRlbS0tZG91YmxlLWFjdGlvbnMgYzh5LWxpc3RfX2l0ZW1cIlxuICAgICpuZ0lmPVwiKGJ1bGtPcGVyYXRpb25zJCB8IGFzeW5jKT8uZGF0YS5sZW5ndGhcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19ibG9ja1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImM4eS1saXN0X19pdGVtX19pY29uXCI+XG4gICAgICAgIDxpIGM4eUljb249XCJyZWZyZXNoXCIgY2xhc3M9XCJpbnZpc2libGVcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mbGV4LTU3XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XG4gICAgICAgICAgICB7eyAnT3BlcmF0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgIHt7ICdQcm9ncmVzcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cbiAgICAgICAgICAgIHt7ICdTdGF0dXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2FjdGlvbnNcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICpjOHlGb3I9XCJcbiAgICAgIGxldCBidWxrT3BlcmF0aW9uIG9mIGJ1bGtPcGVyYXRpb25zJCB8IGFzeW5jO1xuICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgIHJlYWx0aW1lOiByZWFsdGltZTtcbiAgICAgIHBpcGU6IGZpbHRlclBpcGU7XG4gICAgICBjb21wYXJhdG9yOiBjb21wYXJlT3BlcmF0aW9ucy5iaW5kKHRoaXMpO1xuICAgICAgbG9hZE1vcmU6ICdhdXRvJ1xuICAgIFwiXG4gID5cbiAgICA8Yzh5LWJ1bGstb3BlcmF0aW9uLWxpc3QtaXRlbVxuICAgICAgW2J1bGtPcGVyYXRpb25dPVwiYnVsa09wZXJhdGlvblwiXG4gICAgICAocmVsb2FkKT1cInJlbG9hZCQubmV4dCgpXCJcbiAgICAgIChzaG93RmFpbGVkT3BlcmF0aW9uKT1cIm9wZW5GYWlsZWRPcGVyYXRpb24oJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgID48L2M4eS1idWxrLW9wZXJhdGlvbi1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9jOHktbGlzdC1ncm91cD5cbiJdfQ==
|
|
@@ -57,7 +57,7 @@ OperationsListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
57
57
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
58
58
|
useExisting: forwardRef(() => OperationsListItemComponent)
|
|
59
59
|
}
|
|
60
|
-
], viewQueries: [{ propertyName: "listItem", first: true, predicate: ["listItem"], descendants: true, static: true }], ngImport: i0, template: "<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': noExpandToggle }\"\n [collapsed]=\"collapsed\"\n #listItem\n id=\"{{ operation.id }}\"\n>\n <c8y-li-icon>\n <button\n class=\"btn-clean\"\n type=\"button\"\n [tooltip]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n [attr.aria-label]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n placement=\"right\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n ></i>\n </button>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <span title=\"{{ operationTitle | translate }}\" class=\"text-truncate\">\n {{ operationTitle | translate }}\n </span>\n </div>\n <div class=\"col-3\" *ngIf=\"!deviceId\">\n <a\n title=\"{{ operation.deviceName }}\"\n [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n routerLinkActive=\"active\"\n >\n {{ operation.deviceName }}\n </a>\n </div>\n <div class=\"col-3\">\n <small class=\"icon-flex text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n {{ operation.creationTime | c8yDate }}\n </small>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n label=\"{{ 'Schedule as bulk operation' | translate }}\"\n (click)=\"createCustomizedBulkOperation($event)\"\n icon=\"c8y-icon c8y-icon-energy\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <ng-container *c8yIfAllowed=\"inventoryPermissions; allowAny: true\">\n <ng-container *c8yIfAllowed=\"smartRuleAdminPermissions; allowAny: true\">\n <c8y-li-action\n *ngIf=\"isSmartRulesMicroserviceAvailable\"\n label=\"{{ 'Create smart rule' | translate }}\"\n (click)=\"operationsListService.createSmartRule(operation)\"\n icon=\"sliders\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n </ng-container>\n <c8y-li-action\n *ngIf=\"operation.status === OPERATION_STATUS.PENDING\"\n label=\"{{ 'Cancel operation' | translate }}\"\n (click)=\"$event.stopPropagation(); sharedService.cancel(operation)\"\n icon=\"times-circle\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"operation\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "component", type: i5.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i5.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i5.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon"], outputs: ["click"] }, { kind: "component", type: i5.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "directive", type: i5.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: i7.OperationDetailsTabsComponent, selector: "c8y-operation-details-tabs", inputs: ["operation", "readOnly", "bulkOperationModalDetailsService"], outputs: ["onRetryFailedOperations", "showFailedOperation"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.DatePipe, name: "c8yDate" }] });
|
|
60
|
+
], viewQueries: [{ propertyName: "listItem", first: true, predicate: ["listItem"], descendants: true, static: true }], ngImport: i0, template: "<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': noExpandToggle }\"\n [collapsed]=\"collapsed\"\n #listItem\n id=\"{{ operation.id }}\"\n>\n <c8y-li-icon>\n <button\n class=\"btn-clean\"\n type=\"button\"\n [tooltip]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n [attr.aria-label]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n placement=\"right\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n ></i>\n </button>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <span title=\"{{ operationTitle | translate }}\" class=\"text-truncate\">\n {{ operationTitle | translate }}\n </span>\n </div>\n <div class=\"col-3\" *ngIf=\"!deviceId\">\n <a\n title=\"{{ operation.deviceName }}\"\n [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n routerLinkActive=\"active\"\n class=\"text-truncate\"\n >\n {{ operation.deviceName }}\n </a>\n </div>\n <div class=\"col-3\">\n <small class=\"icon-flex text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n {{ operation.creationTime | c8yDate }}\n </small>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n label=\"{{ 'Schedule as bulk operation' | translate }}\"\n (click)=\"createCustomizedBulkOperation($event)\"\n icon=\"c8y-icon c8y-icon-energy\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <ng-container *c8yIfAllowed=\"inventoryPermissions; allowAny: true\">\n <ng-container *c8yIfAllowed=\"smartRuleAdminPermissions; allowAny: true\">\n <c8y-li-action\n *ngIf=\"isSmartRulesMicroserviceAvailable\"\n label=\"{{ 'Create smart rule' | translate }}\"\n (click)=\"operationsListService.createSmartRule(operation)\"\n icon=\"sliders\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n </ng-container>\n <c8y-li-action\n *ngIf=\"operation.status === OPERATION_STATUS.PENDING\"\n label=\"{{ 'Cancel operation' | translate }}\"\n (click)=\"$event.stopPropagation(); sharedService.cancel(operation)\"\n icon=\"times-circle\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"operation\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "component", type: i5.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i5.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i5.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon"], outputs: ["click"] }, { kind: "component", type: i5.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "directive", type: i5.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: i7.OperationDetailsTabsComponent, selector: "c8y-operation-details-tabs", inputs: ["operation", "readOnly", "bulkOperationModalDetailsService"], outputs: ["onRetryFailedOperations", "showFailedOperation"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.DatePipe, name: "c8yDate" }] });
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationsListItemComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
63
63
|
args: [{ selector: 'c8y-operations-list-item', providers: [
|
|
@@ -65,7 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
65
65
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
66
66
|
useExisting: forwardRef(() => OperationsListItemComponent)
|
|
67
67
|
}
|
|
68
|
-
], template: "<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': noExpandToggle }\"\n [collapsed]=\"collapsed\"\n #listItem\n id=\"{{ operation.id }}\"\n>\n <c8y-li-icon>\n <button\n class=\"btn-clean\"\n type=\"button\"\n [tooltip]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n [attr.aria-label]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n placement=\"right\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n ></i>\n </button>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <span title=\"{{ operationTitle | translate }}\" class=\"text-truncate\">\n {{ operationTitle | translate }}\n </span>\n </div>\n <div class=\"col-3\" *ngIf=\"!deviceId\">\n <a\n title=\"{{ operation.deviceName }}\"\n [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n routerLinkActive=\"active\"\n >\n {{ operation.deviceName }}\n </a>\n </div>\n <div class=\"col-3\">\n <small class=\"icon-flex text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n {{ operation.creationTime | c8yDate }}\n </small>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n label=\"{{ 'Schedule as bulk operation' | translate }}\"\n (click)=\"createCustomizedBulkOperation($event)\"\n icon=\"c8y-icon c8y-icon-energy\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <ng-container *c8yIfAllowed=\"inventoryPermissions; allowAny: true\">\n <ng-container *c8yIfAllowed=\"smartRuleAdminPermissions; allowAny: true\">\n <c8y-li-action\n *ngIf=\"isSmartRulesMicroserviceAvailable\"\n label=\"{{ 'Create smart rule' | translate }}\"\n (click)=\"operationsListService.createSmartRule(operation)\"\n icon=\"sliders\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n </ng-container>\n <c8y-li-action\n *ngIf=\"operation.status === OPERATION_STATUS.PENDING\"\n label=\"{{ 'Cancel operation' | translate }}\"\n (click)=\"$event.stopPropagation(); sharedService.cancel(operation)\"\n icon=\"times-circle\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"operation\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n" }]
|
|
68
|
+
], template: "<c8y-li\n class=\"c8y-list__item--double-actions\"\n [ngClass]=\"{ 'c8y-list__item--no-expand': noExpandToggle }\"\n [collapsed]=\"collapsed\"\n #listItem\n id=\"{{ operation.id }}\"\n>\n <c8y-li-icon>\n <button\n class=\"btn-clean\"\n type=\"button\"\n [tooltip]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n [attr.aria-label]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n placement=\"right\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n ></i>\n </button>\n </c8y-li-icon>\n <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n <div class=\"col-5\">\n <span title=\"{{ operationTitle | translate }}\" class=\"text-truncate\">\n {{ operationTitle | translate }}\n </span>\n </div>\n <div class=\"col-3\" *ngIf=\"!deviceId\">\n <a\n title=\"{{ operation.deviceName }}\"\n [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n routerLinkActive=\"active\"\n class=\"text-truncate\"\n >\n {{ operation.deviceName }}\n </a>\n </div>\n <div class=\"col-3\">\n <small class=\"icon-flex text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n {{ operation.creationTime | c8yDate }}\n </small>\n </div>\n </div>\n <ng-container *ngIf=\"!readOnly\">\n <c8y-li-action\n label=\"{{ 'Schedule as bulk operation' | translate }}\"\n (click)=\"createCustomizedBulkOperation($event)\"\n icon=\"c8y-icon c8y-icon-energy\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n <ng-container *c8yIfAllowed=\"inventoryPermissions; allowAny: true\">\n <ng-container *c8yIfAllowed=\"smartRuleAdminPermissions; allowAny: true\">\n <c8y-li-action\n *ngIf=\"isSmartRulesMicroserviceAvailable\"\n label=\"{{ 'Create smart rule' | translate }}\"\n (click)=\"operationsListService.createSmartRule(operation)\"\n icon=\"sliders\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n </ng-container>\n <c8y-li-action\n *ngIf=\"operation.status === OPERATION_STATUS.PENDING\"\n label=\"{{ 'Cancel operation' | translate }}\"\n (click)=\"$event.stopPropagation(); sharedService.cancel(operation)\"\n icon=\"times-circle\"\n c8yProductExperience\n inherit\n ></c8y-li-action>\n </ng-container>\n <c8y-li-collapse class=\"m-b-16\">\n <c8y-operation-details-tabs\n *ngIf=\"!listItem.collapsed\"\n [operation]=\"operation\"\n [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n ></c8y-operation-details-tabs>\n </c8y-li-collapse>\n</c8y-li>\n" }]
|
|
69
69
|
}], ctorParameters: function () { return [{ type: i1.BulkOperationListItemService }, { type: i2.OperationsService }, { type: i3.OperationsListService }, { type: i4.ActivatedRoute }, { type: i4.Router }]; }, propDecorators: { operation: [{
|
|
70
70
|
type: Input
|
|
71
71
|
}], collapsed: [{
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
78
78
|
type: ViewChild,
|
|
79
79
|
args: ['listItem', { static: true }]
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9vcGVyYXRpb25zLWxpc3Qvb3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9vcGVyYXRpb25zLWxpc3Qvb3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxpQkFBaUIsRUFHakIsK0JBQStCLEVBQ2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUNMLGlCQUFpQixFQUVqQiw0QkFBNEIsRUFDN0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7OztBQVlsRSxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxZQUNTLDRCQUEwRCxFQUMxRCxhQUFnQyxFQUNoQyxxQkFBNEMsRUFDM0MsS0FBcUIsRUFDckIsTUFBYztRQUpmLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDM0MsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXZCeEIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUNuQyxpQ0FBNEIsR0FBOEIsNEJBQTRCLENBQUM7UUFDdkYsYUFBUSxHQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELHNDQUFpQyxHQUFZLEtBQUssQ0FBQztJQVloRCxDQUFDO0lBRUosS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsaUNBQWlDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFFdkUsSUFBSSxDQUFDLGNBQWM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJO2dCQUNoQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUV0RCxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ2hHLElBQUksMkJBQTJCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVELDZCQUE2QixDQUFDLE1BQWM7UUFDMUMsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7O3dIQXBEVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix1S0FQM0I7UUFDVDtZQUNFLE9BQU8sRUFBRSwrQkFBK0I7WUFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztTQUMzRDtLQUNGLDhJQzFCSCwwMkZBa0ZBOzJGRHREYSwyQkFBMkI7a0JBVnZDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBRXpCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUMzRDtxQkFDRjt5T0FJRCxTQUFTO3NCQURSLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBRW1DLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElPcGVyYXRpb24sIE9wZXJhdGlvblN0YXR1cyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIGdldHRleHQsXG4gIExpc3RJdGVtQ29tcG9uZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnVsa09wZXJhdGlvbkxpc3RJdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9idWxrLW9wZXJhdGlvbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHtcbiAgT3BlcmF0aW9uc1NlcnZpY2UsXG4gIE9wZXJhdGlvblN0YXR1c09wdGlvbnNNYXAsXG4gIE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVBcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3NoYXJlZCc7XG5pbXBvcnQgeyBPcGVyYXRpb25zTGlzdFNlcnZpY2UgfSBmcm9tICcuL29wZXJhdGlvbnMtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW9wZXJhdGlvbnMtbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbnMtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUFJPRFVDVF9FWFBFUklFTkNFX0VWRU5UX1NPVVJDRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvbnNMaXN0SXRlbUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uc0xpc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgQElucHV0KClcbiAgb3BlcmF0aW9uOiBQYXJ0aWFsPElPcGVyYXRpb24+O1xuICBASW5wdXQoKVxuICBjb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBub0V4cGFuZFRvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdsaXN0SXRlbScsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3RJdGVtOiBMaXN0SXRlbUNvbXBvbmVudDtcbiAgcmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgT1BFUkFUSU9OX1NUQVRVUyA9IE9wZXJhdGlvblN0YXR1cztcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPVxuICAgIHRoaXMucm91dGUuc25hcHNob3QucGFyZW50Py5kYXRhLmNvbnRleHREYXRhPy5pZCB8fFxuICAgIHRoaXMucm91dGUuc25hcHNob3QuZmlyc3RDaGlsZD8uZGF0YS5jb250ZXh0RGF0YT8uaWQ7XG4gIGlzU21hcnRSdWxlc01pY3Jvc2VydmljZUF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbnZlbnRvcnlQZXJtaXNzaW9uczogc3RyaW5nW107XG4gIHNtYXJ0UnVsZUFkbWluUGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICBvcGVyYXRpb25UaXRsZTogc3RyaW5nO1xuICBwcm9kdWN0RXhwZXJpZW5jZUV2ZW50OiBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBidWxrT3BlcmF0aW9uTGlzdEl0ZW1TZXJ2aWNlOiBCdWxrT3BlcmF0aW9uTGlzdEl0ZW1TZXJ2aWNlLFxuICAgIHB1YmxpYyBzaGFyZWRTZXJ2aWNlOiBPcGVyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgb3BlcmF0aW9uc0xpc3RTZXJ2aWNlOiBPcGVyYXRpb25zTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc1NtYXJ0UnVsZXNNaWNyb3NlcnZpY2VBdmFpbGFibGUgPVxuICAgICAgYXdhaXQgdGhpcy5vcGVyYXRpb25zTGlzdFNlcnZpY2UuaXNTbWFydFJ1bGVzTWljcm9zZXJ2aWNlQXZhaWxhYmxlKCk7XG5cbiAgICB0aGlzLm9wZXJhdGlvblRpdGxlID1cbiAgICAgIHRoaXMub3BlcmF0aW9uLmRlc2NyaXB0aW9uIHx8XG4gICAgICB0aGlzLm9wZXJhdGlvbi5jOHlfQ29tbWFuZD8udGV4dCB8fFxuICAgICAgZ2V0dGV4dCgnTm8gY29tbWFuZCB0ZXh0IG9yIGRlc2NyaXB0aW9uIGF2YWlsYWJsZScpO1xuXG4gICAgY29uc3Qgc21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zID0gdGhpcy5vcGVyYXRpb25zTGlzdFNlcnZpY2UuZ2V0U21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zKCk7XG4gICAgaWYgKHNtYXJ0UnVsZXNDcmVhdGVQZXJtaXNzaW9ucykge1xuICAgICAgdGhpcy5pbnZlbnRvcnlQZXJtaXNzaW9ucyA9IHNtYXJ0UnVsZXNDcmVhdGVQZXJtaXNzaW9uc1swXS5hbnlSb2xlO1xuICAgICAgdGhpcy5zbWFydFJ1bGVBZG1pblBlcm1pc3Npb25zID0gc21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zWzFdLmFueVJvbGU7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ3VzdG9taXplZEJ1bGtPcGVyYXRpb24oJGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2RldmljZWNvbnRyb2wvc2luZ2xlL2NyZWF0ZS1idWxrLyR7dGhpcy5vcGVyYXRpb24uaWR9YCk7XG4gIH1cbn1cbiIsIjxjOHktbGlcbiAgY2xhc3M9XCJjOHktbGlzdF9faXRlbS0tZG91YmxlLWFjdGlvbnNcIlxuICBbbmdDbGFzc109XCJ7ICdjOHktbGlzdF9faXRlbS0tbm8tZXhwYW5kJzogbm9FeHBhbmRUb2dnbGUgfVwiXG4gIFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkXCJcbiAgI2xpc3RJdGVtXG4gIGlkPVwie3sgb3BlcmF0aW9uLmlkIH19XCJcbj5cbiAgPGM4eS1saS1pY29uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuLWNsZWFuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3Rvb2x0aXBdPVwiT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUFtvcGVyYXRpb24uc3RhdHVzXS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIk9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVBbb3BlcmF0aW9uLnN0YXR1c10ubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbYzh5SWNvbl09XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQW29wZXJhdGlvbi5zdGF0dXNdLmljb25cIlxuICAgICAgICBbbmdDbGFzc109XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQW29wZXJhdGlvbi5zdGF0dXNdLnN0eWxlQ2xhc3NcIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktbGktaWNvbj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7ICdjb250ZW50LWZsZXgtNTgnOiAhcmVhZE9ubHksICdjb250ZW50LWZsZXgtNTAnOiByZWFkT25seSB9XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IG9wZXJhdGlvblRpdGxlIHwgdHJhbnNsYXRlIH19XCIgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgIHt7IG9wZXJhdGlvblRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCIhZGV2aWNlSWRcIj5cbiAgICAgIDxhXG4gICAgICAgIHRpdGxlPVwie3sgb3BlcmF0aW9uLmRldmljZU5hbWUgfX1cIlxuICAgICAgICBbcm91dGVyTGlua109XCJbJy9kZXZpY2UnLCBvcGVyYXRpb24uZGV2aWNlSWQsICdkZXZpY2UtaW5mbyddXCJcbiAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9wZXJhdGlvbi5kZXZpY2VOYW1lIH19XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpY29uLWZsZXggdGV4dC1tdXRlZFwiPlxuICAgICAgICA8aSBjOHlJY29uPVwiY2FsZW5kYXJcIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgICAgICB7eyBvcGVyYXRpb24uY3JlYXRpb25UaW1lIHwgYzh5RGF0ZSB9fVxuICAgICAgPC9zbWFsbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZE9ubHlcIj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgbGFiZWw9XCJ7eyAnU2NoZWR1bGUgYXMgYnVsayBvcGVyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChjbGljayk9XCJjcmVhdGVDdXN0b21pemVkQnVsa09wZXJhdGlvbigkZXZlbnQpXCJcbiAgICAgIGljb249XCJjOHktaWNvbiBjOHktaWNvbi1lbmVyZ3lcIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIGluaGVyaXRcbiAgICA+PC9jOHktbGktYWN0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKmM4eUlmQWxsb3dlZD1cImludmVudG9yeVBlcm1pc3Npb25zOyBhbGxvd0FueTogdHJ1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5SWZBbGxvd2VkPVwic21hcnRSdWxlQWRtaW5QZXJtaXNzaW9uczsgYWxsb3dBbnk6IHRydWVcIj5cbiAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAqbmdJZj1cImlzU21hcnRSdWxlc01pY3Jvc2VydmljZUF2YWlsYWJsZVwiXG4gICAgICAgICAgbGFiZWw9XCJ7eyAnQ3JlYXRlIHNtYXJ0IHJ1bGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlcmF0aW9uc0xpc3RTZXJ2aWNlLmNyZWF0ZVNtYXJ0UnVsZShvcGVyYXRpb24pXCJcbiAgICAgICAgICBpY29uPVwic2xpZGVyc1wiXG4gICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICBpbmhlcml0XG4gICAgICAgID48L2M4eS1saS1hY3Rpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgKm5nSWY9XCJvcGVyYXRpb24uc3RhdHVzID09PSBPUEVSQVRJT05fU1RBVFVTLlBFTkRJTkdcIlxuICAgICAgbGFiZWw9XCJ7eyAnQ2FuY2VsIG9wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc2hhcmVkU2VydmljZS5jYW5jZWwob3BlcmF0aW9uKVwiXG4gICAgICBpY29uPVwidGltZXMtY2lyY2xlXCJcbiAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICBpbmhlcml0XG4gICAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxjOHktbGktY29sbGFwc2UgY2xhc3M9XCJtLWItMTZcIj5cbiAgICA8Yzh5LW9wZXJhdGlvbi1kZXRhaWxzLXRhYnNcbiAgICAgICpuZ0lmPVwiIWxpc3RJdGVtLmNvbGxhcHNlZFwiXG4gICAgICBbb3BlcmF0aW9uXT1cIm9wZXJhdGlvblwiXG4gICAgICBbYnVsa09wZXJhdGlvbk1vZGFsRGV0YWlsc1NlcnZpY2VdPVwiYnVsa09wZXJhdGlvbkxpc3RJdGVtU2VydmljZVwiXG4gICAgPjwvYzh5LW9wZXJhdGlvbi1kZXRhaWxzLXRhYnM+XG4gIDwvYzh5LWxpLWNvbGxhcHNlPlxuPC9jOHktbGk+XG4iXX0=
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9vcGVyYXRpb25zLWxpc3Qvb3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9vcGVyYXRpb25zLWxpc3Qvb3BlcmF0aW9ucy1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxpQkFBaUIsRUFHakIsK0JBQStCLEVBQ2hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUNMLGlCQUFpQixFQUVqQiw0QkFBNEIsRUFDN0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7OztBQVlsRSxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxZQUNTLDRCQUEwRCxFQUMxRCxhQUFnQyxFQUNoQyxxQkFBNEMsRUFDM0MsS0FBcUIsRUFDckIsTUFBYztRQUpmLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDM0MsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXZCeEIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUNuQyxpQ0FBNEIsR0FBOEIsNEJBQTRCLENBQUM7UUFDdkYsYUFBUSxHQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELHNDQUFpQyxHQUFZLEtBQUssQ0FBQztJQVloRCxDQUFDO0lBRUosS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsaUNBQWlDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFFdkUsSUFBSSxDQUFDLGNBQWM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJO2dCQUNoQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUV0RCxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ2hHLElBQUksMkJBQTJCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVELDZCQUE2QixDQUFDLE1BQWM7UUFDMUMsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7O3dIQXBEVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix1S0FQM0I7UUFDVDtZQUNFLE9BQU8sRUFBRSwrQkFBK0I7WUFDeEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztTQUMzRDtLQUNGLDhJQzFCSCwyNEZBbUZBOzJGRHZEYSwyQkFBMkI7a0JBVnZDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBRXpCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUMzRDtxQkFDRjt5T0FJRCxTQUFTO3NCQURSLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBRW1DLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElPcGVyYXRpb24sIE9wZXJhdGlvblN0YXR1cyB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIGdldHRleHQsXG4gIExpc3RJdGVtQ29tcG9uZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50LFxuICBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0VfRVZFTlRfU09VUkNFXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnVsa09wZXJhdGlvbkxpc3RJdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9idWxrLW9wZXJhdGlvbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHtcbiAgT3BlcmF0aW9uc1NlcnZpY2UsXG4gIE9wZXJhdGlvblN0YXR1c09wdGlvbnNNYXAsXG4gIE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVBcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9vcGVyYXRpb25zL3NoYXJlZCc7XG5pbXBvcnQgeyBPcGVyYXRpb25zTGlzdFNlcnZpY2UgfSBmcm9tICcuL29wZXJhdGlvbnMtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW9wZXJhdGlvbnMtbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbnMtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUFJPRFVDVF9FWFBFUklFTkNFX0VWRU5UX1NPVVJDRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvbnNMaXN0SXRlbUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uc0xpc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50U291cmNlIHtcbiAgQElucHV0KClcbiAgb3BlcmF0aW9uOiBQYXJ0aWFsPElPcGVyYXRpb24+O1xuICBASW5wdXQoKVxuICBjb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBub0V4cGFuZFRvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdsaXN0SXRlbScsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3RJdGVtOiBMaXN0SXRlbUNvbXBvbmVudDtcbiAgcmVmcmVzaExvYWRpbmcgPSBmYWxzZTtcbiAgT1BFUkFUSU9OX1NUQVRVUyA9IE9wZXJhdGlvblN0YXR1cztcbiAgT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUDogT3BlcmF0aW9uU3RhdHVzT3B0aW9uc01hcCA9IE9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVA7XG4gIGRldmljZUlkOiBzdHJpbmcgfCBudW1iZXIgPVxuICAgIHRoaXMucm91dGUuc25hcHNob3QucGFyZW50Py5kYXRhLmNvbnRleHREYXRhPy5pZCB8fFxuICAgIHRoaXMucm91dGUuc25hcHNob3QuZmlyc3RDaGlsZD8uZGF0YS5jb250ZXh0RGF0YT8uaWQ7XG4gIGlzU21hcnRSdWxlc01pY3Jvc2VydmljZUF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbnZlbnRvcnlQZXJtaXNzaW9uczogc3RyaW5nW107XG4gIHNtYXJ0UnVsZUFkbWluUGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICBvcGVyYXRpb25UaXRsZTogc3RyaW5nO1xuICBwcm9kdWN0RXhwZXJpZW5jZUV2ZW50OiBQcm9kdWN0RXhwZXJpZW5jZUV2ZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBidWxrT3BlcmF0aW9uTGlzdEl0ZW1TZXJ2aWNlOiBCdWxrT3BlcmF0aW9uTGlzdEl0ZW1TZXJ2aWNlLFxuICAgIHB1YmxpYyBzaGFyZWRTZXJ2aWNlOiBPcGVyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgb3BlcmF0aW9uc0xpc3RTZXJ2aWNlOiBPcGVyYXRpb25zTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc1NtYXJ0UnVsZXNNaWNyb3NlcnZpY2VBdmFpbGFibGUgPVxuICAgICAgYXdhaXQgdGhpcy5vcGVyYXRpb25zTGlzdFNlcnZpY2UuaXNTbWFydFJ1bGVzTWljcm9zZXJ2aWNlQXZhaWxhYmxlKCk7XG5cbiAgICB0aGlzLm9wZXJhdGlvblRpdGxlID1cbiAgICAgIHRoaXMub3BlcmF0aW9uLmRlc2NyaXB0aW9uIHx8XG4gICAgICB0aGlzLm9wZXJhdGlvbi5jOHlfQ29tbWFuZD8udGV4dCB8fFxuICAgICAgZ2V0dGV4dCgnTm8gY29tbWFuZCB0ZXh0IG9yIGRlc2NyaXB0aW9uIGF2YWlsYWJsZScpO1xuXG4gICAgY29uc3Qgc21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zID0gdGhpcy5vcGVyYXRpb25zTGlzdFNlcnZpY2UuZ2V0U21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zKCk7XG4gICAgaWYgKHNtYXJ0UnVsZXNDcmVhdGVQZXJtaXNzaW9ucykge1xuICAgICAgdGhpcy5pbnZlbnRvcnlQZXJtaXNzaW9ucyA9IHNtYXJ0UnVsZXNDcmVhdGVQZXJtaXNzaW9uc1swXS5hbnlSb2xlO1xuICAgICAgdGhpcy5zbWFydFJ1bGVBZG1pblBlcm1pc3Npb25zID0gc21hcnRSdWxlc0NyZWF0ZVBlcm1pc3Npb25zWzFdLmFueVJvbGU7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ3VzdG9taXplZEJ1bGtPcGVyYXRpb24oJGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2RldmljZWNvbnRyb2wvc2luZ2xlL2NyZWF0ZS1idWxrLyR7dGhpcy5vcGVyYXRpb24uaWR9YCk7XG4gIH1cbn1cbiIsIjxjOHktbGlcbiAgY2xhc3M9XCJjOHktbGlzdF9faXRlbS0tZG91YmxlLWFjdGlvbnNcIlxuICBbbmdDbGFzc109XCJ7ICdjOHktbGlzdF9faXRlbS0tbm8tZXhwYW5kJzogbm9FeHBhbmRUb2dnbGUgfVwiXG4gIFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkXCJcbiAgI2xpc3RJdGVtXG4gIGlkPVwie3sgb3BlcmF0aW9uLmlkIH19XCJcbj5cbiAgPGM4eS1saS1pY29uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuLWNsZWFuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3Rvb2x0aXBdPVwiT1BFUkFUSU9OX1NUQVRVU19PUFRJT05TX01BUFtvcGVyYXRpb24uc3RhdHVzXS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIk9QRVJBVElPTl9TVEFUVVNfT1BUSU9OU19NQVBbb3BlcmF0aW9uLnN0YXR1c10ubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbYzh5SWNvbl09XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQW29wZXJhdGlvbi5zdGF0dXNdLmljb25cIlxuICAgICAgICBbbmdDbGFzc109XCJPUEVSQVRJT05fU1RBVFVTX09QVElPTlNfTUFQW29wZXJhdGlvbi5zdGF0dXNdLnN0eWxlQ2xhc3NcIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktbGktaWNvbj5cbiAgPGRpdiBbbmdDbGFzc109XCJ7ICdjb250ZW50LWZsZXgtNTgnOiAhcmVhZE9ubHksICdjb250ZW50LWZsZXgtNTAnOiByZWFkT25seSB9XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IG9wZXJhdGlvblRpdGxlIHwgdHJhbnNsYXRlIH19XCIgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgIHt7IG9wZXJhdGlvblRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCIhZGV2aWNlSWRcIj5cbiAgICAgIDxhXG4gICAgICAgIHRpdGxlPVwie3sgb3BlcmF0aW9uLmRldmljZU5hbWUgfX1cIlxuICAgICAgICBbcm91dGVyTGlua109XCJbJy9kZXZpY2UnLCBvcGVyYXRpb24uZGV2aWNlSWQsICdkZXZpY2UtaW5mbyddXCJcbiAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiXG4gICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9wZXJhdGlvbi5kZXZpY2VOYW1lIH19XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpY29uLWZsZXggdGV4dC1tdXRlZFwiPlxuICAgICAgICA8aSBjOHlJY29uPVwiY2FsZW5kYXJcIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgICAgICB7eyBvcGVyYXRpb24uY3JlYXRpb25UaW1lIHwgYzh5RGF0ZSB9fVxuICAgICAgPC9zbWFsbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZE9ubHlcIj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgbGFiZWw9XCJ7eyAnU2NoZWR1bGUgYXMgYnVsayBvcGVyYXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChjbGljayk9XCJjcmVhdGVDdXN0b21pemVkQnVsa09wZXJhdGlvbigkZXZlbnQpXCJcbiAgICAgIGljb249XCJjOHktaWNvbiBjOHktaWNvbi1lbmVyZ3lcIlxuICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgIGluaGVyaXRcbiAgICA+PC9jOHktbGktYWN0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKmM4eUlmQWxsb3dlZD1cImludmVudG9yeVBlcm1pc3Npb25zOyBhbGxvd0FueTogdHJ1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqYzh5SWZBbGxvd2VkPVwic21hcnRSdWxlQWRtaW5QZXJtaXNzaW9uczsgYWxsb3dBbnk6IHRydWVcIj5cbiAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAqbmdJZj1cImlzU21hcnRSdWxlc01pY3Jvc2VydmljZUF2YWlsYWJsZVwiXG4gICAgICAgICAgbGFiZWw9XCJ7eyAnQ3JlYXRlIHNtYXJ0IHJ1bGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlcmF0aW9uc0xpc3RTZXJ2aWNlLmNyZWF0ZVNtYXJ0UnVsZShvcGVyYXRpb24pXCJcbiAgICAgICAgICBpY29uPVwic2xpZGVyc1wiXG4gICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICBpbmhlcml0XG4gICAgICAgID48L2M4eS1saS1hY3Rpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8Yzh5LWxpLWFjdGlvblxuICAgICAgKm5nSWY9XCJvcGVyYXRpb24uc3RhdHVzID09PSBPUEVSQVRJT05fU1RBVFVTLlBFTkRJTkdcIlxuICAgICAgbGFiZWw9XCJ7eyAnQ2FuY2VsIG9wZXJhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc2hhcmVkU2VydmljZS5jYW5jZWwob3BlcmF0aW9uKVwiXG4gICAgICBpY29uPVwidGltZXMtY2lyY2xlXCJcbiAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICBpbmhlcml0XG4gICAgPjwvYzh5LWxpLWFjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxjOHktbGktY29sbGFwc2UgY2xhc3M9XCJtLWItMTZcIj5cbiAgICA8Yzh5LW9wZXJhdGlvbi1kZXRhaWxzLXRhYnNcbiAgICAgICpuZ0lmPVwiIWxpc3RJdGVtLmNvbGxhcHNlZFwiXG4gICAgICBbb3BlcmF0aW9uXT1cIm9wZXJhdGlvblwiXG4gICAgICBbYnVsa09wZXJhdGlvbk1vZGFsRGV0YWlsc1NlcnZpY2VdPVwiYnVsa09wZXJhdGlvbkxpc3RJdGVtU2VydmljZVwiXG4gICAgPjwvYzh5LW9wZXJhdGlvbi1kZXRhaWxzLXRhYnM+XG4gIDwvYzh5LWxpLWNvbGxhcHNlPlxuPC9jOHktbGk+XG4iXX0=
|