@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
@@ -1,7 +1,11 @@
1
1
  export { CuiLoaderComponent } from './loader';
2
2
  export { CuiDeleteModalComponent } from './delete-modal';
3
3
  export { CuiCategoriesComponent, CuiSelectedCategoryService } from './categories';
4
- export { CuiUtilityInfoComponent } from './utility-info';
5
4
  export { CuiChecklistBlockComponent } from './checklist-block';
5
+ export { CuiInstructionReadonlyInfoComponent } from './instruction-readonly-info';
6
+ export { CuiCriterionReadonlyInfoComponent } from './criterion-readonly-info';
7
+ export { CuiCriterionInfoComponent } from './criterion-info';
8
+ export { CuiInstructionInfoComponent } from './instruction-info';
6
9
  export { CuiGeneralControlErrorHintComponent } from './general-control-error-hint';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQTZDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWRlcic7XG5leHBvcnQgeyBDdWlEZWxldGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLW1vZGFsJztcbmV4cG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQsIEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yaWVzJztcbmV4cG9ydCB7IEN1aVV0aWxpdHlJbmZvQ29tcG9uZW50LCBDdWlVdGlsaXR5Rm9ybUdyb3VwLCBDdWlVdGlsaXR5Rm9ybVZhbHVlcyB9IGZyb20gJy4vdXRpbGl0eS1pbmZvJztcbmV4cG9ydCB7IEN1aUNoZWNrbGlzdEJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2xpc3QtYmxvY2snO1xuZXhwb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuL2dlbmVyYWwtY29udHJvbC1lcnJvci1oaW50JztcbiJdfQ==
