@cuby-ui/core 0.0.321 → 0.0.323

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.
Files changed (84) hide show
  1. package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
  2. package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
  3. package/esm2022/interfaces/image.mjs +2 -0
  4. package/esm2022/interfaces/index.mjs +2 -1
  5. package/esm2022/widgets/criterion-info/criterion-info.component.mjs +137 -0
  6. package/esm2022/widgets/criterion-info/index.mjs +2 -0
  7. package/esm2022/widgets/criterion-info-form/criterion-info-form.component.mjs +147 -0
  8. package/esm2022/widgets/criterion-info-form/criterion-info-form.options.mjs +2 -0
  9. package/esm2022/widgets/criterion-info-form/index.mjs +2 -0
  10. package/esm2022/widgets/criterion-readonly-info/criterion-readonly-info.component.mjs +72 -0
  11. package/esm2022/widgets/criterion-readonly-info/index.mjs +2 -0
  12. package/esm2022/widgets/index.mjs +6 -2
  13. package/esm2022/widgets/instruction-info/index.mjs +2 -0
  14. package/esm2022/widgets/instruction-info/instruction-info.component.mjs +147 -0
  15. package/esm2022/widgets/instruction-info-form/index.mjs +2 -0
  16. package/esm2022/widgets/instruction-info-form/instruction-info-form.component.mjs +153 -0
  17. package/esm2022/widgets/instruction-info-form/instruction-info-form.options.mjs +2 -0
  18. package/esm2022/widgets/instruction-readonly-info/index.mjs +2 -0
  19. package/esm2022/widgets/instruction-readonly-info/instruction-readonly-info.component.mjs +72 -0
  20. package/esm2022/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +40 -0
  21. package/esm2022/widgets/utility-modal/components/criterion-modal-create/index.mjs +2 -0
  22. package/esm2022/widgets/utility-modal/components/index.mjs +5 -0
  23. package/esm2022/widgets/utility-modal/components/instruction-modal-create/index.mjs +2 -0
  24. package/esm2022/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +40 -0
  25. package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/index.mjs +2 -0
  26. package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.mjs +40 -0
  27. package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/index.mjs +2 -0
  28. package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +40 -0
  29. package/esm2022/widgets/utility-modal/components/readonly-utility-modal/index.mjs +2 -0
  30. package/esm2022/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +42 -0
  31. package/esm2022/widgets/utility-modal/components/utility-modal-create/index.mjs +2 -0
  32. package/esm2022/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +55 -0
  33. package/esm2022/widgets/utility-modal/index.mjs +4 -0
  34. package/esm2022/widgets/utility-modal/utility-modal.component.mjs +22 -0
  35. package/esm2022/widgets/utility-modal/utility-modal.options.mjs +3 -0
  36. package/esm2022/widgets/utility-readonly-thumbnail/index.mjs +2 -0
  37. package/esm2022/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.mjs +15 -0
  38. package/esm2022/widgets/utility-thumbnail/index.mjs +2 -0
  39. package/esm2022/widgets/utility-thumbnail/utility-thumbnail.component.mjs +94 -0
  40. package/fesm2022/cuby-ui-core.mjs +982 -235
  41. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  42. package/interfaces/image.d.ts +5 -0
  43. package/interfaces/index.d.ts +1 -0
  44. package/package.json +4 -4
  45. package/widgets/categories/components/category-item/category-item.component.d.ts +2 -2
  46. package/widgets/criterion-info/criterion-info.component.d.ts +43 -0
  47. package/widgets/criterion-info/index.d.ts +1 -0
  48. package/widgets/criterion-info-form/criterion-info-form.component.d.ts +39 -0
  49. package/widgets/criterion-info-form/criterion-info-form.options.d.ts +7 -0
  50. package/widgets/criterion-info-form/index.d.ts +2 -0
  51. package/widgets/criterion-readonly-info/criterion-readonly-info.component.d.ts +26 -0
  52. package/widgets/criterion-readonly-info/index.d.ts +1 -0
  53. package/widgets/index.d.ts +5 -1
  54. package/widgets/instruction-info/index.d.ts +1 -0
  55. package/widgets/instruction-info/instruction-info.component.d.ts +45 -0
  56. package/widgets/instruction-info-form/index.d.ts +2 -0
  57. package/widgets/{utility-info/utility-info.component.d.ts → instruction-info-form/instruction-info-form.component.d.ts} +12 -23
  58. package/widgets/{utility-info/utility-info.options.d.ts → instruction-info-form/instruction-info-form.options.d.ts} +3 -3
  59. package/widgets/instruction-readonly-info/index.d.ts +1 -0
  60. package/widgets/instruction-readonly-info/instruction-readonly-info.component.d.ts +26 -0
  61. package/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.d.ts +18 -0
  62. package/widgets/utility-modal/components/criterion-modal-create/index.d.ts +1 -0
  63. package/widgets/utility-modal/components/index.d.ts +4 -0
  64. package/widgets/utility-modal/components/instruction-modal-create/index.d.ts +1 -0
  65. package/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.d.ts +18 -0
  66. package/widgets/utility-modal/components/readonly-criterion-modal/index.d.ts +1 -0
  67. package/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.d.ts +16 -0
  68. package/widgets/utility-modal/components/readonly-instruction-modal/index.d.ts +1 -0
  69. package/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.d.ts +16 -0
  70. package/widgets/utility-modal/components/readonly-utility-modal/index.d.ts +1 -0
  71. package/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.d.ts +18 -0
  72. package/widgets/utility-modal/components/utility-modal-create/index.d.ts +1 -0
  73. package/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.d.ts +25 -0
  74. package/widgets/utility-modal/index.d.ts +3 -0
  75. package/widgets/utility-modal/utility-modal.component.d.ts +10 -0
  76. package/widgets/utility-modal/utility-modal.options.d.ts +12 -0
  77. package/widgets/utility-readonly-thumbnail/index.d.ts +1 -0
  78. package/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.d.ts +8 -0
  79. package/widgets/utility-thumbnail/index.d.ts +1 -0
  80. package/widgets/utility-thumbnail/utility-thumbnail.component.d.ts +21 -0
  81. package/esm2022/widgets/utility-info/index.mjs +0 -2
  82. package/esm2022/widgets/utility-info/utility-info.component.mjs +0 -249
  83. package/esm2022/widgets/utility-info/utility-info.options.mjs +0 -2
  84. package/widgets/utility-info/index.d.ts +0 -2
