@dotcms/angular 0.0.1-beta.3 → 0.0.1-beta.30
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/dotcms-angular.d.ts.map +1 -1
- package/esm2022/dotcms-angular.mjs +2 -2
- package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
- package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
- package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
- package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
- package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
- package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
- package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
- package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +106 -0
- package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
- package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
- package/esm2022/lib/deprecated/models/index.mjs +3 -0
- package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
- package/esm2022/lib/deprecated/utils/image_loader.mjs +74 -0
- package/esm2022/lib/deprecated/utils/index.mjs +84 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.mjs +53 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +46 -0
- package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +43 -0
- package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +246 -0
- package/esm2022/next/components/dotcms-editable-text/utils.mjs +20 -0
- package/esm2022/next/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +43 -0
- package/esm2022/next/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
- package/esm2022/next/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
- package/esm2022/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
- package/esm2022/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
- package/esm2022/next/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
- package/esm2022/next/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
- package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
- package/esm2022/next/dotcms-angular-next.mjs +5 -0
- package/esm2022/next/models/index.mjs +3 -0
- package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
- package/esm2022/next/public_api.mjs +7 -0
- package/esm2022/next/services/dotcms-editable-page.service.mjs +93 -0
- package/esm2022/next/store/dotcms.store.mjs +61 -0
- package/esm2022/public_api.mjs +2 -0
- package/fesm2022/dotcms-angular-next.mjs +1725 -0
- package/fesm2022/dotcms-angular-next.mjs.map +1 -0
- package/fesm2022/dotcms-angular.mjs +103 -10
- package/fesm2022/dotcms-angular.mjs.map +1 -1
- package/index.d.ts +6 -5
- package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +10 -6
- package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
- package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
- package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
- package/lib/deprecated/deprecated-api.d.ts +11 -0
- package/lib/deprecated/deprecated-api.d.ts.map +1 -0
- package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
- package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
- package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
- package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
- package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
- package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
- package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
- package/lib/deprecated/models/index.d.ts.map +1 -0
- package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
- package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
- package/lib/deprecated/utils/image_loader.d.ts +21 -0
- package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
- package/lib/deprecated/utils/index.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts +25 -0
- package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
- package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
- package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
- package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
- package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +37 -0
- package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
- package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
- package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
- package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
- package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
- package/next/components/dotcms-editable-text/utils.d.ts +7 -0
- package/next/components/dotcms-editable-text/utils.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
- package/next/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
- package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
- package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
- package/next/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
- package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
- package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
- package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
- package/next/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
- package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
- package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
- package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
- package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
- package/next/dotcms-angular-next.d.ts.map +1 -0
- package/next/index.d.ts +6 -0
- package/next/models/index.d.ts +39 -0
- package/next/models/index.d.ts.map +1 -0
- package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
- package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
- package/next/public_api.d.ts +7 -0
- package/next/public_api.d.ts.map +1 -0
- package/next/services/dotcms-editable-page.service.d.ts +40 -0
- package/next/services/dotcms-editable-page.service.d.ts.map +1 -0
- package/next/store/dotcms.store.d.ts +36 -0
- package/next/store/dotcms.store.d.ts.map +1 -0
- package/package.json +9 -2
- package/public_api.d.ts +2 -0
- package/public_api.d.ts.map +1 -0
- package/esm2022/index.mjs +0 -5
- package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
- package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
- package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
- package/esm2022/lib/layout/container/container.component.mjs +0 -126
- package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
- package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
- package/esm2022/lib/models/dotcms.model.mjs +0 -3
- package/esm2022/lib/models/index.mjs +0 -3
- package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
- package/esm2022/lib/utils/index.mjs +0 -84
- package/index.d.ts.map +0 -1
- package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
- package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
- package/lib/components/no-component/no-component.component.d.ts.map +0 -1
- package/lib/layout/column/column.component.d.ts.map +0 -1
- package/lib/layout/container/container.component.d.ts.map +0 -1
- package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
- package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
- package/lib/layout/row/row.component.d.ts.map +0 -1
- package/lib/models/dotcms.model.d.ts.map +0 -1
- package/lib/models/index.d.ts.map +0 -1
- package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
- package/lib/utils/index.d.ts.map +0 -1
- /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
- /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
- /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
- /package/lib/{models → deprecated/models}/dotcms.model.d.ts +0 -0
- /package/lib/{models → deprecated/models}/index.d.ts +0 -0
- /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { BlockEditorDefaultBlocks } from '@dotcms/types/internal';
|
|
4
|
+
import { DotCodeBlock, DotBlockQuote } from '../blocks/code.component';
|
|
5
|
+
import { DotContentletBlock } from '../blocks/contentlet.component';
|
|
6
|
+
import { DotImageBlock } from '../blocks/image.component';
|
|
7
|
+
import { DotBulletList, DotOrdererList, DotListItem } from '../blocks/list.component';
|
|
8
|
+
import { DotTableBlock } from '../blocks/table.component';
|
|
9
|
+
import { DotParagraphBlock, DotTextBlock, DotHeadingBlock } from '../blocks/text.component';
|
|
10
|
+
import { DotVideoBlock } from '../blocks/video.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class DotCMSBlockEditorItemComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.BLOCKS = BlockEditorDefaultBlocks;
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorItemComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-block", inputs: { content: "content", customRenderers: "customRenderers" }, ngImport: i0, template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <div>Unknown Block Type: {{ node.type }}</div>\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: DotParagraphBlock, selector: "dotcms-block-editor-renderer-paragraph" }, { kind: "component", type: DotTextBlock, selector: "dotcms-block-editor-renderer-text", inputs: ["marks", "text"] }, { kind: "component", type: DotHeadingBlock, selector: "dotcms-block-editor-renderer-heading", inputs: ["level"] }, { kind: "component", type: DotBulletList, selector: "dotcms-block-editor-renderer-bullet-list" }, { kind: "component", type: DotOrdererList, selector: "dotcms-block-editor-renderer-ordered-list" }, { kind: "component", type: DotListItem, selector: "dotcms-block-editor-renderer-list-item" }, { kind: "component", type: DotCodeBlock, selector: "dotcms-block-editor-renderer-code-block" }, { kind: "component", type: DotBlockQuote, selector: "dotcms-block-editor-renderer-block-quote" }, { kind: "component", type: DotImageBlock, selector: "dotcms-block-editor-renderer-image", inputs: ["attrs"] }, { kind: "component", type: DotVideoBlock, selector: "dotcms-block-editor-renderer-video", inputs: ["attrs"] }, { kind: "component", type: DotTableBlock, selector: "dotcms-block-editor-renderer-table", inputs: ["content"] }, { kind: "component", type: DotContentletBlock, selector: "dotcms-block-editor-renderer-contentlet", inputs: ["customRenderers", "attrs"] }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'dotcms-block-editor-renderer-block', standalone: true, imports: [
|
|
22
|
+
NgTemplateOutlet,
|
|
23
|
+
NgComponentOutlet,
|
|
24
|
+
AsyncPipe,
|
|
25
|
+
DotParagraphBlock,
|
|
26
|
+
DotTextBlock,
|
|
27
|
+
DotHeadingBlock,
|
|
28
|
+
DotBulletList,
|
|
29
|
+
DotOrdererList,
|
|
30
|
+
DotListItem,
|
|
31
|
+
DotCodeBlock,
|
|
32
|
+
DotBlockQuote,
|
|
33
|
+
DotImageBlock,
|
|
34
|
+
DotVideoBlock,
|
|
35
|
+
DotTableBlock,
|
|
36
|
+
DotContentletBlock
|
|
37
|
+
], template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <div>Unknown Block Type: {{ node.type }}</div>\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n" }]
|
|
38
|
+
}], propDecorators: { content: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], customRenderers: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIvaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9pdGVtL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQTBCMUQsTUFBTSxPQUFPLDhCQUE4QjtJQXZCM0M7UUEyQkksV0FBTSxHQUFHLHdCQUF3QixDQUFDO0tBQ3JDOzhHQUxZLDhCQUE4QjtrR0FBOUIsOEJBQThCLGtLQ3RDM0MsaXBJQTRHQSwwRER0RWEsOEJBQThCLHVIQWpCbkMsZ0JBQWdCLG9KQUNoQixpQkFBaUIsK09BQ2pCLFNBQVMsOENBQ1QsaUJBQWlCLG1GQUNqQixZQUFZLHlHQUNaLGVBQWUsb0dBQ2YsYUFBYSxxRkFDYixjQUFjLHNGQUNkLFdBQVcsbUZBQ1gsWUFBWSxvRkFDWixhQUFhLHFGQUNiLGFBQWEsa0dBQ2IsYUFBYSxrR0FDYixhQUFhLG9HQUNiLGtCQUFrQjs7MkZBR2IsOEJBQThCO2tCQXZCMUMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUdQO3dCQUNMLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7cUJBQ3JCOzhCQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsb2NrRWRpdG9yTm9kZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgQmxvY2tFZGl0b3JEZWZhdWx0QmxvY2tzIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENvZGVCbG9jaywgRG90QmxvY2tRdW90ZSB9IGZyb20gJy4uL2Jsb2Nrcy9jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RDb250ZW50bGV0QmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvY29udGVudGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90SW1hZ2VCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90QnVsbGV0TGlzdCwgRG90T3JkZXJlckxpc3QsIERvdExpc3RJdGVtIH0gZnJvbSAnLi4vYmxvY2tzL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFRhYmxlQmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFBhcmFncmFwaEJsb2NrLCBEb3RUZXh0QmxvY2ssIERvdEhlYWRpbmdCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RWaWRlb0Jsb2NrIH0gZnJvbSAnLi4vYmxvY2tzL3ZpZGVvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4uL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgRG90UGFyYWdyYXBoQmxvY2ssXG4gICAgICAgIERvdFRleHRCbG9jayxcbiAgICAgICAgRG90SGVhZGluZ0Jsb2NrLFxuICAgICAgICBEb3RCdWxsZXRMaXN0LFxuICAgICAgICBEb3RPcmRlcmVyTGlzdCxcbiAgICAgICAgRG90TGlzdEl0ZW0sXG4gICAgICAgIERvdENvZGVCbG9jayxcbiAgICAgICAgRG90QmxvY2tRdW90ZSxcbiAgICAgICAgRG90SW1hZ2VCbG9jayxcbiAgICAgICAgRG90VmlkZW9CbG9jayxcbiAgICAgICAgRG90VGFibGVCbG9jayxcbiAgICAgICAgRG90Q29udGVudGxldEJsb2NrXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IEJsb2NrRWRpdG9yTm9kZVtdIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGN1c3RvbVJlbmRlcmVyczogQ3VzdG9tUmVuZGVyZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBCTE9DS1MgPSBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3M7XG59XG4iLCJAZm9yIChub2RlIG9mIGNvbnRlbnQ7IHRyYWNrIG5vZGUpIHtcbiAgICBAaWYgKGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0pIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBjdXN0b21SZW5kZXI7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBjdXN0b21SZW5kZXI6IGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0sIG5vZGU6IG5vZGUgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5QQVJBR1JBUEgpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGggW3N0eWxlXT1cIm5vZGUuYXR0cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXBhcmFncmFwaD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwibm9kZS5tYXJrc1wiIFt0ZXh0XT1cIm5vZGUudGV4dCB8fCAnJ1wiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuSEVBRElORykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cIm5vZGUuYXR0cnMgfHwge31cIlxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibm9kZS5hdHRycz8uWydsZXZlbCddIHx8ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CVUxMRVRfTElTVCkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJ1bGxldC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYnVsbGV0LWxpc3Q+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuT1JERVJFRF9MSVNUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkxJU1RfSVRFTSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CTE9DS19RVU9URSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrLXF1b3RlPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2stcXVvdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuQ09ERV9CTE9DSykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWNvZGUtYmxvY2s+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1jb2RlLWJsb2NrPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhBUkRCUkVBSykge1xuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhPUklaT05UQUxfUlVMRSkge1xuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9JTUFHRSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWltYWdlIFthdHRyc109XCJub2RlLmF0dHJzIHx8IHt9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5ET1RfVklERU8pIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci12aWRlbyBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10YWJsZSBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9DT05URU5UKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItY29udGVudGxldFxuICAgICAgICAgICAgICAgICAgICBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxkaXY+VW5rbm93biBCbG9jayBUeXBlOiB7eyBub2RlLnR5cGUgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuPG5nLXRlbXBsYXRlICNjdXN0b21SZW5kZXIgbGV0LWN1c3RvbVJlbmRlcj1cImN1c3RvbVJlbmRlclwiIGxldC1ub2RlPVwibm9kZVwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY3VzdG9tUmVuZGVyIHwgYXN5bmM7IGlucHV0czogeyBjb250ZW50OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { EditorComponent, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
|
|
2
|
+
import { Component, ElementRef, HostListener, inject, Input, Renderer2, SecurityContext, ViewChild } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { DotCMSUVEAction, UVE_MODE } from '@dotcms/types';
|
|
5
|
+
import { __DOTCMS_UVE_EVENT__ } from '@dotcms/types/internal';
|
|
6
|
+
import { getUVEState, sendMessageToUVE } from '@dotcms/uve';
|
|
7
|
+
import { __TINYMCE_PATH_ON_DOTCMS__ } from '@dotcms/uve/internal';
|
|
8
|
+
import { TINYMCE_CONFIG } from './utils';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Dot editable text component.
|
|
12
|
+
* This component is responsible to render a text field that can be edited inline.
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @class DotCMSEditableTextComponent
|
|
16
|
+
* @implements {OnInit}
|
|
17
|
+
* @implements {OnChanges}
|
|
18
|
+
*/
|
|
19
|
+
export class DotCMSEditableTextComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
/**
|
|
22
|
+
* Represents the mode of the editor which can be `plain`, `minimal`, or `full`
|
|
23
|
+
*
|
|
24
|
+
* @type {DOT_EDITABLE_TEXT_MODE}
|
|
25
|
+
* @memberof DotCMSEditableTextComponent
|
|
26
|
+
*/
|
|
27
|
+
this.mode = 'plain';
|
|
28
|
+
/**
|
|
29
|
+
* Represents the format of the editor which can be `text` or `html`
|
|
30
|
+
*
|
|
31
|
+
* @type {DOT_EDITABLE_TEXT_FORMAT}
|
|
32
|
+
* @memberof DotCMSEditableTextComponent
|
|
33
|
+
*/
|
|
34
|
+
this.format = 'text';
|
|
35
|
+
/**
|
|
36
|
+
* Represents the field name of the `contentlet` that can be edited
|
|
37
|
+
*
|
|
38
|
+
* @memberof DotCMSEditableTextComponent
|
|
39
|
+
*/
|
|
40
|
+
this.fieldName = '';
|
|
41
|
+
/**
|
|
42
|
+
* Represents the content of the `contentlet` that can be edited
|
|
43
|
+
*
|
|
44
|
+
* @protected
|
|
45
|
+
* @memberof DotCMSEditableTextComponent
|
|
46
|
+
*/
|
|
47
|
+
this.content = '';
|
|
48
|
+
this.#NotDotCMSHostMessage = 'The `dotCMSHost` parameter is not defined. Check that the UVE is sending the correct parameters.';
|
|
49
|
+
this.#sanitizer = inject(DomSanitizer);
|
|
50
|
+
this.#renderer = inject(Renderer2);
|
|
51
|
+
this.#elementRef = inject(ElementRef);
|
|
52
|
+
}
|
|
53
|
+
#NotDotCMSHostMessage;
|
|
54
|
+
#sanitizer;
|
|
55
|
+
#renderer;
|
|
56
|
+
#elementRef;
|
|
57
|
+
/**
|
|
58
|
+
* The TinyMCE editor
|
|
59
|
+
*
|
|
60
|
+
* @readonly
|
|
61
|
+
* @memberof DotCMSEditableTextComponent
|
|
62
|
+
*/
|
|
63
|
+
get editor() {
|
|
64
|
+
return this.editorComponent?.editor;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Represents if the component is inside the editor
|
|
68
|
+
*
|
|
69
|
+
* @protected
|
|
70
|
+
* @type {boolean}
|
|
71
|
+
* @memberof DotCMSEditableTextComponent
|
|
72
|
+
*/
|
|
73
|
+
get isEditMode() {
|
|
74
|
+
const { mode, dotCMSHost } = getUVEState() || {};
|
|
75
|
+
return mode === UVE_MODE.EDIT && dotCMSHost;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns the number of pages the contentlet is on
|
|
79
|
+
*
|
|
80
|
+
* @readonly
|
|
81
|
+
* @memberof DotCMSEditableTextComponent
|
|
82
|
+
*/
|
|
83
|
+
get onNumberOfPages() {
|
|
84
|
+
return this.contentlet['onNumberOfPages'] || 1;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Handle copy contentlet inline editing success event
|
|
88
|
+
*
|
|
89
|
+
* @param {MessageEvent} { data }
|
|
90
|
+
* @return {*}
|
|
91
|
+
* @memberof DotCMSEditableTextComponent
|
|
92
|
+
*/
|
|
93
|
+
onMessage({ data }) {
|
|
94
|
+
const { name, payload } = data;
|
|
95
|
+
if (name !== __DOTCMS_UVE_EVENT__.UVE_COPY_CONTENTLET_INLINE_EDITING_SUCCESS) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const { oldInode, inode } = payload;
|
|
99
|
+
const currentInode = this.contentlet.inode;
|
|
100
|
+
if (currentInode === oldInode || currentInode === inode) {
|
|
101
|
+
this.editorComponent.editor.focus();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
ngOnInit() {
|
|
106
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
107
|
+
if (!this.isEditMode) {
|
|
108
|
+
this.innerHTMLToElement();
|
|
109
|
+
if (!dotCMSHost) {
|
|
110
|
+
console.warn(this.#NotDotCMSHostMessage);
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.init = {
|
|
115
|
+
...TINYMCE_CONFIG[this.mode],
|
|
116
|
+
base_url: `${dotCMSHost}/ext/tinymcev7`
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
ngOnChanges() {
|
|
120
|
+
this.content = this.contentlet[this.fieldName] || '';
|
|
121
|
+
if (this.editor) {
|
|
122
|
+
this.editor.setContent(this.content, { format: this.format });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Handle mouse down event
|
|
127
|
+
*
|
|
128
|
+
* @param {EventObj<MouseEvent>} { event }
|
|
129
|
+
* @return {*}
|
|
130
|
+
* @memberof DotCMSEditableTextComponent
|
|
131
|
+
*/
|
|
132
|
+
onMouseDown({ event }) {
|
|
133
|
+
if (Number(this.onNumberOfPages) <= 1 || this.editorComponent.editor.hasFocus()) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const { inode, languageId: language } = this.contentlet;
|
|
137
|
+
event.stopPropagation();
|
|
138
|
+
event.preventDefault();
|
|
139
|
+
try {
|
|
140
|
+
sendMessageToUVE({
|
|
141
|
+
action: DotCMSUVEAction.COPY_CONTENTLET_INLINE_EDITING,
|
|
142
|
+
payload: {
|
|
143
|
+
dataset: {
|
|
144
|
+
inode,
|
|
145
|
+
language,
|
|
146
|
+
fieldName: this.fieldName
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error('Failed to post message to editor:', error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Handle focus out event
|
|
157
|
+
*
|
|
158
|
+
* @return {*}
|
|
159
|
+
* @memberof DotCMSEditableTextComponent
|
|
160
|
+
*/
|
|
161
|
+
onFocusOut() {
|
|
162
|
+
const content = this.editor.getContent({ format: this.format });
|
|
163
|
+
if (!this.editor.isDirty() || !this.didContentChange(content)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const { inode, languageId: langId } = this.contentlet;
|
|
167
|
+
try {
|
|
168
|
+
sendMessageToUVE({
|
|
169
|
+
action: DotCMSUVEAction.UPDATE_CONTENTLET_INLINE_EDITING,
|
|
170
|
+
payload: {
|
|
171
|
+
content,
|
|
172
|
+
dataset: {
|
|
173
|
+
inode,
|
|
174
|
+
langId,
|
|
175
|
+
fieldName: this.fieldName
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
console.error('Failed to post message to editor:', error);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* inner HTML to element
|
|
186
|
+
*
|
|
187
|
+
* @private
|
|
188
|
+
* @param {string} editedContent
|
|
189
|
+
* @return {*}
|
|
190
|
+
* @memberof DotCMSEditableTextComponent
|
|
191
|
+
*/
|
|
192
|
+
innerHTMLToElement() {
|
|
193
|
+
const element = this.#elementRef.nativeElement;
|
|
194
|
+
const safeHtml = this.#sanitizer.bypassSecurityTrustHtml(this.content);
|
|
195
|
+
const content = this.#sanitizer.sanitize(SecurityContext.HTML, safeHtml) || '';
|
|
196
|
+
this.#renderer.setProperty(element, 'innerHTML', content);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Check if the content has changed
|
|
200
|
+
*
|
|
201
|
+
* @private
|
|
202
|
+
* @param {string} editedContent
|
|
203
|
+
* @return {*}
|
|
204
|
+
* @memberof DotCMSEditableTextComponent
|
|
205
|
+
*/
|
|
206
|
+
didContentChange(editedContent) {
|
|
207
|
+
return this.content !== editedContent;
|
|
208
|
+
}
|
|
209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSEditableTextComponent, isStandalone: true, selector: "dotcms-editable-text", inputs: { mode: "mode", format: "format", contentlet: "contentlet", fieldName: "fieldName" }, host: { listeners: { "window:message": "onMessage($event)" } }, providers: [
|
|
211
|
+
{
|
|
212
|
+
provide: TINYMCE_SCRIPT_SRC,
|
|
213
|
+
useFactory: () => {
|
|
214
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
215
|
+
return `${dotCMSHost || ''}${__TINYMCE_PATH_ON_DOTCMS__}`;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isEditMode) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }] }); }
|
|
219
|
+
}
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditableTextComponent, decorators: [{
|
|
221
|
+
type: Component,
|
|
222
|
+
args: [{ selector: 'dotcms-editable-text', standalone: true, imports: [EditorComponent], providers: [
|
|
223
|
+
{
|
|
224
|
+
provide: TINYMCE_SCRIPT_SRC,
|
|
225
|
+
useFactory: () => {
|
|
226
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
227
|
+
return `${dotCMSHost || ''}${__TINYMCE_PATH_ON_DOTCMS__}`;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
], template: "@if (isEditMode) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"] }]
|
|
231
|
+
}], propDecorators: { editorComponent: [{
|
|
232
|
+
type: ViewChild,
|
|
233
|
+
args: [EditorComponent]
|
|
234
|
+
}], mode: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], format: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], contentlet: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], fieldName: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], onMessage: [{
|
|
243
|
+
type: HostListener,
|
|
244
|
+
args: ['window:message', ['$event']]
|
|
245
|
+
}] } });
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQXlCLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFvRCxNQUFNLFNBQVMsQ0FBQzs7QUFFM0Y7Ozs7Ozs7O0dBUUc7QUFrQkgsTUFBTSxPQUFPLDJCQUEyQjtJQWpCeEM7UUFvQkk7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQTJCLE9BQU8sQ0FBQztRQUNoRDs7Ozs7V0FLRztRQUNNLFdBQU0sR0FB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QkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxXQUdQLENBQUMsZUFBZSxDQUFDLGFBQ2Y7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDYixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO2dDQUUzQyxPQUFPLEdBQUcsVUFBVSxJQUFJLEVBQUUsR0FBRywwQkFBMEIsRUFBRSxDQUFDOzRCQUM5RCxDQUFDO3lCQUNKO3FCQUNKOzhCQUcyQixlQUFlO3NCQUExQyxTQUFTO3VCQUFDLGVBQWU7Z0JBUWpCLElBQUk7c0JBQVosS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQWtFTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JDb21wb25lbnQsIFRJTllNQ0VfU0NSSVBUX1NSQyB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5pbXBvcnQgeyBFdmVudE9iaiB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci9lZGl0b3IvRXZlbnRzJztcblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgRG90Q01TQmFzaWNDb250ZW50bGV0LCBEb3RDTVNVVkVBY3Rpb24sIFVWRV9NT0RFIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBfX0RPVENNU19VVkVfRVZFTlRfXyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUsIHNlbmRNZXNzYWdlVG9VVkUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5pbXBvcnQgeyBfX1RJTllNQ0VfUEFUSF9PTl9ET1RDTVNfXyB9IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuaW1wb3J0IHsgVElOWU1DRV9DT05GSUcsIERPVF9FRElUQUJMRV9URVhUX0ZPUk1BVCwgRE9UX0VESVRBQkxFX1RFWFRfTU9ERSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIERvdCBlZGl0YWJsZSB0ZXh0IGNvbXBvbmVudC5cbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIHJlbmRlciBhIHRleHQgZmllbGQgdGhhdCBjYW4gYmUgZWRpdGVkIGlubGluZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICogQGltcGxlbWVudHMge09uQ2hhbmdlc31cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtZWRpdGFibGUtdGV4dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtZWRpdGFibGUtdGV4dC5jb21wb25lbnQuY3NzJyxcbiAgICBpbXBvcnRzOiBbRWRpdG9yQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVElOWU1DRV9TQ1JJUFRfU1JDLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZG90Q01TSG9zdCB9ID0gZ2V0VVZFU3RhdGUoKSB8fCB7fTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtkb3RDTVNIb3N0IHx8ICcnfSR7X19USU5ZTUNFX1BBVEhfT05fRE9UQ01TX199YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoRWRpdG9yQ29tcG9uZW50KSBlZGl0b3JDb21wb25lbnQhOiBFZGl0b3JDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBtb2RlIG9mIHRoZSBlZGl0b3Igd2hpY2ggY2FuIGJlIGBwbGFpbmAsIGBtaW5pbWFsYCwgb3IgYGZ1bGxgXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RE9UX0VESVRBQkxFX1RFWFRfTU9ERX1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgbW9kZTogRE9UX0VESVRBQkxFX1RFWFRfTU9ERSA9ICdwbGFpbic7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZm9ybWF0IG9mIHRoZSBlZGl0b3Igd2hpY2ggY2FuIGJlIGB0ZXh0YCBvciBgaHRtbGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtET1RfRURJVEFCTEVfVEVYVF9GT1JNQVR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGZvcm1hdDogRE9UX0VESVRBQkxFX1RFWFRfRk9STUFUID0gJ3RleHQnO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGBjb250ZW50bGV0YCB0aGF0IGNhbiBiZSBpbmxpbmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RG90Q01TQ29udGVudGxldH1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudGxldCE6IERvdENNU0Jhc2ljQ29udGVudGxldDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZmllbGROYW1lID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb250ZW50ID0gJyc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge0VkaXRvckNvbXBvbmVudFsnaW5pdCddfVxuICAgICAqIEBtZW1iZXJvZiBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdCE6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xuXG4gICAgcmVhZG9ubHkgI05vdERvdENNU0hvc3RNZXNzYWdlID1cbiAgICAgICAgJ1RoZSBgZG90Q01TSG9zdGAgcGFyYW1ldGVyIGlzIG5vdCBkZWZpbmVkLiBDaGVjayB0aGF0IHRoZSBVVkUgaXMgc2VuZGluZyB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzLic7XG5cbiAgICByZWFkb25seSAjc2FuaXRpemVyID0gaW5qZWN0PERvbVNhbml0aXplcj4oRG9tU2FuaXRpemVyKTtcbiAgICByZWFkb25seSAjcmVuZGVyZXIgPSBpbmplY3Q8UmVuZGVyZXIyPihSZW5kZXJlcjIpO1xuICAgIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIFRpbnlNQ0UgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgZ2V0IGVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29tcG9uZW50Py5lZGl0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBpZiB0aGUgY29tcG9uZW50IGlzIGluc2lkZSB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgaXNFZGl0TW9kZSgpIHtcbiAgICAgICAgY29uc3QgeyBtb2RlLCBkb3RDTVNIb3N0IH0gPSBnZXRVVkVTdGF0ZSgpIHx8IHt9O1xuXG4gICAgICAgIHJldHVybiBtb2RlID09PSBVVkVfTU9ERS5FRElUICYmIGRvdENNU0hvc3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoZSBjb250ZW50bGV0IGlzIG9uXG4gICAgICpcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgZ2V0IG9uTnVtYmVyT2ZQYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudGxldFsnb25OdW1iZXJPZlBhZ2VzJ10gfHwgMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgY29weSBjb250ZW50bGV0IGlubGluZSBlZGl0aW5nIHN1Y2Nlc3MgZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TWVzc2FnZUV2ZW50fSB7IGRhdGEgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgICBvbk1lc3NhZ2UoeyBkYXRhIH06IE1lc3NhZ2VFdmVudCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIHBheWxvYWQgfSA9IGRhdGE7XG4gICAgICAgIGlmIChuYW1lICE9PSBfX0RPVENNU19VVkVfRVZFTlRfXy5VVkVfQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HX1NVQ0NFU1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgb2xkSW5vZGUsIGlub2RlIH0gPSBwYXlsb2FkO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbm9kZSA9PT0gb2xkSW5vZGUgfHwgY3VycmVudElub2RlID09PSBpbm9kZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB7IGRvdENNU0hvc3QgfSA9IGdldFVWRVN0YXRlKCkgfHwge307XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzRWRpdE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJIVE1MVG9FbGVtZW50KCk7XG5cbiAgICAgICAgICAgIGlmICghZG90Q01TSG9zdCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0aGlzLiNOb3REb3RDTVNIb3N0TWVzc2FnZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgICAgICAgIC4uLlRJTllNQ0VfQ09ORklHW3RoaXMubW9kZV0sXG4gICAgICAgICAgICBiYXNlX3VybDogYCR7ZG90Q01TSG9zdH0vZXh0L3RpbnltY2V2N2BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jb250ZW50bGV0W3RoaXMuZmllbGROYW1lXSB8fCAnJztcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHRoaXMuY29udGVudCwgeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIG1vdXNlIGRvd24gZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RXZlbnRPYmo8TW91c2VFdmVudD59IHsgZXZlbnQgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uTW91c2VEb3duKHsgZXZlbnQgfTogRXZlbnRPYmo8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKE51bWJlcih0aGlzLm9uTnVtYmVyT2ZQYWdlcykgPD0gMSB8fCB0aGlzLmVkaXRvckNvbXBvbmVudC5lZGl0b3IuaGFzRm9jdXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpbm9kZSwgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2UgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb1VWRSh7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBEb3RDTVNVVkVBY3Rpb24uQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBmb2N1cyBvdXQgZXZlbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uRm9jdXNPdXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLmlzRGlydHkoKSB8fCAhdGhpcy5kaWRDb250ZW50Q2hhbmdlKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlub2RlLCBsYW5ndWFnZUlkOiBsYW5nSWQgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb1VWRSh7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBEb3RDTVNVVkVBY3Rpb24uVVBEQVRFX0NPTlRFTlRMRVRfSU5MSU5FX0VESVRJTkcsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5uZXIgSFRNTCB0byBlbGVtZW50XG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlZGl0ZWRDb250ZW50XG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBpbm5lckhUTUxUb0VsZW1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNhZmVIdG1sID0gdGhpcy4jc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuY29udGVudCk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLiNzYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIHNhZmVIdG1sKSB8fCAnJztcblxuICAgICAgICB0aGlzLiNyZW5kZXJlci5zZXRQcm9wZXJ0eShlbGVtZW50LCAnaW5uZXJIVE1MJywgY29udGVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGNvbnRlbnQgaGFzIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGVkaXRlZENvbnRlbnRcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGRpZENvbnRlbnRDaGFuZ2UoZWRpdGVkQ29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQgIT09IGVkaXRlZENvbnRlbnQ7XG4gICAgfVxufVxuIiwiQGlmIChpc0VkaXRNb2RlKSB7XG4gICAgPGVkaXRvclxuICAgICAgICAjdGlueUVkaXRvclxuICAgICAgICBbaW5pdF09XCJpbml0XCJcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb250ZW50XCJcbiAgICAgICAgKG9uTW91c2VEb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAob25Gb2N1c091dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __BASE_TINYMCE_CONFIG_WITH_NO_DEFAULT__, __DEFAULT_TINYMCE_CONFIG__ } from '@dotcms/uve/internal';
|
|
2
|
+
const DEFAULT_TINYMCE_CONFIG = {
|
|
3
|
+
...__DEFAULT_TINYMCE_CONFIG__,
|
|
4
|
+
license_key: 'gpl' // Using self-hosted license key
|
|
5
|
+
};
|
|
6
|
+
export const TINYMCE_CONFIG = {
|
|
7
|
+
minimal: {
|
|
8
|
+
...DEFAULT_TINYMCE_CONFIG,
|
|
9
|
+
...__BASE_TINYMCE_CONFIG_WITH_NO_DEFAULT__.minimal
|
|
10
|
+
},
|
|
11
|
+
full: {
|
|
12
|
+
...DEFAULT_TINYMCE_CONFIG,
|
|
13
|
+
...__BASE_TINYMCE_CONFIG_WITH_NO_DEFAULT__.full
|
|
14
|
+
},
|
|
15
|
+
plain: {
|
|
16
|
+
...DEFAULT_TINYMCE_CONFIG,
|
|
17
|
+
...__BASE_TINYMCE_CONFIG_WITH_NO_DEFAULT__.plain
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtZWRpdGFibGUtdGV4dC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0gsdUNBQXVDLEVBQ3ZDLDBCQUEwQixFQUM3QixNQUFNLHNCQUFzQixDQUFDO0FBTTlCLE1BQU0sc0JBQXNCLEdBQTRCO0lBQ3BELEdBQUcsMEJBQTBCO0lBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMsZ0NBQWdDO0NBQ3RELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBRXZCO0lBQ0EsT0FBTyxFQUFFO1FBQ0wsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxPQUFPO0tBQ3JEO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxJQUFJO0tBQ2xEO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxLQUFLO0tBQ25EO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gICAgX19CQVNFX1RJTllNQ0VfQ09ORklHX1dJVEhfTk9fREVGQVVMVF9fLFxuICAgIF9fREVGQVVMVF9USU5ZTUNFX0NPTkZJR19fXG59IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuZXhwb3J0IHR5cGUgRE9UX0VESVRBQkxFX1RFWFRfTU9ERSA9ICdtaW5pbWFsJyB8ICdmdWxsJyB8ICdwbGFpbic7XG5cbmV4cG9ydCB0eXBlIERPVF9FRElUQUJMRV9URVhUX0ZPUk1BVCA9ICdodG1sJyB8ICd0ZXh0JztcblxuY29uc3QgREVGQVVMVF9USU5ZTUNFX0NPTkZJRzogRWRpdG9yQ29tcG9uZW50Wydpbml0J10gPSB7XG4gICAgLi4uX19ERUZBVUxUX1RJTllNQ0VfQ09ORklHX18sXG4gICAgbGljZW5zZV9rZXk6ICdncGwnIC8vIFVzaW5nIHNlbGYtaG9zdGVkIGxpY2Vuc2Uga2V5XG59O1xuXG5leHBvcnQgY29uc3QgVElOWU1DRV9DT05GSUc6IHtcbiAgICBba2V5IGluIERPVF9FRElUQUJMRV9URVhUX01PREVdOiBFZGl0b3JDb21wb25lbnRbJ2luaXQnXTtcbn0gPSB7XG4gICAgbWluaW1hbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICAuLi5fX0JBU0VfVElOWU1DRV9DT05GSUdfV0lUSF9OT19ERUZBVUxUX18ubWluaW1hbFxuICAgIH0sXG4gICAgZnVsbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICAuLi5fX0JBU0VfVElOWU1DRV9DT05GSUdfV0lUSF9OT19ERUZBVUxUX18uZnVsbFxuICAgIH0sXG4gICAgcGxhaW46IHtcbiAgICAgICAgLi4uREVGQVVMVF9USU5ZTUNFX0NPTkZJRyxcbiAgICAgICAgLi4uX19CQVNFX1RJTllNQ0VfQ09ORklHX1dJVEhfTk9fREVGQVVMVF9fLnBsYWluXG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { combineClasses, getColumnPositionClasses } from '@dotcms/uve/internal';
|
|
3
|
+
import { ContainerComponent } from '../container/container.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* This component renders a column with all its content using the layout provided by dotCMS Page API.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://www.dotcms.com/docs/latest/page-rest-api-layout-as-a-service-laas}
|
|
9
|
+
* @category Components
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export class ColumnComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.customClasses = '';
|
|
15
|
+
}
|
|
16
|
+
ngOnChanges() {
|
|
17
|
+
const positionClasses = getColumnPositionClasses(this.column);
|
|
18
|
+
this.customClasses = combineClasses([positionClasses.startClass, positionClasses.endClass]);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: ColumnComponent, isStandalone: true, selector: "dotcms-column", inputs: { column: "column" }, host: { properties: { "class": "this.customClasses" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
22
|
+
<div [class]="column.styleClass" data-testid="dotcms-column">
|
|
23
|
+
@for (container of column.containers; track $index) {
|
|
24
|
+
<dotcms-container [container]="container" />
|
|
25
|
+
}
|
|
26
|
+
</div>
|
|
27
|
+
`, isInline: true, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"], dependencies: [{ kind: "component", type: ContainerComponent, selector: "dotcms-container", inputs: ["container"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ColumnComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'dotcms-column', standalone: true, imports: [ContainerComponent], template: `
|
|
32
|
+
<div [class]="column.styleClass" data-testid="dotcms-column">
|
|
33
|
+
@for (container of column.containers; track $index) {
|
|
34
|
+
<dotcms-container [container]="container" />
|
|
35
|
+
}
|
|
36
|
+
</div>
|
|
37
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"] }]
|
|
38
|
+
}], propDecorators: { column: [{
|
|
39
|
+
type: Input,
|
|
40
|
+
args: [{ required: true }]
|
|
41
|
+
}], customClasses: [{
|
|
42
|
+
type: HostBinding,
|
|
43
|
+
args: ['class']
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBQ3RFOzs7Ozs7R0FNRztBQWVILE1BQU0sT0FBTyxlQUFlO0lBZDVCO1FBb0IwQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztLQU81QztJQUxHLFdBQVc7UUFDUCxNQUFNLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBWlEsZUFBZTtrR0FBZixlQUFlLHFMQVZkOzs7Ozs7S0FNVCw0OUJBUFMsa0JBQWtCOzsyRkFXbkIsZUFBZTtrQkFkM0IsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLENBQUMsWUFDbkI7Ozs7OztLQU1ULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU1wQixNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFSCxhQUFhO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW4gfSBmcm9tICdAZG90Y21zL3R5cGVzJztcbmltcG9ydCB7IGNvbWJpbmVDbGFzc2VzLCBnZXRDb2x1bW5Qb3NpdGlvbkNsYXNzZXMgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50Jztcbi8qKlxuICogVGhpcyBjb21wb25lbnQgcmVuZGVycyBhIGNvbHVtbiB3aXRoIGFsbCBpdHMgY29udGVudCB1c2luZyB0aGUgbGF5b3V0IHByb3ZpZGVkIGJ5IGRvdENNUyBQYWdlIEFQSS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3d3dy5kb3RjbXMuY29tL2RvY3MvbGF0ZXN0L3BhZ2UtcmVzdC1hcGktbGF5b3V0LWFzLWEtc2VydmljZS1sYWFzfVxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb2x1bW4nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbnRhaW5lckNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiY29sdW1uLnN0eWxlQ2xhc3NcIiBkYXRhLXRlc3RpZD1cImRvdGNtcy1jb2x1bW5cIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbnRhaW5lciBvZiBjb2x1bW4uY29udGFpbmVyczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1jb250YWluZXIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb2x1bW4uY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29sdW1uIGRhdGEgdG8gYmUgcmVuZGVyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW4hOiBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY3VzdG9tQ2xhc3NlcyA9ICcnO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ2xhc3NlcyA9IGdldENvbHVtblBvc2l0aW9uQ2xhc3Nlcyh0aGlzLmNvbHVtbik7XG5cbiAgICAgICAgdGhpcy5jdXN0b21DbGFzc2VzID0gY29tYmluZUNsYXNzZXMoW3Bvc2l0aW9uQ2xhc3Nlcy5zdGFydENsYXNzLCBwb3NpdGlvbkNsYXNzZXMuZW5kQ2xhc3NdKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { NgStyle } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { EMPTY_CONTAINER_STYLE_ANGULAR } from '@dotcms/uve/internal';
|
|
4
|
+
import { DotCMSStore } from '../../../../../../store/dotcms.store';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description This component is used to display a message when a container is not found.
|
|
8
|
+
* @export
|
|
9
|
+
* @internal
|
|
10
|
+
* @class ContainerNotFoundComponent
|
|
11
|
+
* @implements {OnInit}
|
|
12
|
+
*/
|
|
13
|
+
export class ContainerNotFoundComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.identifier = 'unknown';
|
|
16
|
+
this.#dotcmsContextService = inject(DotCMSStore);
|
|
17
|
+
this.$isDevMode = this.#dotcmsContextService.$isDevMode;
|
|
18
|
+
this.emptyContainerStyle = EMPTY_CONTAINER_STYLE_ANGULAR;
|
|
19
|
+
}
|
|
20
|
+
#dotcmsContextService;
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
if (this.$isDevMode()) {
|
|
23
|
+
console.error(`Container with identifier ${this.identifier} not found`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: ContainerNotFoundComponent, isStandalone: true, selector: "dotcms-container-not-found", inputs: { identifier: "identifier" }, ngImport: i0, template: `
|
|
28
|
+
@if ($isDevMode()) {
|
|
29
|
+
<div [attr.data-testid]="'container-not-found'" [ngStyle]="emptyContainerStyle">
|
|
30
|
+
This container with identifier {{ identifier }} was not found.
|
|
31
|
+
</div>
|
|
32
|
+
}
|
|
33
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerNotFoundComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: 'dotcms-container-not-found',
|
|
39
|
+
standalone: true,
|
|
40
|
+
imports: [NgStyle],
|
|
41
|
+
template: `
|
|
42
|
+
@if ($isDevMode()) {
|
|
43
|
+
<div [attr.data-testid]="'container-not-found'" [ngStyle]="emptyContainerStyle">
|
|
44
|
+
This container with identifier {{ identifier }} was not found.
|
|
45
|
+
</div>
|
|
46
|
+
}
|
|
47
|
+
`
|
|
48
|
+
}]
|
|
49
|
+
}], propDecorators: { identifier: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLW5vdC1mb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtbGF5b3V0LWJvZHkvY29tcG9uZW50cy9jb250YWluZXIvY29tcG9uZW50cy9jb250YWluZXItbm90LWZvdW5kL2NvbnRhaW5lci1ub3QtZm91bmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUVuRTs7Ozs7O0dBTUc7QUFhSCxNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYWEsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUVoQywwQkFBcUIsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7UUFDbkQsd0JBQW1CLEdBQUcsNkJBQTZCLENBQUM7S0FPdkQ7SUFWRyxxQkFBcUIsQ0FBdUI7SUFLNUMsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLFVBQVUsWUFBWSxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNMLENBQUM7OEdBWlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsNEhBUnpCOzs7Ozs7S0FNVCw0REFQUyxPQUFPOzsyRkFTUiwwQkFBMEI7a0JBWnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsUUFBUSxFQUFFOzs7Ozs7S0FNVDtpQkFDSjs4QkFFWSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFTVBUWV9DT05UQUlORVJfU1RZTEVfQU5HVUxBUiB9IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuaW1wb3J0IHsgRG90Q01TU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdG9yZS9kb3RjbXMuc3RvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdoZW4gYSBjb250YWluZXIgaXMgbm90IGZvdW5kLlxuICogQGV4cG9ydFxuICogQGludGVybmFsXG4gKiBAY2xhc3MgQ29udGFpbmVyTm90Rm91bmRDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbnRhaW5lci1ub3QtZm91bmQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoJGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IFthdHRyLmRhdGEtdGVzdGlkXT1cIidjb250YWluZXItbm90LWZvdW5kJ1wiIFtuZ1N0eWxlXT1cImVtcHR5Q29udGFpbmVyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICBUaGlzIGNvbnRhaW5lciB3aXRoIGlkZW50aWZpZXIge3sgaWRlbnRpZmllciB9fSB3YXMgbm90IGZvdW5kLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lck5vdEZvdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBpZGVudGlmaWVyID0gJ3Vua25vd24nO1xuXG4gICAgI2RvdGNtc0NvbnRleHRTZXJ2aWNlID0gaW5qZWN0KERvdENNU1N0b3JlKTtcblxuICAgICRpc0Rldk1vZGUgPSB0aGlzLiNkb3RjbXNDb250ZXh0U2VydmljZS4kaXNEZXZNb2RlO1xuICAgIGVtcHR5Q29udGFpbmVyU3R5bGUgPSBFTVBUWV9DT05UQUlORVJfU1RZTEVfQU5HVUxBUjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy4kaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENvbnRhaW5lciB3aXRoIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NgStyle } from '@angular/common';
|
|
2
|
+
import { Component, inject } from '@angular/core';
|
|
3
|
+
import { EMPTY_CONTAINER_STYLE_ANGULAR } from '@dotcms/uve/internal';
|
|
4
|
+
import { DotCMSStore } from '../../../../../../store/dotcms.store';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description This component is used to display a message when a container is empty.
|
|
8
|
+
* @export
|
|
9
|
+
* @internal
|
|
10
|
+
* @class EmptyContainerComponent
|
|
11
|
+
*/
|
|
12
|
+
export class EmptyContainerComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.emptyContainerStyle = EMPTY_CONTAINER_STYLE_ANGULAR;
|
|
15
|
+
this.#dotCMSStore = inject(DotCMSStore);
|
|
16
|
+
this.$isDevMode = this.#dotCMSStore.$isDevMode;
|
|
17
|
+
}
|
|
18
|
+
#dotCMSStore;
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: EmptyContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: EmptyContainerComponent, isStandalone: true, selector: "dotcms-empty-container", ngImport: i0, template: `
|
|
21
|
+
@if ($isDevMode()) {
|
|
22
|
+
<div [ngStyle]="emptyContainerStyle" data-testid="empty-container">
|
|
23
|
+
<span data-testid="empty-container-message">This container is empty.</span>
|
|
24
|
+
</div>
|
|
25
|
+
}
|
|
26
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: EmptyContainerComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'dotcms-empty-container',
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [NgStyle],
|
|
34
|
+
template: `
|
|
35
|
+
@if ($isDevMode()) {
|
|
36
|
+
<div [ngStyle]="emptyContainerStyle" data-testid="empty-container">
|
|
37
|
+
<span data-testid="empty-container-message">This container is empty.</span>
|
|
38
|
+
</div>
|
|
39
|
+
}
|
|
40
|
+
`
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2NvbnRhaW5lci9jb21wb25lbnRzL2VtcHR5LWNvbnRhaW5lci9lbXB0eS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRW5FOzs7OztHQUtHO0FBYUgsTUFBTSxPQUFPLHVCQUF1QjtJQVpwQztRQWFJLHdCQUFtQixHQUFHLDZCQUE2QixDQUFDO1FBRXBELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztLQUM3QztJQUhHLFlBQVksQ0FBdUI7OEdBSDFCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtGQVJ0Qjs7Ozs7O0tBTVQsNERBUFMsT0FBTzs7MkZBU1IsdUJBQXVCO2tCQVpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLFFBQVEsRUFBRTs7Ozs7O0tBTVQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVNUFRZX0NPTlRBSU5FUl9TVFlMRV9BTkdVTEFSIH0gZnJvbSAnQGRvdGNtcy91dmUvaW50ZXJuYWwnO1xuXG5pbXBvcnQgeyBEb3RDTVNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0b3JlL2RvdGNtcy5zdG9yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2Ugd2hlbiBhIGNvbnRhaW5lciBpcyBlbXB0eS5cbiAqIEBleHBvcnRcbiAqIEBpbnRlcm5hbFxuICogQGNsYXNzIEVtcHR5Q29udGFpbmVyQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWVtcHR5LWNvbnRhaW5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdTdHlsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICgkaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwiZW1wdHlDb250YWluZXJTdHlsZVwiIGRhdGEtdGVzdGlkPVwiZW1wdHktY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJlbXB0eS1jb250YWluZXItbWVzc2FnZVwiPlRoaXMgY29udGFpbmVyIGlzIGVtcHR5Ljwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBFbXB0eUNvbnRhaW5lckNvbXBvbmVudCB7XG4gICAgZW1wdHlDb250YWluZXJTdHlsZSA9IEVNUFRZX0NPTlRBSU5FUl9TVFlMRV9BTkdVTEFSO1xuXG4gICAgI2RvdENNU1N0b3JlID0gaW5qZWN0KERvdENNU1N0b3JlKTtcblxuICAgICRpc0Rldk1vZGUgPSB0aGlzLiNkb3RDTVNTdG9yZS4kaXNEZXZNb2RlO1xufVxuIl19
|