10
+ export * from './utility-modal';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXInO1xuZXhwb3J0IHsgQ3VpRGVsZXRlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2RlbGV0ZS1tb2RhbCc7XG5leHBvcnQgeyBDdWlDYXRlZ29yaWVzQ29tcG9uZW50LCBDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vY2F0ZWdvcmllcyc7XG5leHBvcnQgeyBDdWlDaGVja2xpc3RCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrJztcbmV4cG9ydCB7IEN1aUluc3RydWN0aW9uUmVhZG9ubHlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvJztcbmV4cG9ydCB7IEN1aUNyaXRlcmlvblJlYWRvbmx5SW5mb0NvbXBvbmVudCB9IGZyb20gJy4vY3JpdGVyaW9uLXJlYWRvbmx5LWluZm8nO1xuZXhwb3J0IHsgQ3VpQ3JpdGVyaW9uSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vY3JpdGVyaW9uLWluZm8nO1xuZXhwb3J0IHsgQ3VpSW5zdHJ1Y3Rpb25JbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9pbnN0cnVjdGlvbi1pbmZvJztcbmV4cG9ydCB7IEN1aUdlbmVyYWxDb250cm9sRXJyb3JIaW50Q29tcG9uZW50IH0gZnJvbSAnLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdHktbW9kYWwnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export { CuiInstructionInfoComponent } from './instruction-info.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUluc3RydWN0aW9uSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,147 @@
1
+ import { ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, model, output, signal, untracked, viewChild } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { TranslocoModule, TranslocoService } from '@jsverse/transloco';
4
+ import { finalize, forkJoin } from 'rxjs';
5
+ import { CuiTreeStructNavigatorApiService } from '@cuby-ui/api';
6
+ import { CuiIdService } from '@cuby-ui/cdk';
7
+ import { CuiBadgeModule, CuiButtonModule, CuiDialogModule, CuiFormFieldModule, CuiLabelModule, CuiSvgModule } from '../../components';
8
+ import { CuiCategoriesComponent, CuiSelectedCategoryService } from '../categories';
9
+ import { CuiInstructionInfoFormComponent } from '../instruction-info-form';
10
+ import { UTILITY_MODAL_SERVICE_TOKEN } from '../utility-modal';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../components/form-field/form-field.component";
13
+ import * as i2 from "../../components/label/label.component";
14
+ import * as i3 from "../../components/svg/svg.component";
15
+ import * as i4 from "@jsverse/transloco";
16
+ export class CuiInstructionInfoComponent {
17
+ constructor() {
18
+ this.destroyRef = inject(DestroyRef);
19
+ this.translocoService = inject(TranslocoService);
20
+ this.cuiIdService = inject(CuiIdService);
21
+ this.cuiCategoriesModalService = inject(CuiSelectedCategoryService);
22
+ this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
23
+ this.instructionApiService = inject(UTILITY_MODAL_SERVICE_TOKEN);
24
+ this.TYPE = "INSTRUCTION_STORAGE" /* TreeStructType.Instruction */;
25
+ this.skipCategoryChange = false;
26
+ this.categoryId = this.cuiIdService.generate();
27
+ this.category = this.cuiCategoriesModalService.category;
28
+ this.isFormValid = signal(false);
29
+ this.prevCategoryId = signal(null);
30
+ this.editorConfig = signal(null);
31
+ this.labelColor = computed(() => this.category()?.title ? 'var(--cui-base-900)' : 'var(--cui-base-400)');
32
+ this.selectTitle = computed(() => this.category()?.title || this.translocoService.translate('SELECT') + '...');
33
+ this.element = viewChild('scrollContent');
34
+ this.instruction = model();
35
+ this.tools = input.required();
36
+ this.editorResourceUrl = input.required();
37
+ this.validationChanged = output();
38
+ this.instructionCreated = output();
39
+ this.initConfigEffect();
40
+ this.initCategoryEffect();
41
+ }
42
+ ngOnInit() {
43
+ this.initCategory();
44
+ }
45
+ onFormChanged(values, instructionId) {
46
+ const actions = {
47
+ title: (title) => this.changeTitle(title, instructionId),
48
+ description: (description) => this.changeDescription(description, instructionId)
49
+ };
50
+ forkJoin(Object.keys(values).map((key) => actions[key](values[key] || '')))
51
+ .pipe(takeUntilDestroyed(this.destroyRef))
52
+ .subscribe();
53
+ }
54
+ onFormValidationChanged(isValid) {
55
+ this.isFormValid.set(isValid);
56
+ this.validationChanged.emit(isValid);
57
+ }
58
+ initCategoryEffect() {
59
+ effect(() => {
60
+ const category = this.category();
61
+ const storageObjectInstruction = untracked(this.instruction);
62
+ if (!category || this.skipCategoryChange) {
63
+ this.skipCategoryChange = false;
64
+ return;
65
+ }
66
+ if (storageObjectInstruction) {
67
+ this.changeCategory(category.id, storageObjectInstruction.id);
68
+ return;
69
+ }
70
+ this.createInstruction(category.id);
71
+ });
72
+ }
73
+ initConfigEffect() {
74
+ effect(() => {
75
+ const element = this.element()?.nativeElement;
76
+ if (!element) {
77
+ return;
78
+ }
79
+ this.editorConfig.set({ tools: this.tools(), element });
80
+ });
81
+ }
82
+ initCategory() {
83
+ const storageObjectId = this.instruction()?.id;
84
+ if (!storageObjectId) {
85
+ return;
86
+ }
87
+ this.treeStructNavigatorApiService
88
+ .getCategory(storageObjectId, "INSTRUCTION_STORAGE" /* TreeStructType.Instruction */)
89
+ .pipe(takeUntilDestroyed(this.destroyRef))
90
+ .subscribe((category) => {
91
+ this.skipCategoryChange = true;
92
+ this.prevCategoryId.set(category.id);
93
+ this.cuiCategoriesModalService.setCurrentCategory(category);
94
+ });
95
+ }
96
+ changeCategory(categoryId, targetId) {
97
+ const prevCategoryId = untracked(this.prevCategoryId);
98
+ if (!prevCategoryId) {
99
+ return;
100
+ }
101
+ this.subscription?.unsubscribe();
102
+ this.subscription = this.treeStructNavigatorApiService
103
+ .moveElement({
104
+ type: "MOVING_TARGET_TREE_STRUCT" /* MovingType.TARGET_TREE_STRUCT */,
105
+ movableItemId: targetId,
106
+ treeStructTargetItemId: categoryId,
107
+ treeStructMovableItemId: prevCategoryId
108
+ })
109
+ .subscribe(() => this.prevCategoryId.set(categoryId));
110
+ }
111
+ createInstruction(categoryId) {
112
+ this.instructionCreated.emit(categoryId);
113
+ this.prevCategoryId.set(categoryId);
114
+ }
115
+ changeTitle(value, instructionId) {
116
+ return this.instructionApiService.changeTitle(instructionId, value).pipe(finalize(() => this.instruction.update((prev) => ({
117
+ ...prev,
118
+ storageElement: { ...prev.storageElement, title: value }
119
+ }))));
120
+ }
121
+ changeDescription(value, instructionId) {
122
+ if (!this.instructionApiService.changeDescription) {
123
+ throw new Error('Change description not implemented');
124
+ }
125
+ return this.instructionApiService.changeDescription(instructionId, value).pipe(finalize(() => this.instruction.update((prev) => ({
126
+ ...prev,
127
+ storageElement: { ...prev.storageElement, shortDescription: value }
128
+ }))));
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i2.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'cui-instruction-info', imports: [
136
+ CuiBadgeModule,
137
+ CuiButtonModule,
138
+ CuiCategoriesComponent,
139
+ CuiDialogModule,
140
+ CuiFormFieldModule,
141
+ CuiInstructionInfoFormComponent,
142
+ CuiLabelModule,
143
+ CuiSvgModule,
144
+ TranslocoModule
145
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"] }]
146
+ }], ctorParameters: () => [] });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsWUFBWSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBdUIsTUFBTSxrQkFB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U0FBUzsrQkFDSSxzQkFBc0IsV0FDdkI7d0JBQ0wsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBlZmZlY3QsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG1vZGVsLFxyXG4gICAgb3V0cHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdW50cmFja2VkLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB0eXBlIHsgSW5zdHJ1Y3Rpb24sIFN0b3JhZ2VPYmplY3QsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlUcmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSwgTW92aW5nVHlwZSwgVHJlZVN0cnVjdFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlCYWRnZU1vZHVsZSxcclxuICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgQ3VpU3ZnTW9kdWxlXHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQsIEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2VkaXRvcic7XHJcbmltcG9ydCB0eXBlIHsgQ3VpVG9vbHMgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0nO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsaXR5LW1vZGFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLWluc3RydWN0aW9uLWluZm8nLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEN1aUJhZGdlTW9kdWxlLFxyXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDdWlDYXRlZ29yaWVzQ29tcG9uZW50LFxyXG4gICAgICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSW5zdHJ1Y3Rpb25JbmZvRm9ybUNvbXBvbmVudCxcclxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcclxuICAgICAgICBDdWlTdmdNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsb2NvTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbQ3VpU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlJbnN0cnVjdGlvbkluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlJZFNlcnZpY2UgPSBpbmplY3QoQ3VpSWRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZSA9IGluamVjdChDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aVRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25BcGlTZXJ2aWNlID0gaW5qZWN0PFV0aWxpdHlNb2RhbFNlcnZpY2U8SW5zdHJ1Y3Rpb24+PihVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4pO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBUWVBFID0gVHJlZVN0cnVjdFR5cGUuSW5zdHJ1Y3Rpb247XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHNraXBDYXRlZ29yeUNoYW5nZSA9IGZhbHNlO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeUlkID0gdGhpcy5jdWlJZFNlcnZpY2UuZ2VuZXJhdGUoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2F0ZWdvcnkgPSB0aGlzLmN1aUNhdGVnb3JpZXNNb2RhbFNlcnZpY2UuY2F0ZWdvcnk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb3JtVmFsaWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZDYXRlZ29yeUlkID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvckNvbmZpZyA9IHNpZ25hbDxDdWlOdWxsYWJsZTxDdWlFZGl0b3JDb25maWc+PihudWxsKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbENvbG9yID0gY29tcHV0ZWQoKCkgPT5cclxuICAgICAgICB0aGlzLmNhdGVnb3J5KCk/LnRpdGxlID8gJ3ZhcigtLWN1aS1iYXNlLTkwMCknIDogJ3ZhcigtLWN1aS1iYXNlLTQwMCknXHJcbiAgICApO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdFRpdGxlID0gY29tcHV0ZWQoXHJcbiAgICAgICAgKCkgPT4gdGhpcy5jYXRlZ29yeSgpPy50aXRsZSB8fCB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdTRUxFQ1QnKSArICcuLi4nXHJcbiAgICApO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pignc2Nyb2xsQ29udGVudCcpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBpbnN0cnVjdGlvbiA9IG1vZGVsPFN0b3JhZ2VPYmplY3Q8SW5zdHJ1Y3Rpb24+PigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xzID0gaW5wdXQucmVxdWlyZWQ8Q3VpVG9vbHM+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbGlkYXRpb25DaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25DcmVhdGVkID0gb3V0cHV0PHN0cmluZz4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmluaXRDb25maWdFZmZlY3QoKTtcclxuICAgICAgICB0aGlzLmluaXRDYXRlZ29yeUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluaXRDYXRlZ29yeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkZvcm1DaGFuZ2VkKHZhbHVlczogUGFydGlhbDxDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXM+LCBpbnN0cnVjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhY3Rpb25zOiBSZWNvcmQ8a2V5b2YgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzLCAodmFsdWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTx2b2lkPj4gPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAodGl0bGU6IHN0cmluZykgPT4gdGhpcy5jaGFuZ2VUaXRsZSh0aXRsZSwgaW5zdHJ1Y3Rpb25JZCksXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAoZGVzY3JpcHRpb246IHN0cmluZykgPT4gdGhpcy5jaGFuZ2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvbiwgaW5zdHJ1Y3Rpb25JZClcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBmb3JrSm9pbihcclxuICAgICAgICAgICAgT2JqZWN0LmtleXModmFsdWVzKS5tYXAoKGtleSkgPT5cclxuICAgICAgICAgICAgICAgIGFjdGlvbnNba2V5IGFzIGtleW9mIEN1aUluc3RydWN0aW9uRm9ybVZhbHVlc10odmFsdWVzW2tleSBhcyBrZXlvZiBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXNdIHx8ICcnKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZChpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZC5zZXQoaXNWYWxpZCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uQ2hhbmdlZC5lbWl0KGlzVmFsaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENhdGVnb3J5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24gPSB1bnRyYWNrZWQodGhpcy5pbnN0cnVjdGlvbik7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNhdGVnb3J5IHx8IHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBDYXRlZ29yeUNoYW5nZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VDYXRlZ29yeShjYXRlZ29yeS5pZCwgc3RvcmFnZU9iamVjdEluc3RydWN0aW9uLmlkKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSW5zdHJ1Y3Rpb24oY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENvbmZpZ0VmZmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50KCk/Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb25maWcuc2V0KHsgdG9vbHM6IHRoaXMudG9vbHMoKSwgZWxlbWVudCB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzdG9yYWdlT2JqZWN0SWQgPSB0aGlzLmluc3RydWN0aW9uKCk/LmlkO1xyXG5cclxuICAgICAgICBpZiAoIXN0b3JhZ2VPYmplY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRDYXRlZ29yeShzdG9yYWdlT2JqZWN0SWQsIFRyZWVTdHJ1Y3RUeXBlLkluc3RydWN0aW9uKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2F0ZWdvcnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldkNhdGVnb3J5SWQuc2V0KGNhdGVnb3J5LmlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZS5zZXRDdXJyZW50Q2F0ZWdvcnkoY2F0ZWdvcnkgYXMgVHJlZVN0cnVjdCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlQ2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nLCB0YXJnZXRJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcHJldkNhdGVnb3J5SWQgPSB1bnRyYWNrZWQodGhpcy5wcmV2Q2F0ZWdvcnlJZCk7XHJcblxyXG4gICAgICAgIGlmICghcHJldkNhdGVnb3J5SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5tb3ZlRWxlbWVudCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBNb3ZpbmdUeXBlLlRBUkdFVF9UUkVFX1NUUlVDVCxcclxuICAgICAgICAgICAgICAgIG1vdmFibGVJdGVtSWQ6IHRhcmdldElkLFxyXG4gICAgICAgICAgICAgICAgdHJlZVN0cnVjdFRhcmdldEl0ZW1JZDogY2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgIHRyZWVTdHJ1Y3RNb3ZhYmxlSXRlbUlkOiBwcmV2Q2F0ZWdvcnlJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucHJldkNhdGVnb3J5SWQuc2V0KGNhdGVnb3J5SWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUluc3RydWN0aW9uKGNhdGVnb3J5SWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25DcmVhdGVkLmVtaXQoY2F0ZWdvcnlJZCk7XHJcbiAgICAgICAgdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnlJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VUaXRsZSh2YWx1ZTogc3RyaW5nLCBpbnN0cnVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlVGl0bGUoaW5zdHJ1Y3Rpb25JZCwgdmFsdWUpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RydWN0aW9uLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRWxlbWVudDogeyAuLi5wcmV2IS5zdG9yYWdlRWxlbWVudCwgdGl0bGU6IHZhbHVlIH1cclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZURlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcsIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgZGVzY3JpcHRpb24gbm90IGltcGxlbWVudGVkJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlRGVzY3JpcHRpb24oaW5zdHJ1Y3Rpb25JZCwgdmFsdWUpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RydWN0aW9uLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRWxlbWVudDogeyAuLi5wcmV2IS5zdG9yYWdlRWxlbWVudCwgc2hvcnREZXNjcmlwdGlvbjogdmFsdWUgfVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwid3JhcHBlclwiXHJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgI3Njcm9sbENvbnRlbnRcclxuICAgICAgICBjbGFzcz1cImNvbnRlbnQgY29udGVudF9zY3JvbGxhYmxlXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VpTGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImNhdGVnb3J5SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1NFTEVDVF9DQVRFR09SWScpIH19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGN1aS1jYXRlZ29yaWVzXHJcbiAgICAgICAgICAgICAgICAgICAgW2J1dHRvbklkXT1cImNhdGVnb3J5SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0cmVlU3RydWN0VHlwZV09XCJUWVBFXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdFRpdGxlKCkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1zdmcgaWNvbj1cImN1aUljb25DaGV2cm9uRG93blwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2N1aS1jYXRlZ29yaWVzPlxyXG4gICAgICAgICAgICA8L2N1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAbGV0IGluc3RydWN0aW9uRGF0YSA9IGluc3RydWN0aW9uKCk7XHJcbiAgICAgICAgQGxldCBlZGl0b3JDb25maWdEYXRhID0gZWRpdG9yQ29uZmlnKCk7XHJcblxyXG4gICAgICAgIEBpZiAoZWRpdG9yQ29uZmlnRGF0YSAmJiBpbnN0cnVjdGlvbkRhdGEpIHtcclxuICAgICAgICAgICAgPGN1aS1pbnN0cnVjdGlvbi1pbmZvLWZvcm1cclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnRGF0YVwiXHJcbiAgICAgICAgICAgICAgICBbYmFzZVJlc291cmNlVXJsXT1cImVkaXRvclJlc291cmNlVXJsKClcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImluc3RydWN0aW9uRGF0YS5zdG9yYWdlRWxlbWVudC50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LnNob3J0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgW2ZyYW1lcklkXT1cImluc3RydWN0aW9uRGF0YS5zdG9yYWdlRWxlbWVudC5mcmFtZXJJbnN0cnVjdGlvbklkXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXRpbGl0eVwiXHJcbiAgICAgICAgICAgICAgICAoaXNGb3JtVmFsaWRDaGFuZ2VkKT1cIm9uRm9ybVZhbGlkYXRpb25DaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGZvcm1DaGFuZ2VkKT1cIm9uRm9ybUNoYW5nZWQoJGV2ZW50LCBpbnN0cnVjdGlvbkRhdGEuaWQpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiInstructionInfoFormComponent } from './instruction-info-form.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpSW5zdHJ1Y3Rpb25JbmZvRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDdWlJbnN0cnVjdGlvbkZvcm1Hcm91cCwgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzIH0gZnJvbSAnLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0ub3B0aW9ucyc7XG4iXX0=
@@ -0,0 +1,153 @@
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, output, signal } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';
4
+ import { TranslocoDirective } from '@jsverse/transloco';
5
+ import { debounceTime, map, pairwise, startWith } from 'rxjs';
6
+ import { CuiFrameApiService } from '@cuby-ui/api';
7
+ import { CuiIdService, takeCaptureFromVideo } from '@cuby-ui/cdk';
8
+ import { CuiAccordionModule, CuiButtonModule, CuiFormFieldModule, CuiHintModule, CuiInputModule, CuiLabelModule } from '../../components';
9
+ import { cuiCreateDefaultValidators } from '../../utils';
10
+ import { CuiGeneralControlErrorHintComponent } from '../general-control-error-hint';
11
+ import { CuiEditorBlockComponent } from '../../editor';
12
+ import { CuiUtilityThumbnailComponent } from '../utility-thumbnail';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "../../components/form-field/form-field.component";
15
+ import * as i2 from "../../components/input-text/input-text.component";
16
+ import * as i3 from "../../directives/text-field-controller/text-field-id.directive";
17
+ import * as i4 from "../../directives/text-field-controller/text-field-placeholder.directive";
18
+ import * as i5 from "../../directives/text-field-controller/text-field-is-error.directive";
19
+ import * as i6 from "../../components/label/label.component";
20
+ import * as i7 from "@angular/forms";
21
+ export class CuiInstructionInfoFormComponent {
22
+ get controls() {
23
+ return this.form.controls;
24
+ }
25
+ get isTitleError() {
26
+ return this.controls.title.invalid && this.controls.title.dirty;
27
+ }
28
+ get isDescriptionError() {
29
+ return this.controls.description.invalid && this.controls.description.dirty;
30
+ }
31
+ constructor() {
32
+ this.destroy = inject(DestroyRef);
33
+ this.formBuilder = inject(NonNullableFormBuilder);
34
+ this.frameApiService = inject(CuiFrameApiService);
35
+ this.cuiIdService = inject(CuiIdService);
36
+ this.CONTROL_DELAY = 500;
37
+ this.titleId = this.cuiIdService.generate();
38
+ this.descriptionId = this.cuiIdService.generate();
39
+ this.form = this.formBuilder.group({
40
+ title: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY })),
41
+ description: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY }))
42
+ });
43
+ this.heading = null;
44
+ this.isDescriptionEmpty = signal(false);
45
+ this.editorId = signal(null);
46
+ this.thumbnail = signal(null);
47
+ this.title = input.required();
48
+ this.description = input.required();
49
+ this.framerId = input.required();
50
+ this.baseResourceUrl = input.required();
51
+ this.config = input.required();
52
+ this.formChanged = output();
53
+ this.isFormValidChanged = output();
54
+ this.initUtilityEffect();
55
+ }
56
+ onEditorEmpty(isEmpty) {
57
+ this.isDescriptionEmpty.set(isEmpty);
58
+ this.isFormValidChanged.emit(this.checkFormValidation());
59
+ }
60
+ initUtilityEffect() {
61
+ const effectRef = effect(() => {
62
+ const title = this.title();
63
+ if (!title) {
64
+ return;
65
+ }
66
+ this.initFormSubscriptions();
67
+ this.initFrameFragments();
68
+ effectRef.destroy();
69
+ });
70
+ }
71
+ initFormSubscriptions() {
72
+ this.form.setValue({ title: this.title(), description: this.description() }, { emitEvent: false });
73
+ this.form.statusChanges
74
+ .pipe(takeUntilDestroyed(this.destroy))
75
+ .subscribe(() => this.isFormValidChanged.emit(this.checkFormValidation()));
76
+ this.form.valueChanges
77
+ .pipe(takeUntilDestroyed(this.destroy), startWith(this.form.value), pairwise(), debounceTime(this.CONTROL_DELAY), map(([prev, current]) => this.compareFormValues([prev, current])))
78
+ .subscribe((value) => {
79
+ if (!Object.keys(value).length) {
80
+ return;
81
+ }
82
+ this.formChanged.emit(value);
83
+ });
84
+ }
85
+ initFrameFragments() {
86
+ const frameId = this.framerId();
87
+ if (!frameId) {
88
+ return;
89
+ }
90
+ this.frameApiService.getFrame(frameId).subscribe((frame) => {
91
+ frame.fragments.forEach((fragment) => {
92
+ if (fragment.type === "J_TEXT" /* FragmentType.jText */) {
93
+ this.editorId.set(fragment?.id);
94
+ }
95
+ if (fragment.type === "RESOURCE_FILE" /* FragmentType.resourceFile */) {
96
+ this.setResourceFile(fragment);
97
+ }
98
+ });
99
+ });
100
+ }
101
+ compareFormValues([prevGroup, currentGruop]) {
102
+ const keys = Object.keys(currentGruop);
103
+ const changedFields = {};
104
+ keys.forEach((key) => {
105
+ const prev = prevGroup[key];
106
+ const current = currentGruop[key];
107
+ if (prev === current || this.controls[key].invalid) {
108
+ return;
109
+ }
110
+ changedFields[key] = current;
111
+ });
112
+ return changedFields;
113
+ }
114
+ setResourceFile(resource) {
115
+ const url = this.baseResourceUrl() + resource.fileId;
116
+ this.thumbnail.set(resource);
117
+ if (!url || resource?.name?.split('.').pop() !== 'mp4') {
118
+ return;
119
+ }
120
+ this.getCaptureFromVideo(url);
121
+ }
122
+ getCaptureFromVideo(url, file) {
123
+ takeCaptureFromVideo(url).then((capture) => {
124
+ this.thumbnail.update((prev) => ({
125
+ ...prev,
126
+ name: (file?.name ?? prev?.name),
127
+ resource: capture
128
+ }));
129
+ });
130
+ }
131
+ checkFormValidation() {
132
+ return !this.isDescriptionEmpty() && !this.form.invalid;
133
+ }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiInstructionInfoFormComponent, isStandalone: true, selector: "cui-instruction-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", 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 }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"titleId\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.title\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"descriptionId\"\r\n >\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.description\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-utility-thumbnail\r\n [baseResourceUrl]=\"baseResourceUrl()\"\r\n [framerId]=\"framerId()\"\r\n [(thumbnail)]=\"thumbnail\"\r\n />\r\n\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n />\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: i2.CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: i3.CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i4.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i5.CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i6.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["thumbnail", "framerId", "baseResourceUrl"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoFormComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'cui-instruction-info-form', imports: [
140
+ CuiAccordionModule,
141
+ CuiButtonModule,
142
+ CuiEditorBlockComponent,
143
+ CuiFormFieldModule,
144
+ CuiGeneralControlErrorHintComponent,
145
+ CuiHintModule,
146
+ CuiInputModule,
147
+ CuiLabelModule,
148
+ CuiUtilityThumbnailComponent,
149
+ ReactiveFormsModule,
150
+ TranslocoDirective
151
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"titleId\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.title\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"descriptionId\"\r\n >\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.description\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-utility-thumbnail\r\n [baseResourceUrl]=\"baseResourceUrl()\"\r\n [framerId]=\"framerId()\"\r\n [(thumbnail)]=\"thumbnail\"\r\n />\r\n\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n />\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"] }]
152
+ }], ctorParameters: () => [] });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvLWZvcm0vaW5zdHJ1Y3Rpb24taW5mby1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvLWZvcm0vaW5zdHJ1Y3Rpb24taW5mby1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sY0FBYyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxFQUNqQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztBQXdCcEUsTUFBTSxPQUFPLCtCQUErQjtJQThCeEMsSUFBYyxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWMsWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQWMsa0JBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoRixDQUFDO0lBRUQ7UUF6Q2lCLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxTQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQTBCO1lBQ3RFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDbkcsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM1RyxDQUFDLENBQUM7UUFFTyxZQUFPLEdBQXdCLElBQUksQ0FBQztRQUUzQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFHLE1BQU0sQ0FBZ0MsSUFBSSxDQUFDLENBQUM7UUFFM0QsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUN2QyxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3BDLG9CQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQzNDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBRTNDLGdCQUFXLEdBQUcsTUFBTSxFQUFxQyxDQUFDO1FBQzFELHVCQUFrQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBZW5ELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxhQUFhLENBQUMsT0FBZ0I7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUUzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1QsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVuRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7YUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO2FBQ2pCLElBQUksQ0FDRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUMxQixRQUFRLEVBQUUsRUFDVixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDcEU7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxRQUFRLENBQUMsSUFBSSxzQ0FBdUIsRUFBRSxDQUFDO29CQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxvREFBOEIsRUFBRSxDQUFDO29CQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQTRCLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8saUJBQWlCLENBQUMsQ0FDdEIsU0FBUyxFQUNULFlBQVksQ0FDc0I7UUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQXVDLENBQUM7UUFDN0UsTUFBTSxhQUFhLEdBQTRCLEVBQUUsQ0FBQztRQUVsRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsQyxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakQsT0FBTztZQUNYLENBQUM7WUFFRCxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUEwQjtRQUM5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU8sQ0FBQztRQUV0RCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsR0FBRyxJQUFJLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3JELE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsSUFBVztRQUNoRCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0IsR0FBRyxJQUFLO2dCQUNSLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksQ0FBRTtnQkFDakMsUUFBUSxFQUFFLE9BQU87YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDNUQsQ0FBQzsrR0ExSlEsK0JBQStCO21HQUEvQiwrQkFBK0IsbTBCQzlDNUMsNHdFQW9FQSwyVUR2Q1Esa0JBQWtCLDhCQUNsQixlQUFlLCtCQUNmLHVCQUF1QiwySUFDdkIsa0JBQWtCLGtIQUNsQixtQ0FBbUMsNEdBQ25DLGFBQWEsOEJBQ2IsY0FBYyxvZkFDZCxjQUFjLHVJQUNkLDRCQUE0QixxSkFDNUIsbUJBQW1CLDBUQUNuQixrQkFBa0I7OzRGQU9iLCtCQUErQjtrQkFwQjNDLFNBQVM7K0JBQ0ksMkJBQTJCLFdBQzVCO3dCQUNMLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsbUNBQW1DO3dCQUNuQyxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCw0QkFBNEI7d0JBQzVCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRnJhZ21lbnQgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlGcmFtZUFwaVNlcnZpY2UsIEZyYWdtZW50VHlwZSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBDdWlJZFNlcnZpY2UsIHRha2VDYXB0dXJlRnJvbVZpZGVvIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDdWlIaW50TW9kdWxlLFxyXG4gICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICBDdWlMYWJlbE1vZHVsZVxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWRpdG9yJztcclxuaW1wb3J0IHR5cGUgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbGl0eS10aHVtYm5haWwnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlJbnN0cnVjdGlvbkZvcm1Hcm91cCwgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzIH0gZnJvbSAnLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0ub3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLWluc3RydWN0aW9uLWluZm8tZm9ybScsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQWNjb3JkaW9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDdWlFZGl0b3JCbG9ja0NvbXBvbmVudCxcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpSGludE1vZHVsZSxcclxuICAgICAgICBDdWlJbnB1dE1vZHVsZSxcclxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcclxuICAgICAgICBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50LFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2luc3RydWN0aW9uLWluZm8tZm9ybS5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpSW5zdHJ1Y3Rpb25JbmZvRm9ybUNvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyID0gaW5qZWN0KE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmcmFtZUFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpRnJhbWVBcGlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpSWRTZXJ2aWNlID0gaW5qZWN0KEN1aUlkU2VydmljZSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IENPTlRST0xfREVMQVkgPSA1MDA7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc2NyaXB0aW9uSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwPEN1aUluc3RydWN0aW9uRm9ybUdyb3VwPih7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgY3VpQ3JlYXRlRGVmYXVsdFZhbGlkYXRvcnMoeyBhc3luY0RlbGF5OiB0aGlzLkNPTlRST0xfREVMQVkgfSkpLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woJycsIGN1aUNyZWF0ZURlZmF1bHRWYWxpZGF0b3JzKHsgYXN5bmNEZWxheTogdGhpcy5DT05UUk9MX0RFTEFZIH0pKVxyXG4gICAgfSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIGhlYWRpbmc6IEN1aU51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uRW1wdHkgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvcklkID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRodW1ibmFpbCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxSZXNvdXJjZUZyYWdtZW50Pj4obnVsbCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGZyYW1lcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VSZXNvdXJjZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxDdWlFZGl0b3JDb25maWc+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1DaGFuZ2VkID0gb3V0cHV0PFBhcnRpYWw8Q3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzPj4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBpc0Zvcm1WYWxpZENoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xzKCk6IEN1aUluc3RydWN0aW9uRm9ybUdyb3VwIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNUaXRsZUVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xzLnRpdGxlLmludmFsaWQgJiYgdGhpcy5jb250cm9scy50aXRsZS5kaXJ0eTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzRGVzY3JpcHRpb25FcnJvcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9scy5kZXNjcmlwdGlvbi5pbnZhbGlkICYmIHRoaXMuY29udHJvbHMuZGVzY3JpcHRpb24uZGlydHk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VXRpbGl0eUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkVkaXRvckVtcHR5KGlzRW1wdHk6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRGVzY3JpcHRpb25FbXB0eS5zZXQoaXNFbXB0eSk7XHJcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZENoYW5nZWQuZW1pdCh0aGlzLmNoZWNrRm9ybVZhbGlkYXRpb24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VXRpbGl0eUVmZmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlZmZlY3RSZWYgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudGl0bGUoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pbml0Rm9ybVN1YnNjcmlwdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0RnJhbWVGcmFnbWVudHMoKTtcclxuICAgICAgICAgICAgZWZmZWN0UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGb3JtU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoeyB0aXRsZTogdGhpcy50aXRsZSgpLCBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbigpIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pc0Zvcm1WYWxpZENoYW5nZWQuZW1pdCh0aGlzLmNoZWNrRm9ybVZhbGlkYXRpb24oKSkpO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSksXHJcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHBhaXJ3aXNlKCksXHJcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5DT05UUk9MX0RFTEFZKSxcclxuICAgICAgICAgICAgICAgIG1hcCgoW3ByZXYsIGN1cnJlbnRdKSA9PiB0aGlzLmNvbXBhcmVGb3JtVmFsdWVzKFtwcmV2LCBjdXJyZW50XSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGcmFtZUZyYWdtZW50cygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmcmFtZUlkID0gdGhpcy5mcmFtZXJJZCgpO1xyXG5cclxuICAgICAgICBpZiAoIWZyYW1lSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZUFwaVNlcnZpY2UuZ2V0RnJhbWUoZnJhbWVJZCkuc3Vic2NyaWJlKChmcmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBmcmFtZS5mcmFnbWVudHMuZm9yRWFjaCgoZnJhZ21lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudC50eXBlID09PSBGcmFnbWVudFR5cGUualRleHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcklkLnNldChmcmFnbWVudD8uaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudC50eXBlID09PSBGcmFnbWVudFR5cGUucmVzb3VyY2VGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZXNvdXJjZUZpbGUoZnJhZ21lbnQgYXMgUmVzb3VyY2VGcmFnbWVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29tcGFyZUZvcm1WYWx1ZXMoW1xyXG4gICAgICAgIHByZXZHcm91cCxcclxuICAgICAgICBjdXJyZW50R3J1b3BcclxuICAgIF06IFBhcnRpYWw8Q3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzPltdKTogUGFydGlhbDxDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXM+IHtcclxuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY3VycmVudEdydW9wKSBhcyAoa2V5b2YgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzKVtdO1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XHJcblxyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2R3JvdXBba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGN1cnJlbnRHcnVvcFtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKHByZXYgPT09IGN1cnJlbnQgfHwgdGhpcy5jb250cm9sc1trZXldLmludmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2hhbmdlZEZpZWxkc1trZXldID0gY3VycmVudDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZWRGaWVsZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRSZXNvdXJjZUZpbGUocmVzb3VyY2U6IFJlc291cmNlRnJhZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VSZXNvdXJjZVVybCgpICsgcmVzb3VyY2UuZmlsZUlkITtcclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWwuc2V0KHJlc291cmNlKTtcclxuXHJcbiAgICAgICAgaWYgKCF1cmwgfHwgcmVzb3VyY2U/Lm5hbWU/LnNwbGl0KCcuJykucG9wKCkgIT09ICdtcDQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmw6IHN0cmluZywgZmlsZT86IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICB0YWtlQ2FwdHVyZUZyb21WaWRlbyh1cmwpLnRoZW4oKGNhcHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50aHVtYm5haWwudXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldiEsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAoZmlsZT8ubmFtZSA/PyBwcmV2Py5uYW1lKSEsXHJcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogY2FwdHVyZVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0Zvcm1WYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2NyaXB0aW9uRW1wdHkoKSAmJiAhdGhpcy5mb3JtLmludmFsaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjdWlMYWJlbFxyXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9yXT1cInRpdGxlSWRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyB0KCdUSVRMRScpIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICA8Y3VpLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJZF09XCJ0aXRsZUlkXCJcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRQbGFjZWhvbGRlcl09XCJ0KCdBRERfQV9USVRMRScpXCJcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJc0Vycm9yXT1cImlzVGl0bGVFcnJvclwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy50aXRsZVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICBAaWYgKGlzVGl0bGVFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgPGN1aS1nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uY29udHJvbHMudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXHJcbiAgICAgICAgICAgICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JdPVwiZGVzY3JpcHRpb25JZFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IHQoJ1NIT1JUX0RFU0NSSVBUSU9OJykgfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgIDxjdWktaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cImRlc2NyaXB0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXI9XCJ7eyB0KCdTSE9SVF9ERVNDUklQVElPTicpIH19Li4uXCJcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJc0Vycm9yXT1cImlzRGVzY3JpcHRpb25FcnJvclwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICBAaWYgKGlzRGVzY3JpcHRpb25FcnJvcikge1xyXG4gICAgICAgICAgICAgICAgPGN1aS1nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uY29udHJvbHMuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPGN1aS11dGlsaXR5LXRodW1ibmFpbFxyXG4gICAgICAgICAgICBbYmFzZVJlc291cmNlVXJsXT1cImJhc2VSZXNvdXJjZVVybCgpXCJcclxuICAgICAgICAgICAgW2ZyYW1lcklkXT1cImZyYW1lcklkKClcIlxyXG4gICAgICAgICAgICBbKHRodW1ibmFpbCldPVwidGh1bWJuYWlsXCJcclxuICAgICAgICAvPlxyXG5cclxuICAgICAgICBAaWYgKGVkaXRvcklkKCk7IGFzIGVkaXRvcklkKSB7XHJcbiAgICAgICAgICAgIDxjdWktZWRpdG9yLWJsb2NrXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSB8fCB0aXRsZSgpXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnKClcIlxyXG4gICAgICAgICAgICAgICAgW2VkaXRvcklkXT1cImVkaXRvcklkXCJcclxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdG9yXCJcclxuICAgICAgICAgICAgICAgIChlZGl0b3JFbXB0eSk9XCJvbkVkaXRvckVtcHR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby1mb3JtLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby1mb3JtL2luc3RydWN0aW9uLWluZm8tZm9ybS5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUluc3RydWN0aW9uRm9ybUdyb3VwIHtcbiAgICByZWFkb25seSB0aXRsZTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMge1xuICAgIHJlYWRvbmx5IHRpdGxlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { CuiInstructionReadonlyInfoComponent } from './instruction-readonly-info.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24tcmVhZG9ubHktaW5mby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUluc3RydWN0aW9uUmVhZG9ubHlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,72 @@
1
+ import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core';
2
+ import { TranslocoDirective } from '@jsverse/transloco';
3
+ import { CuiFrameApiService } from '@cuby-ui/api';
4
+ import { CuiEditorComponent } from '../../editor';
5
+ import { CuiUtilityReadonlyThumbnailComponent } from '../utility-readonly-thumbnail';
6
+ import { CuiEmptyStateComponent } from '../../components';
7
+ import * as i0 from "@angular/core";
8
+ export class CuiInstructionReadonlyInfoComponent {
9
+ constructor() {
10
+ this.hostElement = inject(ElementRef).nativeElement;
11
+ this.frameApiService = inject(CuiFrameApiService);
12
+ this.isVideo = false;
13
+ this.jText = signal(null);
14
+ this.thumbnailUrl = signal(null);
15
+ this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
16
+ this.framerId = input.required();
17
+ this.element = input(this.hostElement);
18
+ this.tools = input.required();
19
+ this.editorResourceUrl = input.required();
20
+ this.initConfigEffect();
21
+ this.initFramerIdEffect();
22
+ }
23
+ initConfigEffect() {
24
+ effect(() => {
25
+ this.editorConfig = { readOnly: true, tools: this.tools(), element: this.element() };
26
+ });
27
+ }
28
+ initFramerIdEffect() {
29
+ effect(() => {
30
+ const framerId = this.framerId();
31
+ if (!framerId) {
32
+ return;
33
+ }
34
+ this.subscription?.unsubscribe();
35
+ this.initFrameFragments();
36
+ });
37
+ }
38
+ initFrameFragments() {
39
+ const frameId = this.framerId();
40
+ this.jText.set(null);
41
+ this.thumbnailUrl.set(null);
42
+ if (!frameId) {
43
+ return;
44
+ }
45
+ const fragmentActions = {
46
+ ["J_TEXT" /* FragmentType.jText */]: (fragment) => {
47
+ this.jText.set(fragment);
48
+ },
49
+ ["RESOURCE_FILE" /* FragmentType.resourceFile */]: (fragment) => {
50
+ this.setResourceFile(fragment);
51
+ }
52
+ };
53
+ this.subscription = this.frameApiService.getFrame(frameId).subscribe((frame) => {
54
+ frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
55
+ });
56
+ }
57
+ setResourceFile(resource) {
58
+ const url = `${this.editorResourceUrl()}${resource.fileId}`;
59
+ this.isVideo = resource?.name?.split('.').pop() === 'mp4';
60
+ if (!url) {
61
+ return;
62
+ }
63
+ this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiInstructionReadonlyInfoComponent, isStandalone: true, selector: "cui-instruction-readonly-info", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl(); as thumbnailUrl) {\n <cui-utility-readonly-thumbnail [thumbnailUrl]=\"thumbnailUrl\" [isVideo]=\"isVideo\" />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiUtilityReadonlyThumbnailComponent, selector: "cui-utility-readonly-thumbnail", inputs: ["thumbnailUrl", "isVideo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'cui-instruction-readonly-info', imports: [CuiEditorComponent, CuiEmptyStateComponent, TranslocoDirective, CuiUtilityReadonlyThumbnailComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl(); as thumbnailUrl) {\n <cui-utility-readonly-thumbnail [thumbnailUrl]=\"thumbnailUrl\" [isVideo]=\"isVideo\" />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"] }]
71
+ }], ctorParameters: () => [] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24tcmVhZG9ubHktaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24tcmVhZG9ubHktaW5mby9pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvL2luc3RydWN0aW9uLXJlYWRvbmx5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sY0FBYyxDQUFDO0FBSWhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUcsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVM0QsTUFBTSxPQUFPLG1DQUFtQztJQWtCNUM7UUFqQmlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBSXBELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUCxVQUFLLEdBQUcsTUFBTSxDQUE2QixJQUFJLENBQUMsQ0FBQztRQUNqRCxpQkFBWSxHQUFHLE1BQU0sQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFDcEQs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SSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7K0dBNUVRLG1DQUFtQzttR0FBbkMsbUNBQW1DLHFuQkNyQmhELHN0QkFxQkEsb1FETmMsa0JBQWtCLG1JQUFFLHNCQUFzQiw0R0FBRSxrQkFBa0IsZ01BQUUsb0NBQW9DOzs0RkFNckcsbUNBQW1DO2tCQVIvQyxTQUFTOytCQUNJLCtCQUErQixXQUNoQyxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLG9DQUFvQyxDQUFDLGNBQ25HLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IEZyYWdtZW50LCBKVGV4dEZyYWdtZW50LCBSZXNvdXJjZUZyYWdtZW50IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IEN1aUZyYW1lQXBpU2VydmljZSwgRnJhZ21lbnRUeXBlIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aUltZ1VybCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VpRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWRpdG9yJztcbmltcG9ydCB0eXBlIHsgQ3VpVG9vbHMsIEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2VkaXRvcic7XG5pbXBvcnQgeyBDdWlVdGlsaXR5UmVhZG9ubHlUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICcuLi91dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbCc7XG5pbXBvcnQgeyBDdWlFbXB0eVN0YXRlQ29tcG9uZW50ICB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1pbnN0cnVjdGlvbi1yZWFkb25seS1pbmZvJyxcbiAgICBpbXBvcnRzOiBbQ3VpRWRpdG9yQ29tcG9uZW50LCBDdWlFbXB0eVN0YXRlQ29tcG9uZW50LCBUcmFuc2xvY29EaXJlY3RpdmUsIEN1aVV0aWxpdHlSZWFkb25seVRodW1ibmFpbENvbXBvbmVudF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5zdHJ1Y3Rpb24tcmVhZG9ubHktaW5mby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2luc3RydWN0aW9uLXJlYWRvbmx5LWluZm8uY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEN1aUluc3RydWN0aW9uUmVhZG9ubHlJbmZvQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmcmFtZUFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpRnJhbWVBcGlTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGlzVmlkZW8gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgZWRpdG9yQ29uZmlnITogQ3VpRWRpdG9yQ29uZmlnO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGpUZXh0ID0gc2lnbmFsPEN1aU51bGxhYmxlPEpUZXh0RnJhZ21lbnQ+PihudWxsKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJuYWlsVXJsID0gc2lnbmFsPEN1aU51bGxhYmxlPEN1aUltZ1VybD4+KG51bGwpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uRW1wdHkgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5qVGV4dCgpPy5ub3RFbXB0eSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgZnJhbWVySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbnB1dDxIVE1MRWxlbWVudD4odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xzID0gaW5wdXQucmVxdWlyZWQ8Q3VpVG9vbHM+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvclJlc291cmNlVXJsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZ0VmZmVjdCgpO1xuICAgICAgICB0aGlzLmluaXRGcmFtZXJJZEVmZmVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvbmZpZ0VmZmVjdCgpOiB2b2lkIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yQ29uZmlnID0geyByZWFkT25seTogdHJ1ZSwgdG9vbHM6IHRoaXMudG9vbHMoKSwgZWxlbWVudDogdGhpcy5lbGVtZW50KCkgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RnJhbWVySWRFZmZlY3QoKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmcmFtZXJJZCA9IHRoaXMuZnJhbWVySWQoKTtcblxuICAgICAgICAgICAgaWYgKCFmcmFtZXJJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRGcmFtZUZyYWdtZW50cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGcmFtZUZyYWdtZW50cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcblxuICAgICAgICB0aGlzLmpUZXh0LnNldChudWxsKTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxVcmwuc2V0KG51bGwpO1xuXG4gICAgICAgIGlmICghZnJhbWVJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJhZ21lbnRBY3Rpb25zID0ge1xuICAgICAgICAgICAgW0ZyYWdtZW50VHlwZS5qVGV4dF06IChmcmFnbWVudDogRnJhZ21lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmpUZXh0LnNldChmcmFnbWVudCBhcyBKVGV4dEZyYWdtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbRnJhZ21lbnRUeXBlLnJlc291cmNlRmlsZV06IChmcmFnbWVudDogRnJhZ21lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJlc291cmNlRmlsZShmcmFnbWVudCBhcyBSZXNvdXJjZUZyYWdtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZnJhbWVBcGlTZXJ2aWNlLmdldEZyYW1lKGZyYW1lSWQpLnN1YnNjcmliZSgoZnJhbWUpID0+IHtcbiAgICAgICAgICAgIGZyYW1lLmZyYWdtZW50cy5mb3JFYWNoKChmcmFnbWVudCkgPT4gZnJhZ21lbnRBY3Rpb25zW2ZyYWdtZW50LnR5cGVdKGZyYWdtZW50KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UmVzb3VyY2VGaWxlKHJlc291cmNlOiBSZXNvdXJjZUZyYWdtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZWRpdG9yUmVzb3VyY2VVcmwoKX0ke3Jlc291cmNlLmZpbGVJZH1gO1xuXG4gICAgICAgIHRoaXMuaXNWaWRlbyA9IHJlc291cmNlPy5uYW1lPy5zcGxpdCgnLicpLnBvcCgpID09PSAnbXA0JztcblxuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50aHVtYm5haWxVcmwuc2V0KHsgc3JjOiByZXNvdXJjZS5maWxlSWQgJiYgdXJsLCBuYW1lOiByZXNvdXJjZS5uYW1lIHx8IHJlc291cmNlLnR5cGUgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgICBAaWYgKGpUZXh0KCkpIHtcbiAgICAgICAgQGlmICghaXNEZXNjcmlwdGlvbkVtcHR5KCkpIHtcbiAgICAgICAgICAgIEBpZiAodGh1bWJuYWlsVXJsKCk7IGFzIHRodW1ibmFpbFVybCkge1xuICAgICAgICAgICAgICAgIDxjdWktdXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwgW3RodW1ibmFpbFVybF09XCJ0aHVtYm5haWxVcmxcIiBbaXNWaWRlb109XCJpc1ZpZGVvXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChqVGV4dCgpPy5pZDsgYXMgaWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8Y3VpLWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRvckFwaUlkXT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8Y3VpLWVtcHR5LXN0YXRlIFtzdWJ0aXRsZV09XCJ0KCdOT19ERVNDUklQVElPTl9XQVNfUFJPVklERUQnKVwiIC8+XG4gICAgICAgIH1cbiAgICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -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 { CuiCriterionInfoComponent } from "../../../criterion-info";
6
+ import { CuiUtilityModalCreateComponent } from "../utility-modal-create";
7
+ import * as i0 from "@angular/core";
8
+ export class CuiCriterionModalCreateComponent {
9
+ constructor() {
10
+ this.destroyRef = inject(DestroyRef);
11
+ this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
12
+ this.criterionApiService = 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._criterion = computed(() => signal(this.initialUtility()));
18
+ this.isFormValid = signal(false);
19
+ this.criterion = computed(() => this._criterion()());
20
+ this.initialUtility = input.required();
21
+ }
22
+ onCriterionCreated(storageNodeId) {
23
+ if (this.isCreated || this.initialUtility()) {
24
+ return;
25
+ }
26
+ this.criterionApiService.createUtility(storageNodeId)
27
+ .pipe(takeUntilDestroyed(this.destroyRef))
28
+ .subscribe((criterion) => {
29
+ this.isCreated = true;
30
+ this._criterion().set(criterion);
31
+ });
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiCriterionModalCreateComponent, 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]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [tools]=\"tools\"\n [editorResourceUrl]=\"editorResourceUrl\"\n (validationChanged)=\"isFormValid.set($event)\"\n (criterionCreated)=\"onCriterionCreated($event)\"\n />\n</cui-utility-modal-create>\n", dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiCriterionInfoComponent, selector: "cui-criterion-info", inputs: ["criterion", "tools", "editorResourceUrl"], outputs: ["criterionChange", "validationChanged", "criterionCreated"] }, { kind: "component", type: CuiUtilityModalCreateComponent, selector: "cui-utility-modal-create", inputs: ["initialUtility"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionModalCreateComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ imports: [CuiButtonModule, CuiSvgModule, CuiCriterionInfoComponent, CuiUtilityModalCreateComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-utility-modal-create [initialUtility]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [tools]=\"tools\"\n [editorResourceUrl]=\"editorResourceUrl\"\n (validationChanged)=\"isFormValid.set($event)\"\n (criterionCreated)=\"onCriterionCreated($event)\"\n />\n</cui-utility-modal-create>\n" }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2NyaXRlcmlvbi1tb2RhbC1jcmVhdGUvY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL2NyaXRlcmlvbi1tb2RhbC1jcmVhdGUvY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFRekUsTUFBTSxPQUFPLGdDQUFnQztJQU43QztRQU9xQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRW5FLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFUCxzQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFN0MsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkQsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUE0QixDQUFDO0tBYy9FO0lBWmEsa0JBQWtCLENBQUMsYUFBcUI7UUFDOUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQXFDLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBN0JRLGdDQUFnQzttR0FBaEMsZ0NBQWdDLHNPQ2Y3QyxvV0FTQSwyQ0RDYyxlQUFlLDhCQUFFLFlBQVksK0JBQUUseUJBQXlCLDJMQUFFLDhCQUE4Qjs7NEZBS3pGLGdDQUFnQztrQkFONUMsU0FBUzs4QkFDRyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLENBQUMsY0FDdkYsSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ3JpdGVyaW9uLCBTdG9yYWdlT2JqZWN0IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcblxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhULCBDdWlCdXR0b25Nb2R1bGUsIEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVVRJTElUWV9NT0RBTF9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vdXRpbGl0eS1tb2RhbC5vcHRpb25zJztcbmltcG9ydCB7IEN1aUNyaXRlcmlvbkluZm9Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY3JpdGVyaW9uLWluZm9cIjtcbmltcG9ydCB7IEN1aVV0aWxpdHlNb2RhbENyZWF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi91dGlsaXR5LW1vZGFsLWNyZWF0ZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBpbXBvcnRzOiBbQ3VpQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUsIEN1aUNyaXRlcmlvbkluZm9Db21wb25lbnQsIEN1aVV0aWxpdHlNb2RhbENyZWF0ZUNvbXBvbmVudF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3JpdGVyaW9uLW1vZGFsLWNyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ3JpdGVyaW9uTW9kYWxDcmVhdGVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aURpYWxvZ0NvbnRleHQgPSBpbmplY3QoQ1VJX0RJQUxPR19DT05URVhUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyaXRlcmlvbkFwaVNlcnZpY2UgPSBpbmplY3QoVVRJTElUWV9NT0RBTF9TRVJWSUNFX1RPS0VOKTtcblxuICAgIHByaXZhdGUgaXNDcmVhdGVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5lZGl0b3JSZXNvdXJjZVVybDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHMgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS50b29scztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaGVhZGVyO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3JpdGVyaW9uID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuaW5pdGlhbFV0aWxpdHkoKSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRm9ybVZhbGlkID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3JpdGVyaW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fY3JpdGVyaW9uKCkoKSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbFV0aWxpdHkgPSBpbnB1dC5yZXF1aXJlZDxTdG9yYWdlT2JqZWN0PENyaXRlcmlvbj4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb25Dcml0ZXJpb25DcmVhdGVkKHN0b3JhZ2VOb2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0NyZWF0ZWQgfHwgdGhpcy5pbml0aWFsVXRpbGl0eSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNyaXRlcmlvbkFwaVNlcnZpY2UuY3JlYXRlVXRpbGl0eShzdG9yYWdlTm9kZUlkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjcml0ZXJpb24pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JpdGVyaW9uKCkuc2V0KGNyaXRlcmlvbiBhcyBTdG9yYWdlT2JqZWN0PENyaXRlcmlvbj4pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGN1aS11dGlsaXR5LW1vZGFsLWNyZWF0ZSBbaW5pdGlhbFV0aWxpdHldPVwiY3JpdGVyaW9uKClcIj5cbiAgICA8Y3VpLWNyaXRlcmlvbi1pbmZvXG4gICAgICAgIFtjcml0ZXJpb25dPVwiY3JpdGVyaW9uKClcIlxuICAgICAgICBbdG9vbHNdPVwidG9vbHNcIlxuICAgICAgICBbZWRpdG9yUmVzb3VyY2VVcmxdPVwiZWRpdG9yUmVzb3VyY2VVcmxcIlxuICAgICAgICAodmFsaWRhdGlvbkNoYW5nZWQpPVwiaXNGb3JtVmFsaWQuc2V0KCRldmVudClcIlxuICAgICAgICAoY3JpdGVyaW9uQ3JlYXRlZCk9XCJvbkNyaXRlcmlvbkNyZWF0ZWQoJGV2ZW50KVwiXG4gICAgLz5cbjwvY3VpLXV0aWxpdHktbW9kYWwtY3JlYXRlPlxuIl19