@dotcms/angular 0.0.1-beta.9 → 1.0.0
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/README.md +646 -167
- package/dotcms-angular.d.ts.map +1 -1
- package/esm2022/dotcms-angular.mjs +2 -2
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
- package/esm2022/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
- package/esm2022/lib/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
- package/esm2022/lib/components/dotcms-editable-text/utils.mjs +20 -0
- package/esm2022/lib/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
- package/esm2022/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
- package/esm2022/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
- package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
- package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
- package/esm2022/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
- package/esm2022/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
- package/esm2022/lib/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
- package/esm2022/lib/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
- package/esm2022/lib/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
- package/esm2022/lib/models/index.mjs +2 -2
- package/esm2022/lib/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
- package/esm2022/lib/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
- package/esm2022/lib/services/dotcms-editable-page.service.mjs +93 -0
- package/esm2022/lib/store/dotcms.store.mjs +61 -0
- package/esm2022/public_api.mjs +8 -0
- package/fesm2022/dotcms-angular.mjs +1578 -612
- package/fesm2022/dotcms-angular.mjs.map +1 -1
- package/index.d.ts +6 -6
- package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
- package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
- package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
- package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
- package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
- package/lib/components/{dot-editable-text/dot-editable-text.component.d.ts → dotcms-editable-text/dotcms-editable-text.component.d.ts} +30 -30
- package/lib/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
- package/lib/components/dotcms-editable-text/utils.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
- package/lib/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
- package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
- package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
- package/lib/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
- package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
- package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
- package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
- package/lib/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
- package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
- package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
- package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
- package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
- package/lib/models/index.d.ts +9 -10
- package/lib/models/index.d.ts.map +1 -1
- package/lib/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
- package/lib/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
- package/lib/{utils/image_loader.d.ts → providers/dotcms-image-loader/dotcms-image_loader.d.ts} +1 -1
- package/lib/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
- package/lib/services/dotcms-editable-page.service.d.ts +40 -0
- package/lib/services/dotcms-editable-page.service.d.ts.map +1 -0
- package/lib/store/dotcms.store.d.ts +36 -0
- package/lib/store/dotcms.store.d.ts.map +1 -0
- package/package.json +9 -9
- package/public_api.d.ts +9 -0
- package/public_api.d.ts.map +1 -0
- package/esm2022/index.mjs +0 -6
- 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/column/column.component.mjs +0 -45
- 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 -101
- package/esm2022/lib/layout/row/row.component.mjs +0 -29
- package/esm2022/lib/models/dotcms.model.mjs +0 -3
- package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
- package/esm2022/lib/utils/image_loader.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 +0 -22
- package/lib/components/no-component/no-component.component.d.ts.map +0 -1
- package/lib/layout/column/column.component.d.ts +0 -29
- package/lib/layout/column/column.component.d.ts.map +0 -1
- package/lib/layout/container/container.component.d.ts +0 -88
- package/lib/layout/container/container.component.d.ts.map +0 -1
- package/lib/layout/contentlet/contentlet.component.d.ts +0 -86
- package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
- package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts +0 -68
- package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
- package/lib/layout/row/row.component.d.ts +0 -20
- package/lib/layout/row/row.component.d.ts.map +0 -1
- package/lib/models/dotcms.model.d.ts +0 -416
- package/lib/models/dotcms.model.d.ts.map +0 -1
- package/lib/services/dotcms-context/page-context.service.d.ts +0 -49
- package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
- package/lib/utils/image_loader.d.ts.map +0 -1
- package/lib/utils/index.d.ts +0 -63
- package/lib/utils/index.d.ts.map +0 -1
- /package/lib/components/{dot-editable-text → dotcms-editable-text}/utils.d.ts +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
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 content of the `contentlet` that can be edited
|
|
37
|
+
*
|
|
38
|
+
* @protected
|
|
39
|
+
* @memberof DotCMSEditableTextComponent
|
|
40
|
+
*/
|
|
41
|
+
this.content = '';
|
|
42
|
+
this.#NotDotCMSHostMessage = 'The `dotCMSHost` parameter is not defined. Check that the UVE is sending the correct parameters.';
|
|
43
|
+
this.#sanitizer = inject(DomSanitizer);
|
|
44
|
+
this.#renderer = inject(Renderer2);
|
|
45
|
+
this.#elementRef = inject(ElementRef);
|
|
46
|
+
}
|
|
47
|
+
#NotDotCMSHostMessage;
|
|
48
|
+
#sanitizer;
|
|
49
|
+
#renderer;
|
|
50
|
+
#elementRef;
|
|
51
|
+
/**
|
|
52
|
+
* The TinyMCE editor
|
|
53
|
+
*
|
|
54
|
+
* @readonly
|
|
55
|
+
* @memberof DotCMSEditableTextComponent
|
|
56
|
+
*/
|
|
57
|
+
get editor() {
|
|
58
|
+
return this.editorComponent?.editor;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Represents if the component is inside the editor
|
|
62
|
+
*
|
|
63
|
+
* @protected
|
|
64
|
+
* @type {boolean}
|
|
65
|
+
* @memberof DotCMSEditableTextComponent
|
|
66
|
+
*/
|
|
67
|
+
get isEditMode() {
|
|
68
|
+
const { mode, dotCMSHost } = getUVEState() || {};
|
|
69
|
+
return mode === UVE_MODE.EDIT && dotCMSHost;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns the number of pages the contentlet is on
|
|
73
|
+
*
|
|
74
|
+
* @readonly
|
|
75
|
+
* @memberof DotCMSEditableTextComponent
|
|
76
|
+
*/
|
|
77
|
+
get onNumberOfPages() {
|
|
78
|
+
return this.contentlet['onNumberOfPages'] || 1;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Handle copy contentlet inline editing success event
|
|
82
|
+
*
|
|
83
|
+
* @param {MessageEvent} { data }
|
|
84
|
+
* @return {*}
|
|
85
|
+
* @memberof DotCMSEditableTextComponent
|
|
86
|
+
*/
|
|
87
|
+
onMessage({ data }) {
|
|
88
|
+
const { name, payload } = data;
|
|
89
|
+
if (name !== __DOTCMS_UVE_EVENT__.UVE_COPY_CONTENTLET_INLINE_EDITING_SUCCESS) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const { oldInode, inode } = payload;
|
|
93
|
+
const currentInode = this.contentlet.inode;
|
|
94
|
+
if (currentInode === oldInode || currentInode === inode) {
|
|
95
|
+
this.editorComponent.editor.focus();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
ngOnInit() {
|
|
100
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
101
|
+
if (!this.isEditMode) {
|
|
102
|
+
this.innerHTMLToElement();
|
|
103
|
+
if (!dotCMSHost) {
|
|
104
|
+
console.warn(this.#NotDotCMSHostMessage);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.init = {
|
|
109
|
+
...TINYMCE_CONFIG[this.mode],
|
|
110
|
+
base_url: `${dotCMSHost}/ext/tinymcev7`
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
ngOnChanges() {
|
|
114
|
+
this.content = this.contentlet[this.fieldName] || '';
|
|
115
|
+
if (this.editor) {
|
|
116
|
+
this.editor.setContent(this.content, { format: this.format });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Handle mouse down event
|
|
121
|
+
*
|
|
122
|
+
* @param {EventObj<MouseEvent>} { event }
|
|
123
|
+
* @return {*}
|
|
124
|
+
* @memberof DotCMSEditableTextComponent
|
|
125
|
+
*/
|
|
126
|
+
onMouseDown({ event }) {
|
|
127
|
+
if (Number(this.onNumberOfPages) <= 1 || this.editorComponent.editor.hasFocus()) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const { inode, languageId: language } = this.contentlet;
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
event.preventDefault();
|
|
133
|
+
try {
|
|
134
|
+
sendMessageToUVE({
|
|
135
|
+
action: DotCMSUVEAction.COPY_CONTENTLET_INLINE_EDITING,
|
|
136
|
+
payload: {
|
|
137
|
+
dataset: {
|
|
138
|
+
inode,
|
|
139
|
+
language,
|
|
140
|
+
fieldName: this.fieldName
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error('Failed to post message to editor:', error);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Handle focus out event
|
|
151
|
+
*
|
|
152
|
+
* @return {*}
|
|
153
|
+
* @memberof DotCMSEditableTextComponent
|
|
154
|
+
*/
|
|
155
|
+
onFocusOut() {
|
|
156
|
+
const content = this.editor.getContent({ format: this.format });
|
|
157
|
+
if (!this.editor.isDirty() || !this.didContentChange(content)) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const { inode, languageId: langId } = this.contentlet;
|
|
161
|
+
try {
|
|
162
|
+
sendMessageToUVE({
|
|
163
|
+
action: DotCMSUVEAction.UPDATE_CONTENTLET_INLINE_EDITING,
|
|
164
|
+
payload: {
|
|
165
|
+
content,
|
|
166
|
+
dataset: {
|
|
167
|
+
inode,
|
|
168
|
+
langId,
|
|
169
|
+
fieldName: this.fieldName
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
console.error('Failed to post message to editor:', error);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* inner HTML to element
|
|
180
|
+
*
|
|
181
|
+
* @private
|
|
182
|
+
* @param {string} editedContent
|
|
183
|
+
* @return {*}
|
|
184
|
+
* @memberof DotCMSEditableTextComponent
|
|
185
|
+
*/
|
|
186
|
+
innerHTMLToElement() {
|
|
187
|
+
const element = this.#elementRef.nativeElement;
|
|
188
|
+
const safeHtml = this.#sanitizer.bypassSecurityTrustHtml(this.content);
|
|
189
|
+
const content = this.#sanitizer.sanitize(SecurityContext.HTML, safeHtml) || '';
|
|
190
|
+
this.#renderer.setProperty(element, 'innerHTML', content);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Check if the content has changed
|
|
194
|
+
*
|
|
195
|
+
* @private
|
|
196
|
+
* @param {string} editedContent
|
|
197
|
+
* @return {*}
|
|
198
|
+
* @memberof DotCMSEditableTextComponent
|
|
199
|
+
*/
|
|
200
|
+
didContentChange(editedContent) {
|
|
201
|
+
return this.content !== editedContent;
|
|
202
|
+
}
|
|
203
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
204
|
+
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: [
|
|
205
|
+
{
|
|
206
|
+
provide: TINYMCE_SCRIPT_SRC,
|
|
207
|
+
useFactory: () => {
|
|
208
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
209
|
+
return `${dotCMSHost || ''}${__TINYMCE_PATH_ON_DOTCMS__}`;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
], 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){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"] }] }); }
|
|
213
|
+
}
|
|
214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditableTextComponent, decorators: [{
|
|
215
|
+
type: Component,
|
|
216
|
+
args: [{ selector: 'dotcms-editable-text', standalone: true, imports: [EditorComponent], providers: [
|
|
217
|
+
{
|
|
218
|
+
provide: TINYMCE_SCRIPT_SRC,
|
|
219
|
+
useFactory: () => {
|
|
220
|
+
const { dotCMSHost } = getUVEState() || {};
|
|
221
|
+
return `${dotCMSHost || ''}${__TINYMCE_PATH_ON_DOTCMS__}`;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
], 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){outline:2px solid #006ce7;border-radius:4px}\n"] }]
|
|
225
|
+
}], propDecorators: { editorComponent: [{
|
|
226
|
+
type: ViewChild,
|
|
227
|
+
args: [EditorComponent]
|
|
228
|
+
}], mode: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], format: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], contentlet: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], fieldName: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], onMessage: [{
|
|
237
|
+
type: HostListener,
|
|
238
|
+
args: ['window:message', ['$event']]
|
|
239
|
+
}] } });
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQXlCLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFvRCxNQUFNLFNBQVMsQ0FBQzs7QUFFM0Y7Ozs7Ozs7O0dBUUc7QUFrQkgsTUFBTSxPQUFPLDJCQUEyQjtJQWpCeEM7UUFzQkk7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQTJCLE9BQU8sQ0FBQztRQUNoRDs7Ozs7V0FLRztRQUNNLFdB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ZUFBZSxDQUFDLGFBQ2Y7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDYixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO2dDQUUzQyxPQUFPLEdBQUcsVUFBVSxJQUFJLEVBQUUsR0FBRywwQkFBMEIsRUFBRSxDQUFDOzRCQUM5RCxDQUFDO3lCQUNKO3FCQUNKOzhCQUsyQixlQUFlO3NCQUExQyxTQUFTO3VCQUFDLGVBQWU7Z0JBUWpCLElBQUk7c0JBQVosS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQWtFTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JDb21wb25lbnQsIFRJTllNQ0VfU0NSSVBUX1NSQyB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5pbXBvcnQgeyBFdmVudE9iaiB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci9lZGl0b3IvRXZlbnRzJztcblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHsgRG90Q01TQmFzaWNDb250ZW50bGV0LCBEb3RDTVNVVkVBY3Rpb24sIFVWRV9NT0RFIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBfX0RPVENNU19VVkVfRVZFTlRfXyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUsIHNlbmRNZXNzYWdlVG9VVkUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5pbXBvcnQgeyBfX1RJTllNQ0VfUEFUSF9PTl9ET1RDTVNfXyB9IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuaW1wb3J0IHsgVElOWU1DRV9DT05GSUcsIERPVF9FRElUQUJMRV9URVhUX0ZPUk1BVCwgRE9UX0VESVRBQkxFX1RFWFRfTU9ERSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIERvdCBlZGl0YWJsZSB0ZXh0IGNvbXBvbmVudC5cbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIHJlbmRlciBhIHRleHQgZmllbGQgdGhhdCBjYW4gYmUgZWRpdGVkIGlubGluZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICogQGltcGxlbWVudHMge09uQ2hhbmdlc31cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtZWRpdGFibGUtdGV4dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtZWRpdGFibGUtdGV4dC5jb21wb25lbnQuY3NzJyxcbiAgICBpbXBvcnRzOiBbRWRpdG9yQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVElOWU1DRV9TQ1JJUFRfU1JDLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZG90Q01TSG9zdCB9ID0gZ2V0VVZFU3RhdGUoKSB8fCB7fTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtkb3RDTVNIb3N0IHx8ICcnfSR7X19USU5ZTUNFX1BBVEhfT05fRE9UQ01TX199YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50PFQgZXh0ZW5kcyBEb3RDTVNCYXNpY0NvbnRlbnRsZXQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICAgIEBWaWV3Q2hpbGQoRWRpdG9yQ29tcG9uZW50KSBlZGl0b3JDb21wb25lbnQhOiBFZGl0b3JDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBtb2RlIG9mIHRoZSBlZGl0b3Igd2hpY2ggY2FuIGJlIGBwbGFpbmAsIGBtaW5pbWFsYCwgb3IgYGZ1bGxgXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RE9UX0VESVRBQkxFX1RFWFRfTU9ERX1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgbW9kZTogRE9UX0VESVRBQkxFX1RFWFRfTU9ERSA9ICdwbGFpbic7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZm9ybWF0IG9mIHRoZSBlZGl0b3Igd2hpY2ggY2FuIGJlIGB0ZXh0YCBvciBgaHRtbGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtET1RfRURJVEFCTEVfVEVYVF9GT1JNQVR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGZvcm1hdDogRE9UX0VESVRBQkxFX1RFWFRfRk9STUFUID0gJ3RleHQnO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGBjb250ZW50bGV0YCB0aGF0IGNhbiBiZSBpbmxpbmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RG90Q01TQ29udGVudGxldH1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudGxldCE6IFQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZmllbGQgbmFtZSBvZiB0aGUgYGNvbnRlbnRsZXRgIHRoYXQgY2FuIGJlIGVkaXRlZFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpZWxkTmFtZSE6IGtleW9mIFQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb250ZW50ID0gJyc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge0VkaXRvckNvbXBvbmVudFsnaW5pdCddfVxuICAgICAqIEBtZW1iZXJvZiBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdCE6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xuXG4gICAgcmVhZG9ubHkgI05vdERvdENNU0hvc3RNZXNzYWdlID1cbiAgICAgICAgJ1RoZSBgZG90Q01TSG9zdGAgcGFyYW1ldGVyIGlzIG5vdCBkZWZpbmVkLiBDaGVjayB0aGF0IHRoZSBVVkUgaXMgc2VuZGluZyB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzLic7XG5cbiAgICByZWFkb25seSAjc2FuaXRpemVyID0gaW5qZWN0PERvbVNhbml0aXplcj4oRG9tU2FuaXRpemVyKTtcbiAgICByZWFkb25seSAjcmVuZGVyZXIgPSBpbmplY3Q8UmVuZGVyZXIyPihSZW5kZXJlcjIpO1xuICAgIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIFRpbnlNQ0UgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgZ2V0IGVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29tcG9uZW50Py5lZGl0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBpZiB0aGUgY29tcG9uZW50IGlzIGluc2lkZSB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgaXNFZGl0TW9kZSgpIHtcbiAgICAgICAgY29uc3QgeyBtb2RlLCBkb3RDTVNIb3N0IH0gPSBnZXRVVkVTdGF0ZSgpIHx8IHt9O1xuXG4gICAgICAgIHJldHVybiBtb2RlID09PSBVVkVfTU9ERS5FRElUICYmIGRvdENNU0hvc3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoZSBjb250ZW50bGV0IGlzIG9uXG4gICAgICpcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgZ2V0IG9uTnVtYmVyT2ZQYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudGxldFsnb25OdW1iZXJPZlBhZ2VzJ10gfHwgMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgY29weSBjb250ZW50bGV0IGlubGluZSBlZGl0aW5nIHN1Y2Nlc3MgZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TWVzc2FnZUV2ZW50fSB7IGRhdGEgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgICBvbk1lc3NhZ2UoeyBkYXRhIH06IE1lc3NhZ2VFdmVudCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIHBheWxvYWQgfSA9IGRhdGE7XG4gICAgICAgIGlmIChuYW1lICE9PSBfX0RPVENNU19VVkVfRVZFTlRfXy5VVkVfQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HX1NVQ0NFU1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgb2xkSW5vZGUsIGlub2RlIH0gPSBwYXlsb2FkO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbm9kZSA9PT0gb2xkSW5vZGUgfHwgY3VycmVudElub2RlID09PSBpbm9kZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB7IGRvdENNU0hvc3QgfSA9IGdldFVWRVN0YXRlKCkgfHwge307XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzRWRpdE1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJIVE1MVG9FbGVtZW50KCk7XG5cbiAgICAgICAgICAgIGlmICghZG90Q01TSG9zdCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybih0aGlzLiNOb3REb3RDTVNIb3N0TWVzc2FnZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgICAgICAgIC4uLlRJTllNQ0VfQ09ORklHW3RoaXMubW9kZV0sXG4gICAgICAgICAgICBiYXNlX3VybDogYCR7ZG90Q01TSG9zdH0vZXh0L3RpbnltY2V2N2BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gKHRoaXMuY29udGVudGxldFt0aGlzLmZpZWxkTmFtZV0gYXMgc3RyaW5nKSB8fCAnJztcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHRoaXMuY29udGVudCwgeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIG1vdXNlIGRvd24gZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RXZlbnRPYmo8TW91c2VFdmVudD59IHsgZXZlbnQgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uTW91c2VEb3duKHsgZXZlbnQgfTogRXZlbnRPYmo8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKE51bWJlcih0aGlzLm9uTnVtYmVyT2ZQYWdlcykgPD0gMSB8fCB0aGlzLmVkaXRvckNvbXBvbmVudC5lZGl0b3IuaGFzRm9jdXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpbm9kZSwgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2UgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb1VWRSh7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBEb3RDTVNVVkVBY3Rpb24uQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBmb2N1cyBvdXQgZXZlbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uRm9jdXNPdXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLmlzRGlydHkoKSB8fCAhdGhpcy5kaWRDb250ZW50Q2hhbmdlKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlub2RlLCBsYW5ndWFnZUlkOiBsYW5nSWQgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb1VWRSh7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBEb3RDTVNVVkVBY3Rpb24uVVBEQVRFX0NPTlRFTlRMRVRfSU5MSU5FX0VESVRJTkcsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5uZXIgSFRNTCB0byBlbGVtZW50XG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlZGl0ZWRDb250ZW50XG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TRWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBpbm5lckhUTUxUb0VsZW1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNhZmVIdG1sID0gdGhpcy4jc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuY29udGVudCk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLiNzYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIHNhZmVIdG1sKSB8fCAnJztcblxuICAgICAgICB0aGlzLiNyZW5kZXJlci5zZXRQcm9wZXJ0eShlbGVtZW50LCAnaW5uZXJIVE1MJywgY29udGVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGNvbnRlbnQgaGFzIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGVkaXRlZENvbnRlbnRcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGRpZENvbnRlbnRDaGFuZ2UoZWRpdGVkQ29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQgIT09IGVkaXRlZENvbnRlbnQ7XG4gICAgfVxufVxuIiwiQGlmIChpc0VkaXRNb2RlKSB7XG4gICAgPGVkaXRvclxuICAgICAgICAjdGlueUVkaXRvclxuICAgICAgICBbaW5pdF09XCJpbml0XCJcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb250ZW50XCJcbiAgICAgICAgKG9uTW91c2VEb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAob25Gb2N1c091dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtZWRpdGFibGUtdGV4dC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0gsdUNBQXVDLEVBQ3ZDLDBCQUEwQixFQUM3QixNQUFNLHNCQUFzQixDQUFDO0FBTTlCLE1BQU0sc0JBQXNCLEdBQTRCO0lBQ3BELEdBQUcsMEJBQTBCO0lBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMsZ0NBQWdDO0NBQ3RELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBRXZCO0lBQ0EsT0FBTyxFQUFFO1FBQ0wsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxPQUFPO0tBQ3JEO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxJQUFJO0tBQ2xEO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsR0FBRyxzQkFBc0I7UUFDekIsR0FBRyx1Q0FBdUMsQ0FBQyxLQUFLO0tBQ25EO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gICAgX19CQVNFX1RJTllNQ0VfQ09ORklHX1dJVEhfTk9fREVGQVVMVF9fLFxuICAgIF9fREVGQVVMVF9USU5ZTUNFX0NPTkZJR19fXG59IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuZXhwb3J0IHR5cGUgRE9UX0VESVRBQkxFX1RFWFRfTU9ERSA9ICdtaW5pbWFsJyB8ICdmdWxsJyB8ICdwbGFpbic7XG5cbmV4cG9ydCB0eXBlIERPVF9FRElUQUJMRV9URVhUX0ZPUk1BVCA9ICdodG1sJyB8ICd0ZXh0JztcblxuY29uc3QgREVGQVVMVF9USU5ZTUNFX0NPTkZJRzogRWRpdG9yQ29tcG9uZW50Wydpbml0J10gPSB7XG4gICAgLi4uX19ERUZBVUxUX1RJTllNQ0VfQ09ORklHX18sXG4gICAgbGljZW5zZV9rZXk6ICdncGwnIC8vIFVzaW5nIHNlbGYtaG9zdGVkIGxpY2Vuc2Uga2V5XG59O1xuXG5leHBvcnQgY29uc3QgVElOWU1DRV9DT05GSUc6IHtcbiAgICBba2V5IGluIERPVF9FRElUQUJMRV9URVhUX01PREVdOiBFZGl0b3JDb21wb25lbnRbJ2luaXQnXTtcbn0gPSB7XG4gICAgbWluaW1hbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICAuLi5fX0JBU0VfVElOWU1DRV9DT05GSUdfV0lUSF9OT19ERUZBVUxUX18ubWluaW1hbFxuICAgIH0sXG4gICAgZnVsbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICAuLi5fX0JBU0VfVElOWU1DRV9DT05GSUdfV0lUSF9OT19ERUZBVUxUX18uZnVsbFxuICAgIH0sXG4gICAgcGxhaW46IHtcbiAgICAgICAgLi4uREVGQVVMVF9USU5ZTUNFX0NPTkZJRyxcbiAgICAgICAgLi4uX19CQVNFX1RJTllNQ0VfQ09ORklHX1dJVEhfTk9fREVGQVVMVF9fLnBsYWluXG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBQ3RFOzs7Ozs7R0FNRztBQWVILE1BQU0sT0FBTyxlQUFlO0lBZDVCO1FBb0IwQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztLQU81QztJQUxHLFdBQVc7UUFDUCxNQUFNLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBWlEsZUFBZTtrR0FBZixlQUFlLHFMQVZkOzs7Ozs7S0FNVCw0OUJBUFMsa0JBQWtCOzsyRkFXbkIsZUFBZTtrQkFkM0IsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLENBQUMsWUFDbkI7Ozs7OztLQU1ULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU1wQixNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFSCxhQUFhO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW4gfSBmcm9tICdAZG90Y21zL3R5cGVzJztcbmltcG9ydCB7IGNvbWJpbmVDbGFzc2VzLCBnZXRDb2x1bW5Qb3NpdGlvbkNsYXNzZXMgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50Jztcbi8qKlxuICogVGhpcyBjb21wb25lbnQgcmVuZGVycyBhIGNvbHVtbiB3aXRoIGFsbCBpdHMgY29udGVudCB1c2luZyB0aGUgbGF5b3V0IHByb3ZpZGVkIGJ5IGRvdENNUyBQYWdlIEFQSS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3d3dy5kb3RjbXMuY29tL2RvY3MvbGF0ZXN0L3BhZ2UtcmVzdC1hcGktbGF5b3V0LWFzLWEtc2VydmljZS1sYWFzfVxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb2x1bW4nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbnRhaW5lckNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiY29sdW1uLnN0eWxlQ2xhc3NcIiBkYXRhLXRlc3RpZD1cImRvdGNtcy1jb2x1bW5cIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbnRhaW5lciBvZiBjb2x1bW4uY29udGFpbmVyczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1jb250YWluZXIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb2x1bW4uY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29sdW1uIGRhdGEgdG8gYmUgcmVuZGVyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW4hOiBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY3VzdG9tQ2xhc3NlcyA9ICcnO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ2xhc3NlcyA9IGdldENvbHVtblBvc2l0aW9uQ2xhc3Nlcyh0aGlzLmNvbHVtbik7XG5cbiAgICAgICAgdGhpcy5jdXN0b21DbGFzc2VzID0gY29tYmluZUNsYXNzZXMoW3Bvc2l0aW9uQ2xhc3Nlcy5zdGFydENsYXNzLCBwb3NpdGlvbkNsYXNzZXMuZW5kQ2xhc3NdKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLW5vdC1mb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtbGF5b3V0LWJvZHkvY29tcG9uZW50cy9jb250YWluZXIvY29tcG9uZW50cy9jb250YWluZXItbm90LWZvdW5kL2NvbnRhaW5lci1ub3QtZm91bmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUVuRTs7Ozs7O0dBTUc7QUFhSCxNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYWEsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUVoQywwQkFBcUIsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7UUFDbkQsd0JBQW1CLEdBQUcsNkJBQTZCLENBQUM7S0FPdkQ7SUFWRyxxQkFBcUIsQ0FBdUI7SUFLNUMsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLFVBQVUsWUFBWSxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNMLENBQUM7OEdBWlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsNEhBUnpCOzs7Ozs7S0FNVCw0REFQUyxPQUFPOzsyRkFTUiwwQkFBMEI7a0JBWnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsUUFBUSxFQUFFOzs7Ozs7S0FNVDtpQkFDSjs4QkFFWSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFTVBUWV9DT05UQUlORVJfU1RZTEVfQU5HVUxBUiB9IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuaW1wb3J0IHsgRG90Q01TU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdG9yZS9kb3RjbXMuc3RvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdoZW4gYSBjb250YWluZXIgaXMgbm90IGZvdW5kLlxuICogQGV4cG9ydFxuICogQGludGVybmFsXG4gKiBAY2xhc3MgQ29udGFpbmVyTm90Rm91bmRDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbnRhaW5lci1ub3QtZm91bmQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoJGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IFthdHRyLmRhdGEtdGVzdGlkXT1cIidjb250YWluZXItbm90LWZvdW5kJ1wiIFtuZ1N0eWxlXT1cImVtcHR5Q29udGFpbmVyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICBUaGlzIGNvbnRhaW5lciB3aXRoIGlkZW50aWZpZXIge3sgaWRlbnRpZmllciB9fSB3YXMgbm90IGZvdW5kLlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lck5vdEZvdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBpZGVudGlmaWVyID0gJ3Vua25vd24nO1xuXG4gICAgI2RvdGNtc0NvbnRleHRTZXJ2aWNlID0gaW5qZWN0KERvdENNU1N0b3JlKTtcblxuICAgICRpc0Rldk1vZGUgPSB0aGlzLiNkb3RjbXNDb250ZXh0U2VydmljZS4kaXNEZXZNb2RlO1xuICAgIGVtcHR5Q29udGFpbmVyU3R5bGUgPSBFTVBUWV9DT05UQUlORVJfU1RZTEVfQU5HVUxBUjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy4kaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENvbnRhaW5lciB3aXRoIGlkZW50aWZpZXIgJHt0aGlzLmlkZW50aWZpZXJ9IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
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" data-dot-object="empty-content">
|
|
24
|
+
This container is empty.
|
|
25
|
+
</span>
|
|
26
|
+
</div>
|
|
27
|
+
}
|
|
28
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: EmptyContainerComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: 'dotcms-empty-container',
|
|
34
|
+
standalone: true,
|
|
35
|
+
imports: [NgStyle],
|
|
36
|
+
template: `
|
|
37
|
+
@if ($isDevMode()) {
|
|
38
|
+
<div [ngStyle]="emptyContainerStyle" data-testid="empty-container">
|
|
39
|
+
<span data-testid="empty-container-message" data-dot-object="empty-content">
|
|
40
|
+
This container is empty.
|
|
41
|
+
</span>
|
|
42
|
+
</div>
|
|
43
|
+
}
|
|
44
|
+
`
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2NvbnRhaW5lci9jb21wb25lbnRzL2VtcHR5LWNvbnRhaW5lci9lbXB0eS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRW5FOzs7OztHQUtHO0FBZUgsTUFBTSxPQUFPLHVCQUF1QjtJQWRwQztRQWVJLHdCQUFtQixHQUFHLDZCQUE2QixDQUFDO1FBRXBELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztLQUM3QztJQUhHLFlBQVksQ0FBdUI7OEdBSDFCLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtGQVZ0Qjs7Ozs7Ozs7S0FRVCw0REFUUyxPQUFPOzsyRkFXUix1QkFBdUI7a0JBZG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsUUFBUSxFQUFFOzs7Ozs7OztLQVFUO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFTVBUWV9DT05UQUlORVJfU1RZTEVfQU5HVUxBUiB9IGZyb20gJ0Bkb3RjbXMvdXZlL2ludGVybmFsJztcblxuaW1wb3J0IHsgRG90Q01TU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdG9yZS9kb3RjbXMuc3RvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdoZW4gYSBjb250YWluZXIgaXMgZW1wdHkuXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJuYWxcbiAqIEBjbGFzcyBFbXB0eUNvbnRhaW5lckNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1lbXB0eS1jb250YWluZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoJGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cImVtcHR5Q29udGFpbmVyU3R5bGVcIiBkYXRhLXRlc3RpZD1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGVzdGlkPVwiZW1wdHktY29udGFpbmVyLW1lc3NhZ2VcIiBkYXRhLWRvdC1vYmplY3Q9XCJlbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgY29udGFpbmVyIGlzIGVtcHR5LlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBFbXB0eUNvbnRhaW5lckNvbXBvbmVudCB7XG4gICAgZW1wdHlDb250YWluZXJTdHlsZSA9IEVNUFRZX0NPTlRBSU5FUl9TVFlMRV9BTkdVTEFSO1xuXG4gICAgI2RvdENNU1N0b3JlID0gaW5qZWN0KERvdENNU1N0b3JlKTtcblxuICAgICRpc0Rldk1vZGUgPSB0aGlzLiNkb3RDTVNTdG9yZS4kaXNEZXZNb2RlO1xufVxuIl19
|
package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, Input, signal } from '@angular/core';
|
|
2
|
+
import { getContainersData, getContentletsInContainer, getDotContainerAttributes } from '@dotcms/uve/internal';
|
|
3
|
+
import { ContainerNotFoundComponent } from './components/container-not-found/container-not-found.component';
|
|
4
|
+
import { EmptyContainerComponent } from './components/empty-container/empty-container.component';
|
|
5
|
+
import { DotCMSStore } from '../../../../store/dotcms.store';
|
|
6
|
+
import { ContentletComponent } from '../../components/contentlet/contentlet.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* @description This component renders a container with all its content using the layout provided by dotCMS Page API.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://www.dotcms.com/docs/latest/page-rest-api-layout-as-a-service-laas}
|
|
12
|
+
* @category Components
|
|
13
|
+
* @internal
|
|
14
|
+
* @class ContainerComponent
|
|
15
|
+
*/
|
|
16
|
+
export class ContainerComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.#dotCMSStore = inject(DotCMSStore);
|
|
19
|
+
this.$containerData = signal(null);
|
|
20
|
+
this.$contentlets = signal([]);
|
|
21
|
+
this.$isEmpty = computed(() => this.$contentlets().length === 0);
|
|
22
|
+
this.$dotAttributes = computed(() => {
|
|
23
|
+
const containerData = this.$containerData();
|
|
24
|
+
if (!containerData || !this.#dotCMSStore.$isDevMode()) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
return getDotContainerAttributes(containerData);
|
|
28
|
+
});
|
|
29
|
+
this.dotObject = 'container';
|
|
30
|
+
this.acceptTypes = null;
|
|
31
|
+
this.identifier = null;
|
|
32
|
+
this.maxContentlets = null;
|
|
33
|
+
this.uuid = null;
|
|
34
|
+
}
|
|
35
|
+
#dotCMSStore;
|
|
36
|
+
ngOnChanges() {
|
|
37
|
+
const { page } = this.#dotCMSStore.store ?? {};
|
|
38
|
+
if (!page) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.$containerData.set(getContainersData(page, this.container));
|
|
42
|
+
this.$contentlets.set(getContentletsInContainer(page, this.container));
|
|
43
|
+
this.acceptTypes = this.$dotAttributes()['data-dot-accept-types'];
|
|
44
|
+
this.identifier = this.$dotAttributes()['data-dot-identifier'];
|
|
45
|
+
this.maxContentlets = this.$dotAttributes()['data-max-contentlets'];
|
|
46
|
+
this.uuid = this.$dotAttributes()['data-dot-uuid'];
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: ContainerComponent, isStandalone: true, selector: "dotcms-container", inputs: { container: "container" }, host: { properties: { "attr.data-dot-object": "this.dotObject", "attr.data-dot-accept-types": "this.acceptTypes", "attr.data-dot-identifier": "this.identifier", "attr.data-max-contentlets": "this.maxContentlets", "attr.data-dot-uuid": "this.uuid" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
50
|
+
@if (!$containerData()) {
|
|
51
|
+
<dotcms-container-not-found [identifier]="container.identifier" />
|
|
52
|
+
} @else if ($isEmpty()) {
|
|
53
|
+
<dotcms-empty-container />
|
|
54
|
+
} @else {
|
|
55
|
+
@for (contentlet of $contentlets(); track contentlet.identifier) {
|
|
56
|
+
<dotcms-contentlet [contentlet]="contentlet" [containerData]="$containerData()!" />
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ContainerNotFoundComponent, selector: "dotcms-container-not-found", inputs: ["identifier"] }, { kind: "component", type: EmptyContainerComponent, selector: "dotcms-empty-container" }, { kind: "component", type: ContentletComponent, selector: "dotcms-contentlet", inputs: ["contentlet", "containerData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: 'dotcms-container',
|
|
65
|
+
standalone: true,
|
|
66
|
+
imports: [ContainerNotFoundComponent, EmptyContainerComponent, ContentletComponent],
|
|
67
|
+
template: `
|
|
68
|
+
@if (!$containerData()) {
|
|
69
|
+
<dotcms-container-not-found [identifier]="container.identifier" />
|
|
70
|
+
} @else if ($isEmpty()) {
|
|
71
|
+
<dotcms-empty-container />
|
|
72
|
+
} @else {
|
|
73
|
+
@for (contentlet of $contentlets(); track contentlet.identifier) {
|
|
74
|
+
<dotcms-contentlet [contentlet]="contentlet" [containerData]="$containerData()!" />
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
`,
|
|
78
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
79
|
+
}]
|
|
80
|
+
}], propDecorators: { container: [{
|
|
81
|
+
type: Input,
|
|
82
|
+
args: [{ required: true }]
|
|
83
|
+
}], dotObject: [{
|
|
84
|
+
type: HostBinding,
|
|
85
|
+
args: ['attr.data-dot-object']
|
|
86
|
+
}], acceptTypes: [{
|
|
87
|
+
type: HostBinding,
|
|
88
|
+
args: ['attr.data-dot-accept-types']
|
|
89
|
+
}], identifier: [{
|
|
90
|
+
type: HostBinding,
|
|
91
|
+
args: ['attr.data-dot-identifier']
|
|
92
|
+
}], maxContentlets: [{
|
|
93
|
+
type: HostBinding,
|
|
94
|
+
args: ['attr.data-max-contentlets']
|
|
95
|
+
}], uuid: [{
|
|
96
|
+
type: HostBinding,
|
|
97
|
+
args: ['attr.data-dot-uuid']
|
|
98
|
+
}] } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUNILGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQzVCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQUV2Rjs7Ozs7OztHQU9HO0FBa0JILE1BQU0sT0FBTyxrQkFBa0I7SUFqQi9CO1FBdUJJLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLG1CQUFjLEdBQUcsTUFBTSxDQUErQixJQUFJLENBQUMsQ0FBQztRQUM1RCxpQkFBWSxHQUFHLE1BQU0sQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRTVDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELE9BQU8sRUFBNEIsQ0FBQztZQUN4QyxDQUFDO1lBRUQsT0FBTyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVrQyxjQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ2xCLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUNwQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNoQyxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFDNUMsU0FBSSxHQUFrQixJQUFJLENBQUM7S0FpQmpFO0lBcENHLFlBQVksQ0FBdUI7SUFxQm5DLFdBQVc7UUFDUCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQXpDUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixpWUFiakI7Ozs7Ozs7Ozs7S0FVVCw0REFYUywwQkFBMEIsK0ZBQUUsdUJBQXVCLG1FQUFFLG1CQUFtQjs7MkZBY3pFLGtCQUFrQjtrQkFqQjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDO29CQUNuRixRQUFRLEVBQUU7Ozs7Ozs7Ozs7S0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBSzhCLFNBQVM7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWlCWSxTQUFTO3NCQUE3QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDUSxXQUFXO3NCQUFyRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDQSxVQUFVO3NCQUFsRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFDRyxjQUFjO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDTCxJQUFJO3NCQUF0QyxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNCYXNpY0NvbnRlbnRsZXQsIERvdENNU0NvbHVtbkNvbnRhaW5lciwgRWRpdGFibGVDb250YWluZXJEYXRhIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBEb3RDb250YWluZXJBdHRyaWJ1dGVzIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5pbXBvcnQge1xuICAgIGdldENvbnRhaW5lcnNEYXRhLFxuICAgIGdldENvbnRlbnRsZXRzSW5Db250YWluZXIsXG4gICAgZ2V0RG90Q29udGFpbmVyQXR0cmlidXRlc1xufSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IENvbnRhaW5lck5vdEZvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRhaW5lci1ub3QtZm91bmQvY29udGFpbmVyLW5vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktY29udGFpbmVyL2VtcHR5LWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2RvdGNtcy5zdG9yZSc7XG5pbXBvcnQgeyBDb250ZW50bGV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb250ZW50bGV0L2NvbnRlbnRsZXQuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjb21wb25lbnQgcmVuZGVycyBhIGNvbnRhaW5lciB3aXRoIGFsbCBpdHMgY29udGVudCB1c2luZyB0aGUgbGF5b3V0IHByb3ZpZGVkIGJ5IGRvdENNUyBQYWdlIEFQSS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3d3dy5kb3RjbXMuY29tL2RvY3MvbGF0ZXN0L3BhZ2UtcmVzdC1hcGktbGF5b3V0LWFzLWEtc2VydmljZS1sYWFzfVxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqIEBpbnRlcm5hbFxuICogQGNsYXNzIENvbnRhaW5lckNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb250YWluZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbnRhaW5lck5vdEZvdW5kQ29tcG9uZW50LCBFbXB0eUNvbnRhaW5lckNvbXBvbmVudCwgQ29udGVudGxldENvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICghJGNvbnRhaW5lckRhdGEoKSkge1xuICAgICAgICAgICAgPGRvdGNtcy1jb250YWluZXItbm90LWZvdW5kIFtpZGVudGlmaWVyXT1cImNvbnRhaW5lci5pZGVudGlmaWVyXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoJGlzRW1wdHkoKSkge1xuICAgICAgICAgICAgPGRvdGNtcy1lbXB0eS1jb250YWluZXIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAZm9yIChjb250ZW50bGV0IG9mICRjb250ZW50bGV0cygpOyB0cmFjayBjb250ZW50bGV0LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWNvbnRlbnRsZXQgW2NvbnRlbnRsZXRdPVwiY29udGVudGxldFwiIFtjb250YWluZXJEYXRhXT1cIiRjb250YWluZXJEYXRhKCkhXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGFpbmVyIGRhdGEgdG8gYmUgcmVuZGVyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250YWluZXIhOiBEb3RDTVNDb2x1bW5Db250YWluZXI7XG5cbiAgICAjZG90Q01TU3RvcmUgPSBpbmplY3QoRG90Q01TU3RvcmUpO1xuXG4gICAgJGNvbnRhaW5lckRhdGEgPSBzaWduYWw8RWRpdGFibGVDb250YWluZXJEYXRhIHwgbnVsbD4obnVsbCk7XG4gICAgJGNvbnRlbnRsZXRzID0gc2lnbmFsPERvdENNU0Jhc2ljQ29udGVudGxldFtdPihbXSk7XG4gICAgJGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiRjb250ZW50bGV0cygpLmxlbmd0aCA9PT0gMCk7XG4gICAgJGRvdEF0dHJpYnV0ZXMgPSBjb21wdXRlZDxEb3RDb250YWluZXJBdHRyaWJ1dGVzPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckRhdGEgPSB0aGlzLiRjb250YWluZXJEYXRhKCk7XG5cbiAgICAgICAgaWYgKCFjb250YWluZXJEYXRhIHx8ICF0aGlzLiNkb3RDTVNTdG9yZS4kaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7fSBhcyBEb3RDb250YWluZXJBdHRyaWJ1dGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldERvdENvbnRhaW5lckF0dHJpYnV0ZXMoY29udGFpbmVyRGF0YSk7XG4gICAgfSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3Qtb2JqZWN0JykgZG90T2JqZWN0ID0gJ2NvbnRhaW5lcic7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWFjY2VwdC10eXBlcycpIGFjY2VwdFR5cGVzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtaWRlbnRpZmllcicpIGlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW1heC1jb250ZW50bGV0cycpIG1heENvbnRlbnRsZXRzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtdXVpZCcpIHV1aWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgcGFnZSB9ID0gdGhpcy4jZG90Q01TU3RvcmUuc3RvcmUgPz8ge307XG5cbiAgICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiRjb250YWluZXJEYXRhLnNldChnZXRDb250YWluZXJzRGF0YShwYWdlLCB0aGlzLmNvbnRhaW5lcikpO1xuICAgICAgICB0aGlzLiRjb250ZW50bGV0cy5zZXQoZ2V0Q29udGVudGxldHNJbkNvbnRhaW5lcihwYWdlLCB0aGlzLmNvbnRhaW5lcikpO1xuXG4gICAgICAgIHRoaXMuYWNjZXB0VHlwZXMgPSB0aGlzLiRkb3RBdHRyaWJ1dGVzKClbJ2RhdGEtZG90LWFjY2VwdC10eXBlcyddO1xuICAgICAgICB0aGlzLmlkZW50aWZpZXIgPSB0aGlzLiRkb3RBdHRyaWJ1dGVzKClbJ2RhdGEtZG90LWlkZW50aWZpZXInXTtcbiAgICAgICAgdGhpcy5tYXhDb250ZW50bGV0cyA9IHRoaXMuJGRvdEF0dHJpYnV0ZXMoKVsnZGF0YS1tYXgtY29udGVudGxldHMnXTtcbiAgICAgICAgdGhpcy51dWlkID0gdGhpcy4kZG90QXR0cmlidXRlcygpWydkYXRhLWRvdC11dWlkJ107XG4gICAgfVxufVxuIl19
|