@cuby-ui/core 0.0.455 → 0.0.457

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.
@@ -42,7 +42,7 @@ export class ModalDividedSectionComponent {
42
42
  this.selectedStorageObject.set(this.storageObjects()?.[0]);
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalDividedSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalDividedSectionComponent, isStandalone: true, selector: "cui-modal-divided-section", inputs: { storageElementTypeName: { classPropertyName: "storageElementTypeName", publicName: "storageElementTypeName", isSignal: true, isRequired: true, transformFunction: null }, storageObjects: { classPropertyName: "storageObjects", publicName: "storageObjects", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiCardWrapperComponent, selector: "cui-card-wrapper, [cuiCardWrapper]", inputs: ["withBorder", "isSelected"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: UtilityInfoReadonlyComponent, selector: "cui-utility-info-readonly", inputs: ["environmentUrlForResources", "environmentUrlForInstruction", "framerId", "element"] }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalDividedSectionComponent, isStandalone: true, selector: "cui-modal-divided-section", inputs: { storageElementTypeName: { classPropertyName: "storageElementTypeName", publicName: "storageElementTypeName", isSignal: true, isRequired: true, transformFunction: null }, storageObjects: { classPropertyName: "storageObjects", publicName: "storageObjects", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiCardWrapperComponent, selector: "cui-card-wrapper, [cuiCardWrapper]", inputs: ["withBorder", "isSelected"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: UtilityInfoReadonlyComponent, selector: "cui-utility-info-readonly", inputs: ["environmentUrlForResources", "environmentUrlForInstruction", "framerId", "element"] }] }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalDividedSectionComponent, decorators: [{
48
48
  type: Component,
@@ -53,6 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
53
53
  CuiCardWrapperComponent,
54
54
  TranslocoDirective,
55
55
  UtilityInfoReadonlyComponent
56
- ], template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"] }]
56
+ ], template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"] }]
57
57
  }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1kaXZpZGVkLXNlY3Rpb24vbW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1kaXZpZGVkLXNlY3Rpb24vbW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0UsT0FBTyxFQUNILHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFlBQVksRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFnQnhFLE1BQU0sT0FBTyw0QkFBNEI7SUFkekM7UUFldUIsc0JBQWlCLEdBQW9CO1lBQ3BELFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsV0FBVyxFQUFFLGNBQWM7U0FDOUIsQ0FBQztRQUNpQixrQkFBYSxHQUFnQjtZQUM1QyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFFLEtBQW1CLENBQUMsaUJBQWlCO1lBQzNELFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsS0FBcUIsQ0FBQyxtQkFBbUI7U0FDckUsQ0FBQztRQUVpQiwwQkFBcUIsR0FBRyxNQUFNLENBQW9DLElBQUksQ0FBQyxDQUFDO1FBQ3hFLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUUzRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDekIsT0FBTztZQUNYLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUMsQ0FBQztRQUVnQix1QkFBa0IsR0FBRyxRQUFRLENBQzVDLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLGNBQWMsQ0FDbEYsQ0FBQztRQUVjLDJCQUFzQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFDekUsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUEwQixDQUFDO1FBQzFELCtCQUEwQixHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzdDLGlDQUE0QixHQUFHLEtBQUssRUFBVSxDQUFDO1FBQy9DLFlBQU8sR0FBRyxLQUFLLEVBQWlCLENBQUM7S0FpQnBEO0lBZlUsUUFBUTtRQUNYLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFUyxRQUFRLENBQUMsb0JBQTBDO1FBQ3pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8seUJBQXlCO1FBQzdCLElBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDOUIsT0FBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0E3Q1EsNEJBQTRCO21HQUE1Qiw0QkFBNEIsKzRCQ2hDekMsNmdHQXNEQSxvaEJEaENRLFlBQVksd0tBQ1osc0JBQXNCLDRHQUN0QixxQkFBcUIsbUhBQ3JCLHVCQUF1QixxSEFDdkIsa0JBQWtCLGdNQUNsQiw0QkFBNEI7OzRGQUt2Qiw0QkFBNEI7a0JBZHhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3FCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3JpdGVyaW9uLCBDdWlBcGlDb250ZXh0LCBJbnN0cnVjdGlvbiB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5pbXBvcnQgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEVtcHR5U3RhdGVUaXRsZSxcbiAgICBHZXRGcmFtZXJJZCxcbiAgICBTZWN0aW9uU3RvcmFnZUVsZW1lbnRUeXBlTmFtZSxcbiAgICBTZWN0aW9uU3RvcmFnZU9iamVjdFxufSBmcm9tICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgQ3VpQ2FyZFdyYXBwZXJDb21wb25lbnQsXG4gICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IFV0aWxpdHlJbmZvUmVhZG9ubHlDb21wb25lbnQgfSBmcm9tICcuLi91dGlsaXR5LWluZm8tcmVhZG9ubHknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1tb2RhbC1kaXZpZGVkLXNlY3Rpb24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlTdmdNb2R1bGUsXG4gICAgICAgIEN1aUVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgICAgIEN1aUxldHRlckJveENvbXBvbmVudCxcbiAgICAgICAgQ3VpQ2FyZFdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgVXRpbGl0eUluZm9SZWFkb25seUNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxEaXZpZGVkU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEVNUFRZX1NUQVRFX1RJVExFOiBFbXB0eVN0YXRlVGl0bGUgPSB7XG4gICAgICAgIENSSVRFUklBOiAnQUNDRVBUQU5DRV9DUklURVJJQScsXG4gICAgICAgIElOU1RSVUNUSU9OOiAnSU5TVFJVQ1RJT05TJ1xuICAgIH07XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEdFVF9GUkFNRVJfSUQ6IEdldEZyYW1lcklkID0ge1xuICAgICAgICBDUklURVJJQTogKHZhbHVlKSA9PiAodmFsdWUgYXMgQ3JpdGVyaW9uKS5mcmFtZXJDcml0ZXJpb25JZCxcbiAgICAgICAgSU5TVFJVQ1RJT046ICh2YWx1ZSkgPT4gKHZhbHVlIGFzIEluc3RydWN0aW9uKS5mcmFtZXJJbnN0cnVjdGlvbklkXG4gICAgfTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFN0b3JhZ2VPYmplY3QgPSBzaWduYWw8Q3VpTnVsbGFibGU8U2VjdGlvblN0b3JhZ2VPYmplY3Q+PihudWxsKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRGcmFtZXJJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTdG9yYWdlT2JqZWN0ID0gdGhpcy5zZWxlY3RlZFN0b3JhZ2VPYmplY3QoKTtcblxuICAgICAgICBpZiAoIXNlbGVjdGVkU3RvcmFnZU9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuR0VUX0ZSQU1FUl9JRFt0aGlzLnN0b3JhZ2VFbGVtZW50VHlwZU5hbWUoKV0oc2VsZWN0ZWRTdG9yYWdlT2JqZWN0LnN0b3JhZ2VFbGVtZW50KTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbXB0eVN0YXRlU3VidGl0bGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gYE5PXyR7dGhpcy5FTVBUWV9TVEFURV9USVRMRVt0aGlzLnN0b3JhZ2VFbGVtZW50VHlwZU5hbWUoKV19X1RPX1ZJRVdfWUVUYFxuICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RvcmFnZUVsZW1lbnRUeXBlTmFtZSA9IGlucHV0LnJlcXVpcmVkPFNlY3Rpb25TdG9yYWdlRWxlbWVudFR5cGVOYW1lPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBzdG9yYWdlT2JqZWN0cyA9IGlucHV0LnJlcXVpcmVkPFNlY3Rpb25TdG9yYWdlT2JqZWN0W10+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50VXJsRm9yUmVzb3VyY2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb250ZXh0ID0gaW5wdXQ8Q3VpQXBpQ29udGV4dD4oKTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRTdG9yYWdlT2JqZWN0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU2VsZWN0KHNlY3Rpb25TdG9yYWdlT2JqZWN0OiBTZWN0aW9uU3RvcmFnZU9iamVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZU9iamVjdC5zZXQoc2VjdGlvblN0b3JhZ2VPYmplY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlbGVjdGVkU3RvcmFnZU9iamVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYoIXRoaXMuc3RvcmFnZU9iamVjdHMoKS5sZW5ndGgpe1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZU9iamVjdC5zZXQodGhpcy5zdG9yYWdlT2JqZWN0cygpPy5bMF0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgICAgIEBpZiAoc3RvcmFnZU9iamVjdHMoKTsgYXMgc3RvcmFnZU9iamVjdHMpIHtcbiAgICAgICAgICAgIEBpZiAoc3RvcmFnZU9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIGJsb2NrX2xlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc3RvcmFnZU9iamVjdCBvZiBzdG9yYWdlT2JqZWN0czsgdHJhY2sgc3RvcmFnZU9iamVjdC5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcmFnZU9iamVjdC5zdG9yYWdlRWxlbWVudDsgYXMgc3RvcmFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJzdG9yYWdlRWxlbWVudC50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VpQ2FyZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNTZWxlY3RlZF09XCJzZWxlY3RlZFN0b3JhZ2VPYmplY3QoKT8uaWQgPT09IHN0b3JhZ2VPYmplY3QuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChzdG9yYWdlT2JqZWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChzdG9yYWdlRWxlbWVudFR5cGVOYW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnQ1JJVEVSSUEnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1sZXR0ZXItYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlcj1cImNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9XCJ2YXIoLS1jdWktdmlvbGV0LTQwMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ0lOU1RSVUNUSU9OJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uRmlsZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTUwMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b25fX3RleHRcIj57eyBzdG9yYWdlRWxlbWVudC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgYmxvY2tfcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFN0b3JhZ2VPYmplY3QoKT8uc3RvcmFnZUVsZW1lbnQ7IGFzIHNlbGVjdGVkU3RvcmFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJoZWFkZXJcIj57eyBzZWxlY3RlZFN0b3JhZ2VFbGVtZW50LnRpdGxlIH19PC9oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXV0aWxpdHktaW5mby1yZWFkb25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXJJZF09XCJzZWxlY3RlZEZyYW1lcklkKCkhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXNdPVwiZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb25dPVwiZW52aXJvbm1lbnRVcmxGb3JJbnN0cnVjdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInV0aWxpdHktaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8Y3VpLWVtcHR5LXN0YXRlIFtzdWJ0aXRsZV09XCJ0KGVtcHR5U3RhdGVTdWJ0aXRsZSgpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbjwvbmctY29udGFpbmVyPlxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1kaXZpZGVkLXNlY3Rpb24vbW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1kaXZpZGVkLXNlY3Rpb24vbW9kYWwtZGl2aWRlZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0UsT0FBTyxFQUNILHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFlBQVksRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFnQnhFLE1BQU0sT0FBTyw0QkFBNEI7SUFkekM7UUFldUIsc0JBQWlCLEdBQW9CO1lBQ3BELFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsV0FBVyxFQUFFLGNBQWM7U0FDOUIsQ0FBQztRQUNpQixrQkFBYSxHQUFnQjtZQUM1QyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFFLEtBQW1CLENBQUMsaUJBQWlCO1lBQzNELFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsS0FBcUIsQ0FBQyxtQkFBbUI7U0FDckUsQ0FBQztRQUVpQiwwQkFBcUIsR0FBRyxNQUFNLENBQW9DLElBQUksQ0FBQyxDQUFDO1FBQ3hFLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUUzRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDekIsT0FBTztZQUNYLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUMsQ0FBQztRQUVnQix1QkFBa0IsR0FBRyxRQUFRLENBQzVDLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLGNBQWMsQ0FDbEYsQ0FBQztRQUVjLDJCQUFzQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFDekUsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUEwQixDQUFDO1FBQzFELCtCQUEwQixHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzdDLGlDQUE0QixHQUFHLEtBQUssRUFBVSxDQUFDO1FBQy9DLFlBQU8sR0FBRyxLQUFLLEVBQWlCLENBQUM7S0FpQnBEO0lBZlUsUUFBUTtRQUNYLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFUyxRQUFRLENBQUMsb0JBQTBDO1FBQ3pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8seUJBQXlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0E3Q1EsNEJBQTRCO21HQUE1Qiw0QkFBNEIsKzRCQ2hDekMsNnpGQXNEQSxvaEJEaENRLFlBQVksd0tBQ1osc0JBQXNCLDRHQUN0QixxQkFBcUIsbUhBQ3JCLHVCQUF1QixxSEFDdkIsa0JBQWtCLGdNQUNsQiw0QkFBNEI7OzRGQUt2Qiw0QkFBNEI7a0JBZHhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3FCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3JpdGVyaW9uLCBDdWlBcGlDb250ZXh0LCBJbnN0cnVjdGlvbiB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5pbXBvcnQgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEVtcHR5U3RhdGVUaXRsZSxcbiAgICBHZXRGcmFtZXJJZCxcbiAgICBTZWN0aW9uU3RvcmFnZUVsZW1lbnRUeXBlTmFtZSxcbiAgICBTZWN0aW9uU3RvcmFnZU9iamVjdFxufSBmcm9tICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgQ3VpQ2FyZFdyYXBwZXJDb21wb25lbnQsXG4gICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IFV0aWxpdHlJbmZvUmVhZG9ubHlDb21wb25lbnQgfSBmcm9tICcuLi91dGlsaXR5LWluZm8tcmVhZG9ubHknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1tb2RhbC1kaXZpZGVkLXNlY3Rpb24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlTdmdNb2R1bGUsXG4gICAgICAgIEN1aUVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgICAgIEN1aUxldHRlckJveENvbXBvbmVudCxcbiAgICAgICAgQ3VpQ2FyZFdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgVXRpbGl0eUluZm9SZWFkb25seUNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21vZGFsLWRpdmlkZWQtc2VjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxEaXZpZGVkU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEVNUFRZX1NUQVRFX1RJVExFOiBFbXB0eVN0YXRlVGl0bGUgPSB7XG4gICAgICAgIENSSVRFUklBOiAnQUNDRVBUQU5DRV9DUklURVJJQScsXG4gICAgICAgIElOU1RSVUNUSU9OOiAnSU5TVFJVQ1RJT05TJ1xuICAgIH07XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEdFVF9GUkFNRVJfSUQ6IEdldEZyYW1lcklkID0ge1xuICAgICAgICBDUklURVJJQTogKHZhbHVlKSA9PiAodmFsdWUgYXMgQ3JpdGVyaW9uKS5mcmFtZXJDcml0ZXJpb25JZCxcbiAgICAgICAgSU5TVFJVQ1RJT046ICh2YWx1ZSkgPT4gKHZhbHVlIGFzIEluc3RydWN0aW9uKS5mcmFtZXJJbnN0cnVjdGlvbklkXG4gICAgfTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFN0b3JhZ2VPYmplY3QgPSBzaWduYWw8Q3VpTnVsbGFibGU8U2VjdGlvblN0b3JhZ2VPYmplY3Q+PihudWxsKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRGcmFtZXJJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTdG9yYWdlT2JqZWN0ID0gdGhpcy5zZWxlY3RlZFN0b3JhZ2VPYmplY3QoKTtcblxuICAgICAgICBpZiAoIXNlbGVjdGVkU3RvcmFnZU9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuR0VUX0ZSQU1FUl9JRFt0aGlzLnN0b3JhZ2VFbGVtZW50VHlwZU5hbWUoKV0oc2VsZWN0ZWRTdG9yYWdlT2JqZWN0LnN0b3JhZ2VFbGVtZW50KTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbXB0eVN0YXRlU3VidGl0bGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gYE5PXyR7dGhpcy5FTVBUWV9TVEFURV9USVRMRVt0aGlzLnN0b3JhZ2VFbGVtZW50VHlwZU5hbWUoKV19X1RPX1ZJRVdfWUVUYFxuICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RvcmFnZUVsZW1lbnRUeXBlTmFtZSA9IGlucHV0LnJlcXVpcmVkPFNlY3Rpb25TdG9yYWdlRWxlbWVudFR5cGVOYW1lPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBzdG9yYWdlT2JqZWN0cyA9IGlucHV0LnJlcXVpcmVkPFNlY3Rpb25TdG9yYWdlT2JqZWN0W10+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50VXJsRm9yUmVzb3VyY2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb250ZXh0ID0gaW5wdXQ8Q3VpQXBpQ29udGV4dD4oKTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0U2VsZWN0ZWRTdG9yYWdlT2JqZWN0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU2VsZWN0KHNlY3Rpb25TdG9yYWdlT2JqZWN0OiBTZWN0aW9uU3RvcmFnZU9iamVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZU9iamVjdC5zZXQoc2VjdGlvblN0b3JhZ2VPYmplY3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlbGVjdGVkU3RvcmFnZU9iamVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2VPYmplY3RzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmFnZU9iamVjdC5zZXQodGhpcy5zdG9yYWdlT2JqZWN0cygpPy5bMF0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgQGlmIChzdG9yYWdlT2JqZWN0cygpOyBhcyBzdG9yYWdlT2JqZWN0cykge1xuICAgICAgICBAaWYgKHN0b3JhZ2VPYmplY3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIGJsb2NrX2xlZnRcIj5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHN0b3JhZ2VPYmplY3Qgb2Ygc3RvcmFnZU9iamVjdHM7IHRyYWNrIHN0b3JhZ2VPYmplY3QuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcmFnZU9iamVjdC5zdG9yYWdlRWxlbWVudDsgYXMgc3RvcmFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInN0b3JhZ2VFbGVtZW50LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1aUNhcmRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNTZWxlY3RlZF09XCJzZWxlY3RlZFN0b3JhZ2VPYmplY3QoKT8uaWQgPT09IHN0b3JhZ2VPYmplY3QuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KHN0b3JhZ2VPYmplY3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKHN0b3JhZ2VFbGVtZW50VHlwZU5hbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ0NSSVRFUklBJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1sZXR0ZXItYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyPVwiY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPVwidmFyKC0tY3VpLXZpb2xldC00MDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdJTlNUUlVDVElPTicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25GaWxlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1jdWktYmFzZS01MDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b25fX3RleHRcIj57eyBzdG9yYWdlRWxlbWVudC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIGJsb2NrX3JpZ2h0XCI+XG4gICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFN0b3JhZ2VPYmplY3QoKT8uc3RvcmFnZUVsZW1lbnQ7IGFzIHNlbGVjdGVkU3RvcmFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cImhlYWRlclwiPnt7IHNlbGVjdGVkU3RvcmFnZUVsZW1lbnQudGl0bGUgfX08L2hlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPGN1aS11dGlsaXR5LWluZm8tcmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFtZXJJZF09XCJzZWxlY3RlZEZyYW1lcklkKCkhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbnZpcm9ubWVudFVybEZvclJlc291cmNlc109XCJlbnZpcm9ubWVudFVybEZvclJlc291cmNlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uXT1cImVudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInV0aWxpdHktaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGN1aS1lbXB0eS1zdGF0ZSBbc3VidGl0bGVdPVwidChlbXB0eVN0YXRlU3VidGl0bGUoKSlcIiAvPlxuICAgICAgICB9XG4gICAgfVxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -8,7 +8,7 @@ export class ModalInstructionsTabComponent {
8
8
  this.utilityId = input.required();
9
9
  this.environmentUrlForInstruction = input.required();
10
10
  this.context = input.required();
11
- this.storageObjectInstructions = signal([]);
11
+ this.storageObjectInstructions = signal(null);
12
12
  }
13
13
  ngOnInit() {
14
14
  this.initInstructions();
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
28
28
  type: Component,
29
29
  args: [{ imports: [ModalDividedSectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "@if (storageObjectInstructions(); as storageObjectInstructions) {\n <cui-modal-divided-section\n storageElementTypeName=\"INSTRUCTION\"\n [context]=\"context()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n [storageObjects]=\"storageObjectInstructions\"\n />\n}\n", styles: [":host{display:flex;height:100%}\n"] }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdWkvbW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi9tb2RhbC1pbnN0cnVjdGlvbnMtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1pbnN0cnVjdGlvbnMtdGFiL21vZGFsLWluc3RydWN0aW9ucy10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBR0gsaUJBQWlCLEVBR3BCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVN4RSxNQUFNLE9BQU8sNkJBQTZCO0lBUDFDO1FBUXFCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDckMsaUNBQTRCLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3hELFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBQ3ZDLDhCQUF5QixHQUFHLE1BQU0sQ0FBMEMsRUFBRSxDQUFDLENBQUM7S0FxQnRHO0lBbkJVLFFBQVE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkUsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDNUQsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSwyREFBc0MsQ0FDNUMsQ0FBQztZQUVuRCxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUM5QixnQ0FBZ0M7Z0JBQzVCLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUMxQyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQy9EO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQ1gsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0ExQlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsZ2hCQ25CMUMsb1VBUUEsMkZES2MsNEJBQTRCOzs0RkFNN0IsNkJBQTZCO2tCQVB6QyxTQUFTOzhCQUNHLENBQUMsNEJBQTRCLENBQUMsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ3VpQXBpQ29udGV4dCxcbiAgICBTdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24sXG4gICAgVXRpbGl0eUFwaVNlcnZpY2UsXG4gICAgVXRpbGl0eUNvbXBvbmVudFR5cGUsXG4gICAgVXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnNcbn0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgTW9kYWxEaXZpZGVkU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWRpdmlkZWQtc2VjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtNb2RhbERpdmlkZWRTZWN0aW9uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21vZGFsLWluc3RydWN0aW9ucy10YWIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxJbnN0cnVjdGlvbnNUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbGl0eUFwaVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eUFwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWxpdHlJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnRVcmxGb3JJbnN0cnVjdGlvbiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dCA9IGlucHV0LnJlcXVpcmVkPEN1aUFwaUNvbnRleHQ+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbnMgPSBzaWduYWw8Q3VpTnVsbGFibGU8U3RvcmFnZU9iamVjdEluc3RydWN0aW9uW10+PihbXSk7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEluc3RydWN0aW9ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEluc3RydWN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51dGlsaXR5QXBpU2VydmljZS5nZXRCeUlkKHRoaXMudXRpbGl0eUlkKCkpLnN1YnNjcmliZSgodXRpbGl0eSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnMgPSB1dGlsaXR5LmNvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAodXRpbGl0eUNvbXBvbmVudCkgPT4gdXRpbGl0eUNvbXBvbmVudC5jb21wb25lbnRUeXBlID09PSBVdGlsaXR5Q29tcG9uZW50VHlwZS5JbnN0cnVjdGlvbnNcbiAgICAgICAgICAgICkgYXMgQ3VpTnVsbGFibGU8VXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnM+O1xuXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbnMuc2V0KFxuICAgICAgICAgICAgICAgIHV0aWxpdHlDb21wb25lbnRXaXRoSW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgICAgICAgICAgID8gdXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnMuc3RydWN0dXJlLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3RPYmplY3RJbnN0cnVjdGlvbikgPT4gbGlzdE9iamVjdEluc3RydWN0aW9uLmluc3RydWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAaWYgKHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbnMoKTsgYXMgc3RvcmFnZU9iamVjdEluc3RydWN0aW9ucykge1xuICAgIDxjdWktbW9kYWwtZGl2aWRlZC1zZWN0aW9uXG4gICAgICAgIHN0b3JhZ2VFbGVtZW50VHlwZU5hbWU9XCJJTlNUUlVDVElPTlwiXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHQoKVwiXG4gICAgICAgIFtlbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uXT1cImVudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb24oKVwiXG4gICAgICAgIFtzdG9yYWdlT2JqZWN0c109XCJzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb25zXCJcbiAgICAvPlxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdWkvbW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi9tb2RhbC1pbnN0cnVjdGlvbnMtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1pbnN0cnVjdGlvbnMtdGFiL21vZGFsLWluc3RydWN0aW9ucy10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBR0gsaUJBQWlCLEVBR3BCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVN4RSxNQUFNLE9BQU8sNkJBQTZCO0lBUDFDO1FBUXFCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDckMsaUNBQTRCLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3hELFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBQ3ZDLDhCQUF5QixHQUFHLE1BQU0sQ0FBMEMsSUFBSSxDQUFDLENBQUM7S0FxQnhHO0lBbkJVLFFBQVE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkUsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDNUQsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSwyREFBc0MsQ0FDNUMsQ0FBQztZQUVuRCxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUM5QixnQ0FBZ0M7Z0JBQzVCLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUMxQyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQy9EO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQ1gsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0ExQlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsZ2hCQ25CMUMsb1VBUUEsMkZES2MsNEJBQTRCOzs0RkFNN0IsNkJBQTZCO2tCQVB6QyxTQUFTOzhCQUNHLENBQUMsNEJBQTRCLENBQUMsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ3VpQXBpQ29udGV4dCxcbiAgICBTdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24sXG4gICAgVXRpbGl0eUFwaVNlcnZpY2UsXG4gICAgVXRpbGl0eUNvbXBvbmVudFR5cGUsXG4gICAgVXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnNcbn0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgTW9kYWxEaXZpZGVkU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWRpdmlkZWQtc2VjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtNb2RhbERpdmlkZWRTZWN0aW9uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21vZGFsLWluc3RydWN0aW9ucy10YWIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxJbnN0cnVjdGlvbnNUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbGl0eUFwaVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eUFwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWxpdHlJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnRVcmxGb3JJbnN0cnVjdGlvbiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dCA9IGlucHV0LnJlcXVpcmVkPEN1aUFwaUNvbnRleHQ+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbnMgPSBzaWduYWw8Q3VpTnVsbGFibGU8U3RvcmFnZU9iamVjdEluc3RydWN0aW9uW10+PihudWxsKTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0SW5zdHJ1Y3Rpb25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0SW5zdHJ1Y3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnV0aWxpdHlBcGlTZXJ2aWNlLmdldEJ5SWQodGhpcy51dGlsaXR5SWQoKSkuc3Vic2NyaWJlKCh1dGlsaXR5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1dGlsaXR5Q29tcG9uZW50V2l0aEluc3RydWN0aW9ucyA9IHV0aWxpdHkuY29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgICAgICh1dGlsaXR5Q29tcG9uZW50KSA9PiB1dGlsaXR5Q29tcG9uZW50LmNvbXBvbmVudFR5cGUgPT09IFV0aWxpdHlDb21wb25lbnRUeXBlLkluc3RydWN0aW9uc1xuICAgICAgICAgICAgKSBhcyBDdWlOdWxsYWJsZTxVdGlsaXR5Q29tcG9uZW50V2l0aEluc3RydWN0aW9ucz47XG5cbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZU9iamVjdEluc3RydWN0aW9ucy5zZXQoXG4gICAgICAgICAgICAgICAgdXRpbGl0eUNvbXBvbmVudFdpdGhJbnN0cnVjdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgPyB1dGlsaXR5Q29tcG9uZW50V2l0aEluc3RydWN0aW9ucy5zdHJ1Y3R1cmUubWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdE9iamVjdEluc3RydWN0aW9uKSA9PiBsaXN0T2JqZWN0SW5zdHJ1Y3Rpb24uaW5zdHJ1Y3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBpZiAoc3RvcmFnZU9iamVjdEluc3RydWN0aW9ucygpOyBhcyBzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb25zKSB7XG4gICAgPGN1aS1tb2RhbC1kaXZpZGVkLXNlY3Rpb25cbiAgICAgICAgc3RvcmFnZUVsZW1lbnRUeXBlTmFtZT1cIklOU1RSVUNUSU9OXCJcbiAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dCgpXCJcbiAgICAgICAgW2Vudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb25dPVwiZW52aXJvbm1lbnRVcmxGb3JJbnN0cnVjdGlvbigpXCJcbiAgICAgICAgW3N0b3JhZ2VPYmplY3RzXT1cInN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbnNcIlxuICAgIC8+XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { Component, computed, inject, input, signal, viewChild } from '@angular/core';
2
2
  import { CUI_DIALOG_CONTEXT, CuiLetterBoxComponent } from '../../../components';
3
- import { CuiEditorComponent } from '../../../editor';
3
+ import { createEditorTools, CuiEditorComponent } from '../../../editor';
4
4
  import { CuiTime } from '@cuby-ui/cdk';
5
- import { CuiJobApiService, JobType, SHARED_CONSTRUCTION_HTTP_OPTIONS, SHARED_INSTRUCTION_HTTP_OPTIONS } from '@cuby-ui/api';
5
+ import { CuiJobApiService, JobType, SHARED_INSTRUCTION_HTTP_OPTIONS } from '@cuby-ui/api';
6
6
  import { ModalInfoTabComponent } from '../modal-info-tab';
7
7
  import { ModalResourcesTabComponent } from '../modal-resources-tab';
8
8
  import { ModalInstructionsTabComponent } from '../modal-instructions-tab';
@@ -16,14 +16,17 @@ export class ModalOperationPartComponent {
16
16
  constructor() {
17
17
  this.context = inject(CUI_DIALOG_CONTEXT);
18
18
  this.jobApiService = inject(CuiJobApiService);
19
- this.editorConfig = { readOnly: true, requestOptions: SHARED_CONSTRUCTION_HTTP_OPTIONS };
20
19
  this.tabs = signal([]);
21
20
  this.ptFormat = computed(() => CuiTime.fromPT(this.storageObjectOperation().storageElement.estimatedTime).toString('HH:MM:SS'));
22
- this.storageObjectOperation = input.required();
21
+ this.editorConfig = computed(() => ({
22
+ readOnly: true,
23
+ tools: createEditorTools(this.environmentUrlForResources())
24
+ }));
23
25
  this.isInserted = input(false);
24
26
  this.containerId = input();
25
27
  this.quantumId = input();
26
28
  this.jobId = input();
29
+ this.storageObjectOperation = input.required();
27
30
  this.environmentUrlForResources = input.required();
28
31
  this.environmentUrlForInstruction = input.required();
29
32
  this.estimatedTime = viewChild.required('estimatedTime');
@@ -96,7 +99,7 @@ export class ModalOperationPartComponent {
96
99
  ]);
97
100
  }
98
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
100
103
  }
101
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, decorators: [{
102
105
  type: Component,
@@ -110,6 +113,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
110
113
  ModalHeaderTabsComponent,
111
114
  ModalHeaderComponent,
112
115
  TranslocoDirective
113
- ], template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"] }]
116
+ ], template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"] }]
114
117
  }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3BlcmF0aW9uLXBhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3VpL21vZGFsLW9wZXJhdGlvbi1wYXJ0L21vZGFsLW9wZXJhdGlvbi1wYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1vcGVyYXRpb24tcGFydC9tb2RhbC1vcGVyYXRpb24tcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFHUCxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBRWxDLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xF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Qzt3QkFDbkMsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDVUlfRElBTE9HX0NPTlRFWFQsIEN1aURpYWxvZ0NvbnRleHQsIEN1aUxldHRlckJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpRWRpdG9yQ29tcG9uZW50LCBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi8uLi9lZGl0b3InO1xuaW1wb3J0IHsgQ3VpTnVsbGFibGUsIEN1aVRpbWUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBDdWlKb2JBcGlTZXJ2aWNlLFxuICAgIEpvYlR5cGUsXG4gICAgTW9kYWxIZWFkZXJUYWIsXG4gICAgT3BlcmF0aW9uLFxuICAgIFNIQVJFRF9DT05TVFJVQ1RJT05fSFRUUF9PUFRJT05TLFxuICAgIFNIQVJFRF9JTlNUUlVDVElPTl9IVFRQX09QVElPTlMsXG4gICAgU3RvcmFnZU9iamVjdFxufSBmcm9tICdAY3VieS11aS9hcGknO1xuaW1wb3J0IHsgTW9kYWxJbmZvVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaW5mby10YWInO1xuaW1wb3J0IHsgTW9kYWxSZXNvdXJjZXNUYWJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1yZXNvdXJjZXMtdGFiJztcbmltcG9ydCB7IE1vZGFsSW5zdHJ1Y3Rpb25zVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaW5zdHJ1Y3Rpb25zLXRhYic7XG5pbXBvcnQgeyBNb2RhbEhlYWRlclRhYnNDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1oZWFkZXItdGFicyc7XG5pbXBvcnQgeyBNb2RhbEhlYWRlckluc2VydGVkQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWhlYWRlci1pbnNlcnRlZC1idXR0b25zJztcbmltcG9ydCB7IE1vZGFsQ3JpdGVyaWFUYWJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1jcml0ZXJpYS10YWInO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IE1vZGFsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaGVhZGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktbW9kYWwtb3BlcmF0aW9uLXBhcnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgICAgIEN1aUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgTW9kYWxIZWFkZXJUYWJzQ29tcG9uZW50LFxuICAgICAgICBNb2RhbEhlYWRlckluc2VydGVkQnV0dG9uc0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxIZWFkZXJUYWJzQ29tcG9uZW50LFxuICAgICAgICBNb2RhbEhlYWRlclRhYnNDb21wb25lbnQsXG4gICAgICAgIE1vZGFsSGVhZGVyVGFic0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLW9wZXJhdGlvbi1wYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbW9kYWwtb3BlcmF0aW9uLXBhcnQuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsT3BlcmF0aW9uUGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdDxDdWlEaWFsb2dDb250ZXh0PihDVUlfRElBTE9HX0NPTlRFWFQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgam9iQXBpU2VydmljZSA9IGluamVjdChDdWlKb2JBcGlTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCBlZGl0b3JDb25maWc6IEN1aUVkaXRvckNvbmZpZyA9IHsgcmVhZE9ubHk6IHRydWUsIHJlcXVlc3RPcHRpb25zOiBTSEFSRURfQ09OU1RSVUNUSU9OX0hUVFBfT1BUSU9OUyB9O1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYnMgPSBzaWduYWw8TW9kYWxIZWFkZXJUYWJbXT4oW10pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwdEZvcm1hdCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIEN1aVRpbWUuZnJvbVBUKHRoaXMuc3RvcmFnZU9iamVjdE9wZXJhdGlvbigpLnN0b3JhZ2VFbGVtZW50LmVzdGltYXRlZFRpbWUpLnRvU3RyaW5nKCdISDpNTTpTUycpXG4gICAgKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBzdG9yYWdlT2JqZWN0T3BlcmF0aW9uID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxPcGVyYXRpb24+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBpc0luc2VydGVkID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb250YWluZXJJZCA9IGlucHV0PEN1aU51bGxhYmxlPHN0cmluZz4+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHF1YW50dW1JZCA9IGlucHV0PEN1aU51bGxhYmxlPHN0cmluZz4+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGpvYklkID0gaW5wdXQ8Q3VpTnVsbGFibGU8c3RyaW5nPj4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXMgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXN0aW1hdGVkVGltZSA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnZXN0aW1hdGVkVGltZScpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ2VkaXRvcicpO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0U2VjdGlvbkNvbXBvbmVudCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblVuYmluZE9wZXJhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVySWQgPSB0aGlzLmNvbnRhaW5lcklkKCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5zdG9yYWdlT2JqZWN0T3BlcmF0aW9uKCkuaWQ7XG4gICAgICAgIGNvbnN0IHF1YW50dW1JZCA9IHRoaXMucXVhbnR1bUlkKCk7XG4gICAgICAgIGNvbnN0IGpvYklkID0gdGhpcy5qb2JJZCgpO1xuXG4gICAgICAgIGlmICghY29udGFpbmVySWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcXVhbnR1bUlkKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgICAgICAgICBqb2JJZDogam9iSWQhLFxuICAgICAgICAgICAgICAgIHBvaW50ZXJPcGVyYXRpb25zSWQ6IGNvbnRhaW5lcklkLFxuICAgICAgICAgICAgICAgIHNlbGVjdE9wZXJhdGlvbjogb3BlcmF0aW9uSWQsXG4gICAgICAgICAgICAgICAgdHlwZTogSm9iVHlwZS5Kb2JDb3JyZWN0aXZlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmpvYkFwaVNlcnZpY2UudW5iaW5kT3BlcmF0aW9uKHJlcXVlc3RCb2R5KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmNvbXBsZXRlV2l0aChyZXNwb25zZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5qb2JBcGlTZXJ2aWNlXG4gICAgICAgICAgICAudW5iaW5kT3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgICBqb2JJZDogam9iSWQhLFxuICAgICAgICAgICAgICAgIHBvaW50ZXJPcGVyYXRpb25zSWQ6IGNvbnRhaW5lcklkLFxuICAgICAgICAgICAgICAgIHNlbGVjdE9wZXJhdGlvbjogb3BlcmF0aW9uSWQsXG4gICAgICAgICAgICAgICAgdHlwZTogSm9iVHlwZS5Kb2JNYWluXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlY3Rpb25Db21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHN0b3JhZ2VFbGVtZW50OiB7IHV0aWxpdHlJZCwgYWNjZXB0YW5jZXNDcml0ZXJpYSB9XG4gICAgICAgIH0gPSB0aGlzLnN0b3JhZ2VPYmplY3RPcGVyYXRpb24oKTtcblxuICAgICAgICB0aGlzLnRhYnMuc2V0KFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0lORk8nLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogTW9kYWxJbmZvVGFiQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGlucHV0czogeyBjb250ZW50OiB7IEVTVElNQVRFRF9USU1FOiB0aGlzLmVzdGltYXRlZFRpbWUoKSwgREVTQ1JJUFRJT046IHRoaXMuZWRpdG9yKCkgfSB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnUkVTT1VSQ0VTJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IE1vZGFsUmVzb3VyY2VzVGFiQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGlucHV0czogeyB1dGlsaXR5SWQgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0lOU1RSVUNUSU9OUycsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBNb2RhbEluc3RydWN0aW9uc1RhYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAgICAgICAgICAgdXRpbGl0eUlkLFxuICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uOiB0aGlzLmVudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb24oKSxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogU0hBUkVEX0lOU1RSVUNUSU9OX0hUVFBfT1BUSU9OU1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdDUklURVJJQScsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBNb2RhbENyaXRlcmlhVGFiQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgICAgICAgICBhY2NlcHRhbmNlQ3JpdGVyaWFDb250YWluZXJJZDogYWNjZXB0YW5jZXNDcml0ZXJpYSxcbiAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXM6IHRoaXMuZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXMoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgfVxufVxuIiwiQGlmIChzdG9yYWdlT2JqZWN0T3BlcmF0aW9uKCkuc3RvcmFnZUVsZW1lbnQ7IGFzIG9wZXJhdGlvbikge1xuICAgIDxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgICAgIDxjdWktbW9kYWwtaGVhZGVyXG4gICAgICAgICAgICBbaGVhZGluZ109XCJvcGVyYXRpb24udGl0bGVcIlxuICAgICAgICAgICAgW2lzSW5zZXJ0ZWRdPVwiaXNJbnNlcnRlZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGN1aS1sZXR0ZXItYm94XG4gICAgICAgICAgICAgICAgY3VpTW9kYWxIZWFkZXJJY29uXG4gICAgICAgICAgICAgICAgbGV0dGVyPVwib1wiXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPVwidmFyKC0tY3VpLXN1Y2Nlc3MpXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIEBpZiAoaXNJbnNlcnRlZCgpKSB7XG4gICAgICAgICAgICAgICAgPGN1aS1tb2RhbC1oZWFkZXItaW5zZXJ0ZWQtYnV0dG9uc1xuICAgICAgICAgICAgICAgICAgICBjdWlNb2RhbEhlYWRlckJ1dHRvbnNcbiAgICAgICAgICAgICAgICAgICAgKHVuYmluZENsaWNrZWQpPVwib25VbmJpbmRPcGVyYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9jdWktbW9kYWwtaGVhZGVyPlxuXG4gICAgICAgIEBpZiAodGFicygpLmxlbmd0aCkge1xuICAgICAgICAgICAgPGN1aS1tb2RhbC1oZWFkZXItdGFicyBbdGFic109XCJ0YWJzKClcIiAvPlxuICAgICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2VzdGltYXRlZFRpbWU+XG4gICAgICAgIHt7IHB0Rm9ybWF0KCkgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNlZGl0b3I+XG4gICAgICAgIDxjdWktZWRpdG9yXG4gICAgICAgICAgICBbZWRpdG9yQXBpSWRdPVwib3BlcmF0aW9uLnRleHRDb250YWluZXJJZFwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImVkaXRvckNvbmZpZ1wiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbn1cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3BlcmF0aW9uLXBhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3VpL21vZGFsLW9wZXJhdGlvbi1wYXJ0L21vZGFsLW9wZXJhdGlvbi1wYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91aS9tb2RhbC1vcGVyYXRpb24tcGFydC9tb2RhbC1vcGVyYXRpb24tcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFHUCwrQkFBK0IsRUFFbEMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUs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MEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNMLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLG1DQUFtQzt3QkFDbkMsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDVUlfRElBTE9HX0NPTlRFWFQsIEN1aURpYWxvZ0NvbnRleHQsIEN1aUxldHRlckJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgY3JlYXRlRWRpdG9yVG9vbHMsIEN1aUVkaXRvckNvbXBvbmVudCwgQ3VpRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZWRpdG9yJztcbmltcG9ydCB7IEN1aU51bGxhYmxlLCBDdWlUaW1lIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7XG4gICAgQ3VpSm9iQXBpU2VydmljZSxcbiAgICBKb2JUeXBlLFxuICAgIE1vZGFsSGVhZGVyVGFiLFxuICAgIE9wZXJhdGlvbixcbiAgICBTSEFSRURfSU5TVFJVQ1RJT05fSFRUUF9PUFRJT05TLFxuICAgIFN0b3JhZ2VPYmplY3Rcbn0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IE1vZGFsSW5mb1RhYkNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWluZm8tdGFiJztcbmltcG9ydCB7IE1vZGFsUmVzb3VyY2VzVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtcmVzb3VyY2VzLXRhYic7XG5pbXBvcnQgeyBNb2RhbEluc3RydWN0aW9uc1RhYkNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWluc3RydWN0aW9ucy10YWInO1xuaW1wb3J0IHsgTW9kYWxIZWFkZXJUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaGVhZGVyLXRhYnMnO1xuaW1wb3J0IHsgTW9kYWxIZWFkZXJJbnNlcnRlZEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1oZWFkZXItaW5zZXJ0ZWQtYnV0dG9ucyc7XG5pbXBvcnQgeyBNb2RhbENyaXRlcmlhVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtY3JpdGVyaWEtdGFiJztcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBNb2RhbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWhlYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLW1vZGFsLW9wZXJhdGlvbi1wYXJ0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpTGV0dGVyQm94Q29tcG9uZW50LFxuICAgICAgICBDdWlFZGl0b3JDb21wb25lbnQsXG4gICAgICAgIE1vZGFsSGVhZGVyVGFic0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxIZWFkZXJJbnNlcnRlZEJ1dHRvbnNDb21wb25lbnQsXG4gICAgICAgIE1vZGFsSGVhZGVyVGFic0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxIZWFkZXJUYWJzQ29tcG9uZW50LFxuICAgICAgICBNb2RhbEhlYWRlclRhYnNDb21wb25lbnQsXG4gICAgICAgIE1vZGFsSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmVcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1vcGVyYXRpb24tcGFydC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL21vZGFsLW9wZXJhdGlvbi1wYXJ0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBNb2RhbE9wZXJhdGlvblBhcnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3Q8Q3VpRGlhbG9nQ29udGV4dD4oQ1VJX0RJQUxPR19DT05URVhUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpvYkFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpSm9iQXBpU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFicyA9IHNpZ25hbDxNb2RhbEhlYWRlclRhYltdPihbXSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHRGb3JtYXQgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICBDdWlUaW1lLmZyb21QVCh0aGlzLnN0b3JhZ2VPYmplY3RPcGVyYXRpb24oKS5zdG9yYWdlRWxlbWVudC5lc3RpbWF0ZWRUaW1lKS50b1N0cmluZygnSEg6TU06U1MnKVxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgZWRpdG9yQ29uZmlnID0gY29tcHV0ZWQ8Q3VpRWRpdG9yQ29uZmlnPigoKSA9PiAoe1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgdG9vbHM6IGNyZWF0ZUVkaXRvclRvb2xzKHRoaXMuZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXMoKSlcbiAgICB9KSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNJbnNlcnRlZCA9IGlucHV0KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGFpbmVySWQgPSBpbnB1dDxDdWlOdWxsYWJsZTxzdHJpbmc+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBxdWFudHVtSWQgPSBpbnB1dDxDdWlOdWxsYWJsZTxzdHJpbmc+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBqb2JJZCA9IGlucHV0PEN1aU51bGxhYmxlPHN0cmluZz4+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RvcmFnZU9iamVjdE9wZXJhdGlvbiA9IGlucHV0LnJlcXVpcmVkPFN0b3JhZ2VPYmplY3Q8T3BlcmF0aW9uPj4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnRVcmxGb3JSZXNvdXJjZXMgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVudmlyb25tZW50VXJsRm9ySW5zdHJ1Y3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXN0aW1hdGVkVGltZSA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnZXN0aW1hdGVkVGltZScpO1xuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3IgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCdlZGl0b3InKTtcblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFNlY3Rpb25Db21wb25lbnQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25VbmJpbmRPcGVyYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcklkID0gdGhpcy5jb250YWluZXJJZCgpO1xuICAgICAgICBjb25zdCBvcGVyYXRpb25JZCA9IHRoaXMuc3RvcmFnZU9iamVjdE9wZXJhdGlvbigpLmlkO1xuICAgICAgICBjb25zdCBxdWFudHVtSWQgPSB0aGlzLnF1YW50dW1JZCgpO1xuICAgICAgICBjb25zdCBqb2JJZCA9IHRoaXMuam9iSWQoKTtcblxuICAgICAgICBpZiAoIWNvbnRhaW5lcklkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXF1YW50dW1JZCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB7XG4gICAgICAgICAgICAgICAgam9iSWQ6IGpvYklkISxcbiAgICAgICAgICAgICAgICBwb2ludGVyT3BlcmF0aW9uc0lkOiBjb250YWluZXJJZCxcbiAgICAgICAgICAgICAgICBzZWxlY3RPcGVyYXRpb246IG9wZXJhdGlvbklkLFxuICAgICAgICAgICAgICAgIHR5cGU6IEpvYlR5cGUuSm9iQ29ycmVjdGl2ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5qb2JBcGlTZXJ2aWNlLnVuYmluZE9wZXJhdGlvbihyZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5jb21wbGV0ZVdpdGgocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuam9iQXBpU2VydmljZVxuICAgICAgICAgICAgLnVuYmluZE9wZXJhdGlvbih7XG4gICAgICAgICAgICAgICAgam9iSWQ6IGpvYklkISxcbiAgICAgICAgICAgICAgICBwb2ludGVyT3BlcmF0aW9uc0lkOiBjb250YWluZXJJZCxcbiAgICAgICAgICAgICAgICBzZWxlY3RPcGVyYXRpb246IG9wZXJhdGlvbklkLFxuICAgICAgICAgICAgICAgIHR5cGU6IEpvYlR5cGUuSm9iTWFpblxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmNvbXBsZXRlV2l0aChyZXNwb25zZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZWN0aW9uQ29tcG9uZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzdG9yYWdlRWxlbWVudDogeyB1dGlsaXR5SWQsIGFjY2VwdGFuY2VzQ3JpdGVyaWEgfVxuICAgICAgICB9ID0gdGhpcy5zdG9yYWdlT2JqZWN0T3BlcmF0aW9uKCk7XG5cbiAgICAgICAgdGhpcy50YWJzLnNldChbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdJTkZPJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IE1vZGFsSW5mb1RhYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHsgY29udGVudDogeyBFU1RJTUFURURfVElNRTogdGhpcy5lc3RpbWF0ZWRUaW1lKCksIERFU0NSSVBUSU9OOiB0aGlzLmVkaXRvcigpIH0gfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1JFU09VUkNFUycsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBNb2RhbFJlc291cmNlc1RhYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHsgdXRpbGl0eUlkIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdJTlNUUlVDVElPTlMnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogTW9kYWxJbnN0cnVjdGlvbnNUYWJDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaW5wdXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHV0aWxpdHlJZCxcbiAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnRVcmxGb3JJbnN0cnVjdGlvbjogdGhpcy5lbnZpcm9ubWVudFVybEZvckluc3RydWN0aW9uKCksXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IFNIQVJFRF9JTlNUUlVDVElPTl9IVFRQX09QVElPTlNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnQ1JJVEVSSUEnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogTW9kYWxDcml0ZXJpYVRhYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0YW5jZUNyaXRlcmlhQ29udGFpbmVySWQ6IGFjY2VwdGFuY2VzQ3JpdGVyaWEsXG4gICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50VXJsRm9yUmVzb3VyY2VzOiB0aGlzLmVudmlyb25tZW50VXJsRm9yUmVzb3VyY2VzKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiIsIkBpZiAoc3RvcmFnZU9iamVjdE9wZXJhdGlvbigpLnN0b3JhZ2VFbGVtZW50OyBhcyBvcGVyYXRpb24pIHtcbiAgICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgICAgICA8Y3VpLW1vZGFsLWhlYWRlclxuICAgICAgICAgICAgW2hlYWRpbmddPVwib3BlcmF0aW9uLnRpdGxlXCJcbiAgICAgICAgICAgIFtpc0luc2VydGVkXT1cImlzSW5zZXJ0ZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxjdWktbGV0dGVyLWJveFxuICAgICAgICAgICAgICAgIGN1aU1vZGFsSGVhZGVySWNvblxuICAgICAgICAgICAgICAgIGxldHRlcj1cIm9cIlxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcj1cInZhcigtLWN1aS1zdWNjZXNzKVwiXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICBAaWYgKGlzSW5zZXJ0ZWQoKSkge1xuICAgICAgICAgICAgICAgIDxjdWktbW9kYWwtaGVhZGVyLWluc2VydGVkLWJ1dHRvbnNcbiAgICAgICAgICAgICAgICAgICAgY3VpTW9kYWxIZWFkZXJCdXR0b25zXG4gICAgICAgICAgICAgICAgICAgICh1bmJpbmRDbGlja2VkKT1cIm9uVW5iaW5kT3BlcmF0aW9uKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvY3VpLW1vZGFsLWhlYWRlcj5cblxuICAgICAgICBAaWYgKHRhYnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxjdWktbW9kYWwtaGVhZGVyLXRhYnMgW3RhYnNdPVwidGFicygpXCIgLz5cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNlc3RpbWF0ZWRUaW1lPlxuICAgICAgICB7eyBwdEZvcm1hdCgpIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZWRpdG9yPlxuICAgICAgICA8Y3VpLWVkaXRvclxuICAgICAgICAgICAgW2VkaXRvckFwaUlkXT1cIm9wZXJhdGlvbi50ZXh0Q29udGFpbmVySWRcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJlZGl0b3JDb25maWcoKVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbn1cbiJdfQ==
@@ -10726,7 +10726,7 @@ class ModalDividedSectionComponent {
10726
10726
  this.selectedStorageObject.set(this.storageObjects()?.[0]);
10727
10727
  }
10728
10728
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalDividedSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10729
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalDividedSectionComponent, isStandalone: true, selector: "cui-modal-divided-section", inputs: { storageElementTypeName: { classPropertyName: "storageElementTypeName", publicName: "storageElementTypeName", isSignal: true, isRequired: true, transformFunction: null }, storageObjects: { classPropertyName: "storageObjects", publicName: "storageObjects", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiCardWrapperComponent, selector: "cui-card-wrapper, [cuiCardWrapper]", inputs: ["withBorder", "isSelected"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: UtilityInfoReadonlyComponent, selector: "cui-utility-info-readonly", inputs: ["environmentUrlForResources", "environmentUrlForInstruction", "framerId", "element"] }] }); }
10729
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalDividedSectionComponent, isStandalone: true, selector: "cui-modal-divided-section", inputs: { storageElementTypeName: { classPropertyName: "storageElementTypeName", publicName: "storageElementTypeName", isSignal: true, isRequired: true, transformFunction: null }, storageObjects: { classPropertyName: "storageObjects", publicName: "storageObjects", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiCardWrapperComponent, selector: "cui-card-wrapper, [cuiCardWrapper]", inputs: ["withBorder", "isSelected"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: UtilityInfoReadonlyComponent, selector: "cui-utility-info-readonly", inputs: ["environmentUrlForResources", "environmentUrlForInstruction", "framerId", "element"] }] }); }
10730
10730
  }
