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