@cuby-ui/core 0.0.491 → 0.0.492
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/esm2022/widgets/ui/criterion-info/criterion-info.component.mjs +18 -9
- package/esm2022/widgets/ui/criterion-info-form/criterion-info-form.component.mjs +26 -14
- package/esm2022/widgets/ui/criterion-info-form/criterion-info-form.options.mjs +1 -1
- package/esm2022/widgets/ui/criterion-readonly-info/criterion-readonly-info.component.mjs +25 -20
- package/esm2022/widgets/ui/index.mjs +8 -4
- package/esm2022/widgets/ui/instruction-info/instruction-info.component.mjs +7 -8
- package/esm2022/widgets/ui/instruction-info-form/instruction-info-form.component.mjs +17 -11
- package/esm2022/widgets/ui/instruction-readonly-info/instruction-readonly-info.component.mjs +25 -20
- package/esm2022/widgets/ui/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +4 -3
- package/esm2022/widgets/ui/utility-modal/components/index.mjs +3 -1
- package/esm2022/widgets/ui/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +4 -4
- package/esm2022/widgets/ui/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.mjs +13 -7
- package/esm2022/widgets/ui/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +11 -5
- package/esm2022/widgets/ui/utility-thumbnail/utility-thumbnail.component.mjs +6 -7
- package/fesm2022/cuby-ui-core.mjs +235 -191
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/package.json +4 -4
- package/widgets/ui/criterion-info/criterion-info.component.d.ts +6 -7
- package/widgets/ui/criterion-info-form/criterion-info-form.component.d.ts +6 -2
- package/widgets/ui/criterion-info-form/criterion-info-form.options.d.ts +2 -0
- package/widgets/ui/criterion-readonly-info/criterion-readonly-info.component.d.ts +10 -9
- package/widgets/ui/index.d.ts +7 -3
- package/widgets/ui/instruction-info/instruction-info.component.d.ts +2 -4
- package/widgets/ui/instruction-info-form/instruction-info-form.component.d.ts +2 -2
- package/widgets/ui/instruction-readonly-info/instruction-readonly-info.component.d.ts +10 -9
- package/widgets/ui/utility-modal/components/criterion-modal-create/criterion-modal-create.component.d.ts +3 -1
- package/widgets/ui/utility-modal/components/index.d.ts +2 -0
- package/widgets/ui/utility-modal/components/instruction-modal-create/instruction-modal-create.component.d.ts +3 -2
- package/widgets/ui/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.d.ts +10 -3
- package/widgets/ui/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.d.ts +10 -3
- package/widgets/ui/utility-thumbnail/utility-thumbnail.component.d.ts +2 -3
|
@@ -11,7 +11,7 @@ import { __decorate, __metadata } from 'tslib';
|
|
|
11
11
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
12
12
|
import { trigger, transition, query, animateChild, style, animate, stagger } from '@angular/animations';
|
|
13
13
|
import { OAuthService, OAuthErrorEvent, OAuthSuccessEvent, OAuthInfoEvent, provideOAuthClient } from 'angular-oauth2-oidc';
|
|
14
|
-
import { CuiExchangeContextApiService, CuiJTextApiService, CuiTreeStructNavigatorApiService, CuiNodeChecklistApiService, CuiTreeStructApiService, CuiFrameApiService, UserCompanyApiService, SHARED_CONSTRUCTION_HTTP_OPTIONS, SHARED_INSTRUCTION_HTTP_OPTIONS, CuiQuantumGroupResourcesStructureApiService, ResourceContentType, CuiFactoryApiService, SeasonType, SHARED_FACTORY_HTTP_OPTIONS, UtilityApiService, CuiCriterionApiService, CuiStorageObjectType, CuiJobApiService, JobType } from '@cuby-ui/api';
|
|
14
|
+
import { CuiExchangeContextApiService, CuiJTextApiService, CuiTreeStructNavigatorApiService, CuiNodeChecklistApiService, CuiTreeStructApiService, CuiFrameApiService, CuiResourceApiService, UserCompanyApiService, SHARED_CONSTRUCTION_HTTP_OPTIONS, SHARED_INSTRUCTION_HTTP_OPTIONS, CuiQuantumGroupResourcesStructureApiService, ResourceContentType, CuiFactoryApiService, SeasonType, SHARED_FACTORY_HTTP_OPTIONS, UtilityApiService, CuiCriterionApiService, CuiStorageObjectType, CuiJobApiService, JobType } from '@cuby-ui/api';
|
|
15
15
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
16
16
|
import * as i4 from '@jsverse/transloco';
|
|
17
17
|
import { TranslocoService, TranslocoModule, TranslocoDirective, TranslocoPipe } from '@jsverse/transloco';
|
|
@@ -9298,20 +9298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9298
9298
|
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiCheckListBlockService], template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"] }]
|
|
9299
9299
|
}], ctorParameters: () => [] });
|
|
9300
9300
|
|
|
9301
|
-
class
|
|
9302
|
-
constructor() {
|
|
9303
|
-
this.thumbnailUrl = input.required();
|
|
9304
|
-
this.isVideo = input(false);
|
|
9305
|
-
}
|
|
9306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 }); }
|
|
9308
|
-
}
|
|
9309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, decorators: [{
|
|
9310
|
-
type: Component,
|
|
9311
|
-
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"] }]
|
|
9312
|
-
}] });
|
|
9313
|
-
|
|
9314
|
-
class CuiInstructionReadonlyInfoComponent {
|
|
9301
|
+
class CuiFramerPreviewComponent {
|
|
9315
9302
|
constructor() {
|
|
9316
9303
|
this.hostElement = inject(ElementRef).nativeElement;
|
|
9317
9304
|
this.frameApiService = inject(CuiFrameApiService);
|
|
@@ -9320,16 +9307,20 @@ class CuiInstructionReadonlyInfoComponent {
|
|
|
9320
9307
|
this.thumbnailUrl = signal(null);
|
|
9321
9308
|
this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
|
|
9322
9309
|
this.framerId = input.required();
|
|
9323
|
-
this.
|
|
9324
|
-
this.tools = input.required();
|
|
9310
|
+
this.config = input.required();
|
|
9325
9311
|
this.editorResourceUrl = input.required();
|
|
9312
|
+
this.title = input();
|
|
9326
9313
|
this.initConfigEffect();
|
|
9327
9314
|
this.initFramerIdEffect();
|
|
9328
9315
|
}
|
|
9329
9316
|
initConfigEffect() {
|
|
9330
9317
|
effect(() => {
|
|
9331
|
-
this.editorConfig = {
|
|
9332
|
-
|
|
9318
|
+
this.editorConfig = {
|
|
9319
|
+
element: this.hostElement,
|
|
9320
|
+
...this.config(),
|
|
9321
|
+
readOnly: true
|
|
9322
|
+
};
|
|
9323
|
+
}, { allowSignalWrites: true });
|
|
9333
9324
|
}
|
|
9334
9325
|
initFramerIdEffect() {
|
|
9335
9326
|
effect(() => {
|
|
@@ -9339,7 +9330,7 @@ class CuiInstructionReadonlyInfoComponent {
|
|
|
9339
9330
|
}
|
|
9340
9331
|
this.subscription?.unsubscribe();
|
|
9341
9332
|
this.initFrameFragments();
|
|
9342
|
-
});
|
|
9333
|
+
}, { allowSignalWrites: true });
|
|
9343
9334
|
}
|
|
9344
9335
|
initFrameFragments() {
|
|
9345
9336
|
const frameId = this.framerId();
|
|
@@ -9349,31 +9340,33 @@ class CuiInstructionReadonlyInfoComponent {
|
|
|
9349
9340
|
return;
|
|
9350
9341
|
}
|
|
9351
9342
|
const fragmentActions = {
|
|
9352
|
-
|
|
9343
|
+
J_TEXT: (fragment) => {
|
|
9353
9344
|
this.jText.set(fragment);
|
|
9354
9345
|
},
|
|
9355
|
-
|
|
9346
|
+
RESOURCE_FILE: (fragment) => {
|
|
9356
9347
|
this.setResourceFile(fragment);
|
|
9357
9348
|
}
|
|
9358
9349
|
};
|
|
9359
|
-
this.subscription = this.frameApiService
|
|
9350
|
+
this.subscription = this.frameApiService
|
|
9351
|
+
.getFrame(frameId, this.editorConfig.requestOptions)
|
|
9352
|
+
.subscribe((frame) => {
|
|
9360
9353
|
frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
|
|
9361
9354
|
});
|
|
9362
9355
|
}
|
|
9363
9356
|
setResourceFile(resource) {
|
|
9364
|
-
const url = `${this.editorResourceUrl()}
|
|
9357
|
+
const url = `${this.editorResourceUrl()}/${resource.fileId}`;
|
|
9365
9358
|
this.isVideo = resource?.name?.split('.').pop() === 'mp4';
|
|
9366
9359
|
if (!url) {
|
|
9367
9360
|
return;
|
|
9368
9361
|
}
|
|
9369
9362
|
this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
|
|
9370
9363
|
}
|
|
9371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
9372
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type:
|
|
9364
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9365
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiFramerPreviewComponent, isStandalone: true, selector: "cui-framer-preview", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @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\n <div class=\"content\">\n @if (title(); as title) {\n <div class=\"title\">{{ title }}</div>\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:0;height:100%;overflow:auto}.thumbnail{width:100%;max-height:271px;object-fit:contain}.content{display:flex;flex-direction:column;gap:14px;padding:16px 12px}.title{font-weight:500;font-size:18px;line-height:28px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9373
9366
|
}
|
|
9374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
9367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, decorators: [{
|
|
9375
9368
|
type: Component,
|
|
9376
|
-
args: [{ selector: 'cui-
|
|
9369
|
+
args: [{ selector: 'cui-framer-preview', imports: [TranslocoDirective, CuiEditorComponent, CuiEmptyStateComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @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\n <div class=\"content\">\n @if (title(); as title) {\n <div class=\"title\">{{ title }}</div>\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:0;height:100%;overflow:auto}.thumbnail{width:100%;max-height:271px;object-fit:contain}.content{display:flex;flex-direction:column;gap:14px;padding:16px 12px}.title{font-weight:500;font-size:18px;line-height:28px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
9377
9370
|
}], ctorParameters: () => [] });
|
|
9378
9371
|
|
|
9379
9372
|
class CuiUtilityThumbnailComponent {
|
|
@@ -9384,10 +9377,10 @@ class CuiUtilityThumbnailComponent {
|
|
|
9384
9377
|
this.MAX_FILE_SIZE = 20971520;
|
|
9385
9378
|
this.thumbnailUrl = computed(() => {
|
|
9386
9379
|
const thumbnail = this.thumbnail();
|
|
9387
|
-
if (thumbnail?.resource) {
|
|
9388
|
-
return
|
|
9380
|
+
if (!thumbnail?.resource) {
|
|
9381
|
+
return null;
|
|
9389
9382
|
}
|
|
9390
|
-
return
|
|
9383
|
+
return thumbnail.resource;
|
|
9391
9384
|
});
|
|
9392
9385
|
this.uploadButtonName = computed(() => {
|
|
9393
9386
|
const thumbnail = this.thumbnail();
|
|
@@ -9398,7 +9391,6 @@ class CuiUtilityThumbnailComponent {
|
|
|
9398
9391
|
});
|
|
9399
9392
|
this.thumbnail = model.required();
|
|
9400
9393
|
this.framerId = input.required();
|
|
9401
|
-
this.baseResourceUrl = input.required();
|
|
9402
9394
|
}
|
|
9403
9395
|
onSelectFile() {
|
|
9404
9396
|
const types = 'image/jpg, image/jpeg, image/png, video/mp4';
|
|
@@ -9457,7 +9449,7 @@ class CuiUtilityThumbnailComponent {
|
|
|
9457
9449
|
});
|
|
9458
9450
|
}
|
|
9459
9451
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9460
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 }
|
|
9452
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 } }, 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;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;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"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9461
9453
|
}
|
|
9462
9454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityThumbnailComponent, decorators: [{
|
|
9463
9455
|
type: Component,
|
|
@@ -9471,23 +9463,29 @@ class CuiCriterionInfoFormComponent {
|
|
|
9471
9463
|
get isTitleError() {
|
|
9472
9464
|
return this.controls.title.invalid && this.controls.title.dirty;
|
|
9473
9465
|
}
|
|
9466
|
+
get isDescriptionError() {
|
|
9467
|
+
return this.controls.description.invalid && this.controls.description.dirty;
|
|
9468
|
+
}
|
|
9474
9469
|
constructor() {
|
|
9475
9470
|
this.destroy = inject(DestroyRef);
|
|
9476
9471
|
this.formBuilder = inject(NonNullableFormBuilder);
|
|
9477
9472
|
this.frameApiService = inject(CuiFrameApiService);
|
|
9473
|
+
this.resourceApiService = inject(CuiResourceApiService);
|
|
9478
9474
|
this.cuiIdService = inject(CuiIdService);
|
|
9479
9475
|
this.CONTROL_DELAY = 500;
|
|
9480
9476
|
this.titleId = this.cuiIdService.generate();
|
|
9477
|
+
this.descriptionId = this.cuiIdService.generate();
|
|
9481
9478
|
this.form = this.formBuilder.group({
|
|
9482
|
-
title: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY }))
|
|
9479
|
+
title: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY })),
|
|
9480
|
+
description: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY }))
|
|
9483
9481
|
});
|
|
9484
9482
|
this.heading = null;
|
|
9485
9483
|
this.isDescriptionEmpty = signal(false);
|
|
9486
9484
|
this.editorId = signal(null);
|
|
9487
9485
|
this.thumbnail = signal(null);
|
|
9488
9486
|
this.title = input.required();
|
|
9487
|
+
this.description = input.required();
|
|
9489
9488
|
this.framerId = input.required();
|
|
9490
|
-
this.baseResourceUrl = input.required();
|
|
9491
9489
|
this.config = input.required();
|
|
9492
9490
|
this.formChanged = output();
|
|
9493
9491
|
this.isFormValidChanged = output();
|
|
@@ -9509,7 +9507,7 @@ class CuiCriterionInfoFormComponent {
|
|
|
9509
9507
|
});
|
|
9510
9508
|
}
|
|
9511
9509
|
initFormSubscriptions() {
|
|
9512
|
-
this.form.setValue({ title: this.title() }, { emitEvent: false });
|
|
9510
|
+
this.form.setValue({ title: this.title(), description: this.description() }, { emitEvent: false });
|
|
9513
9511
|
this.form.statusChanges
|
|
9514
9512
|
.pipe(takeUntilDestroyed(this.destroy))
|
|
9515
9513
|
.subscribe(() => this.isFormValidChanged.emit(this.checkFormValidation()));
|
|
@@ -9538,12 +9536,12 @@ class CuiCriterionInfoFormComponent {
|
|
|
9538
9536
|
});
|
|
9539
9537
|
});
|
|
9540
9538
|
}
|
|
9541
|
-
compareFormValues([prevGroup,
|
|
9542
|
-
const keys = Object.keys(
|
|
9539
|
+
compareFormValues([prevGroup, currentGruop]) {
|
|
9540
|
+
const keys = Object.keys(currentGruop);
|
|
9543
9541
|
const changedFields = {};
|
|
9544
9542
|
keys.forEach((key) => {
|
|
9545
9543
|
const prev = prevGroup[key];
|
|
9546
|
-
const current =
|
|
9544
|
+
const current = currentGruop[key];
|
|
9547
9545
|
if (prev === current || this.controls[key].invalid) {
|
|
9548
9546
|
return;
|
|
9549
9547
|
}
|
|
@@ -9552,12 +9550,18 @@ class CuiCriterionInfoFormComponent {
|
|
|
9552
9550
|
return changedFields;
|
|
9553
9551
|
}
|
|
9554
9552
|
setResourceFile(resource) {
|
|
9555
|
-
|
|
9556
|
-
this.thumbnail.set(resource);
|
|
9557
|
-
if (!url || resource?.name?.split('.').pop() !== 'mp4') {
|
|
9553
|
+
if (!resource.fileId) {
|
|
9558
9554
|
return;
|
|
9559
9555
|
}
|
|
9560
|
-
this.
|
|
9556
|
+
this.resourceApiService.get(resource.fileId, this.config().requestOptions)
|
|
9557
|
+
.pipe(takeUntilDestroyed(this.destroy), map((url) => URL.createObjectURL(url)))
|
|
9558
|
+
.subscribe((url) => {
|
|
9559
|
+
this.thumbnail.set({ ...resource, resource: url });
|
|
9560
|
+
if (!url || resource?.name?.split('.').pop() !== 'mp4') {
|
|
9561
|
+
return;
|
|
9562
|
+
}
|
|
9563
|
+
this.getCaptureFromVideo(url);
|
|
9564
|
+
});
|
|
9561
9565
|
}
|
|
9562
9566
|
getCaptureFromVideo(url, file) {
|
|
9563
9567
|
takeCaptureFromVideo(url).then((capture) => {
|
|
@@ -9572,7 +9576,7 @@ class CuiCriterionInfoFormComponent {
|
|
|
9572
9576
|
return !this.isDescriptionEmpty() && !this.form.invalid;
|
|
9573
9577
|
}
|
|
9574
9578
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9575
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoFormComponent, isStandalone: true, selector: "cui-criterion-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null },
|
|
9579
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoFormComponent, isStandalone: true, selector: "cui-criterion-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n\n <cui-utility-thumbnail\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9576
9580
|
}
|
|
9577
9581
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoFormComponent, decorators: [{
|
|
9578
9582
|
type: Component,
|
|
@@ -9588,7 +9592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9588
9592
|
CuiUtilityThumbnailComponent,
|
|
9589
9593
|
ReactiveFormsModule,
|
|
9590
9594
|
TranslocoDirective
|
|
9591
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-
|
|
9595
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n\n <cui-utility-thumbnail\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"] }]
|
|
9592
9596
|
}], ctorParameters: () => [] });
|
|
9593
9597
|
|
|
9594
9598
|
const UTILITY_MODAL_SERVICE_TOKEN = new InjectionToken('UTILITY_MODAL_SERVICE_TOKEN');
|
|
@@ -9652,6 +9656,7 @@ class CuiCriterionModalCreateComponent {
|
|
|
9652
9656
|
this.isFormValid = signal(false);
|
|
9653
9657
|
this.criterion = computed(() => this._criterion()());
|
|
9654
9658
|
this.initialUtility = input.required();
|
|
9659
|
+
this.config = input.required();
|
|
9655
9660
|
}
|
|
9656
9661
|
onCriterionCreated(storageNodeId) {
|
|
9657
9662
|
if (this.isCreated || this.initialUtility()) {
|
|
@@ -9666,11 +9671,11 @@ class CuiCriterionModalCreateComponent {
|
|
|
9666
9671
|
});
|
|
9667
9672
|
}
|
|
9668
9673
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9669
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiCriterionModalCreateComponent, isStandalone: true, selector: "ng-component", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<cui-utility-modal-create [initialUtility]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [
|
|
9674
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiCriterionModalCreateComponent, isStandalone: true, selector: "ng-component", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<cui-utility-modal-create [initialUtility]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [config]=\"config()\"\n (validationChanged)=\"isFormValid.set($event)\"\n (criterionCreated)=\"onCriterionCreated($event)\"\n />\n</cui-utility-modal-create>\n", dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiCriterionInfoComponent, selector: "cui-criterion-info", inputs: ["criterion", "config"], outputs: ["criterionChange", "validationChanged", "criterionCreated"] }, { kind: "component", type: CuiUtilityModalCreateComponent, selector: "cui-utility-modal-create", inputs: ["initialUtility"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9670
9675
|
}
|
|
9671
9676
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionModalCreateComponent, decorators: [{
|
|
9672
9677
|
type: Component,
|
|
9673
|
-
args: [{ imports: [CuiButtonModule, CuiSvgModule, CuiCriterionInfoComponent, CuiUtilityModalCreateComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-utility-modal-create [initialUtility]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [
|
|
9678
|
+
args: [{ imports: [CuiButtonModule, CuiSvgModule, CuiCriterionInfoComponent, CuiUtilityModalCreateComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-utility-modal-create [initialUtility]=\"criterion()\">\n <cui-criterion-info\n [criterion]=\"criterion()\"\n [config]=\"config()\"\n (validationChanged)=\"isFormValid.set($event)\"\n (criterionCreated)=\"onCriterionCreated($event)\"\n />\n</cui-utility-modal-create>\n" }]
|
|
9674
9679
|
}] });
|
|
9675
9680
|
|
|
9676
9681
|
class CuiInstructionInfoFormComponent {
|
|
@@ -9687,6 +9692,7 @@ class CuiInstructionInfoFormComponent {
|
|
|
9687
9692
|
this.destroy = inject(DestroyRef);
|
|
9688
9693
|
this.formBuilder = inject(NonNullableFormBuilder);
|
|
9689
9694
|
this.frameApiService = inject(CuiFrameApiService);
|
|
9695
|
+
this.resourceApiService = inject(CuiResourceApiService);
|
|
9690
9696
|
this.cuiIdService = inject(CuiIdService);
|
|
9691
9697
|
this.CONTROL_DELAY = 500;
|
|
9692
9698
|
this.titleId = this.cuiIdService.generate();
|
|
@@ -9702,7 +9708,6 @@ class CuiInstructionInfoFormComponent {
|
|
|
9702
9708
|
this.title = input.required();
|
|
9703
9709
|
this.description = input.required();
|
|
9704
9710
|
this.framerId = input.required();
|
|
9705
|
-
this.baseResourceUrl = input.required();
|
|
9706
9711
|
this.config = input.required();
|
|
9707
9712
|
this.formChanged = output();
|
|
9708
9713
|
this.isFormValidChanged = output();
|
|
@@ -9767,12 +9772,18 @@ class CuiInstructionInfoFormComponent {
|
|
|
9767
9772
|
return changedFields;
|
|
9768
9773
|
}
|
|
9769
9774
|
setResourceFile(resource) {
|
|
9770
|
-
|
|
9771
|
-
this.thumbnail.set(resource);
|
|
9772
|
-
if (!url || resource?.name?.split('.').pop() !== 'mp4') {
|
|
9775
|
+
if (!resource.fileId) {
|
|
9773
9776
|
return;
|
|
9774
9777
|
}
|
|
9775
|
-
this.
|
|
9778
|
+
this.resourceApiService.get(resource.fileId, this.config().requestOptions)
|
|
9779
|
+
.pipe(takeUntilDestroyed(this.destroy), map((url) => URL.createObjectURL(url)))
|
|
9780
|
+
.subscribe((url) => {
|
|
9781
|
+
this.thumbnail.set({ ...resource, resource: url });
|
|
9782
|
+
if (!url || resource?.name?.split('.').pop() !== 'mp4') {
|
|
9783
|
+
return;
|
|
9784
|
+
}
|
|
9785
|
+
this.getCaptureFromVideo(url);
|
|
9786
|
+
});
|
|
9776
9787
|
}
|
|
9777
9788
|
getCaptureFromVideo(url, file) {
|
|
9778
9789
|
takeCaptureFromVideo(url).then((capture) => {
|
|
@@ -9787,7 +9798,7 @@ class CuiInstructionInfoFormComponent {
|
|
|
9787
9798
|
return !this.isDescriptionEmpty() && !this.form.invalid;
|
|
9788
9799
|
}
|
|
9789
9800
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9790
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoFormComponent, isStandalone: true, selector: "cui-instruction-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null },
|
|
9801
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoFormComponent, isStandalone: true, selector: "cui-instruction-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-utility-thumbnail\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["thumbnail", "framerId"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9791
9802
|
}
|
|
9792
9803
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoFormComponent, decorators: [{
|
|
9793
9804
|
type: Component,
|
|
@@ -9803,7 +9814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9803
9814
|
CuiUtilityThumbnailComponent,
|
|
9804
9815
|
ReactiveFormsModule,
|
|
9805
9816
|
TranslocoDirective
|
|
9806
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-utility-thumbnail\n [
|
|
9817
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <section class=\"content\">\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"titleId\"\n >\n {{ t('TITLE') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"titleId\"\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\n [cuiTextFieldIsError]=\"isTitleError\"\n [formControl]=\"form.controls.title\"\n />\n\n @if (isTitleError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.title\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-form-field>\n <label\n cuiLabel\n [isRequired]=\"true\"\n [for]=\"descriptionId\"\n >\n {{ t('SHORT_DESCRIPTION') }}\n </label>\n\n <cui-input-text\n [cuiTextFieldId]=\"descriptionId\"\n cuiTextFieldPlaceholder=\"{{ t('SHORT_DESCRIPTION') }}...\"\n [cuiTextFieldIsError]=\"isDescriptionError\"\n [formControl]=\"form.controls.description\"\n />\n\n @if (isDescriptionError) {\n <cui-general-control-error-hint\n [control]=\"form.controls.description\"\n [isVisible]=\"true\"\n />\n }\n </cui-form-field>\n\n <cui-utility-thumbnail\n [framerId]=\"framerId()\"\n [(thumbnail)]=\"thumbnail\"\n />\n\n @if (editorId(); as editorId) {\n <cui-editor-block\n [title]=\"form.controls.title.value || title()\"\n [config]=\"config()\"\n [editorId]=\"editorId\"\n [required]=\"true\"\n class=\"editor\"\n (editorEmpty)=\"onEditorEmpty($event)\"\n />\n }\n </section>\n</ng-container>\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"] }]
|
|
9807
9818
|
}], ctorParameters: () => [] });
|
|
9808
9819
|
|
|
9809
9820
|
class CuiInstructionInfoComponent {
|
|
@@ -9825,8 +9836,7 @@ class CuiInstructionInfoComponent {
|
|
|
9825
9836
|
this.selectTitle = computed(() => this.category()?.title || this.translocoService.translate('SELECT') + '...');
|
|
9826
9837
|
this.element = viewChild('scrollContent');
|
|
9827
9838
|
this.instruction = model();
|
|
9828
|
-
this.
|
|
9829
|
-
this.editorResourceUrl = input.required();
|
|
9839
|
+
this.config = input.required();
|
|
9830
9840
|
this.validationChanged = output();
|
|
9831
9841
|
this.instructionCreated = output();
|
|
9832
9842
|
this.initConfigEffect();
|
|
@@ -9869,7 +9879,7 @@ class CuiInstructionInfoComponent {
|
|
|
9869
9879
|
if (!element) {
|
|
9870
9880
|
return;
|
|
9871
9881
|
}
|
|
9872
|
-
this.editorConfig.set({
|
|
9882
|
+
this.editorConfig.set({ ...this.config(), element });
|
|
9873
9883
|
});
|
|
9874
9884
|
}
|
|
9875
9885
|
initCategory() {
|
|
@@ -9921,7 +9931,7 @@ class CuiInstructionInfoComponent {
|
|
|
9921
9931
|
}))));
|
|
9922
9932
|
}
|
|
9923
9933
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9924
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null },
|
|
9934
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let instructionData = instruction();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && instructionData) {\n <cui-instruction-info-form\n [config]=\"editorConfigData\"\n [title]=\"instructionData.storageElement.title\"\n [description]=\"instructionData.storageElement.shortDescription\"\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled", "context"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9925
9935
|
}
|
|
9926
9936
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, decorators: [{
|
|
9927
9937
|
type: Component,
|
|
@@ -9935,7 +9945,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9935
9945
|
CuiLabelModule,
|
|
9936
9946
|
CuiSvgModule,
|
|
9937
9947
|
TranslocoModule
|
|
9938
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let instructionData = instruction();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && instructionData) {\n <cui-instruction-info-form\n [config]=\"editorConfigData\"\n [
|
|
9948
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let instructionData = instruction();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && instructionData) {\n <cui-instruction-info-form\n [config]=\"editorConfigData\"\n [title]=\"instructionData.storageElement.title\"\n [description]=\"instructionData.storageElement.shortDescription\"\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"] }]
|
|
9939
9949
|
}], ctorParameters: () => [] });
|
|
9940
9950
|
|
|
9941
9951
|
class CuiInstructionModalCreateComponent {
|
|
@@ -9944,13 +9954,13 @@ class CuiInstructionModalCreateComponent {
|
|
|
9944
9954
|
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
9945
9955
|
this.instructionApiService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
9946
9956
|
this.isCreated = false;
|
|
9947
|
-
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
9948
9957
|
this.tools = this.cuiDialogContext.data.tools;
|
|
9949
9958
|
this.header = this.cuiDialogContext.data.header;
|
|
9950
9959
|
this._instruction = computed(() => signal(this.initialUtility()));
|
|
9951
9960
|
this.isFormValid = signal(false);
|
|
9952
9961
|
this.instruction = computed(() => this._instruction()());
|
|
9953
9962
|
this.initialUtility = input.required();
|
|
9963
|
+
this.config = input.required();
|
|
9954
9964
|
}
|
|
9955
9965
|
onInstructionCreated(storageNodeId) {
|
|
9956
9966
|
if (this.isCreated || this.initialUtility()) {
|
|
@@ -9965,63 +9975,55 @@ class CuiInstructionModalCreateComponent {
|
|
|
9965
9975
|
});
|
|
9966
9976
|
}
|
|
9967
9977
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9968
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", 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 [
|
|
9978
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CuiInstructionModalCreateComponent, isStandalone: true, selector: "ng-component", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<cui-utility-modal-create [initialUtility]=\"instruction()\">\n <cui-instruction-info\n [instruction]=\"instruction()\"\n [config]=\"config()\"\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", "config"], outputs: ["instructionChange", "validationChanged", "instructionCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9969
9979
|
}
|
|
9970
9980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionModalCreateComponent, decorators: [{
|
|
9971
9981
|
type: Component,
|
|
9972
|
-
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 [
|
|
9982
|
+
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 [config]=\"config()\"\n (validationChanged)=\"isFormValid.set($event)\"\n (instructionCreated)=\"onInstructionCreated($event)\"\n />\n</cui-utility-modal-create>\n" }]
|
|
9973
9983
|
}] });
|
|
9974
9984
|
|
|
9975
|
-
class
|
|
9985
|
+
class CuiUtilityReadonlyThumbnailComponent {
|
|
9976
9986
|
constructor() {
|
|
9977
|
-
this.
|
|
9978
|
-
this.
|
|
9979
|
-
this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
9980
|
-
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
9981
|
-
this.tools = this.cuiDialogContext.data.tools;
|
|
9982
|
-
this.header = this.cuiDialogContext.data.header;
|
|
9983
|
-
this.isLoading = signal(false);
|
|
9984
|
-
this.utility = input.required();
|
|
9985
|
-
this.utilityUnbinded = output();
|
|
9986
|
-
}
|
|
9987
|
-
onClose() {
|
|
9988
|
-
this.cuiDialogContext.completeWith();
|
|
9989
|
-
}
|
|
9990
|
-
onUnbind() {
|
|
9991
|
-
this.isLoading.set(true);
|
|
9992
|
-
this.utilityModalService
|
|
9993
|
-
.unbindUtility(this.utility().id)
|
|
9994
|
-
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.isLoading.set(false)))
|
|
9995
|
-
.subscribe((utility) => {
|
|
9996
|
-
this.utilityUnbinded.emit(utility);
|
|
9997
|
-
});
|
|
9987
|
+
this.thumbnailUrl = input.required();
|
|
9988
|
+
this.isVideo = input(false);
|
|
9998
9989
|
}
|
|
9999
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
10000
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
9990
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9991
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 }); }
|
|
10001
9992
|
}
|
|
10002
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type:
|
|
9993
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, decorators: [{
|
|
10003
9994
|
type: Component,
|
|
10004
|
-
args: [{ selector: 'cui-readonly-
|
|
9995
|
+
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"] }]
|
|
10005
9996
|
}] });
|
|
10006
9997
|
|
|
10007
9998
|
class CuiCriterionReadonlyInfoComponent {
|
|
10008
9999
|
constructor() {
|
|
10009
10000
|
this.hostElement = inject(ElementRef).nativeElement;
|
|
10010
10001
|
this.frameApiService = inject(CuiFrameApiService);
|
|
10002
|
+
this.resourceApiService = inject(CuiResourceApiService);
|
|
10011
10003
|
this.isVideo = false;
|
|
10012
10004
|
this.jText = signal(null);
|
|
10013
|
-
this.
|
|
10005
|
+
this.resource = signal(null);
|
|
10006
|
+
this.thumbnailUrl = computed(() => {
|
|
10007
|
+
const resource = this.resource();
|
|
10008
|
+
if (!resource?.fileId) {
|
|
10009
|
+
return of(null);
|
|
10010
|
+
}
|
|
10011
|
+
return this.resourceApiService.get(resource.fileId, this.config().requestOptions).pipe(map((url) => {
|
|
10012
|
+
return {
|
|
10013
|
+
src: URL.createObjectURL(url),
|
|
10014
|
+
name: resource.name || resource.type
|
|
10015
|
+
};
|
|
10016
|
+
}));
|
|
10017
|
+
});
|
|
10014
10018
|
this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
|
|
10015
10019
|
this.framerId = input.required();
|
|
10016
|
-
this.
|
|
10017
|
-
this.tools = input.required();
|
|
10018
|
-
this.editorResourceUrl = input.required();
|
|
10020
|
+
this.config = input.required();
|
|
10019
10021
|
this.initConfigEffect();
|
|
10020
10022
|
this.initFramerIdEffect();
|
|
10021
10023
|
}
|
|
10022
10024
|
initConfigEffect() {
|
|
10023
10025
|
effect(() => {
|
|
10024
|
-
this.editorConfig = { readOnly: true,
|
|
10026
|
+
this.editorConfig = { readOnly: true, element: this.hostElement, ...this.config() };
|
|
10025
10027
|
});
|
|
10026
10028
|
}
|
|
10027
10029
|
initFramerIdEffect() {
|
|
@@ -10037,7 +10039,7 @@ class CuiCriterionReadonlyInfoComponent {
|
|
|
10037
10039
|
initFrameFragments() {
|
|
10038
10040
|
const frameId = this.framerId();
|
|
10039
10041
|
this.jText.set(null);
|
|
10040
|
-
this.
|
|
10042
|
+
this.resource.set(null);
|
|
10041
10043
|
if (!frameId) {
|
|
10042
10044
|
return;
|
|
10043
10045
|
}
|
|
@@ -10046,39 +10048,69 @@ class CuiCriterionReadonlyInfoComponent {
|
|
|
10046
10048
|
this.jText.set(fragment);
|
|
10047
10049
|
},
|
|
10048
10050
|
["RESOURCE_FILE" /* FragmentType.resourceFile */]: (fragment) => {
|
|
10049
|
-
this.
|
|
10051
|
+
this.resource.set(fragment);
|
|
10050
10052
|
}
|
|
10051
10053
|
};
|
|
10052
10054
|
this.subscription = this.frameApiService.getFrame(frameId).subscribe((frame) => {
|
|
10053
10055
|
frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
|
|
10054
10056
|
});
|
|
10055
10057
|
}
|
|
10056
|
-
setResourceFile(resource) {
|
|
10057
|
-
const url = `${this.editorResourceUrl()}${resource.fileId}`;
|
|
10058
|
-
this.isVideo = resource?.name?.split('.').pop() === 'mp4';
|
|
10059
|
-
if (!url) {
|
|
10060
|
-
return;
|
|
10061
|
-
}
|
|
10062
|
-
this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
|
|
10063
|
-
}
|
|
10064
10058
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10065
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionReadonlyInfoComponent, isStandalone: true, selector: "cui-criterion-readonly-info", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null },
|
|
10059
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionReadonlyInfoComponent, isStandalone: true, selector: "cui-criterion-readonly-info", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl() | async; as thumbnailUrl) {\n <cui-utility-readonly-thumbnail\n [thumbnailUrl]=\"thumbnailUrl\"\n [isVideo]=\"isVideo\"\n />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiUtilityReadonlyThumbnailComponent, selector: "cui-utility-readonly-thumbnail", inputs: ["thumbnailUrl", "isVideo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10066
10060
|
}
|
|
10067
10061
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, decorators: [{
|
|
10068
10062
|
type: Component,
|
|
10069
|
-
args: [{ selector: 'cui-criterion-readonly-info', imports: [CuiEditorComponent, CuiEmptyStateComponent, TranslocoDirective, CuiUtilityReadonlyThumbnailComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl(); as thumbnailUrl) {\n <cui-utility-readonly-thumbnail\n [thumbnailUrl]=\"thumbnailUrl\"\n [isVideo]=\"isVideo\"\n />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
10063
|
+
args: [{ selector: 'cui-criterion-readonly-info', imports: [CuiEditorComponent, CuiEmptyStateComponent, AsyncPipe, TranslocoDirective, CuiUtilityReadonlyThumbnailComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl() | async; as thumbnailUrl) {\n <cui-utility-readonly-thumbnail\n [thumbnailUrl]=\"thumbnailUrl\"\n [isVideo]=\"isVideo\"\n />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
10070
10064
|
}], ctorParameters: () => [] });
|
|
10071
10065
|
|
|
10066
|
+
class CuiReadonlyUtilityModalComponent {
|
|
10067
|
+
constructor() {
|
|
10068
|
+
this.destroyRef = inject(DestroyRef);
|
|
10069
|
+
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
10070
|
+
this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
10071
|
+
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
10072
|
+
this.tools = this.cuiDialogContext.data.tools;
|
|
10073
|
+
this.header = this.cuiDialogContext.data.header;
|
|
10074
|
+
this.isLoading = signal(false);
|
|
10075
|
+
this.utility = input.required();
|
|
10076
|
+
this.utilityUnbinded = output();
|
|
10077
|
+
}
|
|
10078
|
+
onClose() {
|
|
10079
|
+
this.cuiDialogContext.completeWith();
|
|
10080
|
+
}
|
|
10081
|
+
onUnbind() {
|
|
10082
|
+
this.isLoading.set(true);
|
|
10083
|
+
this.utilityModalService
|
|
10084
|
+
.unbindUtility(this.utility().id)
|
|
10085
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.isLoading.set(false)))
|
|
10086
|
+
.subscribe((utility) => {
|
|
10087
|
+
this.utilityUnbinded.emit(utility);
|
|
10088
|
+
});
|
|
10089
|
+
}
|
|
10090
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyUtilityModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10091
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", 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;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;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;flex-direction:row;gap:4px;align-items:center;justify-content:flex-start;font-weight:500;font-size:14px;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "component", type: CuiBadgeComponent, selector: "cui-badge", inputs: ["color", "size", "isWithDot"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: 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 }); }
|
|
10092
|
+
}
|
|
10093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyUtilityModalComponent, decorators: [{
|
|
10094
|
+
type: Component,
|
|
10095
|
+
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;flex-direction:row;gap:8px;align-items:center;justify-content:flex-start;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;flex-direction:row;gap:4px;align-items:center;justify-content:flex-start;font-weight:500;font-size:14px;line-height:20px}\n"] }]
|
|
10096
|
+
}] });
|
|
10097
|
+
|
|
10072
10098
|
class CuiReadonlyCriterionModalComponent {
|
|
10073
10099
|
constructor() {
|
|
10074
10100
|
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
10075
10101
|
this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
|
|
10076
|
-
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
10077
10102
|
this.tools = this.cuiDialogContext.data.tools;
|
|
10078
10103
|
this.header = this.cuiDialogContext.data.header;
|
|
10079
10104
|
this.isLoading = signal(false);
|
|
10105
|
+
this.config = computed(() => ({
|
|
10106
|
+
tools: this.tools(),
|
|
10107
|
+
requestOptions: this.context(),
|
|
10108
|
+
element: this.element()?.nativeElement
|
|
10109
|
+
}));
|
|
10080
10110
|
this.framerId = computed(() => this.criterion().storageElement.framerCriterionId);
|
|
10111
|
+
this.element = viewChild('scrollContainer');
|
|
10081
10112
|
this.criterion = input.required();
|
|
10113
|
+
this.context = input.required();
|
|
10082
10114
|
}
|
|
10083
10115
|
onUnbind(criterion) {
|
|
10084
10116
|
this.cuiRenderDynamicComponentsService.closeAll();
|
|
@@ -10088,7 +10120,7 @@ class CuiReadonlyCriterionModalComponent {
|
|
|
10088
10120
|
});
|
|
10089
10121
|
}
|
|
10090
10122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyCriterionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10091
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
10123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiReadonlyCriterionModalComponent, isStandalone: true, selector: "cui-readonly-criterion-modal", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContainer"], descendants: true, isSignal: true }], 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 [config]=\"config()\"\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: "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"] }, { kind: "component", type: CuiCriterionReadonlyInfoComponent, selector: "cui-criterion-readonly-info", inputs: ["framerId", "config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10092
10124
|
}
|
|
10093
10125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyCriterionModalComponent, decorators: [{
|
|
10094
10126
|
type: Component,
|
|
@@ -10099,19 +10131,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10099
10131
|
TranslocoDirective,
|
|
10100
10132
|
CuiReadonlyUtilityModalComponent,
|
|
10101
10133
|
CuiCriterionReadonlyInfoComponent
|
|
10102
|
-
], 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 [
|
|
10134
|
+
], 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 [config]=\"config()\"\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"] }]
|
|
10103
10135
|
}] });
|
|
10104
10136
|
|
|
10137
|
+
class CuiInstructionReadonlyInfoComponent {
|
|
10138
|
+
constructor() {
|
|
10139
|
+
this.hostElement = inject(ElementRef).nativeElement;
|
|
10140
|
+
this.frameApiService = inject(CuiFrameApiService);
|
|
10141
|
+
this.resourceApiService = inject(CuiResourceApiService);
|
|
10142
|
+
this.isVideo = false;
|
|
10143
|
+
this.jText = signal(null);
|
|
10144
|
+
this.resource = signal(null);
|
|
10145
|
+
this.thumbnailUrl = computed(() => {
|
|
10146
|
+
const resource = this.resource();
|
|
10147
|
+
if (!resource?.fileId) {
|
|
10148
|
+
return of(null);
|
|
10149
|
+
}
|
|
10150
|
+
return this.resourceApiService.get(resource.fileId, this.config().requestOptions).pipe(map((url) => {
|
|
10151
|
+
return {
|
|
10152
|
+
src: URL.createObjectURL(url),
|
|
10153
|
+
name: resource.name || resource.type
|
|
10154
|
+
};
|
|
10155
|
+
}));
|
|
10156
|
+
});
|
|
10157
|
+
this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
|
|
10158
|
+
this.framerId = input.required();
|
|
10159
|
+
this.config = input.required();
|
|
10160
|
+
this.initConfigEffect();
|
|
10161
|
+
this.initFramerIdEffect();
|
|
10162
|
+
}
|
|
10163
|
+
initConfigEffect() {
|
|
10164
|
+
effect(() => {
|
|
10165
|
+
this.editorConfig = { readOnly: true, element: this.hostElement, ...this.config() };
|
|
10166
|
+
});
|
|
10167
|
+
}
|
|
10168
|
+
initFramerIdEffect() {
|
|
10169
|
+
effect(() => {
|
|
10170
|
+
const framerId = this.framerId();
|
|
10171
|
+
if (!framerId) {
|
|
10172
|
+
return;
|
|
10173
|
+
}
|
|
10174
|
+
this.subscription?.unsubscribe();
|
|
10175
|
+
this.initFrameFragments();
|
|
10176
|
+
});
|
|
10177
|
+
}
|
|
10178
|
+
initFrameFragments() {
|
|
10179
|
+
const frameId = this.framerId();
|
|
10180
|
+
this.jText.set(null);
|
|
10181
|
+
this.resource.set(null);
|
|
10182
|
+
if (!frameId) {
|
|
10183
|
+
return;
|
|
10184
|
+
}
|
|
10185
|
+
const fragmentActions = {
|
|
10186
|
+
["J_TEXT" /* FragmentType.jText */]: (fragment) => {
|
|
10187
|
+
this.jText.set(fragment);
|
|
10188
|
+
},
|
|
10189
|
+
["RESOURCE_FILE" /* FragmentType.resourceFile */]: (fragment) => {
|
|
10190
|
+
this.resource.set(fragment);
|
|
10191
|
+
}
|
|
10192
|
+
};
|
|
10193
|
+
this.subscription = this.frameApiService.getFrame(frameId).subscribe((frame) => {
|
|
10194
|
+
frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
|
|
10195
|
+
});
|
|
10196
|
+
}
|
|
10197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionReadonlyInfoComponent, isStandalone: true, selector: "cui-instruction-readonly-info", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl() | async; as thumbnailUrl) {\n <cui-utility-readonly-thumbnail\n [thumbnailUrl]=\"thumbnailUrl\"\n [isVideo]=\"isVideo\"\n />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiUtilityReadonlyThumbnailComponent, selector: "cui-utility-readonly-thumbnail", inputs: ["thumbnailUrl", "isVideo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10199
|
+
}
|
|
10200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, decorators: [{
|
|
10201
|
+
type: Component,
|
|
10202
|
+
args: [{ selector: 'cui-instruction-readonly-info', imports: [CuiEditorComponent, CuiEmptyStateComponent, AsyncPipe, TranslocoDirective, CuiUtilityReadonlyThumbnailComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl() | async; as thumbnailUrl) {\n <cui-utility-readonly-thumbnail\n [thumbnailUrl]=\"thumbnailUrl\"\n [isVideo]=\"isVideo\"\n />\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
10203
|
+
}], ctorParameters: () => [] });
|
|
10204
|
+
|
|
10105
10205
|
class CuiReadonlyInstructionModalComponent {
|
|
10106
10206
|
constructor() {
|
|
10107
10207
|
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
10108
10208
|
this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
|
|
10109
|
-
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
10110
10209
|
this.tools = this.cuiDialogContext.data.tools;
|
|
10111
10210
|
this.header = this.cuiDialogContext.data.header;
|
|
10112
10211
|
this.isLoading = signal(false);
|
|
10212
|
+
this.config = computed(() => ({
|
|
10213
|
+
tools: this.tools(),
|
|
10214
|
+
requestOptions: this.context(),
|
|
10215
|
+
element: this.element()?.nativeElement
|
|
10216
|
+
}));
|
|
10113
10217
|
this.framerId = computed(() => this.instruction().storageElement.framerInstructionId);
|
|
10218
|
+
this.element = viewChild('scrollContainer');
|
|
10114
10219
|
this.instruction = input.required();
|
|
10220
|
+
this.context = input.required();
|
|
10115
10221
|
}
|
|
10116
10222
|
onUnbind(instruction) {
|
|
10117
10223
|
this.cuiRenderDynamicComponentsService.closeAll();
|
|
@@ -10121,7 +10227,7 @@ class CuiReadonlyInstructionModalComponent {
|
|
|
10121
10227
|
});
|
|
10122
10228
|
}
|
|
10123
10229
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyInstructionModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
10230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiReadonlyInstructionModalComponent, isStandalone: true, selector: "cui-readonly-instruction-modal", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <cui-readonly-utility-modal\n [utility]=\"instruction()\"\n (utilityUnbinded)=\"onUnbind($event)\"\n >\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 [config]=\"config()\"\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", "config"] }, { 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 }); }
|
|
10125
10231
|
}
|
|
10126
10232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiReadonlyInstructionModalComponent, decorators: [{
|
|
10127
10233
|
type: Component,
|
|
@@ -10132,7 +10238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10132
10238
|
CuiInstructionReadonlyInfoComponent,
|
|
10133
10239
|
TranslocoDirective,
|
|
10134
10240
|
CuiReadonlyUtilityModalComponent
|
|
10135
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <cui-readonly-utility-modal\n [utility]=\"instruction()\"\n (utilityUnbinded)=\"onUnbind($event)\"\n >\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 [
|
|
10241
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <cui-readonly-utility-modal\n [utility]=\"instruction()\"\n (utilityUnbinded)=\"onUnbind($event)\"\n >\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 [config]=\"config()\"\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"] }]
|
|
10136
10242
|
}] });
|
|
10137
10243
|
|
|
10138
10244
|
class CuiUtilityModalComponent {
|
|
@@ -10162,19 +10268,18 @@ class CuiCriterionInfoComponent {
|
|
|
10162
10268
|
this.cuiCategoriesModalService = inject(CuiSelectedCategoryService);
|
|
10163
10269
|
this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
|
|
10164
10270
|
this.criterionApiService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
10271
|
+
this.TYPE = "INSTRUCTION_STORAGE" /* TreeStructType.Instruction */;
|
|
10165
10272
|
this.skipCategoryChange = false;
|
|
10166
|
-
this.TYPE = "CRITERION_STORAGE" /* TreeStructType.Criteria */;
|
|
10167
10273
|
this.categoryId = this.cuiIdService.generate();
|
|
10168
10274
|
this.category = this.cuiCategoriesModalService.category;
|
|
10169
10275
|
this.isFormValid = signal(false);
|
|
10170
10276
|
this.prevCategoryId = signal(null);
|
|
10171
10277
|
this.editorConfig = signal(null);
|
|
10172
10278
|
this.labelColor = computed(() => this.category()?.title ? 'var(--cui-base-900)' : 'var(--cui-base-400)');
|
|
10173
|
-
this.selectTitle = computed(() => this.category()?.title
|
|
10279
|
+
this.selectTitle = computed(() => this.category()?.title || this.translocoService.translate('SELECT') + '...');
|
|
10174
10280
|
this.element = viewChild('scrollContent');
|
|
10175
10281
|
this.criterion = model();
|
|
10176
|
-
this.
|
|
10177
|
-
this.editorResourceUrl = input.required();
|
|
10282
|
+
this.config = input.required();
|
|
10178
10283
|
this.validationChanged = output();
|
|
10179
10284
|
this.criterionCreated = output();
|
|
10180
10285
|
this.initConfigEffect();
|
|
@@ -10185,7 +10290,8 @@ class CuiCriterionInfoComponent {
|
|
|
10185
10290
|
}
|
|
10186
10291
|
onFormChanged(values, criterionId) {
|
|
10187
10292
|
const actions = {
|
|
10188
|
-
title: (title) => this.changeTitle(title, criterionId)
|
|
10293
|
+
title: (title) => this.changeTitle(title, criterionId),
|
|
10294
|
+
description: (description) => this.changeDescription(description, criterionId)
|
|
10189
10295
|
};
|
|
10190
10296
|
forkJoin(Object.keys(values).map((key) => actions[key](values[key] || '')))
|
|
10191
10297
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
@@ -10216,7 +10322,7 @@ class CuiCriterionInfoComponent {
|
|
|
10216
10322
|
if (!element) {
|
|
10217
10323
|
return;
|
|
10218
10324
|
}
|
|
10219
|
-
this.editorConfig.set({
|
|
10325
|
+
this.editorConfig.set({ ...this.config(), element });
|
|
10220
10326
|
});
|
|
10221
10327
|
}
|
|
10222
10328
|
initCategory() {
|
|
@@ -10258,8 +10364,17 @@ class CuiCriterionInfoComponent {
|
|
|
10258
10364
|
storageElement: { ...prev.storageElement, title: value }
|
|
10259
10365
|
}))));
|
|
10260
10366
|
}
|
|
10367
|
+
changeDescription(value, criterionId) {
|
|
10368
|
+
if (!this.criterionApiService.changeDescription) {
|
|
10369
|
+
throw new Error('Change description not implemented');
|
|
10370
|
+
}
|
|
10371
|
+
return this.criterionApiService.changeDescription(criterionId, value).pipe(finalize(() => this.criterion.update((prev) => ({
|
|
10372
|
+
...prev,
|
|
10373
|
+
storageElement: { ...prev.storageElement, shortDescription: value }
|
|
10374
|
+
}))));
|
|
10375
|
+
}
|
|
10261
10376
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoComponent, isStandalone: true, selector: "cui-criterion-info", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: false, transformFunction: null },
|
|
10377
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoComponent, isStandalone: true, selector: "cui-criterion-info", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { criterion: "criterionChange", validationChanged: "validationChanged", criterionCreated: "criterionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let criterionData = criterion();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && criterionData) {\n <cui-criterion-info-form\n [config]=\"editorConfigData\"\n [title]=\"criterionData.storageElement.title\"\n [description]=\"criterionData.storageElement.shortDescription\"\n [framerId]=\"criterionData.storageElement.framerCriterionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, criterionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled", "context"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiCriterionInfoFormComponent, selector: "cui-criterion-info-form", inputs: ["title", "description", "framerId", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10263
10378
|
}
|
|
10264
10379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoComponent, decorators: [{
|
|
10265
10380
|
type: Component,
|
|
@@ -10273,78 +10388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10273
10388
|
CuiLabelModule,
|
|
10274
10389
|
CuiSvgModule,
|
|
10275
10390
|
TranslocoModule
|
|
10276
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let criterionData = criterion();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && criterionData) {\n <cui-criterion-info-form\n [config]=\"editorConfigData\"\n [
|
|
10277
|
-
}], ctorParameters: () => [] });
|
|
10278
|
-
|
|
10279
|
-
class CuiFramerPreviewComponent {
|
|
10280
|
-
constructor() {
|
|
10281
|
-
this.hostElement = inject(ElementRef).nativeElement;
|
|
10282
|
-
this.frameApiService = inject(CuiFrameApiService);
|
|
10283
|
-
this.isVideo = false;
|
|
10284
|
-
this.jText = signal(null);
|
|
10285
|
-
this.thumbnailUrl = signal(null);
|
|
10286
|
-
this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
|
|
10287
|
-
this.framerId = input.required();
|
|
10288
|
-
this.config = input.required();
|
|
10289
|
-
this.editorResourceUrl = input.required();
|
|
10290
|
-
this.title = input();
|
|
10291
|
-
this.initConfigEffect();
|
|
10292
|
-
this.initFramerIdEffect();
|
|
10293
|
-
}
|
|
10294
|
-
initConfigEffect() {
|
|
10295
|
-
effect(() => {
|
|
10296
|
-
this.editorConfig = {
|
|
10297
|
-
element: this.hostElement,
|
|
10298
|
-
...this.config(),
|
|
10299
|
-
readOnly: true
|
|
10300
|
-
};
|
|
10301
|
-
}, { allowSignalWrites: true });
|
|
10302
|
-
}
|
|
10303
|
-
initFramerIdEffect() {
|
|
10304
|
-
effect(() => {
|
|
10305
|
-
const framerId = this.framerId();
|
|
10306
|
-
if (!framerId) {
|
|
10307
|
-
return;
|
|
10308
|
-
}
|
|
10309
|
-
this.subscription?.unsubscribe();
|
|
10310
|
-
this.initFrameFragments();
|
|
10311
|
-
}, { allowSignalWrites: true });
|
|
10312
|
-
}
|
|
10313
|
-
initFrameFragments() {
|
|
10314
|
-
const frameId = this.framerId();
|
|
10315
|
-
this.jText.set(null);
|
|
10316
|
-
this.thumbnailUrl.set(null);
|
|
10317
|
-
if (!frameId) {
|
|
10318
|
-
return;
|
|
10319
|
-
}
|
|
10320
|
-
const fragmentActions = {
|
|
10321
|
-
J_TEXT: (fragment) => {
|
|
10322
|
-
this.jText.set(fragment);
|
|
10323
|
-
},
|
|
10324
|
-
RESOURCE_FILE: (fragment) => {
|
|
10325
|
-
this.setResourceFile(fragment);
|
|
10326
|
-
}
|
|
10327
|
-
};
|
|
10328
|
-
this.subscription = this.frameApiService
|
|
10329
|
-
.getFrame(frameId, this.editorConfig.requestOptions)
|
|
10330
|
-
.subscribe((frame) => {
|
|
10331
|
-
frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
|
|
10332
|
-
});
|
|
10333
|
-
}
|
|
10334
|
-
setResourceFile(resource) {
|
|
10335
|
-
const url = `${this.editorResourceUrl()}/${resource.fileId}`;
|
|
10336
|
-
this.isVideo = resource?.name?.split('.').pop() === 'mp4';
|
|
10337
|
-
if (!url) {
|
|
10338
|
-
return;
|
|
10339
|
-
}
|
|
10340
|
-
this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
|
|
10341
|
-
}
|
|
10342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10343
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiFramerPreviewComponent, isStandalone: true, selector: "cui-framer-preview", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @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\n <div class=\"content\">\n @if (title(); as title) {\n <div class=\"title\">{{ title }}</div>\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:0;height:100%;overflow:auto}.thumbnail{width:100%;max-height:271px;object-fit:contain}.content{display:flex;flex-direction:column;gap:14px;padding:16px 12px}.title{font-weight:500;font-size:18px;line-height:28px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10344
|
-
}
|
|
10345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, decorators: [{
|
|
10346
|
-
type: Component,
|
|
10347
|
-
args: [{ selector: 'cui-framer-preview', imports: [TranslocoDirective, CuiEditorComponent, CuiEmptyStateComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @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\n <div class=\"content\">\n @if (title(); as title) {\n <div class=\"title\">{{ title }}</div>\n }\n\n @if (jText()?.id; as id) {\n <div class=\"wrapper\">\n <cui-editor\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"editorConfig\"\n />\n </div>\n }\n </div>\n } @else {\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\n }\n }\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;gap:0;height:100%;overflow:auto}.thumbnail{width:100%;max-height:271px;object-fit:contain}.content{display:flex;flex-direction:column;gap:14px;padding:16px 12px}.title{font-weight:500;font-size:18px;line-height:28px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
10391
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let criterionData = criterion();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && criterionData) {\n <cui-criterion-info-form\n [config]=\"editorConfigData\"\n [title]=\"criterionData.storageElement.title\"\n [description]=\"criterionData.storageElement.shortDescription\"\n [framerId]=\"criterionData.storageElement.framerCriterionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, criterionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"] }]
|
|
10348
10392
|
}], ctorParameters: () => [] });
|
|
10349
10393
|
|
|
10350
10394
|
class CuiSelectModalFolderComponent {
|
|
@@ -12228,5 +12272,5 @@ function handleError(handler, useDefaultError = true) {
|
|
|
12228
12272
|
* Generated bundle index. Do not edit.
|
|
12229
12273
|
*/
|
|
12230
12274
|
|
|
12231
|
-
export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionModalCreateComponent, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploaderStatus, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiVideoTool, CuiVisualViewportService, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAuthInterceptor, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
|
|
12275
|
+
export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionInfoFormComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploaderStatus, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiReadonlyUtilityModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiUtilityModalCreateComponent, CuiUtilityReadonlyThumbnailComponent, CuiUtilityThumbnailComponent, CuiVideoTool, CuiVisualViewportService, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAuthInterceptor, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
|
|
12232
12276
|
//# sourceMappingURL=cuby-ui-core.mjs.map
|