10731
10731
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalDividedSectionComponent, decorators: [{
10732
10732
  type: Component,
@@ -10737,7 +10737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
10737
10737
  CuiCardWrapperComponent,
10738
10738
  TranslocoDirective,
10739
10739
  UtilityInfoReadonlyComponent
10740
- ], template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"] }]
10740
+ ], template: "<ng-container *transloco=\"let t\">\n @if (storageObjects(); as storageObjects) {\n @if (storageObjects.length) {\n <div class=\"block block_left\">\n <ul class=\"list\">\n @for (storageObject of storageObjects; track storageObject.id) {\n @if (storageObject.storageElement; as storageElement) {\n <li>\n <button\n type=\"button\"\n [title]=\"storageElement.title\"\n cuiCardWrapper\n [isSelected]=\"selectedStorageObject()?.id === storageObject.id\"\n (click)=\"onSelect(storageObject)\"\n >\n <div class=\"button__content\">\n @switch (storageElementTypeName()) {\n @case ('CRITERIA') {\n <cui-letter-box\n letter=\"c\"\n backgroundColor=\"var(--cui-violet-400)\"\n />\n }\n @case ('INSTRUCTION') {\n <cui-svg\n icon=\"cuiIconFileText\"\n color=\"var(--cui-base-500)\"\n />\n }\n }\n <span class=\"button__text\">{{ storageElement.title }}</span>\n </div>\n </button>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"block block_right\">\n @if (selectedStorageObject()?.storageElement; as selectedStorageElement) {\n <header class=\"header\">{{ selectedStorageElement.title }}</header>\n <cui-utility-info-readonly\n [framerId]=\"selectedFramerId()!\"\n [environmentUrlForResources]=\"environmentUrlForResources()\"\n [environmentUrlForInstruction]=\"environmentUrlForInstruction()\"\n class=\"utility-info\"\n />\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t(emptyStateSubtitle())\" />\n }\n }\n</ng-container>\n", styles: [":host{display:contents}.block{overflow:auto;flex:1}.block_left{padding:15px 16px 16px 24px}.block_right{display:flex;flex-direction:column;border-left:1px solid var(--cui-base-200)}.list{display:flex;flex-direction:column;gap:8px}.button__content{display:flex;gap:8px}.button__text{max-width:482px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header{padding:11px 24px 11px 15px;font-weight:500;font-size:16px;line-height:24px}.utility-info{padding-right:24px}\n"] }]
10741
10741
  }] });
