@cuby-ui/core 0.0.596 → 0.0.598
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/editor/editor.component.d.ts +25 -10
- package/esm2022/editor/editor.component.mjs +151 -66
- package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +2 -2
- package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +2 -2
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +2 -2
- package/esm2022/widgets/ui/criterion-readonly-info/criterion-readonly-info.component.mjs +2 -2
- package/esm2022/widgets/ui/framer-preview/framer-preview.component.mjs +2 -2
- package/esm2022/widgets/ui/instruction-readonly-info/instruction-readonly-info.component.mjs +2 -2
- package/esm2022/widgets/ui/modal-operation-part/modal-operation-part.component.mjs +2 -2
- package/esm2022/widgets/ui/utility-info-readonly/utility-info-readonly.component.mjs +2 -2
- package/fesm2022/cuby-ui-core.mjs +157 -72
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -6,7 +6,7 @@ import { DomSanitizer } from '@angular/platform-browser';
|
|
|
6
6
|
import { cuiIsIcon, CUI_ICONS } from '@cuby-ui/icons';
|
|
7
7
|
import * as i1$1 from '@cuby-ui/cdk';
|
|
8
8
|
import { cuiCreateToken, cuiCreateTokenFromFactory, CuiDestroyService, CuiFilterPipe, CuiLetDirective, CuiPopoverService, cuiProvide, CUI_ANIMATION_FRAME, cuiZonefree, EMPTY_CLIENT_RECT, cuiInjectElement, CUI_LOCAL_STORAGE, CUI_IS_WEBKIT, CUI_WINDOW, cuiGetElementObscures, CUI_IS_MOBILE, CuiHoveredService, cuiPure, CuiActiveZone, cuiPointToClientRect, cuiClamp, cuiPx, cuiIfMap, cuiIsPresent, cuiTypedFromEvent, cuiZonefreeScheduler, cuiZoneOptimized, cuiIsNativeFocused, cuiWithStyles, CHAR_NO_BREAK_SPACE, CuiItemDirective, CuiFocusTrapDirective, CuiClickOutsideDirective, CuiTargetDirective, cuiGetClosestFocusable, CuiTime, CuiElementDirective, CuiDimensionsObserverDirective, CuiIdService, CuiAutoResizingDirective, CuiDragPointerDirective, CuiDragDropDirective, CuiDragListDirective, CuiHandleScrollDirective, FilesUploader, takeCaptureFromVideo, CuiConsumptionUnitsService, UnitsAmount, CuiTypedTemplateDirective } from '@cuby-ui/cdk';
|
|
9
|
-
import { BehaviorSubject, takeUntil, Observable, merge, distinctUntilChanged, startWith, map, finalize, switchMap, tap, catchError, throwError, of, from, filter, timer, Subject, delay, repeat, takeWhile, fromEvent, debounce, skip, take, forkJoin,
|
|
9
|
+
import { BehaviorSubject, takeUntil, Observable, merge, distinctUntilChanged, startWith, map, finalize, switchMap, tap, catchError, throwError, of, from, filter, timer, Subject, delay, repeat, takeWhile, fromEvent, debounce, skip, take, forkJoin, EMPTY, concatMap, toArray, debounceTime, pairwise } from 'rxjs';
|
|
10
10
|
import { __decorate, __metadata } from 'tslib';
|
|
11
11
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
12
12
|
import { trigger, transition, query, animateChild, style, animate, stagger } from '@angular/animations';
|
|
@@ -8487,59 +8487,115 @@ class CuiEditorComponent {
|
|
|
8487
8487
|
this.editorService = inject(CuiEditorService);
|
|
8488
8488
|
this.jTextService = inject(CUI_JTEXT_API_SERVICE);
|
|
8489
8489
|
this.POOLING_DELAY = 100;
|
|
8490
|
-
this.
|
|
8491
|
-
this.SCROLL_THROTTLE_TIME = 200;
|
|
8490
|
+
this.RETRY_DELAY = 3000;
|
|
8492
8491
|
this.emptyQueue = new Subject();
|
|
8493
8492
|
this.initChain = Promise.resolve();
|
|
8493
|
+
this.lazyLoadObserver = null;
|
|
8494
|
+
this.lazyLoadSubscription = null;
|
|
8494
8495
|
this.isSkipCombinedBlockOnChange = [];
|
|
8495
8496
|
this.isFirst = true;
|
|
8496
8497
|
this.isChanging = false;
|
|
8497
8498
|
this.isSkip = false;
|
|
8498
8499
|
this.isRequested = false;
|
|
8499
8500
|
this.isDestroyed = false;
|
|
8501
|
+
this.isPreloadFinished = false;
|
|
8502
|
+
this.hasEndLeftZone = false;
|
|
8500
8503
|
// Нужен для соотношения локального ID и основного ID после создания элемента
|
|
8501
8504
|
this.blockIdsMap = new Map();
|
|
8502
8505
|
this.combinedBlocks = new Map();
|
|
8503
8506
|
this.index = 0;
|
|
8504
8507
|
this.page = 0;
|
|
8508
|
+
this.lazyLoadVersion = 0;
|
|
8505
8509
|
this.addedBlocks = [];
|
|
8506
8510
|
this.updatedBlocks = [];
|
|
8507
8511
|
this.removedBlocksIds = [];
|
|
8508
8512
|
this.changesQueue = [];
|
|
8509
8513
|
this.abortController = new AbortController();
|
|
8510
|
-
this.editorId = this.cuiIdService.generate();
|
|
8511
8514
|
this.isReadonly = computed(() => this.config()?.readOnly);
|
|
8512
8515
|
this.requestOptions = computed(() => this.config()?.requestOptions);
|
|
8516
|
+
this.editorEndRef = viewChild.required('editorEnd');
|
|
8517
|
+
this.isEditorReady = signal(false);
|
|
8518
|
+
this.editorId = this.cuiIdService.generate();
|
|
8513
8519
|
this.editorRef = viewChild.required('editor');
|
|
8514
8520
|
this.editorApiId = input.required();
|
|
8515
8521
|
this.config = input(DEFAULT_CONFIG);
|
|
8516
8522
|
this.requestSize = input(40);
|
|
8517
8523
|
this.editorEmpty = output();
|
|
8524
|
+
this.editorReady = output();
|
|
8518
8525
|
this.initEditorEffect();
|
|
8519
8526
|
}
|
|
8520
8527
|
ngOnDestroy() {
|
|
8521
8528
|
this.isDestroyed = true;
|
|
8522
8529
|
this.enqueueInit(() => this.teardownEditor());
|
|
8523
8530
|
}
|
|
8524
|
-
|
|
8525
|
-
const overallHeight = element.scrollHeight - this.ELEMENT_SPACE_TO_BOTTOM;
|
|
8526
|
-
const currentHeight = element.scrollTop + element.clientHeight;
|
|
8527
|
-
if (currentHeight < overallHeight || this.isRequested) {
|
|
8528
|
-
return;
|
|
8529
|
-
}
|
|
8531
|
+
loadPage() {
|
|
8530
8532
|
this.isRequested = true;
|
|
8533
|
+
const version = this.lazyLoadVersion;
|
|
8531
8534
|
const size = this.requestSize();
|
|
8532
8535
|
let blocksCount = 0;
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
|
|
8536
|
-
|
|
8537
|
-
|
|
8538
|
-
|
|
8539
|
-
this.scrollSubscription.unsubscribe();
|
|
8540
|
-
}))
|
|
8536
|
+
let isFailed = false;
|
|
8537
|
+
this.lazyLoadSubscription = this.getBlocks(this.page, size)
|
|
8538
|
+
.pipe(tap((blocks) => (blocksCount = blocks.length)), catchError(() => {
|
|
8539
|
+
isFailed = true;
|
|
8540
|
+
return EMPTY;
|
|
8541
|
+
}), finalize(() => this.finishPageLoad(blocksCount, size, version, isFailed)))
|
|
8541
8542
|
.subscribe();
|
|
8543
|
+
}
|
|
8544
|
+
finishPageLoad(blocksCount, size, version, isFailed) {
|
|
8545
|
+
this.isRequested = false;
|
|
8546
|
+
if (this.isDestroyed || version !== this.lazyLoadVersion) {
|
|
8547
|
+
return;
|
|
8548
|
+
}
|
|
8549
|
+
if (isFailed) {
|
|
8550
|
+
this.retryPageLoad(version);
|
|
8551
|
+
return;
|
|
8552
|
+
}
|
|
8542
8553
|
this.page++;
|
|
8554
|
+
this.scheduleNextPage(blocksCount, size, version);
|
|
8555
|
+
}
|
|
8556
|
+
retryPageLoad(version) {
|
|
8557
|
+
this.isRequested = true;
|
|
8558
|
+
timer(this.RETRY_DELAY)
|
|
8559
|
+
.pipe(takeUntilDestroyed(this.destroy))
|
|
8560
|
+
.subscribe(() => {
|
|
8561
|
+
if (this.isDestroyed || version !== this.lazyLoadVersion) {
|
|
8562
|
+
return;
|
|
8563
|
+
}
|
|
8564
|
+
this.loadPage();
|
|
8565
|
+
});
|
|
8566
|
+
}
|
|
8567
|
+
scheduleNextPage(blocksCount, size, version) {
|
|
8568
|
+
if (blocksCount < size) {
|
|
8569
|
+
this.lazyLoadObserver?.disconnect();
|
|
8570
|
+
this.finishPreload();
|
|
8571
|
+
return;
|
|
8572
|
+
}
|
|
8573
|
+
timer(this.POOLING_DELAY)
|
|
8574
|
+
.pipe(takeUntilDestroyed(this.destroy))
|
|
8575
|
+
.subscribe(() => this.continueLazyLoad(version));
|
|
8576
|
+
}
|
|
8577
|
+
continueLazyLoad(version) {
|
|
8578
|
+
if (this.isDestroyed || version !== this.lazyLoadVersion) {
|
|
8579
|
+
return;
|
|
8580
|
+
}
|
|
8581
|
+
if (this.config()?.withoutPreload) {
|
|
8582
|
+
this.finishPreload();
|
|
8583
|
+
}
|
|
8584
|
+
this.observeEditorEnd();
|
|
8585
|
+
}
|
|
8586
|
+
finishPreload() {
|
|
8587
|
+
if (this.isPreloadFinished) {
|
|
8588
|
+
return;
|
|
8589
|
+
}
|
|
8590
|
+
this.isPreloadFinished = true;
|
|
8591
|
+
this.setStartBlock();
|
|
8592
|
+
}
|
|
8593
|
+
finishFirstRender(version) {
|
|
8594
|
+
if (this.isDestroyed || version !== this.lazyLoadVersion || this.isEditorReady()) {
|
|
8595
|
+
return;
|
|
8596
|
+
}
|
|
8597
|
+
this.isEditorReady.set(true);
|
|
8598
|
+
this.editorReady.emit();
|
|
8543
8599
|
}
|
|
8544
8600
|
onEditorChange(_, event) {
|
|
8545
8601
|
if (this.isReadonly() || this.isDestroyed) {
|
|
@@ -8577,6 +8633,30 @@ class CuiEditorComponent {
|
|
|
8577
8633
|
}
|
|
8578
8634
|
this.recalculateAllBlocksAfterRemoval(blockIds);
|
|
8579
8635
|
}
|
|
8636
|
+
onEditorEndMove(entry) {
|
|
8637
|
+
if (this.isRequested) {
|
|
8638
|
+
return;
|
|
8639
|
+
}
|
|
8640
|
+
if (!entry.isIntersecting) {
|
|
8641
|
+
this.hasEndLeftZone = true;
|
|
8642
|
+
this.finishPreload();
|
|
8643
|
+
return;
|
|
8644
|
+
}
|
|
8645
|
+
if (this.config()?.withoutPreload && !this.hasEndLeftZone) {
|
|
8646
|
+
return;
|
|
8647
|
+
}
|
|
8648
|
+
this.loadPage();
|
|
8649
|
+
}
|
|
8650
|
+
initEditorEffect() {
|
|
8651
|
+
effect(() => {
|
|
8652
|
+
if (this.editorApiId() || this.config()) {
|
|
8653
|
+
this.initEditorChanges();
|
|
8654
|
+
}
|
|
8655
|
+
}, { allowSignalWrites: true });
|
|
8656
|
+
}
|
|
8657
|
+
initEditorChanges() {
|
|
8658
|
+
this.enqueueInit(() => this.runEditorInit());
|
|
8659
|
+
}
|
|
8580
8660
|
recalculateAllBlocksAfterRemoval(blockIds) {
|
|
8581
8661
|
const remainingRemovedBlockIds = new Set(blockIds);
|
|
8582
8662
|
this.updatedBlocks = this.updatedBlocks.filter((updatedBlock) => !remainingRemovedBlockIds.has(updatedBlock.id ?? ''));
|
|
@@ -8589,25 +8669,19 @@ class CuiEditorComponent {
|
|
|
8589
8669
|
});
|
|
8590
8670
|
this.removedBlocksIds.push(...remainingRemovedBlockIds.values());
|
|
8591
8671
|
}
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
}, { allowSignalWrites: true });
|
|
8672
|
+
observeEditorEnd() {
|
|
8673
|
+
const editorEndElement = this.editorEndRef().nativeElement;
|
|
8674
|
+
this.lazyLoadObserver ??= this.createLazyLoadObserver();
|
|
8675
|
+
this.lazyLoadObserver.unobserve(editorEndElement);
|
|
8676
|
+
this.lazyLoadObserver.observe(editorEndElement);
|
|
8598
8677
|
}
|
|
8599
|
-
|
|
8600
|
-
|
|
8678
|
+
createLazyLoadObserver() {
|
|
8679
|
+
return new IntersectionObserver((entries) => this.onEditorEndMove(entries[entries.length - 1]), {
|
|
8680
|
+
root: this.getViewportElement()
|
|
8681
|
+
});
|
|
8601
8682
|
}
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
const scrollObserver = fromEvent(element, 'scroll');
|
|
8605
|
-
this.scrollSubscription = scrollObserver
|
|
8606
|
-
.pipe(takeUntilDestroyed(this.destroy), throttleTime(this.SCROLL_THROTTLE_TIME, undefined, {
|
|
8607
|
-
leading: true,
|
|
8608
|
-
trailing: true
|
|
8609
|
-
}), map(() => this.onScrollEvent(element)))
|
|
8610
|
-
.subscribe();
|
|
8683
|
+
getViewportElement() {
|
|
8684
|
+
return this.config()?.element ?? this.editorElement;
|
|
8611
8685
|
}
|
|
8612
8686
|
initEditorEvents(element) {
|
|
8613
8687
|
const readOnly = this.isReadonly();
|
|
@@ -8616,20 +8690,6 @@ class CuiEditorComponent {
|
|
|
8616
8690
|
}
|
|
8617
8691
|
setEditorEvents(element, this.abortController.signal);
|
|
8618
8692
|
}
|
|
8619
|
-
startPooling(size) {
|
|
8620
|
-
const scrollElement = this.config()?.element ?? this.editorElement;
|
|
8621
|
-
const withoutPreload = this.config()?.withoutPreload;
|
|
8622
|
-
this.poolingSubscription = timer(0, this.POOLING_DELAY)
|
|
8623
|
-
.pipe(concatMap(() => this.getBlocks(this.page, size).pipe(delay(this.POOLING_DELAY))), tap(() => this.page++), takeWhile((blocks) => !withoutPreload &&
|
|
8624
|
-
scrollElement.scrollHeight <= scrollElement.clientHeight &&
|
|
8625
|
-
blocks.length >= size), finalize(() => {
|
|
8626
|
-
if (this.isDestroyed) {
|
|
8627
|
-
return;
|
|
8628
|
-
}
|
|
8629
|
-
this.setStartBlock();
|
|
8630
|
-
}))
|
|
8631
|
-
.subscribe();
|
|
8632
|
-
}
|
|
8633
8693
|
teardownEditor() {
|
|
8634
8694
|
this.abortController.abort();
|
|
8635
8695
|
this.resetData();
|
|
@@ -8659,8 +8719,7 @@ class CuiEditorComponent {
|
|
|
8659
8719
|
wireEditor() {
|
|
8660
8720
|
this.editorElement = this.editorRef().nativeElement;
|
|
8661
8721
|
this.initEditorEvents(this.editorElement);
|
|
8662
|
-
this.
|
|
8663
|
-
this.startPooling(this.requestSize());
|
|
8722
|
+
this.loadPage();
|
|
8664
8723
|
this.setListenersOnCustomBlockChanges();
|
|
8665
8724
|
}
|
|
8666
8725
|
setListenersOnCustomBlockChanges() {
|
|
@@ -8764,6 +8823,9 @@ class CuiEditorComponent {
|
|
|
8764
8823
|
if (typeof block.type !== 'string') {
|
|
8765
8824
|
return;
|
|
8766
8825
|
}
|
|
8826
|
+
if (this.blockIdsMap.has(block.id)) {
|
|
8827
|
+
return;
|
|
8828
|
+
}
|
|
8767
8829
|
this.blockIdsMap.set(block.id, block.id);
|
|
8768
8830
|
this.insert(block);
|
|
8769
8831
|
}
|
|
@@ -8786,13 +8848,20 @@ class CuiEditorComponent {
|
|
|
8786
8848
|
this.editor.blocks.insert(block.type, block.data, {}, this.index, false, false, block.id);
|
|
8787
8849
|
return;
|
|
8788
8850
|
}
|
|
8851
|
+
const version = this.lazyLoadVersion;
|
|
8789
8852
|
// TODO: есть варик что что то пойдет не так
|
|
8790
|
-
this.editor.blocks.render({ blocks: [block] }).then(() =>
|
|
8853
|
+
this.editor.blocks.render({ blocks: [block] }).then(() => {
|
|
8854
|
+
this.isSkip = false;
|
|
8855
|
+
this.finishFirstRender(version);
|
|
8856
|
+
});
|
|
8791
8857
|
this.isFirst = false;
|
|
8792
8858
|
}
|
|
8793
8859
|
setCombinedBlock(block) {
|
|
8794
8860
|
const combinedBlockData = block.data;
|
|
8795
8861
|
const parent = this.combinedBlocks.get(combinedBlockData.parentId);
|
|
8862
|
+
if (parent && this.blockIdsMap.has(block.id)) {
|
|
8863
|
+
return parent;
|
|
8864
|
+
}
|
|
8796
8865
|
this.blockIdsMap.set(block.id, block.id);
|
|
8797
8866
|
if (parent) {
|
|
8798
8867
|
const parentData = parent.data;
|
|
@@ -8834,14 +8903,21 @@ class CuiEditorComponent {
|
|
|
8834
8903
|
this.editorEmpty.emit(this.checkIsEmpty());
|
|
8835
8904
|
return;
|
|
8836
8905
|
}
|
|
8906
|
+
const version = this.lazyLoadVersion;
|
|
8837
8907
|
if (this.isReadonly()) {
|
|
8838
|
-
this.editor.render({ blocks: [] });
|
|
8908
|
+
this.editor.render({ blocks: [] }).then(() => this.finishFirstRender(version));
|
|
8839
8909
|
return;
|
|
8840
8910
|
}
|
|
8841
|
-
this.editorService.setStartBlock(this.editorApiId(), this.requestOptions(),
|
|
8842
|
-
|
|
8843
|
-
|
|
8844
|
-
|
|
8911
|
+
this.editorService.setStartBlock(this.editorApiId(), this.requestOptions(), (block, id) => this.renderStartBlock(block, id, version));
|
|
8912
|
+
}
|
|
8913
|
+
async renderStartBlock(block, id, version) {
|
|
8914
|
+
if (this.isDestroyed || version !== this.lazyLoadVersion) {
|
|
8915
|
+
return;
|
|
8916
|
+
}
|
|
8917
|
+
this.blockIdsMap.set(id, id);
|
|
8918
|
+
this.isSkipCombinedBlockOnChange.push(true);
|
|
8919
|
+
this.editor.render({ blocks: [block] }).then(() => {
|
|
8920
|
+
this.finishFirstRender(version);
|
|
8845
8921
|
this.setFocus();
|
|
8846
8922
|
recalculateIndexes(this.editor.blocks);
|
|
8847
8923
|
});
|
|
@@ -8862,31 +8938,40 @@ class CuiEditorComponent {
|
|
|
8862
8938
|
return !redactorTextContent;
|
|
8863
8939
|
}
|
|
8864
8940
|
resetData() {
|
|
8865
|
-
this.
|
|
8866
|
-
this.
|
|
8941
|
+
this.resetLazyLoad();
|
|
8942
|
+
this.isEditorReady.set(false);
|
|
8867
8943
|
this.isSkipCombinedBlockOnChange = [];
|
|
8868
8944
|
this.isFirst = true;
|
|
8869
8945
|
this.isChanging = false;
|
|
8870
8946
|
this.isSkip = false;
|
|
8871
|
-
this.isRequested = false;
|
|
8872
8947
|
this.blockIdsMap = new Map();
|
|
8873
8948
|
this.combinedBlocks = new Map();
|
|
8874
8949
|
this.index = 0;
|
|
8875
|
-
this.page = 0;
|
|
8876
8950
|
this.addedBlocks = [];
|
|
8877
8951
|
this.updatedBlocks = [];
|
|
8878
8952
|
this.removedBlocksIds = [];
|
|
8879
8953
|
this.changesQueue = [];
|
|
8880
8954
|
this.abortController = new AbortController();
|
|
8881
8955
|
}
|
|
8956
|
+
resetLazyLoad() {
|
|
8957
|
+
this.lazyLoadVersion++;
|
|
8958
|
+
this.lazyLoadObserver?.disconnect();
|
|
8959
|
+
this.lazyLoadObserver = null;
|
|
8960
|
+
this.lazyLoadSubscription?.unsubscribe();
|
|
8961
|
+
this.lazyLoadSubscription = null;
|
|
8962
|
+
this.isRequested = false;
|
|
8963
|
+
this.isPreloadFinished = false;
|
|
8964
|
+
this.hasEndLeftZone = false;
|
|
8965
|
+
this.page = 0;
|
|
8966
|
+
}
|
|
8882
8967
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8883
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiEditorComponent, isStandalone: true, selector: "cui-editor", inputs: { editorApiId: { classPropertyName: "editorApiId", publicName: "editorApiId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, requestSize: { classPropertyName: "requestSize", publicName: "requestSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty" }, providers: [
|
|
8968
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiEditorComponent, isStandalone: true, selector: "cui-editor", inputs: { editorApiId: { classPropertyName: "editorApiId", publicName: "editorApiId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, requestSize: { classPropertyName: "requestSize", publicName: "requestSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty", editorReady: "editorReady" }, providers: [
|
|
8884
8969
|
CuiEditorService,
|
|
8885
8970
|
{
|
|
8886
8971
|
provide: CUI_JTEXT_API_SERVICE,
|
|
8887
8972
|
useFactory: () => inject(CUI_JTEXT_API_SERVICE, { optional: true, skipSelf: true }) ?? new CuiJTextApiService()
|
|
8888
8973
|
}
|
|
8889
|
-
], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #editor\n
|
|
8974
|
+
], viewQueries: [{ propertyName: "editorEndRef", first: true, predicate: ["editorEnd"], descendants: true, isSignal: true }, { propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #editor\n data-editor\n [class._readonly]=\"config().readOnly\"\n [class._loading]=\"!isEditorReady()\"\n>\n <div [id]=\"editorId\"></div>\n <div\n #editorEnd\n class=\"editor-end\"\n ></div>\n</div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border-radius:8px;border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-10);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor]._loading{pointer-events:none;-webkit-user-select:none;user-select:none}:host ::ng-deep [data-editor]._loading .combined-text-block[data-placeholder-active][data-empty=true]:before{content:none}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:var(--cui-warning)}:host ::ng-deep .role-marker{color:var(--cui-info)}.editor-end{margin-top:-150px;height:150px;pointer-events:none}.form{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8890
8975
|
}
|
|
8891
8976
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorComponent, decorators: [{
|
|
8892
8977
|
type: Component,
|
|
@@ -8896,7 +8981,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
8896
8981
|
provide: CUI_JTEXT_API_SERVICE,
|
|
8897
8982
|
useFactory: () => inject(CUI_JTEXT_API_SERVICE, { optional: true, skipSelf: true }) ?? new CuiJTextApiService()
|
|
8898
8983
|
}
|
|
8899
|
-
], template: "<div\n #editor\n
|
|
8984
|
+
], template: "<div\n #editor\n data-editor\n [class._readonly]=\"config().readOnly\"\n [class._loading]=\"!isEditorReady()\"\n>\n <div [id]=\"editorId\"></div>\n <div\n #editorEnd\n class=\"editor-end\"\n ></div>\n</div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border-radius:8px;border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-10);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor]._loading{pointer-events:none;-webkit-user-select:none;user-select:none}:host ::ng-deep [data-editor]._loading .combined-text-block[data-placeholder-active][data-empty=true]:before{content:none}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:var(--cui-warning)}:host ::ng-deep .role-marker{color:var(--cui-info)}.editor-end{margin-top:-150px;height:150px;pointer-events:none}.form{height:100%}\n"] }]
|
|
8900
8985
|
}], ctorParameters: () => [] });
|
|
8901
8986
|
|
|
8902
8987
|
class EditorResizeObserverDirective {
|
|
@@ -8971,7 +9056,7 @@ class CuiEditorReadonlyComponent {
|
|
|
8971
9056
|
}, { allowSignalWrites: true });
|
|
8972
9057
|
}
|
|
8973
9058
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorReadonlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8974
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiEditorReadonlyComponent, isStandalone: true, selector: "cui-editor-readonly", inputs: { editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: true, transformFunction: null }, shortHeight: { classPropertyName: "shortHeight", publicName: "shortHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<cui-editor\r\n cuiElement\r\n #editorElement=\"elementRef\"\r\n #editorComponent\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n\r\n<ng-template\r\n [editorResizeObserver]\r\n [target]=\"editorElement.nativeElement\"\r\n [shortHeight]=\"shortHeight()\"\r\n>\r\n <button\r\n class=\"c-button\"\r\n (click)=\"onShow(editorComponent)\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"\r\n ></ng-container>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{--height: 69px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EditorResizeObserverDirective, selector: "[editorResizeObserver]", inputs: ["target", "shortHeight"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9059
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: CuiEditorReadonlyComponent, isStandalone: true, selector: "cui-editor-readonly", inputs: { editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: true, transformFunction: null }, shortHeight: { classPropertyName: "shortHeight", publicName: "shortHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<cui-editor\r\n cuiElement\r\n #editorElement=\"elementRef\"\r\n #editorComponent\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n\r\n<ng-template\r\n [editorResizeObserver]\r\n [target]=\"editorElement.nativeElement\"\r\n [shortHeight]=\"shortHeight()\"\r\n>\r\n <button\r\n class=\"c-button\"\r\n (click)=\"onShow(editorComponent)\"\r\n >\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"\r\n ></ng-container>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{--height: 69px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty", "editorReady"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EditorResizeObserverDirective, selector: "[editorResizeObserver]", inputs: ["target", "shortHeight"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8975
9060
|
}
|
|
8976
9061
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorReadonlyComponent, decorators: [{
|
|
8977
9062
|
type: Component,
|
|
@@ -9006,7 +9091,7 @@ class CuiEditorModalComponent {
|
|
|
9006
9091
|
this.modalClosed.emit();
|
|
9007
9092
|
}
|
|
9008
9093
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9009
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorModalComponent, isStandalone: true, selector: "cui-editor-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorCreated: "editorCreated", modalClosed: "modalClosed" }, ngImport: i0, template: "@if (buttonTemplate(); as template) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onModalOpen()\"\n >\n <ng-container [ngTemplateOutlet]=\"template\" />\n </button>\n} @else {\n <button\n class=\"description\"\n cuiButton\n type=\"button\"\n appearance=\"outlined-gray\"\n icon=\"cuiIconRichText\"\n size=\"sm\"\n (click)=\"onModalOpen()\"\n [disabled]=\"isButtonDisabled()\"\n >\n @if (editorId()) {\n <span class=\"description__text _created\">{{ 'Description' }}</span>\n <cui-svg\n class=\"description__icon\"\n icon=\"cuiIconEdit\"\n color=\"var(--cui-base-500)\"\n />\n } @else {\n <cui-svg\n class=\"description__icon\"\n icon=\"cuiIconPlus\"\n color=\"var(--cui-light-blue-600)\"\n />\n <span class=\"description__text\">{{ 'Add description' }}</span>\n }\n </button>\n}\n@if (isOpen()) {\n <div class=\"wrapper\">\n @if (editorId(); as id) {\n <header class=\"header\">\n <div class=\"info\">\n <button\n cuiButton\n type=\"button\"\n icon=\"cuiIconChevronLeft\"\n size=\"xxs\"\n appearance=\"secondary\"\n shape=\"rounded\"\n (click)=\"close()\"\n ></button>\n <h1 class=\"title\">{{ title() }}</h1>\n </div>\n <div class=\"actions\">\n <!-- <cui-loader /> -->\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n (click)=\"close()\"\n >\n {{ 'Done' }}\n </button>\n </div>\n </header>\n\n <section class=\"section\">\n <cui-editor\n #editorComponent\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"config()\"\n />\n </section>\n }\n </div>\n}\n", styles: [":host ::ng-deep .delete{width:max-content}:host ::ng-deep .delete .c-content{display:flex;align-items:center;gap:4px;color:var(--cui-danger)}:host ::ng-deep .description .c-content{display:flex;align-items:center;gap:4px}.button{padding:0}.description{width:max-content}.description__text{color:var(--cui-light-blue-600)}.description__text._created{color:var(--cui-base-900)}.description__icon{padding:4px}.wrapper{position:fixed;z-index:10;inset:0;background-color:var(--cui-base-0)}.header{display:flex;flex-direction:row;gap:0;align-items:stretch;justify-content:space-between;padding:8px 16px;border-bottom:.5px solid var(--cui-base-200);background:var(--cui-base-0)}.info,.actions{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:flex-start}.section{padding-right:24px;padding-left:24px;padding-top:24px;height:calc(100% - 50px);overflow:hidden}.title{font-weight:500;font-size:14px;line-height:20px;margin:0}.editor{padding-right:32px;padding-left:32px;padding-top:32px;display:block;margin:0 auto;max-width:750px;height:100%}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }] }); }
|
|
9094
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorModalComponent, isStandalone: true, selector: "cui-editor-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorCreated: "editorCreated", modalClosed: "modalClosed" }, ngImport: i0, template: "@if (buttonTemplate(); as template) {\n <button\n type=\"button\"\n class=\"button\"\n (click)=\"onModalOpen()\"\n >\n <ng-container [ngTemplateOutlet]=\"template\" />\n </button>\n} @else {\n <button\n class=\"description\"\n cuiButton\n type=\"button\"\n appearance=\"outlined-gray\"\n icon=\"cuiIconRichText\"\n size=\"sm\"\n (click)=\"onModalOpen()\"\n [disabled]=\"isButtonDisabled()\"\n >\n @if (editorId()) {\n <span class=\"description__text _created\">{{ 'Description' }}</span>\n <cui-svg\n class=\"description__icon\"\n icon=\"cuiIconEdit\"\n color=\"var(--cui-base-500)\"\n />\n } @else {\n <cui-svg\n class=\"description__icon\"\n icon=\"cuiIconPlus\"\n color=\"var(--cui-light-blue-600)\"\n />\n <span class=\"description__text\">{{ 'Add description' }}</span>\n }\n </button>\n}\n@if (isOpen()) {\n <div class=\"wrapper\">\n @if (editorId(); as id) {\n <header class=\"header\">\n <div class=\"info\">\n <button\n cuiButton\n type=\"button\"\n icon=\"cuiIconChevronLeft\"\n size=\"xxs\"\n appearance=\"secondary\"\n shape=\"rounded\"\n (click)=\"close()\"\n ></button>\n <h1 class=\"title\">{{ title() }}</h1>\n </div>\n <div class=\"actions\">\n <!-- <cui-loader /> -->\n <button\n type=\"button\"\n cuiButton\n size=\"xs\"\n (click)=\"close()\"\n >\n {{ 'Done' }}\n </button>\n </div>\n </header>\n\n <section class=\"section\">\n <cui-editor\n #editorComponent\n class=\"editor\"\n [editorApiId]=\"id\"\n [config]=\"config()\"\n />\n </section>\n }\n </div>\n}\n", styles: [":host ::ng-deep .delete{width:max-content}:host ::ng-deep .delete .c-content{display:flex;align-items:center;gap:4px;color:var(--cui-danger)}:host ::ng-deep .description .c-content{display:flex;align-items:center;gap:4px}.button{padding:0}.description{width:max-content}.description__text{color:var(--cui-light-blue-600)}.description__text._created{color:var(--cui-base-900)}.description__icon{padding:4px}.wrapper{position:fixed;z-index:10;inset:0;background-color:var(--cui-base-0)}.header{display:flex;flex-direction:row;gap:0;align-items:stretch;justify-content:space-between;padding:8px 16px;border-bottom:.5px solid var(--cui-base-200);background:var(--cui-base-0)}.info,.actions{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:flex-start}.section{padding-right:24px;padding-left:24px;padding-top:24px;height:calc(100% - 50px);overflow:hidden}.title{font-weight:500;font-size:14px;line-height:20px;margin:0}.editor{padding-right:32px;padding-left:32px;padding-top:32px;display:block;margin:0 auto;max-width:750px;height:100%}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty", "editorReady"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }] }); }
|
|
9010
9095
|
}
|
|
9011
9096
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorModalComponent, decorators: [{
|
|
9012
9097
|
type: Component,
|
|
@@ -9051,7 +9136,7 @@ class CuiEditorBlockComponent {
|
|
|
9051
9136
|
}, { allowSignalWrites: true });
|
|
9052
9137
|
}
|
|
9053
9138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9054
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorBlockComponent, isStandalone: true, selector: "cui-editor-block", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"wrapper\">\n <span class=\"title\">\n {{ t('DESCRIPTION') }}\n @if (required()) {\n <span class=\"title__required\">*</span>\n }\n </span>\n <ng-template #button>\n <button\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\n cuiButton\n size=\"xxs\"\n type=\"button\"\n appearance=\"ghost\"\n icon=\"cuiIconMaximizeSm\"\n (click)=\"onToggleDescriptionModal()\"\n ></button>\n </ng-template>\n <cui-editor-modal\n [title]=\"title()\"\n [editorId]=\"editorId()\"\n [buttonTemplate]=\"button\"\n [config]=\"config()\"\n (modalClosed)=\"onToggleDescriptionModal()\"\n />\n </div>\n <div\n #editorContainer\n cuiContentWrapper\n class=\"editor\"\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\n >\n @if (!isDescriptionModalOpen() && editorConfig()) {\n <cui-editor\n #editorComponent\n [editorApiId]=\"editorId()\"\n [config]=\"editorConfig()!\"\n (editorEmpty)=\"onDescriptionChange($event)\"\n />\n }\n </div>\n @if (required() && isDescriptionEmpty()) {\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\n }\n</ng-container>\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "component", type: CuiEditorModalComponent, selector: "cui-editor-modal", inputs: ["title", "buttonTemplate", "config", "editorId"], outputs: ["editorCreated", "modalClosed"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiEditorBlockComponent, isStandalone: true, selector: "cui-editor-block", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editorEmpty: "editorEmpty" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"wrapper\">\n <span class=\"title\">\n {{ t('DESCRIPTION') }}\n @if (required()) {\n <span class=\"title__required\">*</span>\n }\n </span>\n <ng-template #button>\n <button\n [cuiTooltip]=\"t('EXPAND_EDITOR_TO_FULLSCREEN')\"\n cuiButton\n size=\"xxs\"\n type=\"button\"\n appearance=\"ghost\"\n icon=\"cuiIconMaximizeSm\"\n (click)=\"onToggleDescriptionModal()\"\n ></button>\n </ng-template>\n <cui-editor-modal\n [title]=\"title()\"\n [editorId]=\"editorId()\"\n [buttonTemplate]=\"button\"\n [config]=\"config()\"\n (modalClosed)=\"onToggleDescriptionModal()\"\n />\n </div>\n <div\n #editorContainer\n cuiContentWrapper\n class=\"editor\"\n [class.editor_invalid]=\"required() && isDescriptionEmpty()\"\n >\n @if (!isDescriptionModalOpen() && editorConfig()) {\n <cui-editor\n #editorComponent\n [editorApiId]=\"editorId()\"\n [config]=\"editorConfig()!\"\n (editorEmpty)=\"onDescriptionChange($event)\"\n />\n }\n </div>\n @if (required() && isDescriptionEmpty()) {\n <cui-hint hintType=\"error\">{{ t('DESCRIPTION_IS_REQUIRED') }}</cui-hint>\n }\n</ng-container>\n", styles: [":host{--max-editor-height: 650px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--cui-base-10);border-radius:8px}:host .editor{max-height:var(--max-editor-height)}.wrapper{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:space-between}.editor{padding-top:16px;padding-bottom:16px;display:block;overflow:auto}.editor_invalid{border:1px solid var(--cui-danger)}.title{font-weight:500;font-size:14px;line-height:20px}.title__required{color:var(--cui-danger)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "component", type: CuiEditorModalComponent, selector: "cui-editor-modal", inputs: ["title", "buttonTemplate", "config", "editorId"], outputs: ["editorCreated", "modalClosed"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty", "editorReady"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "directive", type: CuiTooltipDirective, selector: "[cuiTooltip]:not(ng-container):not(ng-template)", inputs: ["cuiTooltipContext", "cuiTooltipAppearance", "cuiTooltip"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9055
9140
|
}
|
|
9056
9141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorBlockComponent, decorators: [{
|
|
9057
9142
|
type: Component,
|
|
@@ -11083,7 +11168,7 @@ class CuiFramerPreviewComponent {
|
|
|
11083
11168
|
this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
|
|
11084
11169
|
}
|
|
11085
11170
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11086
|
-
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 }); }
|
|
11171
|
+
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", "editorReady"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11087
11172
|
}
|
|
11088
11173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFramerPreviewComponent, decorators: [{
|
|
11089
11174
|
type: Component,
|
|
@@ -11780,7 +11865,7 @@ class CuiCriterionReadonlyInfoComponent {
|
|
|
11780
11865
|
});
|
|
11781
11866
|
}
|
|
11782
11867
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11783
|
-
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 }); }
|
|
11868
|
+
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", "editorReady"] }, { 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 }); }
|
|
11784
11869
|
}
|
|
11785
11870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, decorators: [{
|
|
11786
11871
|
type: Component,
|
|
@@ -11919,7 +12004,7 @@ class CuiInstructionReadonlyInfoComponent {
|
|
|
11919
12004
|
});
|
|
11920
12005
|
}
|
|
11921
12006
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11922
|
-
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 }); }
|
|
12007
|
+
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", "editorReady"] }, { 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 }); }
|
|
11923
12008
|
}
|
|
11924
12009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionReadonlyInfoComponent, decorators: [{
|
|
11925
12010
|
type: Component,
|
|
@@ -12693,7 +12778,7 @@ class UtilityInfoReadonlyComponent {
|
|
|
12693
12778
|
});
|
|
12694
12779
|
}
|
|
12695
12780
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilityInfoReadonlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12696
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UtilityInfoReadonlyComponent, isStandalone: true, selector: "cui-utility-info-readonly", inputs: { environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl(); as url) {\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 @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}.thumbnail{width:100%;max-height:271px;object-fit:contain}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
12781
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UtilityInfoReadonlyComponent, isStandalone: true, selector: "cui-utility-info-readonly", inputs: { environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: false, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: false, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (jText()) {\n @if (!isDescriptionEmpty()) {\n @if (thumbnailUrl(); as url) {\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 @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}.thumbnail{width:100%;max-height:271px;object-fit:contain}.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", "editorReady"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
12697
12782
|
}
|
|
12698
12783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilityInfoReadonlyComponent, decorators: [{
|
|
12699
12784
|
type: Component,
|
|
@@ -13762,7 +13847,7 @@ class ModalOperationPartComponent {
|
|
|
13762
13847
|
]);
|
|
13763
13848
|
}
|
|
13764
13849
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13765
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
13850
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ModalOperationPartComponent, isStandalone: true, selector: "cui-modal-operation-part", inputs: { isInserted: { classPropertyName: "isInserted", publicName: "isInserted", isSignal: true, isRequired: false, transformFunction: null }, containerId: { classPropertyName: "containerId", publicName: "containerId", isSignal: true, isRequired: false, transformFunction: null }, quantumId: { classPropertyName: "quantumId", publicName: "quantumId", isSignal: true, isRequired: false, transformFunction: null }, jobId: { classPropertyName: "jobId", publicName: "jobId", isSignal: true, isRequired: false, transformFunction: null }, storageObjectOperation: { classPropertyName: "storageObjectOperation", publicName: "storageObjectOperation", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForResources: { classPropertyName: "environmentUrlForResources", publicName: "environmentUrlForResources", isSignal: true, isRequired: true, transformFunction: null }, environmentUrlForInstruction: { classPropertyName: "environmentUrlForInstruction", publicName: "environmentUrlForInstruction", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "estimatedTime", first: true, predicate: ["estimatedTime"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (storageObjectOperation().storageElement; as operation) {\n <ng-container *transloco=\"let t\">\n <cui-modal-header\n [heading]=\"operation.title\"\n [isInserted]=\"isInserted()\"\n >\n <cui-letter-box\n cuiModalHeaderIcon\n letter=\"o\"\n backgroundColor=\"var(--cui-success)\"\n />\n\n @if (isInserted()) {\n <cui-modal-header-inserted-buttons\n cuiModalHeaderButtons\n (unbindClicked)=\"onUnbindOperation()\"\n />\n }\n </cui-modal-header>\n\n @if (tabs().length) {\n <cui-modal-header-tabs [tabs]=\"tabs()\" />\n }\n </ng-container>\n\n <ng-template #estimatedTime>\n {{ ptFormat() }}\n </ng-template>\n\n <ng-template #editor>\n <cui-editor\n [editorApiId]=\"operation.textContainerId\"\n [config]=\"editorConfig()\"\n />\n </ng-template>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty", "editorReady"] }, { kind: "component", type: ModalHeaderTabsComponent, selector: "cui-modal-header-tabs", inputs: ["tabs", "selectedIndex"] }, { kind: "component", type: ModalHeaderInsertedButtonsComponent, selector: "cui-modal-header-inserted-buttons", outputs: ["unbindClicked"] }, { kind: "component", type: ModalHeaderComponent, selector: "cui-modal-header", inputs: ["heading", "isInserted"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
13766
13851
|
}
|
|
13767
13852
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalOperationPartComponent, decorators: [{
|
|
13768
13853
|
type: Component,
|