@@ -0,0 +1,2 @@
1
+ export { CuiCriterionModalCreateComponent } from './criterion-modal-create.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2NyaXRlcmlvbi1tb2RhbC1jcmVhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlDcml0ZXJpb25Nb2RhbENyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ export { CuiCriterionModalCreateComponent } from './criterion-modal-create';
2
+ export { CuiInstructionModalCreateComponent } from './instruction-modal-create';
3
+ export { CuiReadonlyCriterionModalComponent } from './readonly-criterion-modal';
4
+ export { CuiReadonlyInstructionModalComponent } from './readonly-instruction-modal';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQ3JpdGVyaW9uTW9kYWxDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuL2NyaXRlcmlvbi1tb2RhbC1jcmVhdGUnO1xuZXhwb3J0IHsgQ3VpSW5zdHJ1Y3Rpb25Nb2RhbENyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vaW5zdHJ1Y3Rpb24tbW9kYWwtY3JlYXRlJztcbmV4cG9ydCB7IEN1aVJlYWRvbmx5Q3JpdGVyaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbCc7XG5leHBvcnQgeyBDdWlSZWFkb25seUluc3RydWN0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiInstructionModalCreateComponent } from './instruction-modal-create.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUluc3RydWN0aW9uTW9kYWxDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, signal } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { CUI_DIALOG_CONTEXT, CuiButtonModule, CuiSvgModule } from '../../../../components';
4
+ import { UTILITY_MODAL_SERVICE_TOKEN } from '../../utility-modal.options';
5
+ import { CuiUtilityModalCreateComponent } from '../utility-modal-create';
6
+ import { CuiInstructionInfoComponent } from '../../../instruction-info';
7
+ import * as i0 from "@angular/core";
8
+ export class CuiInstructionModalCreateComponent {
9
+ constructor() {
10
+ this.destroyRef = inject(DestroyRef);
11
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
12
+ this.instructionApiService = inject(UTILITY_MODAL_SERVICE_TOKEN);
13
+ this.isCreated = false;
14
+ this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
15
+ this.tools = this.cuiDialogContext.data.tools;
16
+ this.header = this.cuiDialogContext.data.header;
17
+ this._instruction = computed(() => signal(this.initialUtility()));
18
+ this.isFormValid = signal(false);
19
+ this.instruction = computed(() => this._instruction()());
20
+ this.initialUtility = input.required();
21
+ }
22
+ onInstructionCreated(storageNodeId) {
23
+ if (this.isCreated || this.initialUtility()) {
24
+ return;
25
+ }
26
+ this.instructionApiService.createUtility(storageNodeId)
27
+ .pipe(takeUntilDestroyed(this.destroyRef))
28
+ .subscribe((instruction) => {
29
+ this.isCreated = true;
30
+ this._instruction().set(instruction);
31
+ });
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiInstructionModalCreateComponent, isStandalone: true, selector: "ng-component", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<cui-utility-modal-create [initialUtility]=\"instruction()\">\n <cui-instruction-info\n [instruction]=\"instruction()\"\n [tools]=\"tools\"\n [editorResourceUrl]=\"editorResourceUrl\"\n (validationChanged)=\"isFormValid.set($event)\"\n (instructionCreated)=\"onInstructionCreated($event)\"\n />\n</cui-utility-modal-create>\n", dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiUtilityModalCreateComponent, selector: "cui-utility-modal-create", inputs: ["initialUtility"] }, { kind: "component", type: CuiInstructionInfoComponent, selector: "cui-instruction-info", inputs: ["instruction", "tools", "editorResourceUrl"], outputs: ["instructionChange", "validationChanged", "instructionCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionModalCreateComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ imports: [CuiButtonModule, CuiSvgModule, CuiUtilityModalCreateComponent, CuiInstructionInfoComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-utility-modal-create [initialUtility]=\"instruction()\">\n <cui-instruction-info\n [instruction]=\"instruction()\"\n [tools]=\"tools\"\n [editorResourceUrl]=\"editorResourceUrl\"\n (validationChanged)=\"isFormValid.set($event)\"\n (instructionCreated)=\"onInstructionCreated($event)\"\n />\n</cui-utility-modal-create>\n" }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24tbW9kYWwtY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LW1vZGFsL2NvbXBvbmVudHMvaW5zdHJ1Y3Rpb24tbW9kYWwtY3JlYXRlL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZS9pbnN0cnVjdGlvbi1tb2RhbC1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBUXRFLE1BQU0sT0FBTyxrQ0FBa0M7SUFOL0M7UUFPcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5QywwQkFBcUIsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUVyRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRVAsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxVQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTdDLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNELGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdkQsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUE4QixDQUFDO0tBY2pGO0lBWmEsb0JBQW9CLENBQUMsYUFBcUI7UUFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDbEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQXlDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBN0JRLGtDQUFrQzttR0FBbEMsa0NBQWtDLHNPQ2YvQyxnWEFTQSwyQ0RDYyxlQUFlLDhCQUFFLFlBQVksK0JBQUUsOEJBQThCLGlHQUFFLDJCQUEyQjs7NEZBSzNGLGtDQUFrQztrQkFOOUMsU0FBUzs4QkFDRyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUUsMkJBQTJCLENBQUMsY0FDekYsSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHR5cGUge0luc3RydWN0aW9uLCBTdG9yYWdlT2JqZWN0fSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDVUlfRElBTE9HX0NPTlRFWFQsIEN1aUJ1dHRvbk1vZHVsZSwgQ3VpU3ZnTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQge1VUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTn0gZnJvbSAnLi4vLi4vdXRpbGl0eS1tb2RhbC5vcHRpb25zJztcbmltcG9ydCB7Q3VpVXRpbGl0eU1vZGFsQ3JlYXRlQ29tcG9uZW50fSBmcm9tICcuLi91dGlsaXR5LW1vZGFsLWNyZWF0ZSc7XG5pbXBvcnQge0N1aUluc3RydWN0aW9uSW5mb0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW5zdHJ1Y3Rpb24taW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtDdWlCdXR0b25Nb2R1bGUsIEN1aVN2Z01vZHVsZSwgQ3VpVXRpbGl0eU1vZGFsQ3JlYXRlQ29tcG9uZW50LCBDdWlJbnN0cnVjdGlvbkluZm9Db21wb25lbnRdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpSW5zdHJ1Y3Rpb25Nb2RhbENyZWF0ZUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25BcGlTZXJ2aWNlID0gaW5qZWN0KFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTik7XG5cbiAgICBwcml2YXRlIGlzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvclJlc291cmNlVXJsID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuZWRpdG9yUmVzb3VyY2VVcmw7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2xzID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEudG9vbHM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlYWRlciA9IHRoaXMuY3VpRGlhbG9nQ29udGV4dC5kYXRhLmhlYWRlcjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luc3RydWN0aW9uID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuaW5pdGlhbFV0aWxpdHkoKSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRm9ybVZhbGlkID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5zdHJ1Y3Rpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9pbnN0cnVjdGlvbigpKCkpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxVdGlsaXR5ID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxJbnN0cnVjdGlvbj4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25JbnN0cnVjdGlvbkNyZWF0ZWQoc3RvcmFnZU5vZGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ3JlYXRlZCB8fCB0aGlzLmluaXRpYWxVdGlsaXR5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25BcGlTZXJ2aWNlLmNyZWF0ZVV0aWxpdHkoc3RvcmFnZU5vZGVJZClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaW5zdHJ1Y3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb24oKS5zZXQoaW5zdHJ1Y3Rpb24gYXMgU3RvcmFnZU9iamVjdDxJbnN0cnVjdGlvbj4pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGN1aS11dGlsaXR5LW1vZGFsLWNyZWF0ZSBbaW5pdGlhbFV0aWxpdHldPVwiaW5zdHJ1Y3Rpb24oKVwiPlxuICAgIDxjdWktaW5zdHJ1Y3Rpb24taW5mb1xuICAgICAgICBbaW5zdHJ1Y3Rpb25dPVwiaW5zdHJ1Y3Rpb24oKVwiXG4gICAgICAgIFt0b29sc109XCJ0b29sc1wiXG4gICAgICAgIFtlZGl0b3JSZXNvdXJjZVVybF09XCJlZGl0b3JSZXNvdXJjZVVybFwiXG4gICAgICAgICh2YWxpZGF0aW9uQ2hhbmdlZCk9XCJpc0Zvcm1WYWxpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIChpbnN0cnVjdGlvbkNyZWF0ZWQpPVwib25JbnN0cnVjdGlvbkNyZWF0ZWQoJGV2ZW50KVwiXG4gICAgLz5cbjwvY3VpLXV0aWxpdHktbW9kYWwtY3JlYXRlPlxuIl19
@@ -0,0 +1,2 @@
1
+ export { CuiReadonlyCriterionModalComponent } from './readonly-criterion-modal.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aVJlYWRvbmx5Q3JpdGVyaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
2
+ import { TranslocoDirective } from '@jsverse/transloco';
3
+ import { CUI_DIALOG_CONTEXT, CuiBadgeModule, CuiButtonModule, CuiRenderDynamicComponentsService, CuiSvgModule } from '../../../../components';
4
+ import { CuiCriterionReadonlyInfoComponent } from '../../../criterion-readonly-info';
5
+ import { CuiReadonlyUtilityModalComponent } from '../readonly-utility-modal';
6
+ import { CuiCriterionModalCreateComponent } from '../criterion-modal-create';
7
+ import * as i0 from "@angular/core";
8
+ export class CuiReadonlyCriterionModalComponent {
9
+ constructor() {
10
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
11
+ this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
12
+ this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
13
+ this.tools = this.cuiDialogContext.data.tools;
14
+ this.header = this.cuiDialogContext.data.header;
15
+ this.isLoading = signal(false);
16
+ this.framerId = computed(() => this.criterion().storageElement.framerCriterionId);
17
+ this.criterion = input.required();
18
+ }
19
+ onUnbind(criterion) {
20
+ this.cuiRenderDynamicComponentsService.closeAll();
21
+ this.cuiRenderDynamicComponentsService.open({
22
+ component: CuiCriterionModalCreateComponent,
23
+ inputs: { criterion }
24
+ });
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyCriterionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiReadonlyCriterionModalComponent, isStandalone: true, selector: "cui-readonly-criterion-modal", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<cui-readonly-utility-modal\n [utility]=\"criterion()\"\n (utilityUnbinded)=\"onUnbind($event)\"\n>\n <ng-container *transloco=\"let t\">\n <div\n #scrollContainer\n class=\"info\"\n >\n <h3 class=\"title\">{{ criterion().storageElement.title }}</h3>\n\n <cui-criterion-readonly-info\n [framerId]=\"framerId()\"\n [editorResourceUrl]=\"editorResourceUrl\"\n [tools]=\"tools\"\n [element]=\"scrollContainer\"\n class=\"info__block\"\n />\n </div>\n </ng-container>\n</cui-readonly-utility-modal>\n", styles: [".info{padding:16px 8px;display:flex;flex-direction:column;height:calc(100vh - 177px);overflow:auto}.info__block{overflow:visible}.title{padding-right:16px;padding-left:16px;font-weight:500;font-size:16px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiCriterionReadonlyInfoComponent, selector: "cui-criterion-readonly-info", inputs: ["framerId", "element", "tools", "editorResourceUrl"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiReadonlyUtilityModalComponent, selector: "cui-readonly-utility-modal", inputs: ["utility"], outputs: ["utilityUnbinded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyCriterionModalComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'cui-readonly-criterion-modal', imports: [
32
+ CuiBadgeModule,
33
+ CuiButtonModule,
34
+ CuiSvgModule,
35
+ CuiCriterionReadonlyInfoComponent,
36
+ TranslocoDirective,
37
+ CuiReadonlyUtilityModalComponent
38
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-readonly-utility-modal\n [utility]=\"criterion()\"\n (utilityUnbinded)=\"onUnbind($event)\"\n>\n <ng-container *transloco=\"let t\">\n <div\n #scrollContainer\n class=\"info\"\n >\n <h3 class=\"title\">{{ criterion().storageElement.title }}</h3>\n\n <cui-criterion-readonly-info\n [framerId]=\"framerId()\"\n [editorResourceUrl]=\"editorResourceUrl\"\n [tools]=\"tools\"\n [element]=\"scrollContainer\"\n class=\"info__block\"\n />\n </div>\n </ng-container>\n</cui-readonly-utility-modal>\n", styles: [".info{padding:16px 8px;display:flex;flex-direction:column;height:calc(100vh - 177px);overflow:auto}.info__block{overflow:visible}.title{padding-right:16px;padding-left:16px;font-weight:500;font-size:16px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow:visible}\n"] }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktY3JpdGVyaW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LW1vZGFsL2NvbXBvbmVudHMvcmVhZG9ubHktY3JpdGVyaW9uLW1vZGFsL3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbC9yZWFkb25seS1jcml0ZXJpb24tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGlDQUFpQyxFQUNqQyxZQUFZLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQjdFLE1BQU0sT0FBTyxrQ0FBa0M7SUFmL0M7UUFnQnFCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlDLHNDQUFpQyxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBRTVFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDakUsVUFBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUUzQyxjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhGLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUE0QixDQUFDO0tBUzFFO0lBUGEsUUFBUSxDQUFDLFNBQXdDO1FBQ3ZELElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFNBQVMsRUFBRSxnQ0FBZ0M7WUFDM0MsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBbkJRLGtDQUFrQzttR0FBbEMsa0NBQWtDLHVPQy9CL0MscXBCQXFCQSxtV0RGUSxjQUFjLDhCQUNkLGVBQWUsOEJBQ2YsWUFBWSwrQkFDWixpQ0FBaUMsdUlBQ2pDLGtCQUFrQixnTUFDbEIsZ0NBQWdDOzs0RkFPM0Isa0NBQWtDO2tCQWY5QyxTQUFTOytCQUNJLDhCQUE4QixXQUMvQjt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixpQ0FBaUM7d0JBQ2pDLGtCQUFrQjt3QkFDbEIsZ0NBQWdDO3FCQUNuQyxjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgdHlwZSB7IENyaXRlcmlvbiwgU3RvcmFnZU9iamVjdCB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5cbmltcG9ydCB7XG4gICAgQ1VJX0RJQUxPR19DT05URVhULFxuICAgIEN1aUJhZGdlTW9kdWxlLFxuICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICBDdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c1NlcnZpY2UsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpQ3JpdGVyaW9uUmVhZG9ubHlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3JpdGVyaW9uLXJlYWRvbmx5LWluZm8nO1xuaW1wb3J0IHsgQ3VpUmVhZG9ubHlVdGlsaXR5TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9yZWFkb25seS11dGlsaXR5LW1vZGFsJztcbmltcG9ydCB7IFV0aWxpdHlFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS1tb2RhbC5vcHRpb25zJztcbmltcG9ydCB7IEN1aUNyaXRlcmlvbk1vZGFsQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLXJlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlCYWRnZU1vZHVsZSxcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlTdmdNb2R1bGUsXG4gICAgICAgIEN1aUNyaXRlcmlvblJlYWRvbmx5SW5mb0NvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBDdWlSZWFkb25seVV0aWxpdHlNb2RhbENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJ3JlYWRvbmx5LWNyaXRlcmlvbi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICdyZWFkb25seS1jcml0ZXJpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEN1aVJlYWRvbmx5Q3JpdGVyaW9uTW9kYWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlID0gaW5qZWN0KEN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5lZGl0b3JSZXNvdXJjZVVybDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHMgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS50b29scztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaGVhZGVyO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZyYW1lcklkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jcml0ZXJpb24oKS5zdG9yYWdlRWxlbWVudC5mcmFtZXJDcml0ZXJpb25JZCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY3JpdGVyaW9uID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxDcml0ZXJpb24+PigpO1xuXG4gICAgcHJvdGVjdGVkIG9uVW5iaW5kKGNyaXRlcmlvbjogU3RvcmFnZU9iamVjdDxVdGlsaXR5RWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c1NlcnZpY2UuY2xvc2VBbGwoKTtcbiAgICAgICAgdGhpcy5jdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c1NlcnZpY2Uub3Blbih7XG4gICAgICAgICAgICBjb21wb25lbnQ6IEN1aUNyaXRlcmlvbk1vZGFsQ3JlYXRlQ29tcG9uZW50LFxuICAgICAgICAgICAgaW5wdXRzOiB7IGNyaXRlcmlvbiB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxjdWktcmVhZG9ubHktdXRpbGl0eS1tb2RhbFxuICAgIFt1dGlsaXR5XT1cImNyaXRlcmlvbigpXCJcbiAgICAodXRpbGl0eVVuYmluZGVkKT1cIm9uVW5iaW5kKCRldmVudClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNzY3JvbGxDb250YWluZXJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5mb1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInRpdGxlXCI+e3sgY3JpdGVyaW9uKCkuc3RvcmFnZUVsZW1lbnQudGl0bGUgfX08L2gzPlxuXG4gICAgICAgICAgICA8Y3VpLWNyaXRlcmlvbi1yZWFkb25seS1pbmZvXG4gICAgICAgICAgICAgICAgW2ZyYW1lcklkXT1cImZyYW1lcklkKClcIlxuICAgICAgICAgICAgICAgIFtlZGl0b3JSZXNvdXJjZVVybF09XCJlZGl0b3JSZXNvdXJjZVVybFwiXG4gICAgICAgICAgICAgICAgW3Rvb2xzXT1cInRvb2xzXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudF09XCJzY3JvbGxDb250YWluZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5mb19fYmxvY2tcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2N1aS1yZWFkb25seS11dGlsaXR5LW1vZGFsPlxuIl19
@@ -0,0 +1,2 @@
1
+ export { CuiReadonlyInstructionModalComponent } from './readonly-instruction-modal.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpUmVhZG9ubHlJbnN0cnVjdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9yZWFkb25seS1pbnN0cnVjdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
2
+ import { TranslocoDirective } from '@jsverse/transloco';
3
+ import { CUI_DIALOG_CONTEXT, CuiBadgeModule, CuiButtonModule, CuiRenderDynamicComponentsService, CuiSvgModule } from '../../../../components';
4
+ import { CuiInstructionReadonlyInfoComponent } from '../../../instruction-readonly-info';
5
+ import { CuiInstructionModalCreateComponent } from '../instruction-modal-create';
6
+ import { CuiReadonlyUtilityModalComponent } from '../readonly-utility-modal';
7
+ import * as i0 from "@angular/core";
8
+ export class CuiReadonlyInstructionModalComponent {
9
+ constructor() {
10
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
11
+ this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
12
+ this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
13
+ this.tools = this.cuiDialogContext.data.tools;
14
+ this.header = this.cuiDialogContext.data.header;
15
+ this.isLoading = signal(false);
16
+ this.framerId = computed(() => this.instruction().storageElement.framerInstructionId);
17
+ this.instruction = input.required();
18
+ }
19
+ onUnbind(instruction) {
20
+ this.cuiRenderDynamicComponentsService.closeAll();
21
+ this.cuiRenderDynamicComponentsService.open({
22
+ component: CuiInstructionModalCreateComponent,
23
+ inputs: { initialUtility: instruction }
24
+ });
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyInstructionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiReadonlyInstructionModalComponent, isStandalone: true, selector: "cui-readonly-instruction-modal", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <cui-readonly-utility-modal [utility]=\"instruction()\" (utilityUnbinded)=\"onUnbind($event)\">\n <div\n #scrollContainer\n class=\"info\"\n >\n <h3 class=\"title\">{{ instruction().storageElement.title }}</h3>\n\n <cui-instruction-readonly-info\n [framerId]=\"framerId()\"\n [editorResourceUrl]=\"editorResourceUrl\"\n [tools]=\"tools\"\n [element]=\"scrollContainer\"\n class=\"info__block\"\n />\n </div>\n </cui-readonly-utility-modal>\n</ng-container>\n", styles: [".info{padding:16px 8px;display:flex;flex-direction:column;height:calc(100vh - 177px);overflow:auto}.info__block{overflow:visible}.title{padding-right:16px;padding-left:16px;font-weight:500;font-size:16px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiInstructionReadonlyInfoComponent, selector: "cui-instruction-readonly-info", inputs: ["framerId", "element", "tools", "editorResourceUrl"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiReadonlyUtilityModalComponent, selector: "cui-readonly-utility-modal", inputs: ["utility"], outputs: ["utilityUnbinded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyInstructionModalComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'cui-readonly-instruction-modal', imports: [
32
+ CuiBadgeModule,
33
+ CuiButtonModule,
34
+ CuiSvgModule,
35
+ CuiInstructionReadonlyInfoComponent,
36
+ TranslocoDirective,
37
+ CuiReadonlyUtilityModalComponent
38
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <cui-readonly-utility-modal [utility]=\"instruction()\" (utilityUnbinded)=\"onUnbind($event)\">\n <div\n #scrollContainer\n class=\"info\"\n >\n <h3 class=\"title\">{{ instruction().storageElement.title }}</h3>\n\n <cui-instruction-readonly-info\n [framerId]=\"framerId()\"\n [editorResourceUrl]=\"editorResourceUrl\"\n [tools]=\"tools\"\n [element]=\"scrollContainer\"\n class=\"info__block\"\n />\n </div>\n </cui-readonly-utility-modal>\n</ng-container>\n", styles: [".info{padding:16px 8px;display:flex;flex-direction:column;height:calc(100vh - 177px);overflow:auto}.info__block{overflow:visible}.title{padding-right:16px;padding-left:16px;font-weight:500;font-size:16px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow:visible}\n"] }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktaW5zdHJ1Y3Rpb24tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktbW9kYWwvY29tcG9uZW50cy9yZWFkb25seS1pbnN0cnVjdGlvbi1tb2RhbC9yZWFkb25seS1pbnN0cnVjdGlvbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsL3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGVBQWUsRUFDZixpQ0FBaUMsRUFDakMsWUFBWSxFQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakYsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBaUIzRSxNQUFNLE9BQU8sb0NBQW9DO0lBZmpEO1FBZ0JxQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5QyxzQ0FBaUMsR0FBRyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUU1RSxzQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0MsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVwRixnQkFBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQThCLENBQUM7S0FTOUU7SUFQYSxRQUFRLENBQUMsV0FBMEM7UUFDekQsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUM7WUFDeEMsU0FBUyxFQUFFLGtDQUFrQztZQUM3QyxNQUFNLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFO1NBQzFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBbkJRLG9DQUFvQzttR0FBcEMsb0NBQW9DLCtPQy9CakQsbXNCQWtCQSxtV0RDUSxjQUFjLDhCQUNkLGVBQWUsOEJBQ2YsWUFBWSwrQkFDWixtQ0FBbUMseUlBQ25DLGtCQUFrQixnTUFDbEIsZ0NBQWdDOzs0RkFPM0Isb0NBQW9DO2tCQWZoRCxTQUFTOytCQUNJLGdDQUFnQyxXQUNqQzt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixtQ0FBbUM7d0JBQ25DLGtCQUFrQjt3QkFDbEIsZ0NBQWdDO3FCQUNuQyxjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgdHlwZSB7IEluc3RydWN0aW9uLCBTdG9yYWdlT2JqZWN0IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcblxuaW1wb3J0IHtcbiAgICBDVUlfRElBTE9HX0NPTlRFWFQsXG4gICAgQ3VpQmFkZ2VNb2R1bGUsXG4gICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgIEN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZSxcbiAgICBDdWlTdmdNb2R1bGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDdWlJbnN0cnVjdGlvblJlYWRvbmx5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2luc3RydWN0aW9uLXJlYWRvbmx5LWluZm8nO1xuaW1wb3J0IHsgQ3VpSW5zdHJ1Y3Rpb25Nb2RhbENyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2luc3RydWN0aW9uLW1vZGFsLWNyZWF0ZSc7XG5pbXBvcnQgeyBVdGlsaXR5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxpdHktbW9kYWwub3B0aW9ucyc7XG5pbXBvcnQge0N1aVJlYWRvbmx5VXRpbGl0eU1vZGFsQ29tcG9uZW50fSBmcm9tICcuLi9yZWFkb25seS11dGlsaXR5LW1vZGFsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktcmVhZG9ubHktaW5zdHJ1Y3Rpb24tbW9kYWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQmFkZ2VNb2R1bGUsXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlJbnN0cnVjdGlvblJlYWRvbmx5SW5mb0NvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBDdWlSZWFkb25seVV0aWxpdHlNb2RhbENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJ3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJ3JlYWRvbmx5LWluc3RydWN0aW9uLW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlSZWFkb25seUluc3RydWN0aW9uTW9kYWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlID0gaW5qZWN0KEN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5lZGl0b3JSZXNvdXJjZVVybDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHMgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS50b29scztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaGVhZGVyO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZyYW1lcklkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnN0cnVjdGlvbigpLnN0b3JhZ2VFbGVtZW50LmZyYW1lckluc3RydWN0aW9uSWQpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGluc3RydWN0aW9uID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxJbnN0cnVjdGlvbj4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25VbmJpbmQoaW5zdHJ1Y3Rpb246IFN0b3JhZ2VPYmplY3Q8VXRpbGl0eUVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlLmNsb3NlQWxsKCk7XG4gICAgICAgIHRoaXMuY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlLm9wZW4oe1xuICAgICAgICAgICAgY29tcG9uZW50OiBDdWlJbnN0cnVjdGlvbk1vZGFsQ3JlYXRlQ29tcG9uZW50LFxuICAgICAgICAgICAgaW5wdXRzOiB7IGluaXRpYWxVdGlsaXR5OiBpbnN0cnVjdGlvbiB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgPGN1aS1yZWFkb25seS11dGlsaXR5LW1vZGFsIFt1dGlsaXR5XT1cImluc3RydWN0aW9uKClcIiAodXRpbGl0eVVuYmluZGVkKT1cIm9uVW5iaW5kKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAjc2Nyb2xsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbmZvXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ0aXRsZVwiPnt7IGluc3RydWN0aW9uKCkuc3RvcmFnZUVsZW1lbnQudGl0bGUgfX08L2gzPlxuXG4gICAgICAgICAgICAgICAgPGN1aS1pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvXG4gICAgICAgICAgICAgICAgICAgIFtmcmFtZXJJZF09XCJmcmFtZXJJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2VkaXRvclJlc291cmNlVXJsXT1cImVkaXRvclJlc291cmNlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2xzXT1cInRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRdPVwic2Nyb2xsQ29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmZvX19ibG9ja1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvY3VpLXJlYWRvbmx5LXV0aWxpdHktbW9kYWw+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiReadonlyUtilityModalComponent } from './readonly-utility-modal.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LXV0aWxpdHktbW9kYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlSZWFkb25seVV0aWxpdHlNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vcmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,42 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, DestroyRef, inject, input, output, signal } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { TranslocoDirective } from '@jsverse/transloco';
5
+ import { finalize } from 'rxjs';
6
+ import { CUI_DIALOG_CONTEXT, CuiBadgeModule, CuiButtonModule, CuiSvgModule } from '../../../../components';
7
+ import { UTILITY_MODAL_SERVICE_TOKEN } from '../../utility-modal.options';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../components/badge/badge.component";
10
+ import * as i2 from "../../../../components/button/button.component";
11
+ import * as i3 from "../../../../components/svg/svg.component";
12
+ export class CuiReadonlyUtilityModalComponent {
13
+ constructor() {
14
+ this.destroyRef = inject(DestroyRef);
15
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
16
+ this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
17
+ this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
18
+ this.tools = this.cuiDialogContext.data.tools;
19
+ this.header = this.cuiDialogContext.data.header;
20
+ this.isLoading = signal(false);
21
+ this.utility = input.required();
22
+ this.utilityUnbinded = output();
23
+ }
24
+ onClose() {
25
+ this.cuiDialogContext.completeWith();
26
+ }
27
+ onUnbind() {
28
+ this.isLoading.set(true);
29
+ this.utilityModalService.unbindUtility(this.utility().id)
30
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.isLoading.set(false)))
31
+ .subscribe((utility) => {
32
+ this.utilityUnbinded.emit(utility);
33
+ });
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyUtilityModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiReadonlyUtilityModalComponent, isStandalone: true, selector: "cui-readonly-utility-modal", inputs: { utility: { classPropertyName: "utility", publicName: "utility", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { utilityUnbinded: "utilityUnbinded" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n\n <cui-badge\n color=\"violet\"\n class=\"badge\"\n >\n <cui-svg\n class=\"icon\"\n icon=\"cuiIconVariant\"\n color=\"var(--cui-violet-400)\"\n />\n {{ t('INSERTED') }}\n </cui-badge>\n\n <button\n type=\"button\"\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n class=\"button\"\n (click)=\"onClose()\"\n ></button>\n </header>\n\n <ng-content />\n\n <div class=\"actions\">\n <button\n type=\"button\"\n #button\n cuiButton\n size=\"sm\"\n icon=\"cuiIconLinkBroken\"\n appearance=\"action-violet\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onUnbind()\"\n >\n {{ t('UNBIND') }}\n </button>\n </div>\n</ng-container>\n", styles: [".header{display:flex;gap:8px;align-items:center;padding:16px 24px}.header__title{font-weight:500;font-size:16px;line-height:24px}.button{margin-left:auto}.actions{padding:16px;border-top:1px solid var(--cui-base-200)}.badge{display:flex;gap:4px;align-items:center;font-weight:500;font-size:14px;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "component", type: i1.CuiBadgeComponent, selector: "cui-badge", inputs: ["color", "size", "isWithDot"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyUtilityModalComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'cui-readonly-utility-modal', imports: [CuiBadgeModule, CuiButtonModule, CuiSvgModule, NgTemplateOutlet, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n\n <cui-badge\n color=\"violet\"\n class=\"badge\"\n >\n <cui-svg\n class=\"icon\"\n icon=\"cuiIconVariant\"\n color=\"var(--cui-violet-400)\"\n />\n {{ t('INSERTED') }}\n </cui-badge>\n\n <button\n type=\"button\"\n cuiButton\n appearance=\"ghost\"\n icon=\"cuiIconX\"\n class=\"button\"\n (click)=\"onClose()\"\n ></button>\n </header>\n\n <ng-content />\n\n <div class=\"actions\">\n <button\n type=\"button\"\n #button\n cuiButton\n size=\"sm\"\n icon=\"cuiIconLinkBroken\"\n appearance=\"action-violet\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onUnbind()\"\n >\n {{ t('UNBIND') }}\n </button>\n </div>\n</ng-container>\n", styles: [".header{display:flex;gap:8px;align-items:center;padding:16px 24px}.header__title{font-weight:500;font-size:16px;line-height:24px}.button{margin-left:auto}.actions{padding:16px;border-top:1px solid var(--cui-base-200)}.badge{display:flex;gap:4px;align-items:center;font-weight:500;font-size:14px;line-height:20px}\n"] }]
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LXV0aWxpdHktbW9kYWwvcmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LXV0aWxpdHktbW9kYWwvcmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQXVDLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBVS9HLE1BQU0sT0FBTyxnQ0FBZ0M7SUFSN0M7UUFTcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxNQUFNLENBQXNDLDJCQUEyQixDQUFDLENBQUM7UUFFN0Ysc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxVQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTNDLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFFMUQsb0JBQWUsR0FBRyxNQUFNLEVBQWlDLENBQUM7S0FpQjdFO0lBZmEsT0FBTztRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQ0Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNuQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDNUM7YUFDQSxTQUFTLENBQUMsQ0FBQyxPQUFzQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOytHQTdCUSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxnUkNsQjdDLGtrQ0EyQ0EsbVhEL0JjLGNBQWMsZ0pBQUUsZUFBZSwwTkFBRSxZQUFZLHdLQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQU1wRixnQ0FBZ0M7a0JBUjVDLFNBQVM7K0JBQ0ksNEJBQTRCLFdBQzdCLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsY0FDbEYsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yYWdlT2JqZWN0IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcblxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhULCBDdWlCYWRnZU1vZHVsZSwgQ3VpQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTiwgVXRpbGl0eUVsZW1lbnQsIFV0aWxpdHlNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlsaXR5LW1vZGFsLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1yZWFkb25seS11dGlsaXR5LW1vZGFsJyxcbiAgICBpbXBvcnRzOiBbQ3VpQmFkZ2VNb2R1bGUsIEN1aUJ1dHRvbk1vZHVsZSwgQ3VpU3ZnTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBUcmFuc2xvY29EaXJlY3RpdmVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICdyZWFkb25seS11dGlsaXR5LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJ3JlYWRvbmx5LXV0aWxpdHktbW9kYWwuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEN1aVJlYWRvbmx5VXRpbGl0eU1vZGFsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlEaWFsb2dDb250ZXh0ID0gaW5qZWN0KENVSV9ESUFMT0dfQ09OVEVYVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1dGlsaXR5TW9kYWxTZXJ2aWNlID0gaW5qZWN0PFV0aWxpdHlNb2RhbFNlcnZpY2U8VXRpbGl0eUVsZW1lbnQ+PihVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvclJlc291cmNlVXJsID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuZWRpdG9yUmVzb3VyY2VVcmw7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2xzID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEudG9vbHM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlYWRlciA9IHRoaXMuY3VpRGlhbG9nQ29udGV4dC5kYXRhLmhlYWRlcjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWxpdHkgPSBpbnB1dC5yZXF1aXJlZDxTdG9yYWdlT2JqZWN0PFV0aWxpdHlFbGVtZW50Pj4oKTtcblxuICAgIHB1YmxpYyByZWFkb25seSB1dGlsaXR5VW5iaW5kZWQgPSBvdXRwdXQ8U3RvcmFnZU9iamVjdDxVdGlsaXR5RWxlbWVudD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWlEaWFsb2dDb250ZXh0LmNvbXBsZXRlV2l0aCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblVuYmluZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLnV0aWxpdHlNb2RhbFNlcnZpY2UudW5iaW5kVXRpbGl0eSh0aGlzLnV0aWxpdHkoKS5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh1dGlsaXR5OiBTdG9yYWdlT2JqZWN0PFV0aWxpdHlFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0eVVuYmluZGVkLmVtaXQodXRpbGl0eSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIiAvPlxuXG4gICAgICAgIDxjdWktYmFkZ2VcbiAgICAgICAgICAgIGNvbG9yPVwidmlvbGV0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25WYXJpYW50XCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS12aW9sZXQtNDAwKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3sgdCgnSU5TRVJURUQnKSB9fVxuICAgICAgICA8L2N1aS1iYWRnZT5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGN1aUJ1dHRvblxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICAgICAgICAgIGljb249XCJjdWlJY29uWFwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPG5nLWNvbnRlbnQgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgI2J1dHRvblxuICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25MaW5rQnJva2VuXCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb24tdmlvbGV0XCJcbiAgICAgICAgICAgIFtpc0xvYWRlclNob3duXT1cImlzTG9hZGluZygpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblVuYmluZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdCgnVU5CSU5EJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiUtilityModalCreateComponent } from './utility-modal-create.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3V0aWxpdHktbW9kYWwtY3JlYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpVXRpbGl0eU1vZGFsQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi91dGlsaXR5LW1vZGFsLWNyZWF0ZS5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,55 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
3
+ import { TranslocoDirective } from '@jsverse/transloco';
4
+ import { CUI_WINDOW } from '@cuby-ui/cdk';
5
+ import { CUI_DIALOG_CONTEXT, CuiButtonModule, CuiSvgModule } from '../../../../components';
6
+ import { CuiLoaderComponent } from '../../../loader';
7
+ import { UTILITY_MODAL_SERVICE_TOKEN } from "../../utility-modal.options";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../components/button/button.component";
10
+ export class CuiUtilityModalCreateComponent {
11
+ constructor() {
12
+ this.window = inject(CUI_WINDOW);
13
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
14
+ this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
15
+ this.prevUtility = this.cuiDialogContext.data.utility;
16
+ this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
17
+ this.tools = this.cuiDialogContext.data.tools;
18
+ this.header = this.cuiDialogContext.data.header;
19
+ this._utility = computed(() => signal(this.initialUtility()));
20
+ this.isFormValid = signal(false);
21
+ this.utility = computed(() => this._utility()());
22
+ this.initialUtility = input.required();
23
+ }
24
+ ngOnInit() {
25
+ this.initWindowUnloadEvent();
26
+ }
27
+ ngOnDestroy() {
28
+ this.window.onbeforeunload = null;
29
+ }
30
+ onSave() {
31
+ this.cuiDialogContext.completeWith(this.initialUtility() ? { prevId: this.prevUtility.id, ...this.utility() } : this.utility());
32
+ }
33
+ onCancel() {
34
+ this.destroyUtility();
35
+ const returnedValue = this.initialUtility() ? this.utility() : null;
36
+ this.cuiDialogContext.completeWith(returnedValue);
37
+ }
38
+ initWindowUnloadEvent() {
39
+ this.window.onbeforeunload = () => this.destroyUtility();
40
+ }
41
+ destroyUtility() {
42
+ const utility = this.utility();
43
+ if (!utility || this.initialUtility()) {
44
+ return;
45
+ }
46
+ this.utilityModalService.deleteUtility(utility).subscribe();
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityModalCreateComponent, isStandalone: true, selector: "cui-utility-modal-create", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n\n <div class=\"header__content\">\n <cui-loader />\n\n <div class=\"actions\">\n @if (!initialUtility()) {\n <button\n type=\"button\"\n cuiButton\n appearance=\"secondary\"\n (click)=\"onCancel()\"\n >\n {{ t('CANCEL') }}\n </button>\n }\n\n <button\n type=\"button\"\n cuiButton\n [disabled]=\"!isFormValid()\"\n appearance=\"action-violet\"\n (click)=\"onSave()\"\n >\n {{ t('DONE') }}\n </button>\n </div>\n </div>\n </header>\n\n <ng-content />\n</div>\n", styles: [".header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header__content{display:flex;gap:8px}.actions{display:flex;gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "component", type: CuiLoaderComponent, selector: "cui-loader" }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalCreateComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'cui-utility-modal-create', imports: [CuiButtonModule, CuiLoaderComponent, CuiSvgModule, NgTemplateOutlet, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <header class=\"header\">\n <ng-container [ngTemplateOutlet]=\"header\" />\n\n <div class=\"header__content\">\n <cui-loader />\n\n <div class=\"actions\">\n @if (!initialUtility()) {\n <button\n type=\"button\"\n cuiButton\n appearance=\"secondary\"\n (click)=\"onCancel()\"\n >\n {{ t('CANCEL') }}\n </button>\n }\n\n <button\n type=\"button\"\n cuiButton\n [disabled]=\"!isFormValid()\"\n appearance=\"action-violet\"\n (click)=\"onSave()\"\n >\n {{ t('DONE') }}\n </button>\n </div>\n </div>\n </header>\n\n <ng-content />\n</div>\n", styles: [".header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header__content{display:flex;gap:8px}.actions{display:flex;gap:16px}\n"] }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktbW9kYWwvY29tcG9uZW50cy91dGlsaXR5LW1vZGFsLWNyZWF0ZS91dGlsaXR5LW1vZGFsLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3V0aWxpdHktbW9kYWwtY3JlYXRlL3V0aWxpdHktbW9kYWwtY3JlYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7OztBQVUxRixNQUFNLE9BQU8sOEJBQThCO0lBUjNDO1FBU3FCLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFMUQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUvQyxzQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFN0MsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFL0MsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQyxDQUFDO0tBcUNwRjtJQW5DVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVTLE1BQU07UUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDOUYsQ0FBQztJQUNOLENBQUM7SUFFUyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRU8sY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEUsQ0FBQzsrR0FwRFEsOEJBQThCO21HQUE5Qiw4QkFBOEIsa1BDbkIzQyw2L0JBcUNBLHdORHhCYyxlQUFlLDJOQUFFLGtCQUFrQixzREFBRSxZQUFZLCtCQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQU14Riw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0ksMEJBQTBCLFdBQzNCLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxjQUN0RixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgdHlwZSB7IFN0b3JhZ2VPYmplY3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xuaW1wb3J0IHsgQ1VJX1dJTkRPVyB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5cbmltcG9ydCB7IENVSV9ESUFMT0dfQ09OVEVYVCwgQ3VpQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xvYWRlcic7XG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlFbGVtZW50IH0gZnJvbSBcIi4uLy4uL3V0aWxpdHktbW9kYWwub3B0aW9uc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LW1vZGFsLWNyZWF0ZScsXG4gICAgaW1wb3J0czogW0N1aUJ1dHRvbk1vZHVsZSwgQ3VpTG9hZGVyQ29tcG9uZW50LCBDdWlTdmdNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFRyYW5zbG9jb0RpcmVjdGl2ZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXRpbGl0eS1tb2RhbC1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi91dGlsaXR5LW1vZGFsLWNyZWF0ZS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eU1vZGFsQ3JlYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbGl0eU1vZGFsU2VydmljZSA9IGluamVjdChVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmV2VXRpbGl0eSA9IHRoaXMuY3VpRGlhbG9nQ29udGV4dC5kYXRhLnV0aWxpdHk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5lZGl0b3JSZXNvdXJjZVVybDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHMgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS50b29scztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaGVhZGVyO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdXRpbGl0eSA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLmluaXRpYWxVdGlsaXR5KCkpKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Zvcm1WYWxpZCA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHV0aWxpdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl91dGlsaXR5KCkoKSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbFV0aWxpdHkgPSBpbnB1dC5yZXF1aXJlZDxTdG9yYWdlT2JqZWN0PFV0aWxpdHlFbGVtZW50Pj4oKTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0V2luZG93VW5sb2FkRXZlbnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2luZG93Lm9uYmVmb3JldW5sb2FkID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1aURpYWxvZ0NvbnRleHQuY29tcGxldGVXaXRoKFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsVXRpbGl0eSgpID8geyBwcmV2SWQ6IHRoaXMucHJldlV0aWxpdHkuaWQsIC4uLnRoaXMudXRpbGl0eSgpIH0gOiB0aGlzLnV0aWxpdHkoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95VXRpbGl0eSgpO1xuXG4gICAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLmluaXRpYWxVdGlsaXR5KCkgPyB0aGlzLnV0aWxpdHkoKSA6IG51bGw7XG5cbiAgICAgICAgdGhpcy5jdWlEaWFsb2dDb250ZXh0LmNvbXBsZXRlV2l0aChyZXR1cm5lZFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRXaW5kb3dVbmxvYWRFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aW5kb3cub25iZWZvcmV1bmxvYWQgPSAoKTogdm9pZCA9PiB0aGlzLmRlc3Ryb3lVdGlsaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95VXRpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXRpbGl0eSA9IHRoaXMudXRpbGl0eSgpO1xuXG4gICAgICAgIGlmICghdXRpbGl0eSB8fCB0aGlzLmluaXRpYWxVdGlsaXR5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXRpbGl0eU1vZGFsU2VydmljZS5kZWxldGVVdGlsaXR5KHV0aWxpdHkpLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cIndyYXBwZXJcIlxuICAgICp0cmFuc2xvY289XCJsZXQgdFwiXG4+XG4gICAgPGhlYWRlciBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclwiIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fY29udGVudFwiPlxuICAgICAgICAgICAgPGN1aS1sb2FkZXIgLz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCFpbml0aWFsVXRpbGl0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnQ0FOQ0VMJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb24tdmlvbGV0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ0RPTkUnKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export { CuiUtilityModalComponent } from './utility-modal.component';
3
+ export * from './utility-modal.options';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbmV4cG9ydCB7IEN1aVV0aWxpdHlNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdXRpbGl0eS1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5LW1vZGFsLm9wdGlvbnMnO1xuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, ChangeDetectionStrategy, inject } from '@angular/core';
2
+ import { CUI_DIALOG_CONTEXT, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService } from '../../components';
3
+ import * as i0 from "@angular/core";
4
+ export class CuiUtilityModalComponent {
5
+ constructor() {
6
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
7
+ this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
8
+ this.utility = this.cuiDialogContext.data.utility;
9
+ this.initialComponent = this.cuiDialogContext.data.initialComponent;
10
+ this.cuiRenderDynamicComponentsService.open({
11
+ component: this.initialComponent,
12
+ inputs: { initialUtility: this.utility }
13
+ });
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CuiUtilityModalComponent, isStandalone: true, selector: "cui-utility-modal", providers: [CuiRenderDynamicComponentsService], ngImport: i0, template: "<cui-render-dynamic-components />\n", styles: [".host{display:block;height:calc(100vh - 40px)}\n"], dependencies: [{ kind: "component", type: CuiRenderDynamicComponentsComponent, selector: "cui-render-dynamic-components" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'cui-utility-modal', imports: [CuiRenderDynamicComponentsComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiRenderDynamicComponentsService], template: "<cui-render-dynamic-components />\n", styles: [".host{display:block;height:calc(100vh - 40px)}\n"] }]
21
+ }], ctorParameters: () => [] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC91dGlsaXR5LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LW1vZGFsL3V0aWxpdHktbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUNILGtCQUFrQixFQUNsQixtQ0FBbUMsRUFDbkMsaUNBQWlDLEVBQ3BDLE1BQU0sa0JBQWtCLENBQUM7O0FBVzFCLE1BQU0sT0FBTyx3QkFBd0I7SUFPakM7UUFOaUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsc0NBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFHOUUsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQztZQUN4QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUNoQyxNQUFNLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQVpRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGdFQUZ0QixDQUFDLGlDQUFpQyxDQUFDLDBCQ2ZsRCxxQ0FDQSwwR0RTYyxtQ0FBbUM7OzRGQU9wQyx3QkFBd0I7a0JBVHBDLFNBQVM7K0JBQ0ksbUJBQW1CLFdBQ3BCLENBQUMsbUNBQW1DLENBQUMsY0FDbEMsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBDVUlfRElBTE9HX0NPTlRFWFQsXG4gICAgQ3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNDb21wb25lbnQsXG4gICAgQ3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LW1vZGFsJyxcbiAgICBpbXBvcnRzOiBbQ3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNDb21wb25lbnRdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICd1dGlsaXR5LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJ3V0aWxpdHktbW9kYWwuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0N1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eU1vZGFsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aURpYWxvZ0NvbnRleHQgPSBpbmplY3QoQ1VJX0RJQUxPR19DT05URVhUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZSA9IGluamVjdChDdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c1NlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHV0aWxpdHkgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS51dGlsaXR5O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbml0aWFsQ29tcG9uZW50ID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaW5pdGlhbENvbXBvbmVudDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZS5vcGVuKHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5pbml0aWFsQ29tcG9uZW50LFxuICAgICAgICAgICAgaW5wdXRzOiB7IGluaXRpYWxVdGlsaXR5OiB0aGlzLnV0aWxpdHkgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8Y3VpLXJlbmRlci1keW5hbWljLWNvbXBvbmVudHMgLz5cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const UTILITY_MODAL_SERVICE_TOKEN = new InjectionToken('UTILITY_MODAL_SERVICE_TOKEN');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktbW9kYWwvdXRpbGl0eS1tb2RhbC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQXNDLDZCQUE2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB0eXBlIHsgSW5zdHJ1Y3Rpb24sIFN0b3JhZ2VPYmplY3QsIENyaXRlcmlvbiB9IGZyb20gXCJAY3VieS11aS9hcGlcIjtcblxuZXhwb3J0IGNvbnN0IFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxVdGlsaXR5TW9kYWxTZXJ2aWNlPFV0aWxpdHlFbGVtZW50Pj4oJ1VUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHlNb2RhbFNlcnZpY2U8VCBleHRlbmRzIFV0aWxpdHlFbGVtZW50PiB7XG4gICAgY3JlYXRlVXRpbGl0eShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTdG9yYWdlT2JqZWN0PFQ+PjtcbiAgICBjaGFuZ2VUaXRsZSh1dGlsaXR5SWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG4gICAgY2hhbmdlRGVzY3JpcHRpb24/KHV0aWxpdHlJZDogc3RyaW5nLCBzaG9ydERlc2NyaXB0aW9uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAgIHVuYmluZFV0aWxpdHkoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8U3RvcmFnZU9iamVjdDxUPj47XG4gICAgZGVsZXRlVXRpbGl0eSh1dGlsaXR5OiBTdG9yYWdlT2JqZWN0PFQ+KTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuZXhwb3J0IHR5cGUgVXRpbGl0eUVsZW1lbnQgPSBJbnN0cnVjdGlvbiB8IENyaXRlcmlvbjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiUtilityReadonlyThumbnailComponent } from './utility-readonly-thumbnail.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlVdGlsaXR5UmVhZG9ubHlUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICcuL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CuiUtilityReadonlyThumbnailComponent {
4
+ constructor() {
5
+ this.thumbnailUrl = input.required();
6
+ this.isVideo = input(false);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityReadonlyThumbnailComponent, isStandalone: true, selector: "cui-utility-readonly-thumbnail", inputs: { thumbnailUrl: { classPropertyName: "thumbnailUrl", publicName: "thumbnailUrl", isSignal: true, isRequired: true, transformFunction: null }, isVideo: { classPropertyName: "isVideo", publicName: "isVideo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let url = thumbnailUrl();\n\n@if (url?.src; as src) {\n @if (isVideo()) {\n <video\n class=\"thumbnail\"\n [src]=\"src\"\n controls\n ></video>\n } @else {\n <img\n class=\"thumbnail\"\n [src]=\"src\"\n [alt]=\"url?.name\"\n />\n }\n}\n", styles: [".thumbnail{width:100%;max-height:271px;object-fit:contain}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'cui-utility-readonly-thumbnail', imports: [], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let url = thumbnailUrl();\n\n@if (url?.src; as src) {\n @if (isVideo()) {\n <video\n class=\"thumbnail\"\n [src]=\"src\"\n controls\n ></video>\n } @else {\n <img\n class=\"thumbnail\"\n [src]=\"src\"\n [alt]=\"url?.name\"\n />\n }\n}\n", styles: [".thumbnail{width:100%;max-height:271px;object-fit:contain}\n"] }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC91dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFXeEUsTUFBTSxPQUFPLG9DQUFvQztJQVJqRDtRQVNvQixpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUMzQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDOytHQUhZLG9DQUFvQzttR0FBcEMsb0NBQW9DLGdYQ1hqRCxzVkFpQkE7OzRGRE5hLG9DQUFvQztrQkFSaEQsU0FBUzsrQkFDSSxnQ0FBZ0MsV0FDakMsRUFBRSxjQUNDLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDdWlJbWdVcmwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktdXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwnLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICd1dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICd1dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eVJlYWRvbmx5VGh1bWJuYWlsQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGh1bWJuYWlsVXJsID0gaW5wdXQucmVxdWlyZWQ8Q3VpSW1nVXJsPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBpc1ZpZGVvID0gaW5wdXQoZmFsc2UpO1xufVxuIiwiQGxldCB1cmwgPSB0aHVtYm5haWxVcmwoKTtcblxuQGlmICh1cmw/LnNyYzsgYXMgc3JjKSB7XG4gICAgQGlmIChpc1ZpZGVvKCkpIHtcbiAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICBjbGFzcz1cInRodW1ibmFpbFwiXG4gICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICBjb250cm9sc1xuICAgICAgICA+PC92aWRlbz5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ0aHVtYm5haWxcIlxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgW2FsdF09XCJ1cmw/Lm5hbWVcIlxuICAgICAgICAvPlxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiUtilityThumbnailComponent } from './utility-thumbnail.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS10aHVtYm5haWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi91dGlsaXR5LXRodW1ibmFpbC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,94 @@
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';
2
+ import { TranslocoDirective, TranslocoService } from '@jsverse/transloco';
3
+ import { CuiFrameApiService } from '@cuby-ui/api';
4
+ import { FilesUploader, takeCaptureFromVideo } from '@cuby-ui/cdk';
5
+ import { CuiAlertService } from '../../components';
6
+ import * as i0 from "@angular/core";
7
+ export class CuiUtilityThumbnailComponent {
8
+ constructor() {
9
+ this.cuiAlertService = inject(CuiAlertService);
10
+ this.translocoService = inject(TranslocoService);
11
+ this.frameApiService = inject(CuiFrameApiService);
12
+ this.MAX_FILE_SIZE = 20971520;
13
+ this.thumbnailUrl = computed(() => {
14
+ const thumbnail = this.thumbnail();
15
+ if (thumbnail?.resource) {
16
+ return thumbnail.resource;
17
+ }
18
+ return this.baseResourceUrl() + thumbnail.fileId;
19
+ });
20
+ this.uploadButtonName = computed(() => {
21
+ const thumbnail = this.thumbnail();
22
+ if (thumbnail?.name) {
23
+ return this.translocoService.translate('REPLACE_FILE');
24
+ }
25
+ return this.translocoService.translate('UPLOAD_FILE');
26
+ });
27
+ this.thumbnail = model.required();
28
+ this.framerId = input.required();
29
+ this.baseResourceUrl = input.required();
30
+ }
31
+ onSelectFile() {
32
+ const types = 'image/jpg, image/jpeg, image/png, video/mp4';
33
+ FilesUploader.uploadFile(types).then((files) => this.getFile(files));
34
+ }
35
+ onRemoveThumbnail() {
36
+ const frameId = this.framerId();
37
+ const fragmentId = this.thumbnail()?.id;
38
+ if (!frameId || !fragmentId) {
39
+ return;
40
+ }
41
+ this.frameApiService.deleteResource(frameId, fragmentId).subscribe(() => {
42
+ this.thumbnail.update((prev) => ({ ...prev, fileId: null, name: null, resource: null }));
43
+ });
44
+ }
45
+ getFile(files) {
46
+ const file = files.item(0);
47
+ if (!file) {
48
+ return;
49
+ }
50
+ if (file.size > this.MAX_FILE_SIZE) {
51
+ this.cuiAlertService
52
+ .open(this.translocoService.translate('INVALID_FILE_SIZE'), {
53
+ status: 'error'
54
+ })
55
+ .subscribe();
56
+ return;
57
+ }
58
+ const isVideo = file.name.split('.').at(-1) === 'mp4';
59
+ const url = URL.createObjectURL(file);
60
+ if (isVideo) {
61
+ this.getCaptureFromVideo(url, file);
62
+ }
63
+ else {
64
+ this.thumbnail.update((prev) => ({ ...prev, name: file.name, resource: url }));
65
+ }
66
+ this.uploadFile(file);
67
+ }
68
+ uploadFile(file) {
69
+ const frameId = this.framerId();
70
+ const fragmentId = this.thumbnail()?.id;
71
+ if (!frameId || !fragmentId) {
72
+ return;
73
+ }
74
+ const formData = new FormData();
75
+ formData.append('resource', file);
76
+ this.frameApiService.uploadResource(formData, frameId, fragmentId).subscribe();
77
+ }
78
+ getCaptureFromVideo(url, file) {
79
+ takeCaptureFromVideo(url).then((capture) => {
80
+ this.thumbnail.update((prev) => ({
81
+ ...prev,
82
+ name: (file?.name || prev?.name),
83
+ resource: capture
84
+ }));
85
+ });
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityThumbnailComponent, isStandalone: true, selector: "cui-utility-thumbnail", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { thumbnail: "thumbnailChange" }, ngImport: i0, template: "<section\n *transloco=\"let t\"\n class=\"file\"\n>\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\n <div class=\"upload\">\n <div class=\"upload-file\">\n @if (thumbnail()?.name; as fileId) {\n <div class=\"image\">\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\n <!-- TODO: ngSrc -->\n <img\n class=\"image__view\"\n [src]=\"thumbnailUrl()\"\n height=\"120\"\n width=\"184\"\n alt=\"Thumbnail\"\n />\n </div>\n }\n <div class=\"info\">\n <button\n type=\"button\"\n cuiButton\n appearance=\"outlined-gray\"\n size=\"xxs\"\n icon=\"cuiIconUpload\"\n (click)=\"onSelectFile()\"\n >\n {{ uploadButtonName() }}\n </button>\n @if (thumbnail()?.name) {\n <button\n class=\"remove-button\"\n cuiButton\n appearance=\"link\"\n size=\"sm\"\n type=\"button\"\n (click)=\"onRemoveThumbnail()\"\n >\n {{ t('REMOVE') }}\n </button>\n }\n\n <span class=\"accepted\">{{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB</span>\n </div>\n </div>\n </div>\n</section>\n", styles: [".file{display:flex;flex-direction:column;gap:4px}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.upload-file{display:flex;align-items:center;gap:8px}.upload-file input[type=file]{display:none}.info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.accepted{color:var(--cui-base-500)}.remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityThumbnailComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'cui-utility-thumbnail', imports: [TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\n *transloco=\"let t\"\n class=\"file\"\n>\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\n <div class=\"upload\">\n <div class=\"upload-file\">\n @if (thumbnail()?.name; as fileId) {\n <div class=\"image\">\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\n <!-- TODO: ngSrc -->\n <img\n class=\"image__view\"\n [src]=\"thumbnailUrl()\"\n height=\"120\"\n width=\"184\"\n alt=\"Thumbnail\"\n />\n </div>\n }\n <div class=\"info\">\n <button\n type=\"button\"\n cuiButton\n appearance=\"outlined-gray\"\n size=\"xxs\"\n icon=\"cuiIconUpload\"\n (click)=\"onSelectFile()\"\n >\n {{ uploadButtonName() }}\n </button>\n @if (thumbnail()?.name) {\n <button\n class=\"remove-button\"\n cuiButton\n appearance=\"link\"\n size=\"sm\"\n type=\"button\"\n (click)=\"onRemoveThumbnail()\"\n >\n {{ t('REMOVE') }}\n </button>\n }\n\n <span class=\"accepted\">{{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB</span>\n </div>\n </div>\n </div>\n</section>\n", styles: [".file{display:flex;flex-direction:column;gap:4px}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.upload-file{display:flex;align-items:center;gap:8px}.upload-file input[type=file]{display:none}.info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.accepted{color:var(--cui-base-500)}.remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}\n"] }]
93
+ }] });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktdGh1bWJuYWlsL3V0aWxpdHktdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LXRodW1ibmFpbC91dGlsaXR5LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBVW5ELE1BQU0sT0FBTyw0QkFBNEI7SUFSekM7UUFTcUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUzQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQztRQUV6QixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRW5DLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDOUIsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLFNBQVUsQ0FBQyxNQUFPLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFDZ0IscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbkMsSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFDNUQsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztLQXlFOUQ7SUF2RWEsWUFBWTtRQUNsQixNQUFNLEtBQUssR0FBRyw2Q0FBNkMsQ0FBQztRQUU1RCxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFUyxpQkFBaUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBZTtRQUMzQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZTtpQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO2dCQUN4RCxNQUFNLEVBQUUsT0FBTzthQUNsQixDQUFDO2lCQUNELFNBQVMsRUFBRSxDQUFDO1lBRWpCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFVO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuRixDQUFDO0lBRU8sbUJBQW1CLENBQUMsR0FBVyxFQUFFLElBQVc7UUFDaEQsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzdCLEdBQUcsSUFBSztnQkFDUixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLENBQUU7Z0JBQ2pDLFFBQVEsRUFBRSxPQUFPO2FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXBHUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixnaUJDakJ6Qyx5ckRBaURBLHkrQkR0Q2Msa0JBQWtCOzs0RkFNbkIsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNJLHVCQUF1QixXQUN4QixDQUFDLGtCQUFrQixDQUFDLGNBQ2pCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VGcmFnbWVudCB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5pbXBvcnQgeyBDdWlGcmFtZUFwaVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9hcGknO1xuaW1wb3J0IHR5cGUgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBGaWxlc1VwbG9hZGVyLCB0YWtlQ2FwdHVyZUZyb21WaWRlbyB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5cbmltcG9ydCB7IEN1aUFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LXRodW1ibmFpbCcsXG4gICAgaW1wb3J0czogW1RyYW5zbG9jb0RpcmVjdGl2ZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJ3V0aWxpdHktdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJ3V0aWxpdHktdGh1bWJuYWlsLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFsZXJ0U2VydmljZSA9IGluamVjdChDdWlBbGVydFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZyYW1lQXBpU2VydmljZSA9IGluamVjdChDdWlGcmFtZUFwaVNlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE1BWF9GSUxFX1NJWkUgPSAyMDk3MTUyMDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0aHVtYm5haWxVcmwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbCA9IHRoaXMudGh1bWJuYWlsKCk7XG5cbiAgICAgICAgaWYgKHRodW1ibmFpbD8ucmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHVtYm5haWwucmVzb3VyY2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVzb3VyY2VVcmwoKSArIHRodW1ibmFpbCEuZmlsZUlkITtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXBsb2FkQnV0dG9uTmFtZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gdGhpcy50aHVtYm5haWwoKTtcblxuICAgICAgICBpZiAodGh1bWJuYWlsPy5uYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnUkVQTEFDRV9GSUxFJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnVVBMT0FEX0ZJTEUnKTtcbiAgICB9KTtcblxuICAgIHB1YmxpYyByZWFkb25seSB0aHVtYm5haWwgPSBtb2RlbC5yZXF1aXJlZDxDdWlOdWxsYWJsZTxSZXNvdXJjZUZyYWdtZW50Pj4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZnJhbWVySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VSZXNvdXJjZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIHByb3RlY3RlZCBvblNlbGVjdEZpbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gJ2ltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCB2aWRlby9tcDQnO1xuXG4gICAgICAgIEZpbGVzVXBsb2FkZXIudXBsb2FkRmlsZSh0eXBlcykudGhlbigoZmlsZXMpID0+IHRoaXMuZ2V0RmlsZShmaWxlcykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblJlbW92ZVRodW1ibmFpbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnRJZCA9IHRoaXMudGh1bWJuYWlsKCk/LmlkO1xuXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mcmFtZUFwaVNlcnZpY2UuZGVsZXRlUmVzb3VyY2UoZnJhbWVJZCwgZnJhZ21lbnRJZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsLnVwZGF0ZSgocHJldikgPT4gKHsgLi4ucHJldiEsIGZpbGVJZDogbnVsbCwgbmFtZTogbnVsbCwgcmVzb3VyY2U6IG51bGwgfSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGUoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlcy5pdGVtKDApO1xuXG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMuTUFYX0ZJTEVfU0laRSkge1xuICAgICAgICAgICAgdGhpcy5jdWlBbGVydFNlcnZpY2VcbiAgICAgICAgICAgICAgICAub3Blbih0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdJTlZBTElEX0ZJTEVfU0laRScpLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1ZpZGVvID0gZmlsZS5uYW1lLnNwbGl0KCcuJykuYXQoLTEpID09PSAnbXA0JztcbiAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcblxuICAgICAgICBpZiAoaXNWaWRlbykge1xuICAgICAgICAgICAgdGhpcy5nZXRDYXB0dXJlRnJvbVZpZGVvKHVybCwgZmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBuYW1lOiBmaWxlLm5hbWUsIHJlc291cmNlOiB1cmwgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBsb2FkRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZyYW1lSWQgPSB0aGlzLmZyYW1lcklkKCk7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50SWQgPSB0aGlzLnRodW1ibmFpbCgpPy5pZDtcblxuICAgICAgICBpZiAoIWZyYW1lSWQgfHwgIWZyYWdtZW50SWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVzb3VyY2UnLCBmaWxlKTtcblxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS51cGxvYWRSZXNvdXJjZShmb3JtRGF0YSwgZnJhbWVJZCwgZnJhZ21lbnRJZCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDYXB0dXJlRnJvbVZpZGVvKHVybDogc3RyaW5nLCBmaWxlPzogRmlsZSk6IHZvaWQge1xuICAgICAgICB0YWtlQ2FwdHVyZUZyb21WaWRlbyh1cmwpLnRoZW4oKGNhcHR1cmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsLnVwZGF0ZSgocHJldikgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2ISxcbiAgICAgICAgICAgICAgICBuYW1lOiAoZmlsZT8ubmFtZSB8fCBwcmV2Py5uYW1lKSEsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IGNhcHR1cmVcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHNlY3Rpb25cbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAgIGNsYXNzPVwiZmlsZVwiXG4+XG4gICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7IHQoJ1RIVU1CTkFJTCcpIH19PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlXCI+XG4gICAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lOyBhcyBmaWxlSWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZV9fbmFtZVwiPnt7IHRodW1ibmFpbCgpPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRPRE86IG5nU3JjIC0tPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltYWdlX192aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwidGh1bWJuYWlsVXJsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTg0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlRodW1ibmFpbFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZWQtZ3JheVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblVwbG9hZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyB1cGxvYWRCdXR0b25OYW1lKCkgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlbW92ZVRodW1ibmFpbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnUkVNT1ZFJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NlcHRlZFwiPnt7IHQoJ0FDQ0VQVEVEJykgfX06IEpQRywgSlBFRywgUE5HLCBNUDQge3sgdCgnVVBfVE8nKSB9fSAyME1CPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19