10742
10742
 
10743
10743
  class ModalHeaderInsertedButtonsComponent {
@@ -11587,7 +11587,7 @@ class ModalInstructionsTabComponent {
11587
11587
  this.utilityId = input.required();
11588
11588
  this.environmentUrlForInstruction = input.required();
11589
11589
  this.context = input.required();
11590
- this.storageObjectInstructions = signal([]);
11590
+ this.storageObjectInstructions = signal(null);
11591
11591
  }
11592
11592
  ngOnInit() {
11593
11593
  this.initInstructions();
@@ -11666,14 +11666,17 @@ class ModalOperationPartComponent {
11666
11666
  constructor() {
11667
11667
  this.context = inject(CUI_DIALOG_CONTEXT);
11668
11668
  this.jobApiService = inject(CuiJobApiService);
11669
- this.editorConfig = { readOnly: true, requestOptions: SHARED_CONSTRUCTION_HTTP_OPTIONS };
11670
11669
  this.tabs = signal([]);
11671
11670
  this.ptFormat = computed(() => CuiTime.fromPT(this.storageObjectOperation().storageElement.estimatedTime).toString('HH:MM:SS'));
11672
- this.storageObjectOperation = input.required();
11671
+ this.editorConfig = computed(() => ({
11672
+ readOnly: true,
11673
+ tools: createEditorTools(this.environmentUrlForResources())
11674
+ }));
11673
11675
  this.isInserted = input(false);
11674
11676
  this.containerId = input();
11675
11677
  this.quantumId = input();
11676
11678
  this.jobId = input();
11679
+ this.storageObjectOperation = input.required();
11677
11680
  this.environmentUrlForResources = input.required();
11678
11681
  this.environmentUrlForInstruction = input.required();
11679
11682
  this.estimatedTime = viewChild.required('estimatedTime');
@@ -11746,7 +11749,7 @@ class ModalOperationPartComponent {
11746
11749
  ]);
11747
11750
  }
11748
11751
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11749
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
11752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
11750
11753
  }
11751
11754
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, decorators: [{
11752
11755
  type: Component,
@@ -11760,7 +11763,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
11760
11763
  ModalHeaderTabsComponent,
11761
11764
  ModalHeaderComponent,
11762
11765
  TranslocoDirective
11763
- ], template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"] }]
11766
+ ], template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"] }]
11764
11767
  }] });
11765
11768
 
11766
11769
  class RenderDynamicModalComponent {