@dotcms/angular 0.0.1-beta.4 → 0.0.1-beta.41

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.
Files changed (165) hide show
  1. package/README.md +646 -167
  2. package/dotcms-angular.d.ts.map +1 -1
  3. package/esm2022/dotcms-angular.mjs +2 -2
  4. package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
  5. package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
  6. package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
  7. package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
  8. package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
  9. package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
  10. package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
  11. package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +106 -0
  12. package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
  13. package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
  14. package/esm2022/lib/deprecated/models/index.mjs +3 -0
  15. package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
  16. package/esm2022/lib/deprecated/utils/image_loader.mjs +74 -0
  17. package/esm2022/lib/deprecated/utils/index.mjs +84 -0
  18. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  19. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  20. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  21. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  22. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  23. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  24. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  25. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  26. package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
  27. package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
  28. package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
  29. package/esm2022/next/components/dotcms-editable-text/utils.mjs +20 -0
  30. package/esm2022/next/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  31. package/esm2022/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  32. package/esm2022/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
  33. package/esm2022/next/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  34. package/esm2022/next/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  35. package/esm2022/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  36. package/esm2022/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  37. package/esm2022/next/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  38. package/esm2022/next/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  39. package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  40. package/esm2022/next/dotcms-angular-next.mjs +5 -0
  41. package/esm2022/next/models/index.mjs +3 -0
  42. package/esm2022/next/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
  43. package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  44. package/esm2022/next/public_api.mjs +8 -0
  45. package/esm2022/next/services/dotcms-editable-page.service.mjs +93 -0
  46. package/esm2022/next/store/dotcms.store.mjs +61 -0
  47. package/esm2022/public_api.mjs +2 -0
  48. package/fesm2022/dotcms-angular-next.mjs +1904 -0
  49. package/fesm2022/dotcms-angular-next.mjs.map +1 -0
  50. package/fesm2022/dotcms-angular.mjs +103 -10
  51. package/fesm2022/dotcms-angular.mjs.map +1 -1
  52. package/index.d.ts +6 -5
  53. package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +10 -6
  54. package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
  55. package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
  56. package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
  57. package/lib/deprecated/deprecated-api.d.ts +11 -0
  58. package/lib/deprecated/deprecated-api.d.ts.map +1 -0
  59. package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
  60. package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
  61. package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
  62. package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
  63. package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
  64. package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
  65. package/lib/{models → deprecated/models}/dotcms.model.d.ts +2 -2
  66. package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
  67. package/lib/deprecated/models/index.d.ts.map +1 -0
  68. package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
  69. package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
  70. package/lib/deprecated/utils/image_loader.d.ts +21 -0
  71. package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
  72. package/lib/deprecated/utils/index.d.ts.map +1 -0
  73. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  74. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  75. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  76. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  77. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  78. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  79. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  80. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  81. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  82. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  83. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  84. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  85. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  86. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  87. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  88. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  89. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
  90. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  91. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  92. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  93. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
  94. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  95. package/next/components/dotcms-editable-text/utils.d.ts +7 -0
  96. package/next/components/dotcms-editable-text/utils.d.ts.map +1 -0
  97. package/next/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  98. package/next/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  99. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  100. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  101. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  102. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  103. package/next/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  104. package/next/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  105. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  106. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  107. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  108. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  109. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  110. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  111. package/next/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  112. package/next/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  113. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  114. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  115. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  116. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  117. package/next/dotcms-angular-next.d.ts.map +1 -0
  118. package/next/index.d.ts +6 -0
  119. package/next/models/index.d.ts +39 -0
  120. package/next/models/index.d.ts.map +1 -0
  121. package/next/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
  122. package/next/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
  123. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
  124. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  125. package/next/public_api.d.ts +8 -0
  126. package/next/public_api.d.ts.map +1 -0
  127. package/next/services/dotcms-editable-page.service.d.ts +40 -0
  128. package/next/services/dotcms-editable-page.service.d.ts.map +1 -0
  129. package/next/store/dotcms.store.d.ts +36 -0
  130. package/next/store/dotcms.store.d.ts.map +1 -0
  131. package/package.json +16 -9
  132. package/public_api.d.ts +2 -0
  133. package/public_api.d.ts.map +1 -0
  134. package/esm2022/index.mjs +0 -5
  135. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  136. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  137. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  138. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  139. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  140. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
  141. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  142. package/esm2022/lib/models/index.mjs +0 -3
  143. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  144. package/esm2022/lib/utils/index.mjs +0 -84
  145. package/index.d.ts.map +0 -1
  146. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  147. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  148. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  149. package/lib/layout/column/column.component.d.ts.map +0 -1
  150. package/lib/layout/container/container.component.d.ts.map +0 -1
  151. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  152. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  153. package/lib/layout/row/row.component.d.ts.map +0 -1
  154. package/lib/models/dotcms.model.d.ts.map +0 -1
  155. package/lib/models/index.d.ts.map +0 -1
  156. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  157. package/lib/utils/index.d.ts.map +0 -1
  158. /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
  159. /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
  160. /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
  161. /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
  162. /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
  163. /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
  164. /package/lib/{models → deprecated/models}/index.d.ts +0 -0
  165. /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dotcms-angular.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/dotcms-angular.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"dotcms-angular.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/dotcms-angular.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9kb3RjbXMtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9kb3RjbXMtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,229 @@
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 { CLIENT_ACTIONS, DotCmsClient, isInsideEditor, NOTIFY_CLIENT, postMessageToEditor } from '@dotcms/client';
5
+ import { TINYMCE_CONFIG } from './utils';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * @deprecated This component is deprecated and will be removed in future versions.
9
+ * Please use the new Rich Text Editor component from the main SDK.
10
+ * For more information, refer to the migration guide in the documentation.
11
+ *
12
+ * Dot editable text component.
13
+ * This component is responsible to render a text field that can be edited inline.
14
+ *
15
+ * @export
16
+ * @class DotEditableTextComponent
17
+ * @implements {OnInit}
18
+ * @implements {OnChanges}
19
+ */
20
+ export class DotEditableTextComponent {
21
+ constructor() {
22
+ /**
23
+ * Represents the mode of the editor which can be `plain`, `minimal`, or `full`
24
+ *
25
+ * @type {DOT_EDITABLE_TEXT_MODE}
26
+ * @memberof DotEditableTextComponent
27
+ */
28
+ this.mode = 'plain';
29
+ /**
30
+ * Represents the format of the editor which can be `text` or `html`
31
+ *
32
+ * @type {DOT_EDITABLE_TEXT_FORMAT}
33
+ * @memberof DotEditableTextComponent
34
+ */
35
+ this.format = 'text';
36
+ /**
37
+ * Represents the field name of the `contentlet` that can be edited
38
+ *
39
+ * @memberof DotEditableTextComponent
40
+ */
41
+ this.fieldName = '';
42
+ /**
43
+ * Represents the content of the `contentlet` that can be edited
44
+ *
45
+ * @protected
46
+ * @memberof DotEditableTextComponent
47
+ */
48
+ this.content = '';
49
+ this.#sanitizer = inject(DomSanitizer);
50
+ this.#renderer = inject(Renderer2);
51
+ this.#elementRef = inject(ElementRef);
52
+ }
53
+ #sanitizer;
54
+ #renderer;
55
+ #elementRef;
56
+ /**
57
+ * The TinyMCE editor
58
+ *
59
+ * @readonly
60
+ * @memberof DotEditableTextComponent
61
+ */
62
+ get editor() {
63
+ return this.editorComponent?.editor;
64
+ }
65
+ /**
66
+ * Returns the number of pages the contentlet is on
67
+ *
68
+ * @readonly
69
+ * @memberof DotEditableTextComponent
70
+ */
71
+ get onNumberOfPages() {
72
+ return this.contentlet['onNumberOfPages'] || 1;
73
+ }
74
+ /**
75
+ * Handle copy contentlet inline editing success event
76
+ *
77
+ * @param {MessageEvent} { data }
78
+ * @return {*}
79
+ * @memberof DotEditableTextComponent
80
+ */
81
+ onMessage({ data }) {
82
+ const { name, payload } = data;
83
+ if (name !== NOTIFY_CLIENT.UVE_COPY_CONTENTLET_INLINE_EDITING_SUCCESS) {
84
+ return;
85
+ }
86
+ const { oldInode, inode } = payload;
87
+ const currentInode = this.contentlet.inode;
88
+ if (currentInode === oldInode || currentInode === inode) {
89
+ this.editorComponent.editor.focus();
90
+ return;
91
+ }
92
+ }
93
+ ngOnInit() {
94
+ this.isInsideEditor = isInsideEditor();
95
+ if (!this.isInsideEditor) {
96
+ this.innerHTMLToElement();
97
+ return;
98
+ }
99
+ this.init = {
100
+ ...TINYMCE_CONFIG[this.mode],
101
+ base_url: `${DotCmsClient.dotcmsUrl}/ext/tinymcev7`
102
+ };
103
+ }
104
+ ngOnChanges() {
105
+ this.content = this.contentlet[this.fieldName] || '';
106
+ if (this.editor) {
107
+ this.editor.setContent(this.content, { format: this.format });
108
+ }
109
+ }
110
+ /**
111
+ * Handle mouse down event
112
+ *
113
+ * @param {EventObj<MouseEvent>} { event }
114
+ * @return {*}
115
+ * @memberof DotEditableTextComponent
116
+ */
117
+ onMouseDown({ event }) {
118
+ if (Number(this.onNumberOfPages) <= 1 || this.editorComponent.editor.hasFocus()) {
119
+ return;
120
+ }
121
+ const { inode, languageId: language } = this.contentlet;
122
+ event.stopPropagation();
123
+ event.preventDefault();
124
+ try {
125
+ postMessageToEditor({
126
+ action: CLIENT_ACTIONS.COPY_CONTENTLET_INLINE_EDITING,
127
+ payload: {
128
+ dataset: {
129
+ inode,
130
+ language,
131
+ fieldName: this.fieldName
132
+ }
133
+ }
134
+ });
135
+ }
136
+ catch (error) {
137
+ console.error('Failed to post message to editor:', error);
138
+ }
139
+ }
140
+ /**
141
+ * Handle focus out event
142
+ *
143
+ * @return {*}
144
+ * @memberof DotEditableTextComponent
145
+ */
146
+ onFocusOut() {
147
+ const content = this.editor.getContent({ format: this.format });
148
+ if (!this.editor.isDirty() || !this.didContentChange(content)) {
149
+ return;
150
+ }
151
+ const { inode, languageId: langId } = this.contentlet;
152
+ try {
153
+ postMessageToEditor({
154
+ action: CLIENT_ACTIONS.UPDATE_CONTENTLET_INLINE_EDITING,
155
+ payload: {
156
+ content,
157
+ dataset: {
158
+ inode,
159
+ langId,
160
+ fieldName: this.fieldName
161
+ }
162
+ }
163
+ });
164
+ }
165
+ catch (error) {
166
+ console.error('Failed to post message to editor:', error);
167
+ }
168
+ }
169
+ /**
170
+ * inner HTML to element
171
+ *
172
+ * @private
173
+ * @param {string} editedContent
174
+ * @return {*}
175
+ * @memberof DotEditableTextComponent
176
+ */
177
+ innerHTMLToElement() {
178
+ const element = this.#elementRef.nativeElement;
179
+ const safeHtml = this.#sanitizer.bypassSecurityTrustHtml(this.content);
180
+ const content = this.#sanitizer.sanitize(SecurityContext.HTML, safeHtml) || '';
181
+ this.#renderer.setProperty(element, 'innerHTML', content);
182
+ }
183
+ /**
184
+ * Check if the content has changed
185
+ *
186
+ * @private
187
+ * @param {string} editedContent
188
+ * @return {*}
189
+ * @memberof DotEditableTextComponent
190
+ */
191
+ didContentChange(editedContent) {
192
+ return this.content !== editedContent;
193
+ }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotEditableTextComponent, isStandalone: true, selector: "dot-editable-text", inputs: { mode: "mode", format: "format", fieldName: "fieldName", contentlet: "contentlet" }, host: { listeners: { "window:message": "onMessage($event)" } }, providers: [
196
+ {
197
+ provide: TINYMCE_SCRIPT_SRC,
198
+ useFactory: () => {
199
+ return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
200
+ }
201
+ }
202
+ ], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isInsideEditor) {\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"] }] }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, decorators: [{
205
+ type: Component,
206
+ args: [{ selector: 'dot-editable-text', standalone: true, imports: [EditorComponent], providers: [
207
+ {
208
+ provide: TINYMCE_SCRIPT_SRC,
209
+ useFactory: () => {
210
+ return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
211
+ }
212
+ }
213
+ ], template: "@if (isInsideEditor) {\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"] }]
214
+ }], propDecorators: { editorComponent: [{
215
+ type: ViewChild,
216
+ args: [EditorComponent]
217
+ }], mode: [{
218
+ type: Input
219
+ }], format: [{
220
+ type: Input
221
+ }], fieldName: [{
222
+ type: Input
223
+ }], contentlet: [{
224
+ type: Input
225
+ }], onMessage: [{
226
+ type: HostListener,
227
+ args: ['window:message', ['$event']]
228
+ }] } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2RlcHJlY2F0ZWQvY29tcG9uZW50cy9kb3QtZWRpdGFibGUtdGV4dC9kb3QtZWRpdGFibGUtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvZGVwcmVjYXRlZC9jb21wb25lbnRzL2RvdC1lZGl0YWJsZS10ZXh0L2RvdC1lZGl0YWJsZS10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcvRSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsY0FBYyxFQUFvRCxNQUFNLFNBQVMsQ0FBQzs7QUFJM0Y7Ozs7Ozs7Ozs7OztHQVlHO0FBZ0JILE1BQU0sT0FBTyx3QkFBd0I7SUFmckM7UUFrQkk7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQTJCLE9BQU8sQ0FBQztRQUNoRDs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBNkIsTUFBTSxDQUFDO1FBQ25EOzs7O1dBSUc7UUFDTSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBU3hCOzs7OztXQUtHO1FBQ08sWUFBTyxHQUFHLEVBQUUs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LGVBQWUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRS9FLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxnQkFBZ0IsQ0FBQyxhQUFxQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDO0lBQzFDLENBQUM7OEdBdk5RLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDhOQVR0QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFVBQVUsRUFBRSxHQUFHLEVBQUU7b0JBQ2IsT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLCtCQUErQixDQUFDO2dCQUNwRSxDQUFDO2FBQ0o7U0FDSiwyRUFHVSxlQUFlLHFFQzFEOUIscU5BUUEscUtEdUNjLGVBQWU7OzJGQVVoQix3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBQ2pCLElBQUksV0FHUCxDQUFDLGVBQWUsQ0FBQyxhQUNmO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0NBQ2IsT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLCtCQUErQixDQUFDOzRCQUNwRSxDQUFDO3lCQUNKO3FCQUNKOzhCQUcyQixlQUFlO3NCQUExQyxTQUFTO3VCQUFDLGVBQWU7Z0JBUWpCLElBQUk7c0JBQVosS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQTBETixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JDb21wb25lbnQsIFRJTllNQ0VfU0NSSVBUX1NSQyB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5pbXBvcnQgeyBFdmVudE9iaiB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci9lZGl0b3IvRXZlbnRzJztcblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlY3VyaXR5Q29udGV4dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHtcbiAgICBDTElFTlRfQUNUSU9OUyxcbiAgICBEb3RDbXNDbGllbnQsXG4gICAgaXNJbnNpZGVFZGl0b3IsXG4gICAgTk9USUZZX0NMSUVOVCxcbiAgICBwb3N0TWVzc2FnZVRvRWRpdG9yXG59IGZyb20gJ0Bkb3RjbXMvY2xpZW50JztcblxuaW1wb3J0IHsgVElOWU1DRV9DT05GSUcsIERPVF9FRElUQUJMRV9URVhUX0ZPUk1BVCwgRE9UX0VESVRBQkxFX1RFWFRfTU9ERSB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgeyBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLlxuICogUGxlYXNlIHVzZSB0aGUgbmV3IFJpY2ggVGV4dCBFZGl0b3IgY29tcG9uZW50IGZyb20gdGhlIG1haW4gU0RLLlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlZmVyIHRvIHRoZSBtaWdyYXRpb24gZ3VpZGUgaW4gdGhlIGRvY3VtZW50YXRpb24uXG4gKlxuICogRG90IGVkaXRhYmxlIHRleHQgY29tcG9uZW50LlxuICogVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgdG8gcmVuZGVyIGEgdGV4dCBmaWVsZCB0aGF0IGNhbiBiZSBlZGl0ZWQgaW5saW5lLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAaW1wbGVtZW50cyB7T25DaGFuZ2VzfVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdC1lZGl0YWJsZS10ZXh0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3QtZWRpdGFibGUtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RvdC1lZGl0YWJsZS10ZXh0LmNvbXBvbmVudC5jc3MnLFxuICAgIGltcG9ydHM6IFtFZGl0b3JDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSU5ZTUNFX1NDUklQVF9TUkMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke0RvdENtc0NsaWVudC5kb3RjbXNVcmx9L2V4dC90aW55bWNldjcvdGlueW1jZS5taW4uanNgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZChFZGl0b3JDb21wb25lbnQpIGVkaXRvckNvbXBvbmVudCE6IEVkaXRvckNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIG1vZGUgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHBsYWluYCwgYG1pbmltYWxgLCBvciBgZnVsbGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtET1RfRURJVEFCTEVfVEVYVF9NT0RFfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlOiBET1RfRURJVEFCTEVfVEVYVF9NT0RFID0gJ3BsYWluJztcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmb3JtYXQgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHRleHRgIG9yIGBodG1sYFxuICAgICAqXG4gICAgICogQHR5cGUge0RPVF9FRElUQUJMRV9URVhUX0ZPUk1BVH1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZm9ybWF0OiBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQgPSAndGV4dCc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgZmllbGQgbmFtZSBvZiB0aGUgYGNvbnRlbnRsZXRgIHRoYXQgY2FuIGJlIGVkaXRlZFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpZWxkTmFtZSA9ICcnO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGBjb250ZW50bGV0YCB0aGF0IGNhbiBiZSBpbmxpbmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RG90Q01TQ29udGVudGxldH1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudGxldCE6IERvdENNU0NvbnRlbnRsZXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb250ZW50ID0gJyc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge0VkaXRvckNvbXBvbmVudFsnaW5pdCddfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdCE6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgaWYgdGhlIGNvbXBvbmVudCBpcyBpbnNpZGUgdGhlIGVkaXRvclxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNJbnNpZGVFZGl0b3IhOiBib29sZWFuO1xuXG4gICAgcmVhZG9ubHkgI3Nhbml0aXplciA9IGluamVjdDxEb21TYW5pdGl6ZXI+KERvbVNhbml0aXplcik7XG4gICAgcmVhZG9ubHkgI3JlbmRlcmVyID0gaW5qZWN0PFJlbmRlcmVyMj4oUmVuZGVyZXIyKTtcbiAgICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBUaW55TUNFIGVkaXRvclxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBlZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvckNvbXBvbmVudD8uZWRpdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGUgY29udGVudGxldCBpcyBvblxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBvbk51bWJlck9mUGFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRsZXRbJ29uTnVtYmVyT2ZQYWdlcyddIHx8IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGNvcHkgY29udGVudGxldCBpbmxpbmUgZWRpdGluZyBzdWNjZXNzIGV2ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge01lc3NhZ2VFdmVudH0geyBkYXRhIH1cbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXG4gICAgb25NZXNzYWdlKHsgZGF0YSB9OiBNZXNzYWdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lLCBwYXlsb2FkIH0gPSBkYXRhO1xuICAgICAgICBpZiAobmFtZSAhPT0gTk9USUZZX0NMSUVOVC5VVkVfQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HX1NVQ0NFU1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgb2xkSW5vZGUsIGlub2RlIH0gPSBwYXlsb2FkO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbm9kZSA9PT0gb2xkSW5vZGUgfHwgY3VycmVudElub2RlID09PSBpbm9kZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlzSW5zaWRlRWRpdG9yID0gaXNJbnNpZGVFZGl0b3IoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNJbnNpZGVFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJIVE1MVG9FbGVtZW50KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgICAgICAgIC4uLlRJTllNQ0VfQ09ORklHW3RoaXMubW9kZV0sXG4gICAgICAgICAgICBiYXNlX3VybDogYCR7RG90Q21zQ2xpZW50LmRvdGNtc1VybH0vZXh0L3RpbnltY2V2N2BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jb250ZW50bGV0W3RoaXMuZmllbGROYW1lXSB8fCAnJztcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHRoaXMuY29udGVudCwgeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIG1vdXNlIGRvd24gZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RXZlbnRPYmo8TW91c2VFdmVudD59IHsgZXZlbnQgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uTW91c2VEb3duKHsgZXZlbnQgfTogRXZlbnRPYmo8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKE51bWJlcih0aGlzLm9uTnVtYmVyT2ZQYWdlcykgPD0gMSB8fCB0aGlzLmVkaXRvckNvbXBvbmVudC5lZGl0b3IuaGFzRm9jdXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpbm9kZSwgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2UgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcG9zdE1lc3NhZ2VUb0VkaXRvcih7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBDTElFTlRfQUNUSU9OUy5DT1BZX0NPTlRFTlRMRVRfSU5MSU5FX0VESVRJTkcsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmZpZWxkTmFtZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcG9zdCBtZXNzYWdlIHRvIGVkaXRvcjonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogSGFuZGxlIGZvY3VzIG91dCBldmVudFxuICAgICAqXG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgb25Gb2N1c091dCgpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZWRpdG9yLmdldENvbnRlbnQoeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5lZGl0b3IuaXNEaXJ0eSgpIHx8ICF0aGlzLmRpZENvbnRlbnRDaGFuZ2UoY29udGVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgaW5vZGUsIGxhbmd1YWdlSWQ6IGxhbmdJZCB9ID0gdGhpcy5jb250ZW50bGV0O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwb3N0TWVzc2FnZVRvRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBhY3Rpb246IENMSUVOVF9BQ1RJT05TLlVQREFURV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5nSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IHRoaXMuZmllbGROYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwb3N0IG1lc3NhZ2UgdG8gZWRpdG9yOicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlubmVyIEhUTUwgdG8gZWxlbWVudFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZWRpdGVkQ29udGVudFxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaW5uZXJIVE1MVG9FbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzYWZlSHRtbCA9IHRoaXMuI3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmNvbnRlbnQpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy4jc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBzYWZlSHRtbCkgfHwgJyc7XG5cbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudCwgJ2lubmVySFRNTCcsIGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBjb250ZW50IGhhcyBjaGFuZ2VkXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlZGl0ZWRDb250ZW50XG4gICAgICogQHJldHVybiB7Kn1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBkaWRDb250ZW50Q2hhbmdlKGVkaXRlZENvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50ICE9PSBlZGl0ZWRDb250ZW50O1xuICAgIH1cbn1cbiIsIkBpZiAoaXNJbnNpZGVFZGl0b3IpIHtcbiAgICA8ZWRpdG9yXG4gICAgICAgICN0aW55RWRpdG9yXG4gICAgICAgIFtpbml0XT1cImluaXRcIlxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvbnRlbnRcIlxuICAgICAgICAob25Nb3VzZURvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAgIChvbkZvY3VzT3V0KT1cIm9uRm9jdXNPdXQoKVwiIC8+XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ const DEFAULT_TINYMCE_CONFIG = {
2
+ menubar: false,
3
+ inline: true,
4
+ valid_styles: {
5
+ '*': 'font-size,font-family,color,text-decoration,text-align'
6
+ },
7
+ powerpaste_word_import: 'clean',
8
+ powerpaste_html_import: 'clean',
9
+ suffix: '.min', // Suffix to use when loading resources
10
+ license_key: 'gpl'
11
+ };
12
+ export const TINYMCE_CONFIG = {
13
+ minimal: {
14
+ ...DEFAULT_TINYMCE_CONFIG,
15
+ plugins: 'link autolink',
16
+ toolbar: 'bold italic underline | link',
17
+ valid_elements: 'strong,em,span[style],a[href]'
18
+ },
19
+ full: {
20
+ ...DEFAULT_TINYMCE_CONFIG,
21
+ plugins: 'link lists autolink charmap',
22
+ style_formats: [
23
+ { title: 'Paragraph', format: 'p' },
24
+ { title: 'Header 1', format: 'h1' },
25
+ { title: 'Header 2', format: 'h2' },
26
+ { title: 'Header 3', format: 'h3' },
27
+ { title: 'Header 4', format: 'h4' },
28
+ { title: 'Header 5', format: 'h5' },
29
+ { title: 'Header 6', format: 'h6' },
30
+ { title: 'Pre', format: 'pre' },
31
+ { title: 'Code', format: 'code' }
32
+ ],
33
+ toolbar: [
34
+ 'styleselect undo redo | bold italic underline | forecolor backcolor | alignleft aligncenter alignright alignfull | numlist bullist outdent indent | hr charmap removeformat | link'
35
+ ]
36
+ },
37
+ plain: {
38
+ ...DEFAULT_TINYMCE_CONFIG,
39
+ plugins: '',
40
+ toolbar: ''
41
+ }
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvZGVwcmVjYXRlZC9jb21wb25lbnRzL2RvdC1lZGl0YWJsZS10ZXh0L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sc0JBQXNCLEdBQTRCO0lBQ3BELE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUU7UUFDVixHQUFHLEVBQUUsd0RBQXdEO0tBQ2hFO0lBQ0Qsc0JBQXNCLEVBQUUsT0FBTztJQUMvQixzQkFBc0IsRUFBRSxPQUFPO0lBQy9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsdUNBQXVDO0lBQ3ZELFdBQVcsRUFBRSxLQUFLO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBRXZCO0lBQ0EsT0FBTyxFQUFFO1FBQ0wsR0FBRyxzQkFBc0I7UUFDekIsT0FBTyxFQUFFLGVBQWU7UUFDeEIsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxjQUFjLEVBQUUsK0JBQStCO0tBQ2xEO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsR0FBRyxzQkFBc0I7UUFDekIsT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxhQUFhLEVBQUU7WUFDWCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUMvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtTQUNwQztRQUNELE9BQU8sRUFBRTtZQUNMLG9MQUFvTDtTQUN2TDtLQUNKO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsR0FBRyxzQkFBc0I7UUFDekIsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsRUFBRTtLQUNkO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XG5cbmV4cG9ydCB0eXBlIERPVF9FRElUQUJMRV9URVhUX01PREUgPSAnbWluaW1hbCcgfCAnZnVsbCcgfCAncGxhaW4nO1xuXG5leHBvcnQgdHlwZSBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQgPSAnaHRtbCcgfCAndGV4dCc7XG5cbmNvbnN0IERFRkFVTFRfVElOWU1DRV9DT05GSUc6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddID0ge1xuICAgIG1lbnViYXI6IGZhbHNlLFxuICAgIGlubGluZTogdHJ1ZSxcbiAgICB2YWxpZF9zdHlsZXM6IHtcbiAgICAgICAgJyonOiAnZm9udC1zaXplLGZvbnQtZmFtaWx5LGNvbG9yLHRleHQtZGVjb3JhdGlvbix0ZXh0LWFsaWduJ1xuICAgIH0sXG4gICAgcG93ZXJwYXN0ZV93b3JkX2ltcG9ydDogJ2NsZWFuJyxcbiAgICBwb3dlcnBhc3RlX2h0bWxfaW1wb3J0OiAnY2xlYW4nLFxuICAgIHN1ZmZpeDogJy5taW4nLCAvLyBTdWZmaXggdG8gdXNlIHdoZW4gbG9hZGluZyByZXNvdXJjZXNcbiAgICBsaWNlbnNlX2tleTogJ2dwbCdcbn07XG5cbmV4cG9ydCBjb25zdCBUSU5ZTUNFX0NPTkZJRzoge1xuICAgIFtrZXkgaW4gRE9UX0VESVRBQkxFX1RFWFRfTU9ERV06IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xufSA9IHtcbiAgICBtaW5pbWFsOiB7XG4gICAgICAgIC4uLkRFRkFVTFRfVElOWU1DRV9DT05GSUcsXG4gICAgICAgIHBsdWdpbnM6ICdsaW5rIGF1dG9saW5rJyxcbiAgICAgICAgdG9vbGJhcjogJ2JvbGQgaXRhbGljIHVuZGVybGluZSB8IGxpbmsnLFxuICAgICAgICB2YWxpZF9lbGVtZW50czogJ3N0cm9uZyxlbSxzcGFuW3N0eWxlXSxhW2hyZWZdJ1xuICAgIH0sXG4gICAgZnVsbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICBwbHVnaW5zOiAnbGluayBsaXN0cyBhdXRvbGluayBjaGFybWFwJyxcbiAgICAgICAgc3R5bGVfZm9ybWF0czogW1xuICAgICAgICAgICAgeyB0aXRsZTogJ1BhcmFncmFwaCcsIGZvcm1hdDogJ3AnIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnSGVhZGVyIDEnLCBmb3JtYXQ6ICdoMScgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdIZWFkZXIgMicsIGZvcm1hdDogJ2gyJyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ0hlYWRlciAzJywgZm9ybWF0OiAnaDMnIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnSGVhZGVyIDQnLCBmb3JtYXQ6ICdoNCcgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdIZWFkZXIgNScsIGZvcm1hdDogJ2g1JyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ0hlYWRlciA2JywgZm9ybWF0OiAnaDYnIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnUHJlJywgZm9ybWF0OiAncHJlJyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ0NvZGUnLCBmb3JtYXQ6ICdjb2RlJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHRvb2xiYXI6IFtcbiAgICAgICAgICAgICdzdHlsZXNlbGVjdCB1bmRvIHJlZG8gfCBib2xkIGl0YWxpYyB1bmRlcmxpbmUgfCBmb3JlY29sb3IgYmFja2NvbG9yIHwgYWxpZ25sZWZ0IGFsaWduY2VudGVyIGFsaWducmlnaHQgYWxpZ25mdWxsIHwgbnVtbGlzdCBidWxsaXN0IG91dGRlbnQgaW5kZW50IHwgaHIgY2hhcm1hcCByZW1vdmVmb3JtYXQgfCBsaW5rJ1xuICAgICAgICBdXG4gICAgfSxcbiAgICBwbGFpbjoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICBwbHVnaW5zOiAnJyxcbiAgICAgICAgdG9vbGJhcjogJydcbiAgICB9XG59O1xuIl19
@@ -0,0 +1,32 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * This component is responsible to display a message when there is no component for a contentlet.
5
+ *
6
+ * @export
7
+ * @class NoComponent
8
+ */
9
+ export class NoComponent {
10
+ constructor() {
11
+ /**
12
+ * The data-testid attribute used for identifying the component during testing.
13
+ */
14
+ this.testId = 'no-component';
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NoComponent, isStandalone: true, selector: "dotcms-no-component", inputs: { contentlet: "contentlet" }, host: { properties: { "attr.data-testid": "this.testId" } }, ngImport: i0, template: `
18
+ No Component for {{ contentlet.contentType }}
19
+ `, isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'dotcms-no-component', standalone: true, template: `
24
+ No Component for {{ contentlet.contentType }}
25
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
26
+ }], propDecorators: { contentlet: [{
27
+ type: Input
28
+ }], testId: [{
29
+ type: HostBinding,
30
+ args: ['attr.data-testid']
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9kZXByZWNhdGVkL2NvbXBvbmVudHMvbm8tY29tcG9uZW50L25vLWNvbXBvbmVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUl2Rjs7Ozs7R0FLRztBQVVILE1BQU0sT0FBTyxXQUFXO0lBVHhCO1FBZ0JJOztXQUVHO1FBQzhCLFdBQU0sR0FBRyxjQUFjLENBQUM7S0FDNUQ7OEdBWFksV0FBVztrR0FBWCxXQUFXLGtMQU5WOztLQUVUOzsyRkFJUSxXQUFXO2tCQVR2QixTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFlBQ047O0tBRVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBT3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSzJCLE1BQU07c0JBQXRDLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvdENNU0NvbnRlbnRsZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdoZW4gdGhlcmUgaXMgbm8gY29tcG9uZW50IGZvciBhIGNvbnRlbnRsZXQuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE5vQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLW5vLWNvbXBvbmVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBObyBDb21wb25lbnQgZm9yIHt7IGNvbnRlbnRsZXQuY29udGVudFR5cGUgfX1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9uby1jb21wb25lbnQuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm9Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFRoZSBjb250ZW50bGV0IG9iamVjdCBjb250YWluaW5nIGNvbnRlbnQgZGF0YS5cbiAgICAgKiBUaGUgY29tcG9uZW50IGRpc3BsYXlzIGEgbWVzc2FnZSBiYXNlZCBvbiB0aGUgY29udGVudCB0eXBlIG9mIHRoaXMgY29udGVudGxldC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50bGV0ITogRG90Q01TQ29udGVudGxldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhLXRlc3RpZCBhdHRyaWJ1dGUgdXNlZCBmb3IgaWRlbnRpZnlpbmcgdGhlIGNvbXBvbmVudCBkdXJpbmcgdGVzdGluZy5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10ZXN0aWQnKSB0ZXN0SWQgPSAnbm8tY29tcG9uZW50Jztcbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @deprecated This API is deprecated and will be removed in future versions.
3
+ * Please migrate to the new components and services in the main SDK.
4
+ * For more information, refer to the migration guide in the documentation.
5
+ */
6
+ export * from './components/dot-editable-text/dot-editable-text.component';
7
+ export * from './layout/dotcms-layout/dotcms-layout.component';
8
+ export * from './services/dotcms-context/page-context.service';
9
+ export * from './models';
10
+ export * from './utils/image_loader';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjYXRlZC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvZGVwcmVjYXRlZC9kZXByZWNhdGVkLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5cbiAqIFBsZWFzZSBtaWdyYXRlIHRvIHRoZSBuZXcgY29tcG9uZW50cyBhbmQgc2VydmljZXMgaW4gdGhlIG1haW4gU0RLLlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlZmVyIHRvIHRoZSBtaWdyYXRpb24gZ3VpZGUgaW4gdGhlIGRvY3VtZW50YXRpb24uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RvdC1lZGl0YWJsZS10ZXh0L2RvdC1lZGl0YWJsZS10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dC9kb3RjbXMtbGF5b3V0L2RvdGNtcy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9pbWFnZV9sb2FkZXInO1xuIl19
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
42
42
  type: HostBinding,
43
43
  args: ['class']
44
44
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29sdW1uL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFdEU7Ozs7OztHQU1HO0FBYUgsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFxQkk7Ozs7V0FJRztRQUNtQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7S0FTL0M7SUFQRyxRQUFRO1FBQ0osTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyx1QkFBdUIsQ0FDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUM3QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsVUFBVSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQ3hELENBQUM7OEdBdEJRLGVBQWU7a0dBQWYsZUFBZSxtS0FSZDs7OztLQUlULDQ5QkFMUyxrQkFBa0I7OzJGQVNuQixlQUFlO2tCQVozQixTQUFTOytCQUNJLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsQ0FBQyxZQUNuQjs7OztLQUlULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVN0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBT2dCLGdCQUFnQjtzQkFBckMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGdldFBvc2l0aW9uU3R5bGVDbGFzc2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIGRpc3BsYXkgYSBjb2x1bW4gd2l0aCBjb250YWluZXJzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb2x1bW5Db21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbHVtbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAZm9yIChjb250YWluZXIgb2YgY29sdW1uLmNvbnRhaW5lcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRvdGNtcy1jb250YWluZXIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiAvPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29sdW1uLmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbHVtbiBvYmplY3QgY29udGFpbmluZyB0aGUgY29udGFpbmVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW59XG4gICAgICogQG1lbWJlcm9mIENvbHVtbkNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbHVtbiE6IERvdFBhZ2VBc3NldExheW91dENvbHVtbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhLXRlc3RpZCBhdHRyaWJ1dGUgdXNlZCBmb3IgaWRlbnRpZnlpbmcgdGhlIGNvbXBvbmVudCBkdXJpbmcgdGVzdGluZy5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDb2x1bW5Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY29udGFpbmVyQ2xhc3NlcyA9ICcnO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnRDbGFzcywgZW5kQ2xhc3MgfSA9IGdldFBvc2l0aW9uU3R5bGVDbGFzc2VzKFxuICAgICAgICAgICAgdGhpcy5jb2x1bW4ubGVmdE9mZnNldCxcbiAgICAgICAgICAgIHRoaXMuY29sdW1uLndpZHRoICsgdGhpcy5jb2x1bW4ubGVmdE9mZnNldFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzZXMgPSBgJHtzdGFydENsYXNzfSAke2VuZENsYXNzfWA7XG4gICAgfVxufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9kZXByZWNhdGVkL2xheW91dC9jb2x1bW4vY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHL0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUV0RTs7Ozs7O0dBTUc7QUFhSCxNQUFNLE9BQU8sZUFBZTtJQVo1QjtRQXFCSTs7OztXQUlHO1FBQ21CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztLQVMvQztJQVBHLFFBQVE7UUFDSixNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLHVCQUF1QixDQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQzdDLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxVQUFVLElBQUksUUFBUSxFQUFFLENBQUM7SUFDeEQsQ0FBQzs4R0F0QlEsZUFBZTtrR0FBZixlQUFlLG1LQVJkOzs7O0tBSVQsNDlCQUxTLGtCQUFrQjs7MkZBU25CLGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLGtCQUFrQixDQUFDLFlBQ25COzs7O0tBSVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBU3RDLE1BQU07c0JBQWQsS0FBSztnQkFPZ0IsZ0JBQWdCO3NCQUFyQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgZ2V0UG9zaXRpb25TdHlsZUNsYXNzZXMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgdG8gZGlzcGxheSBhIGNvbHVtbiB3aXRoIGNvbnRhaW5lcnMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIENvbHVtbkNvbXBvbmVudFxuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtY29sdW1uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb250YWluZXJDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBmb3IgKGNvbnRhaW5lciBvZiBjb2x1bW4uY29udGFpbmVyczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZG90Y21zLWNvbnRhaW5lciBbY29udGFpbmVyXT1cImNvbnRhaW5lclwiIC8+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb2x1bW4uY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29sdW1uIG9iamVjdCBjb250YWluaW5nIHRoZSBjb250YWluZXJzLlxuICAgICAqXG4gICAgICogQHR5cGUge0RvdFBhZ2VBc3NldExheW91dENvbHVtbn1cbiAgICAgKiBAbWVtYmVyb2YgQ29sdW1uQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgY29sdW1uITogRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEtdGVzdGlkIGF0dHJpYnV0ZSB1c2VkIGZvciBpZGVudGlmeWluZyB0aGUgY29tcG9uZW50IGR1cmluZyB0ZXN0aW5nLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIENvbHVtbkNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjb250YWluZXJDbGFzc2VzID0gJyc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgeyBzdGFydENsYXNzLCBlbmRDbGFzcyB9ID0gZ2V0UG9zaXRpb25TdHlsZUNsYXNzZXMoXG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5sZWZ0T2Zmc2V0LFxuICAgICAgICAgICAgdGhpcy5jb2x1bW4ud2lkdGggKyB0aGlzLmNvbHVtbi5sZWZ0T2Zmc2V0XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyQ2xhc3NlcyA9IGAke3N0YXJ0Q2xhc3N9ICR7ZW5kQ2xhc3N9YDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, computed, inject, signal } from '@angular/core';
3
+ import { NoComponent } from '../../components/no-component/no-component.component';
4
+ import { PageContextService } from '../../services/dotcms-context/page-context.service';
5
+ import { getContainersData } from '../../utils';
6
+ import { ContentletComponent } from '../contentlet/contentlet.component';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * This component is responsible to display a container with contentlets.
10
+ *
11
+ * @export
12
+ * @class ContainerComponent
13
+ * @implements {OnChanges}
14
+ */
15
+ export class ContainerComponent {
16
+ constructor() {
17
+ this.pageContextService = inject(PageContextService);
18
+ this.NoComponent = NoComponent;
19
+ this.$isInsideEditor = signal(false);
20
+ this.$contentlets = signal([]);
21
+ this.$dotContainer = signal(null);
22
+ this.$dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));
23
+ /**
24
+ * The accept types for the container component.
25
+ *
26
+ * @type {(string | null)}
27
+ * @memberof ContainerComponent
28
+ */
29
+ this.acceptTypes = null;
30
+ /**
31
+ * The identifier for the container component.
32
+ *
33
+ * @type {(string | null)}
34
+ * @memberof ContainerComponent
35
+ */
36
+ this.identifier = null;
37
+ /**
38
+ * The max contentlets for the container component.
39
+ *
40
+ * @type {(number | null)}
41
+ * @memberof ContainerComponent
42
+ */
43
+ this.maxContentlets = null;
44
+ /**
45
+ * The uuid for the container component.
46
+ *
47
+ * @type {(string | null)}
48
+ * @memberof ContainerComponent
49
+ */
50
+ this.uuid = null;
51
+ /**
52
+ * The class for the container component.
53
+ *
54
+ * @type {(string | null)}
55
+ * @memberof ContainerComponent
56
+ */
57
+ this.class = null;
58
+ /**
59
+ * The dot object for the container component.
60
+ *
61
+ * @type {(string | null)}
62
+ * @memberof ContainerComponent
63
+ */
64
+ this.dotObject = null;
65
+ /**
66
+ * The data-testid attribute used for identifying the component during testing.
67
+ *
68
+ * @memberof ContainerComponent
69
+ */
70
+ this.testId = 'dot-container';
71
+ }
72
+ ngOnChanges() {
73
+ const { pageAsset, components, isInsideEditor } = this.pageContextService.context;
74
+ const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(pageAsset.containers, this.container);
75
+ const { identifier, uuid } = this.container;
76
+ this.componentsMap = components;
77
+ this.$isInsideEditor.set(isInsideEditor);
78
+ this.$contentlets.set(contentlets);
79
+ this.$dotContainer.set({
80
+ identifier: path ?? identifier,
81
+ acceptTypes,
82
+ maxContentlets,
83
+ variantId,
84
+ uuid
85
+ });
86
+ if (this.$isInsideEditor()) {
87
+ this.acceptTypes = acceptTypes;
88
+ this.identifier = identifier;
89
+ this.maxContentlets = maxContentlets;
90
+ this.uuid = uuid;
91
+ this.class = this.$contentlets().length ? null : 'empty-container';
92
+ this.dotObject = 'container';
93
+ }
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ 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-accept-types": "this.acceptTypes", "attr.data-dot-identifier": "this.identifier", "attr.data-max-contentlets": "this.maxContentlets", "attr.data-dot-uuid": "this.uuid", "class": "this.class", "attr.data-dot-object": "this.dotObject", "attr.data-testid": "this.testId" } }, usesOnChanges: true, ngImport: i0, template: "@if ($isInsideEditor()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\n }\n}\n", styles: [":host.empty-container{width:100%;background-color:#ecf0fd;display:flex;justify-content:center;align-items:center;color:#030e32;height:10rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: ContentletComponent, selector: "dotcms-contentlet-wrapper", inputs: ["contentlet", "container"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'dotcms-container', standalone: true, imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ($isInsideEditor()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\n }\n}\n", styles: [":host.empty-container{width:100%;background-color:#ecf0fd;display:flex;justify-content:center;align-items:center;color:#030e32;height:10rem}\n"] }]
101
+ }], propDecorators: { container: [{
102
+ type: Input,
103
+ args: [{ required: true }]
104
+ }], acceptTypes: [{
105
+ type: HostBinding,
106
+ args: ['attr.data-dot-accept-types']
107
+ }], identifier: [{
108
+ type: HostBinding,
109
+ args: ['attr.data-dot-identifier']
110
+ }], maxContentlets: [{
111
+ type: HostBinding,
112
+ args: ['attr.data-max-contentlets']
113
+ }], uuid: [{
114
+ type: HostBinding,
115
+ args: ['attr.data-dot-uuid']
116
+ }], class: [{
117
+ type: HostBinding,
118
+ args: ['class']
119
+ }], dotObject: [{
120
+ type: HostBinding,
121
+ args: ['attr.data-dot-object']
122
+ }], testId: [{
123
+ type: HostBinding,
124
+ args: ['attr.data-testid']
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9kZXByZWNhdGVkL2xheW91dC9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9kZXByZWNhdGVkL2xheW91dC9jb250YWluZXIvY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUduRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBVXpFOzs7Ozs7R0FNRztBQVNILE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7UUFpQnFCLHVCQUFrQixHQUF1QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsRSxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUMxQixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxNQUFNLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBQ2xELDBCQUFx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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTm9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL25vLWNvbXBvbmVudC9uby1jb21wb25lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRFbnRpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRG90Q01TQ29udGFpbmVyLCBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RvdGNtcy5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb3RjbXMtY29udGV4dC9wYWdlLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRDb250YWluZXJzRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnRsZXRDb21wb25lbnQgfSBmcm9tICcuLi9jb250ZW50bGV0L2NvbnRlbnRsZXQuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIERvdENvbnRhaW5lciB7XG4gICAgYWNjZXB0VHlwZXM6IHN0cmluZztcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgbWF4Q29udGVudGxldHM6IG51bWJlcjtcbiAgICB1dWlkOiBzdHJpbmc7XG4gICAgdmFyaWFudElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIGRpc3BsYXkgYSBjb250YWluZXIgd2l0aCBjb250ZW50bGV0cy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29udGFpbmVyQ29tcG9uZW50XG4gKiBAaW1wbGVtZW50cyB7T25DaGFuZ2VzfVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb250YWluZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXQsIE5vQ29tcG9uZW50LCBDb250ZW50bGV0Q29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29udGFpbmVyLmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRhaW5lciBvYmplY3QgY29udGFpbmluZyB0aGUgY29udGVudGxldHMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RG90Q01TQ29udGFpbmVyfVxuICAgICAqIEBtZW1iZXJvZiBDb250YWluZXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250YWluZXIhOiBEb3RDTVNDb250YWluZXI7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VDb250ZXh0U2VydmljZTogUGFnZUNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KFBhZ2VDb250ZXh0U2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE5vQ29tcG9uZW50ID0gTm9Db21wb25lbnQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRpc0luc2lkZUVkaXRvciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50c01hcCE6IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuICAgIHByb3RlY3RlZCAkY29udGVudGxldHMgPSBzaWduYWw8RG90Q01TQ29udGVudGxldFtdPihbXSk7XG4gICAgcHJvdGVjdGVkICRkb3RDb250YWluZXIgPSBzaWduYWw8RG90Q29udGFpbmVyIHwgbnVsbD4obnVsbCk7XG4gICAgcHJvdGVjdGVkICRkb3RDb250YWluZXJBc1N0cmluZyA9IGNvbXB1dGVkKCgpID0+IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRvdENvbnRhaW5lcigpKSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYWNjZXB0IHR5cGVzIGZvciB0aGUgY29udGFpbmVyIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1hY2NlcHQtdHlwZXMnKSBhY2NlcHRUeXBlczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIGNvbnRhaW5lciBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KHN0cmluZyB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250YWluZXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtaWRlbnRpZmllcicpIGlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXggY29udGVudGxldHMgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhudW1iZXIgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbWF4LWNvbnRlbnRsZXRzJykgbWF4Q29udGVudGxldHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSB1dWlkIGZvciB0aGUgY29udGFpbmVyIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC11dWlkJykgdXVpZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIGNsYXNzIGZvciB0aGUgY29udGFpbmVyIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzczogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIGRvdCBvYmplY3QgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LW9iamVjdCcpIGRvdE9iamVjdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEtdGVzdGlkIGF0dHJpYnV0ZSB1c2VkIGZvciBpZGVudGlmeWluZyB0aGUgY29tcG9uZW50IGR1cmluZyB0ZXN0aW5nLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRlc3RpZCcpIHRlc3RJZCA9ICdkb3QtY29udGFpbmVyJztcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBjb25zdCB7IHBhZ2VBc3NldCwgY29tcG9uZW50cywgaXNJbnNpZGVFZGl0b3IgfSA9IHRoaXMucGFnZUNvbnRleHRTZXJ2aWNlLmNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHsgYWNjZXB0VHlwZXMsIG1heENvbnRlbnRsZXRzLCB2YXJpYW50SWQsIHBhdGgsIGNvbnRlbnRsZXRzIH0gPSBnZXRDb250YWluZXJzRGF0YShcbiAgICAgICAgICAgIHBhZ2VBc3NldC5jb250YWluZXJzLFxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgeyBpZGVudGlmaWVyLCB1dWlkIH0gPSB0aGlzLmNvbnRhaW5lcjtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudHNNYXAgPSBjb21wb25lbnRzO1xuXG4gICAgICAgIHRoaXMuJGlzSW5zaWRlRWRpdG9yLnNldChpc0luc2lkZUVkaXRvcik7XG4gICAgICAgIHRoaXMuJGNvbnRlbnRsZXRzLnNldChjb250ZW50bGV0cyk7XG4gICAgICAgIHRoaXMuJGRvdENvbnRhaW5lci5zZXQoe1xuICAgICAgICAgICAgaWRlbnRpZmllcjogcGF0aCA/PyBpZGVudGlmaWVyLFxuICAgICAgICAgICAgYWNjZXB0VHlwZXMsXG4gICAgICAgICAgICBtYXhDb250ZW50bGV0cyxcbiAgICAgICAgICAgIHZhcmlhbnRJZCxcbiAgICAgICAgICAgIHV1aWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuJGlzSW5zaWRlRWRpdG9yKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0VHlwZXMgPSBhY2NlcHRUeXBlcztcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgICAgICAgICB0aGlzLm1heENvbnRlbnRsZXRzID0gbWF4Q29udGVudGxldHM7XG4gICAgICAgICAgICB0aGlzLnV1aWQgPSB1dWlkO1xuICAgICAgICAgICAgdGhpcy5jbGFzcyA9IHRoaXMuJGNvbnRlbnRsZXRzKCkubGVuZ3RoID8gbnVsbCA6ICdlbXB0eS1jb250YWluZXInO1xuICAgICAgICAgICAgdGhpcy5kb3RPYmplY3QgPSAnY29udGFpbmVyJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoJGlzSW5zaWRlRWRpdG9yKCkpIHtcbiAgICBAaWYgKCRjb250ZW50bGV0cygpLmxlbmd0aCkge1xuICAgICAgICBAZm9yIChjb250ZW50bGV0IG9mICRjb250ZW50bGV0cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkb3RjbXMtY29udGVudGxldC13cmFwcGVyXG4gICAgICAgICAgICAgICAgW2NvbnRlbnRsZXRdPVwiY29udGVudGxldFwiXG4gICAgICAgICAgICAgICAgW2NvbnRhaW5lcl09XCIkZG90Q29udGFpbmVyQXNTdHJpbmcoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29tcG9uZW50c01hcFtjb250ZW50bGV0LmNvbnRlbnRUeXBlXSB8fCBjb21wb25lbnRzTWFwWydDdXN0b21Ob0NvbXBvbmVudCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhc3luYykgfHwgTm9Db21wb25lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHsgY29udGVudGxldCB9XG4gICAgICAgICAgICAgICAgICAgIFwiIC8+XG4gICAgICAgICAgICA8L2RvdGNtcy1jb250ZW50bGV0LXdyYXBwZXI+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgVGhpcyBjb250YWluZXIgaXMgZW1wdHkuXG4gICAgfVxufSBAZWxzZSB7XG4gICAgQGZvciAoY29udGVudGxldCBvZiAkY29udGVudGxldHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudHNNYXBbY29udGVudGxldC5jb250ZW50VHlwZV0gfCBhc3luYztcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHsgY29udGVudGxldCB9XG4gICAgICAgICAgICBcIiAvPlxuICAgIH1cbn1cbiJdfQ==