@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.
Files changed (126) 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/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  5. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  6. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  7. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  8. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  9. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  10. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  11. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  12. package/esm2022/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
  13. package/esm2022/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
  14. package/esm2022/lib/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
  15. package/esm2022/lib/components/dotcms-editable-text/utils.mjs +20 -0
  16. package/esm2022/lib/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  17. package/esm2022/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  18. package/esm2022/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
  19. package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  20. package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  21. package/esm2022/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  22. package/esm2022/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  23. package/esm2022/lib/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  24. package/esm2022/lib/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  25. package/esm2022/lib/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  26. package/esm2022/lib/models/index.mjs +2 -2
  27. package/esm2022/lib/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
  28. package/esm2022/lib/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  29. package/esm2022/lib/services/dotcms-editable-page.service.mjs +93 -0
  30. package/esm2022/lib/store/dotcms.store.mjs +61 -0
  31. package/esm2022/public_api.mjs +8 -0
  32. package/fesm2022/dotcms-angular.mjs +1578 -612
  33. package/fesm2022/dotcms-angular.mjs.map +1 -1
  34. package/index.d.ts +6 -6
  35. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  36. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  37. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  38. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  39. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  40. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  41. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  42. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  43. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  44. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  45. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  46. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  47. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  48. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  49. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  50. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  51. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
  52. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  53. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  54. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  55. package/lib/components/{dot-editable-text/dot-editable-text.component.d.ts → dotcms-editable-text/dotcms-editable-text.component.d.ts} +30 -30
  56. package/lib/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  57. package/lib/components/dotcms-editable-text/utils.d.ts.map +1 -0
  58. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  59. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  60. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  61. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  62. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  63. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  64. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  65. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  66. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  67. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  68. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  69. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  70. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  71. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  72. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  73. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  74. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  75. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  76. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  77. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  78. package/lib/models/index.d.ts +9 -10
  79. package/lib/models/index.d.ts.map +1 -1
  80. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
  81. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
  82. package/lib/{utils/image_loader.d.ts → providers/dotcms-image-loader/dotcms-image_loader.d.ts} +1 -1
  83. package/lib/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  84. package/lib/services/dotcms-editable-page.service.d.ts +40 -0
  85. package/lib/services/dotcms-editable-page.service.d.ts.map +1 -0
  86. package/lib/store/dotcms.store.d.ts +36 -0
  87. package/lib/store/dotcms.store.d.ts.map +1 -0
  88. package/package.json +9 -9
  89. package/public_api.d.ts +9 -0
  90. package/public_api.d.ts.map +1 -0
  91. package/esm2022/index.mjs +0 -6
  92. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  93. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  94. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  95. package/esm2022/lib/layout/column/column.component.mjs +0 -45
  96. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  97. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  98. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -101
  99. package/esm2022/lib/layout/row/row.component.mjs +0 -29
  100. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  101. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  102. package/esm2022/lib/utils/image_loader.mjs +0 -75
  103. package/esm2022/lib/utils/index.mjs +0 -84
  104. package/index.d.ts.map +0 -1
  105. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  106. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  107. package/lib/components/no-component/no-component.component.d.ts +0 -22
  108. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  109. package/lib/layout/column/column.component.d.ts +0 -29
  110. package/lib/layout/column/column.component.d.ts.map +0 -1
  111. package/lib/layout/container/container.component.d.ts +0 -88
  112. package/lib/layout/container/container.component.d.ts.map +0 -1
  113. package/lib/layout/contentlet/contentlet.component.d.ts +0 -86
  114. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  115. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts +0 -68
  116. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  117. package/lib/layout/row/row.component.d.ts +0 -20
  118. package/lib/layout/row/row.component.d.ts.map +0 -1
  119. package/lib/models/dotcms.model.d.ts +0 -416
  120. package/lib/models/dotcms.model.d.ts.map +0 -1
  121. package/lib/services/dotcms-context/page-context.service.d.ts +0 -49
  122. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  123. package/lib/utils/image_loader.d.ts.map +0 -1
  124. package/lib/utils/index.d.ts +0 -63
  125. package/lib/utils/index.d.ts.map +0 -1
  126. /package/lib/components/{dot-editable-text → dotcms-editable-text}/utils.d.ts +0 -0
@@ -0,0 +1,231 @@
1
+ import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DotParagraphBlock {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotParagraphBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotParagraphBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-paragraph", ngImport: i0, template: `
6
+ <p>
7
+ <ng-content />
8
+ </p>
9
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotParagraphBlock, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'dotcms-block-editor-renderer-paragraph',
15
+ standalone: true,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ template: `
18
+ <p>
19
+ <ng-content />
20
+ </p>
21
+ `
22
+ }]
23
+ }] });
24
+ export class DotHeadingBlock {
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotHeadingBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotHeadingBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-heading", inputs: { level: "level" }, ngImport: i0, template: `
27
+ @switch (level) {
28
+ @case ('1') {
29
+ <h1>
30
+ <ng-content />
31
+ </h1>
32
+ }
33
+ @case ('2') {
34
+ <h2>
35
+ <ng-content />
36
+ </h2>
37
+ }
38
+ @case ('3') {
39
+ <h3>
40
+ <ng-content />
41
+ </h3>
42
+ }
43
+ @case ('4') {
44
+ <h4>
45
+ <ng-content />
46
+ </h4>
47
+ }
48
+ @case ('5') {
49
+ <h5>
50
+ <ng-content />
51
+ </h5>
52
+ }
53
+ @case ('6') {
54
+ <h6>
55
+ <ng-content />
56
+ </h6>
57
+ }
58
+ @default {
59
+ <h1>
60
+ <ng-content />
61
+ </h1>
62
+ }
63
+ }
64
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotHeadingBlock, decorators: [{
67
+ type: Component,
68
+ args: [{
69
+ selector: 'dotcms-block-editor-renderer-heading',
70
+ standalone: true,
71
+ changeDetection: ChangeDetectionStrategy.OnPush,
72
+ template: `
73
+ @switch (level) {
74
+ @case ('1') {
75
+ <h1>
76
+ <ng-content />
77
+ </h1>
78
+ }
79
+ @case ('2') {
80
+ <h2>
81
+ <ng-content />
82
+ </h2>
83
+ }
84
+ @case ('3') {
85
+ <h3>
86
+ <ng-content />
87
+ </h3>
88
+ }
89
+ @case ('4') {
90
+ <h4>
91
+ <ng-content />
92
+ </h4>
93
+ }
94
+ @case ('5') {
95
+ <h5>
96
+ <ng-content />
97
+ </h5>
98
+ }
99
+ @case ('6') {
100
+ <h6>
101
+ <ng-content />
102
+ </h6>
103
+ }
104
+ @default {
105
+ <h1>
106
+ <ng-content />
107
+ </h1>
108
+ }
109
+ }
110
+ `
111
+ }]
112
+ }], propDecorators: { level: [{
113
+ type: Input
114
+ }] } });
115
+ export class DotTextBlock {
116
+ constructor() {
117
+ this.marks = [];
118
+ this.text = '';
119
+ this.$remainingMarks = computed(() => this.marks?.slice(1));
120
+ this.$currentAttrs = computed(() => {
121
+ const attrs = { ...(this.marks?.[0]?.attrs || {}) };
122
+ if (attrs['class']) {
123
+ attrs['className'] = attrs['class'];
124
+ delete attrs['class'];
125
+ }
126
+ return attrs;
127
+ });
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotTextBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotTextBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-text", inputs: { marks: "marks", text: "text" }, ngImport: i0, template: `
131
+ @switch (marks?.[0]?.type) {
132
+ @case ('link') {
133
+ <a
134
+ [attr.href]="$currentAttrs()['href'] || ''"
135
+ [attr.target]="$currentAttrs()['target'] || ''">
136
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
137
+ </a>
138
+ }
139
+ @case ('bold') {
140
+ <strong>
141
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
142
+ </strong>
143
+ }
144
+ @case ('underline') {
145
+ <u>
146
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
147
+ </u>
148
+ }
149
+ @case ('italic') {
150
+ <em>
151
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
152
+ </em>
153
+ }
154
+ @case ('strike') {
155
+ <s>
156
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
157
+ </s>
158
+ }
159
+ @case ('superscript') {
160
+ <sup>
161
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
162
+ </sup>
163
+ }
164
+ @case ('subscript') {
165
+ <sub>
166
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
167
+ </sub>
168
+ }
169
+ @default {
170
+ {{ text }}
171
+ }
172
+ }
173
+ `, isInline: true, dependencies: [{ kind: "component", type: DotTextBlock, selector: "dotcms-block-editor-renderer-text", inputs: ["marks", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotTextBlock, decorators: [{
176
+ type: Component,
177
+ args: [{
178
+ selector: 'dotcms-block-editor-renderer-text',
179
+ standalone: true,
180
+ changeDetection: ChangeDetectionStrategy.OnPush,
181
+ template: `
182
+ @switch (marks?.[0]?.type) {
183
+ @case ('link') {
184
+ <a
185
+ [attr.href]="$currentAttrs()['href'] || ''"
186
+ [attr.target]="$currentAttrs()['target'] || ''">
187
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
188
+ </a>
189
+ }
190
+ @case ('bold') {
191
+ <strong>
192
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
193
+ </strong>
194
+ }
195
+ @case ('underline') {
196
+ <u>
197
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
198
+ </u>
199
+ }
200
+ @case ('italic') {
201
+ <em>
202
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
203
+ </em>
204
+ }
205
+ @case ('strike') {
206
+ <s>
207
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
208
+ </s>
209
+ }
210
+ @case ('superscript') {
211
+ <sup>
212
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
213
+ </sup>
214
+ }
215
+ @case ('subscript') {
216
+ <sub>
217
+ <dotcms-block-editor-renderer-text [marks]="$remainingMarks()" [text]="text" />
218
+ </sub>
219
+ }
220
+ @default {
221
+ {{ text }}
222
+ }
223
+ }
224
+ `
225
+ }]
226
+ }], propDecorators: { marks: [{
227
+ type: Input
228
+ }], text: [{
229
+ type: Input
230
+ }] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBY3BGLE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtHQU5oQjs7OztLQUlUOzsyRkFFUSxpQkFBaUI7a0JBVjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7S0FJVDtpQkFDSjs7QUErQ0QsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTtrR0FBZixlQUFlLDRIQXhDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzQ1Q7OzJGQUVRLGVBQWU7a0JBNUMzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNDVDtpQkFDSjs4QkFFWSxLQUFLO3NCQUFiLEtBQUs7O0FBeURWLE1BQU0sT0FBTyxZQUFZO0lBakR6QjtRQWtEYSxVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUNwQyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRUEsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBRXBELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztLQUNOOzhHQWhCWSxZQUFZO2tHQUFaLFlBQVksdUlBN0NYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkNULDREQUVRLFlBQVk7OzJGQUFaLFlBQVk7a0JBakR4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkNUO2lCQUNKOzhCQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JNYXJrIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGgnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHA+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L3A+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RQYXJhZ3JhcGhCbG9jayB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAc3dpdGNoIChsZXZlbCkge1xuICAgICAgICAgICAgQGNhc2UgKCcxJykge1xuICAgICAgICAgICAgICAgIDxoMT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCcyJykge1xuICAgICAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCczJykge1xuICAgICAgICAgICAgICAgIDxoMz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc0Jykge1xuICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc1Jykge1xuICAgICAgICAgICAgICAgIDxoNT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g1PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc2Jykge1xuICAgICAgICAgICAgICAgIDxoNj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxoMT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RIZWFkaW5nQmxvY2sge1xuICAgIEBJbnB1dCgpIGxldmVsITogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGV4dEJsb2NrUHJvcHMge1xuICAgIG1hcmtzPzogQmxvY2tFZGl0b3JNYXJrW107XG4gICAgdGV4dD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQHN3aXRjaCAobWFya3M/LlswXT8udHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKCdsaW5rJykge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiJGN1cnJlbnRBdHRycygpWydocmVmJ10gfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiJGN1cnJlbnRBdHRycygpWyd0YXJnZXQnXSB8fCAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnYm9sZCcpIHtcbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCd1bmRlcmxpbmUnKSB7XG4gICAgICAgICAgICAgICAgPHU+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQgW21hcmtzXT1cIiRyZW1haW5pbmdNYXJrcygpXCIgW3RleHRdPVwidGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC91PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdpdGFsaWMnKSB7XG4gICAgICAgICAgICAgICAgPGVtPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N0cmlrZScpIHtcbiAgICAgICAgICAgICAgICA8cz5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwiJHJlbWFpbmluZ01hcmtzKClcIiBbdGV4dF09XCJ0ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICA8L3M+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N1cGVyc2NyaXB0Jykge1xuICAgICAgICAgICAgICAgIDxzdXA+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQgW21hcmtzXT1cIiRyZW1haW5pbmdNYXJrcygpXCIgW3RleHRdPVwidGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdXA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N1YnNjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICA8c3ViPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ViPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgRG90VGV4dEJsb2NrIHtcbiAgICBASW5wdXQoKSBtYXJrczogVGV4dEJsb2NrUHJvcHNbJ21hcmtzJ10gPSBbXTtcbiAgICBASW5wdXQoKSB0ZXh0ID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJHJlbWFpbmluZ01hcmtzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXJrcz8uc2xpY2UoMSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRjdXJyZW50QXR0cnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJzID0geyAuLi4odGhpcy5tYXJrcz8uWzBdPy5hdHRycyB8fCB7fSkgfTtcblxuICAgICAgICBpZiAoYXR0cnNbJ2NsYXNzJ10pIHtcbiAgICAgICAgICAgIGF0dHJzWydjbGFzc05hbWUnXSA9IGF0dHJzWydjbGFzcyddO1xuICAgICAgICAgICAgZGVsZXRlIGF0dHJzWydjbGFzcyddO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF0dHJzO1xuICAgIH0pO1xufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { UVE_MODE } from '@dotcms/types';
3
+ import { getUVEState } from '@dotcms/uve';
4
+ import * as i0 from "@angular/core";
5
+ export class DotUnknownBlockComponent {
6
+ constructor() {
7
+ this.style = {
8
+ backgroundColor: '#fff5f5',
9
+ color: '#333',
10
+ padding: '1rem',
11
+ borderRadius: '0.5rem',
12
+ marginBottom: '1rem',
13
+ marginTop: '1rem',
14
+ border: '1px solid #fc8181'
15
+ };
16
+ }
17
+ get isEditMode() {
18
+ return getUVEState()?.mode === UVE_MODE.EDIT;
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotUnknownBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotUnknownBlockComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-unknown", inputs: { node: "node" }, ngImport: i0, template: `
22
+ @if (isEditMode) {
23
+ <div [style]="style" data-testid="unknown-block-type">
24
+ <strong style="color: #c53030">Warning:</strong>
25
+ The block type
26
+ <strong>{{ node.type }}</strong>
27
+ is not recognized. Please check your
28
+ <a
29
+ href="https://dev.dotcms.com/docs/block-editor"
30
+ target="_blank"
31
+ rel="noopener noreferrer">
32
+ configuration
33
+ </a>
34
+ or contact support for assistance.
35
+ </div>
36
+ }
37
+ `, isInline: true }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotUnknownBlockComponent, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'dotcms-block-editor-renderer-unknown',
43
+ standalone: true,
44
+ template: `
45
+ @if (isEditMode) {
46
+ <div [style]="style" data-testid="unknown-block-type">
47
+ <strong style="color: #c53030">Warning:</strong>
48
+ The block type
49
+ <strong>{{ node.type }}</strong>
50
+ is not recognized. Please check your
51
+ <a
52
+ href="https://dev.dotcms.com/docs/block-editor"
53
+ target="_blank"
54
+ rel="noopener noreferrer">
55
+ configuration
56
+ </a>
57
+ or contact support for assistance.
58
+ </div>
59
+ }
60
+ `
61
+ }]
62
+ }], propDecorators: { node: [{
63
+ type: Input
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5rbm93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy91bmtub3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQW1CLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQXVCMUMsTUFBTSxPQUFPLHdCQUF3QjtJQXJCckM7UUE0QnVCLFVBQUssR0FBRztZQUN2QixlQUFlLEVBQUUsU0FBUztZQUMxQixLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxNQUFNO1lBQ2YsWUFBWSxFQUFFLFFBQVE7WUFDdEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0tBQ0w7SUFiRyxJQUFJLFVBQVU7UUFDVixPQUFPLFdBQVcsRUFBRSxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7OEdBTFEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsMEhBbEJ2Qjs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVDs7MkZBRVEsd0JBQXdCO2tCQXJCcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JUO2lCQUNKOzhCQUVZLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JOb2RlLCBVVkVfTU9ERSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci11bmtub3duJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoaXNFZGl0TW9kZSkge1xuICAgICAgICAgICAgPGRpdiBbc3R5bGVdPVwic3R5bGVcIiBkYXRhLXRlc3RpZD1cInVua25vd24tYmxvY2stdHlwZVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJjb2xvcjogI2M1MzAzMFwiPldhcm5pbmc6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgVGhlIGJsb2NrIHR5cGVcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG5vZGUudHlwZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIGlzIG5vdCByZWNvZ25pemVkLiBQbGVhc2UgY2hlY2sgeW91clxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIG9yIGNvbnRhY3Qgc3VwcG9ydCBmb3IgYXNzaXN0YW5jZS5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RVbmtub3duQmxvY2tDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIG5vZGUhOiBCbG9ja0VkaXRvck5vZGU7XG5cbiAgICBnZXQgaXNFZGl0TW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIGdldFVWRVN0YXRlKCk/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlID0ge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmNWY1JyxcbiAgICAgICAgY29sb3I6ICcjMzMzJyxcbiAgICAgICAgcGFkZGluZzogJzFyZW0nLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICcwLjVyZW0nLFxuICAgICAgICBtYXJnaW5Cb3R0b206ICcxcmVtJyxcbiAgICAgICAgbWFyZ2luVG9wOiAnMXJlbScsXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZmM4MTgxJ1xuICAgIH07XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DotVideoBlock {
4
+ constructor() {
5
+ this.$srcURL = computed(() => this.attrs?.['src']);
6
+ this.$posterURL = computed(() => this.attrs?.['data']?.['thumbnail']);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotVideoBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotVideoBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-video", inputs: { attrs: "attrs" }, ngImport: i0, template: `
10
+ <video
11
+ [controls]="true"
12
+ preload="metadata"
13
+ [poster]="this.$posterURL()"
14
+ [width]="attrs?.['width']"
15
+ [height]="attrs?.['height']">
16
+ <track default kind="captions" srclang="en" />
17
+ <source [src]="this.$srcURL()" [type]="attrs?.['mimeType']" />
18
+ Your browser does not support the
19
+ <code>video</code>
20
+ element.
21
+ </video>
22
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotVideoBlock, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ selector: 'dotcms-block-editor-renderer-video',
28
+ standalone: true,
29
+ changeDetection: ChangeDetectionStrategy.OnPush,
30
+ template: `
31
+ <video
32
+ [controls]="true"
33
+ preload="metadata"
34
+ [poster]="this.$posterURL()"
35
+ [width]="attrs?.['width']"
36
+ [height]="attrs?.['height']">
37
+ <track default kind="captions" srclang="en" />
38
+ <source [src]="this.$srcURL()" [type]="attrs?.['mimeType']" />
39
+ Your browser does not support the
40
+ <code>video</code>
41
+ element.
42
+ </video>
43
+ `
44
+ }]
45
+ }], propDecorators: { attrs: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9ibG9ja3MvdmlkZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QnBGLE1BQU0sT0FBTyxhQUFhO0lBbkIxQjtRQXNCdUIsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU5QyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7S0FDdkY7OEdBTlksYUFBYTtrR0FBYixhQUFhLDBIQWZaOzs7Ozs7Ozs7Ozs7O0tBYVQ7OzJGQUVRLGFBQWE7a0JBbkJ6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7aUJBQ0o7OEJBRVksS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsb2NrRWRpdG9yTm9kZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdmlkZW8nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICBbY29udHJvbHNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBwcmVsb2FkPVwibWV0YWRhdGFcIlxuICAgICAgICAgICAgW3Bvc3Rlcl09XCJ0aGlzLiRwb3N0ZXJVUkwoKVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiYXR0cnM/Llsnd2lkdGgnXVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cImF0dHJzPy5bJ2hlaWdodCddXCI+XG4gICAgICAgICAgICA8dHJhY2sgZGVmYXVsdCBraW5kPVwiY2FwdGlvbnNcIiBzcmNsYW5nPVwiZW5cIiAvPlxuICAgICAgICAgICAgPHNvdXJjZSBbc3JjXT1cInRoaXMuJHNyY1VSTCgpXCIgW3R5cGVdPVwiYXR0cnM/LlsnbWltZVR5cGUnXVwiIC8+XG4gICAgICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGVcbiAgICAgICAgICAgIDxjb2RlPnZpZGVvPC9jb2RlPlxuICAgICAgICAgICAgZWxlbWVudC5cbiAgICAgICAgPC92aWRlbz5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdFZpZGVvQmxvY2sge1xuICAgIEBJbnB1dCgpIGF0dHJzITogQmxvY2tFZGl0b3JOb2RlWydhdHRycyddO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRzcmNVUkwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF0dHJzPy5bJ3NyYyddKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSAkcG9zdGVyVVJMID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdHRycz8uWydkYXRhJ10/LlsndGh1bWJuYWlsJ10pO1xufVxuIl19
@@ -0,0 +1,50 @@
1
+ import { Component, Input, signal } from '@angular/core';
2
+ import { UVE_MODE } from '@dotcms/types';
3
+ import { getUVEState } from '@dotcms/uve';
4
+ import { isValidBlocks } from '@dotcms/uve/internal';
5
+ import { DotCMSBlockEditorItemComponent } from './item/dotcms-block-editor-item.component';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * A component that renders content from DotCMS's Block Editor field.
9
+ *
10
+ * This component provides an easy way to render Block Editor content in your Angular applications.
11
+ * It handles the rendering of standard blocks and allows customization through custom renderers.
12
+ *
13
+ * For more information about Block Editor, see {@link https://dev.dotcms.com/docs/block-editor}
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <dotcms-block-editor-renderer
18
+ * [blocks]="myBlockEditorContent"
19
+ * [customRenderers]="myCustomRenderers">
20
+ * </dotcms-block-editor-renderer>
21
+ * ```
22
+ */
23
+ export class DotCMSBlockEditorRendererComponent {
24
+ constructor() {
25
+ this.$blockEditorState = signal({ error: null });
26
+ this.$isInEditMode = signal(getUVEState()?.mode === UVE_MODE.EDIT);
27
+ }
28
+ ngOnInit() {
29
+ const state = isValidBlocks(this.blocks);
30
+ if (state.error) {
31
+ console.error('Error in dotcms-block-editor-renderer: ', state.error);
32
+ }
33
+ this.$blockEditorState.set(isValidBlocks(this.blocks));
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorRendererComponent, isStandalone: true, selector: "dotcms-block-editor-renderer", inputs: { blocks: "blocks", customRenderers: "customRenderers", class: "class", style: "style" }, ngImport: i0, template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <div [class]=\"class\" [style]=\"style\">\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorRendererComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'dotcms-block-editor-renderer', standalone: true, imports: [DotCMSBlockEditorItemComponent], template: "@if ($blockEditorState().error && $isInEditMode()) {\n <div data-testid=\"invalid-blocks-message\">\n {{ $blockEditorState().error }}\n </div>\n} @else if (!$blockEditorState().error) {\n <div [class]=\"class\" [style]=\"style\">\n <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n </div>\n}\n" }]
41
+ }], propDecorators: { blocks: [{
42
+ type: Input
43
+ }], customRenderers: [{
44
+ type: Input
45
+ }], class: [{
46
+ type: Input
47
+ }], style: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFZM0Y7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQWFJLHNCQUFpQixHQUFHLE1BQU0sQ0FBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBV2pFO0lBVEcsUUFBUTtRQUNKLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs4R0FqQlEsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsMExDMUMvQyxxWkFXQSwwREQ2QmMsOEJBQThCOzsyRkFFL0Isa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBR1AsQ0FBQyw4QkFBOEIsQ0FBQzs4QkFHaEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVVkVfTU9ERSwgQmxvY2tFZGl0b3JDb250ZW50IH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvclN0YXRlIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdXZlJztcbmltcG9ydCB7IGlzVmFsaWRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEN1c3RvbSBSZW5kZXJlciB1c2VkIGJ5IHRoZSBCbG9jayBFZGl0b3IgQ29tcG9uZW50XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBDdXN0b21SZW5kZXJlclxuICovXG5leHBvcnQgdHlwZSBDdXN0b21SZW5kZXJlciA9IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBjb250ZW50IGZyb20gRG90Q01TJ3MgQmxvY2sgRWRpdG9yIGZpZWxkLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJlbmRlciBCbG9jayBFZGl0b3IgY29udGVudCBpbiB5b3VyIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHN0YW5kYXJkIGJsb2NrcyBhbmQgYWxsb3dzIGN1c3RvbWl6YXRpb24gdGhyb3VnaCBjdXN0b20gcmVuZGVyZXJzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEJsb2NrIEVkaXRvciwgc2VlIHtAbGluayBodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlclxuICogICBbYmxvY2tzXT1cIm15QmxvY2tFZGl0b3JDb250ZW50XCJcbiAqICAgW2N1c3RvbVJlbmRlcmVyc109XCJteUN1c3RvbVJlbmRlcmVyc1wiPlxuICogPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGJsb2NrcyE6IEJsb2NrRWRpdG9yQ29udGVudDtcbiAgICBASW5wdXQoKSBjdXN0b21SZW5kZXJlcnM6IEN1c3RvbVJlbmRlcmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgc3R5bGU6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgICAkYmxvY2tFZGl0b3JTdGF0ZSA9IHNpZ25hbDxCbG9ja0VkaXRvclN0YXRlPih7IGVycm9yOiBudWxsIH0pO1xuICAgICRpc0luRWRpdE1vZGUgPSBzaWduYWwoZ2V0VVZFU3RhdGUoKT8ubW9kZSA9PT0gVVZFX01PREUuRURJVCk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBpc1ZhbGlkQmxvY2tzKHRoaXMuYmxvY2tzKTtcblxuICAgICAgICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXI6ICcsIHN0YXRlLmVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGJsb2NrRWRpdG9yU3RhdGUuc2V0KGlzVmFsaWRCbG9ja3ModGhpcy5ibG9ja3MpKTtcbiAgICB9XG59XG4iLCJAaWYgKCRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IgJiYgJGlzSW5FZGl0TW9kZSgpKSB7XG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cImludmFsaWQtYmxvY2tzLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgJGJsb2NrRWRpdG9yU3RhdGUoKS5lcnJvciB9fVxuICAgIDwvZGl2PlxufSBAZWxzZSBpZiAoISRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IpIHtcbiAgICA8ZGl2IFtjbGFzc109XCJjbGFzc1wiIFtzdHlsZV09XCJzdHlsZVwiPlxuICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgW2NvbnRlbnRdPVwiYmxvY2tzLmNvbnRlbnRcIlxuICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgIDwvZGl2PlxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { BlockEditorDefaultBlocks } from '@dotcms/types/internal';
4
+ import { DotCodeBlock, DotBlockQuote } from '../blocks/code.component';
5
+ import { DotContentletBlock } from '../blocks/dot-contentlet.component';
6
+ import { DotImageBlock } from '../blocks/image.component';
7
+ import { DotBulletList, DotOrdererList, DotListItem } from '../blocks/list.component';
8
+ import { DotTableBlock } from '../blocks/table.component';
9
+ import { DotParagraphBlock, DotTextBlock, DotHeadingBlock } from '../blocks/text.component';
10
+ import { DotUnknownBlockComponent } from '../blocks/unknown.component';
11
+ import { DotVideoBlock } from '../blocks/video.component';
12
+ import * as i0 from "@angular/core";
13
+ export class DotCMSBlockEditorItemComponent {
14
+ constructor() {
15
+ this.BLOCKS = BlockEditorDefaultBlocks;
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSBlockEditorItemComponent, isStandalone: true, selector: "dotcms-block-editor-renderer-block", inputs: { content: "content", customRenderers: "customRenderers" }, ngImport: i0, template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <dotcms-block-editor-renderer-unknown [node]=\"node\" />\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: DotCMSBlockEditorItemComponent, selector: "dotcms-block-editor-renderer-block", inputs: ["content", "customRenderers"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: DotParagraphBlock, selector: "dotcms-block-editor-renderer-paragraph" }, { kind: "component", type: DotTextBlock, selector: "dotcms-block-editor-renderer-text", inputs: ["marks", "text"] }, { kind: "component", type: DotHeadingBlock, selector: "dotcms-block-editor-renderer-heading", inputs: ["level"] }, { kind: "component", type: DotBulletList, selector: "dotcms-block-editor-renderer-bullet-list" }, { kind: "component", type: DotOrdererList, selector: "dotcms-block-editor-renderer-ordered-list" }, { kind: "component", type: DotListItem, selector: "dotcms-block-editor-renderer-list-item" }, { kind: "component", type: DotCodeBlock, selector: "dotcms-block-editor-renderer-code-block" }, { kind: "component", type: DotBlockQuote, selector: "dotcms-block-editor-renderer-block-quote" }, { kind: "component", type: DotImageBlock, selector: "dotcms-block-editor-renderer-image", inputs: ["attrs"] }, { kind: "component", type: DotVideoBlock, selector: "dotcms-block-editor-renderer-video", inputs: ["attrs"] }, { kind: "component", type: DotTableBlock, selector: "dotcms-block-editor-renderer-table", inputs: ["content"] }, { kind: "component", type: DotContentletBlock, selector: "dotcms-block-editor-renderer-contentlet", inputs: ["customRenderers", "attrs"] }, { kind: "component", type: DotUnknownBlockComponent, selector: "dotcms-block-editor-renderer-unknown", inputs: ["node"] }] }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSBlockEditorItemComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'dotcms-block-editor-renderer-block', standalone: true, imports: [
23
+ NgTemplateOutlet,
24
+ NgComponentOutlet,
25
+ AsyncPipe,
26
+ DotParagraphBlock,
27
+ DotTextBlock,
28
+ DotHeadingBlock,
29
+ DotBulletList,
30
+ DotOrdererList,
31
+ DotListItem,
32
+ DotCodeBlock,
33
+ DotBlockQuote,
34
+ DotImageBlock,
35
+ DotVideoBlock,
36
+ DotTableBlock,
37
+ DotContentletBlock,
38
+ DotUnknownBlockComponent
39
+ ], template: "@for (node of content; track node) {\n @if (customRenderers?.[node.type]) {\n <ng-container\n *ngTemplateOutlet=\"\n customRender;\n context: { customRender: customRenderers?.[node.type], node: node }\n \"></ng-container>\n } @else {\n @switch (node.type) {\n @case (BLOCKS.PARAGRAPH) {\n <dotcms-block-editor-renderer-paragraph [style]=\"node.attrs\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-paragraph>\n }\n\n @case (BLOCKS.TEXT) {\n <dotcms-block-editor-renderer-text [marks]=\"node.marks\" [text]=\"node.text || ''\" />\n }\n\n @case (BLOCKS.HEADING) {\n <dotcms-block-editor-renderer-heading\n [style]=\"node.attrs || {}\"\n [level]=\"node.attrs?.['level'] || '1'\">\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-heading>\n }\n\n @case (BLOCKS.BULLET_LIST) {\n <dotcms-block-editor-renderer-bullet-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-bullet-list>\n }\n\n @case (BLOCKS.ORDERED_LIST) {\n <dotcms-block-editor-renderer-ordered-list>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-ordered-list>\n }\n\n @case (BLOCKS.LIST_ITEM) {\n <dotcms-block-editor-renderer-list-item>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-list-item>\n }\n\n @case (BLOCKS.BLOCK_QUOTE) {\n <dotcms-block-editor-renderer-block-quote>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-block-quote>\n }\n\n @case (BLOCKS.CODE_BLOCK) {\n <dotcms-block-editor-renderer-code-block>\n <dotcms-block-editor-renderer-block\n [content]=\"node.content\"\n [customRenderers]=\"customRenderers\" />\n </dotcms-block-editor-renderer-code-block>\n }\n\n @case (BLOCKS.HARDBREAK) {\n <br />\n }\n\n @case (BLOCKS.HORIZONTAL_RULE) {\n <hr />\n }\n\n @case (BLOCKS.DOT_IMAGE) {\n <dotcms-block-editor-renderer-image [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.DOT_VIDEO) {\n <dotcms-block-editor-renderer-video [attrs]=\"node.attrs || {}\" />\n }\n\n @case (BLOCKS.TABLE) {\n <dotcms-block-editor-renderer-table [content]=\"node.content\" />\n }\n\n @case (BLOCKS.DOT_CONTENT) {\n <dotcms-block-editor-renderer-contentlet\n [attrs]=\"node.attrs || {}\"\n [customRenderers]=\"customRenderers\" />\n }\n\n @default {\n <dotcms-block-editor-renderer-unknown [node]=\"node\" />\n }\n }\n }\n}\n\n<ng-template #customRender let-customRender=\"customRender\" let-node=\"node\">\n <ng-container\n *ngComponentOutlet=\"customRender | async; inputs: { content: node }\"></ng-container>\n</ng-template>\n" }]
40
+ }], propDecorators: { content: [{
41
+ type: Input
42
+ }], customRenderers: [{
43
+ type: Input
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIvaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9pdGVtL2RvdGNtcy1ibG9jay1lZGl0b3ItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQTJCMUQsTUFBTSxPQUFPLDhCQUE4QjtJQXhCM0M7UUE0QkksV0FBTSxHQUFHLHdCQUF3QixDQUFDO0tBQ3JDOzhHQUxZLDhCQUE4QjtrR0FBOUIsOEJBQThCLGtLQ3hDM0MsMnBJQTRHQSwwRERwRWEsOEJBQThCLHVIQWxCbkMsZ0JBQWdCLG9KQUNoQixpQkFBaUIsK09BQ2pCLFNBQVMsOENBQ1QsaUJBQWlCLG1GQUNqQixZQUFZLHlHQUNaLGVBQWUsb0dBQ2YsYUFBYSxxRkFDYixjQUFjLHNGQUNkLFdBQVcsbUZBQ1gsWUFBWSxvRkFDWixhQUFhLHFGQUNiLGFBQWEsa0dBQ2IsYUFBYSxrR0FDYixhQUFhLG9HQUNiLGtCQUFrQiwwSEFDbEIsd0JBQXdCOzsyRkFHbkIsOEJBQThCO2tCQXhCMUMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUdQO3dCQUNMLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDM0I7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JOb2RlIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3R5cGVzL2ludGVybmFsJztcblxuaW1wb3J0IHsgRG90Q29kZUJsb2NrLCBEb3RCbG9ja1F1b3RlIH0gZnJvbSAnLi4vYmxvY2tzL2NvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdENvbnRlbnRsZXRCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9kb3QtY29udGVudGxldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90SW1hZ2VCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90QnVsbGV0TGlzdCwgRG90T3JkZXJlckxpc3QsIERvdExpc3RJdGVtIH0gZnJvbSAnLi4vYmxvY2tzL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFRhYmxlQmxvY2sgfSBmcm9tICcuLi9ibG9ja3MvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IERvdFBhcmFncmFwaEJsb2NrLCBEb3RUZXh0QmxvY2ssIERvdEhlYWRpbmdCbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb3RVbmtub3duQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi9ibG9ja3MvdW5rbm93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG90VmlkZW9CbG9jayB9IGZyb20gJy4uL2Jsb2Nrcy92aWRlby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tUmVuZGVyZXIgfSBmcm9tICcuLi9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9jaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIERvdFBhcmFncmFwaEJsb2NrLFxuICAgICAgICBEb3RUZXh0QmxvY2ssXG4gICAgICAgIERvdEhlYWRpbmdCbG9jayxcbiAgICAgICAgRG90QnVsbGV0TGlzdCxcbiAgICAgICAgRG90T3JkZXJlckxpc3QsXG4gICAgICAgIERvdExpc3RJdGVtLFxuICAgICAgICBEb3RDb2RlQmxvY2ssXG4gICAgICAgIERvdEJsb2NrUXVvdGUsXG4gICAgICAgIERvdEltYWdlQmxvY2ssXG4gICAgICAgIERvdFZpZGVvQmxvY2ssXG4gICAgICAgIERvdFRhYmxlQmxvY2ssXG4gICAgICAgIERvdENvbnRlbnRsZXRCbG9jayxcbiAgICAgICAgRG90VW5rbm93bkJsb2NrQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IEJsb2NrRWRpdG9yTm9kZVtdIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGN1c3RvbVJlbmRlcmVyczogQ3VzdG9tUmVuZGVyZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBCTE9DS1MgPSBCbG9ja0VkaXRvckRlZmF1bHRCbG9ja3M7XG59XG4iLCJAZm9yIChub2RlIG9mIGNvbnRlbnQ7IHRyYWNrIG5vZGUpIHtcbiAgICBAaWYgKGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0pIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBjdXN0b21SZW5kZXI7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyBjdXN0b21SZW5kZXI6IGN1c3RvbVJlbmRlcmVycz8uW25vZGUudHlwZV0sIG5vZGU6IG5vZGUgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5QQVJBR1JBUEgpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGggW3N0eWxlXT1cIm5vZGUuYXR0cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXBhcmFncmFwaD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwibm9kZS5tYXJrc1wiIFt0ZXh0XT1cIm5vZGUudGV4dCB8fCAnJ1wiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuSEVBRElORykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cIm5vZGUuYXR0cnMgfHwge31cIlxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibm9kZS5hdHRycz8uWydsZXZlbCddIHx8ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CVUxMRVRfTElTVCkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJ1bGxldC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYnVsbGV0LWxpc3Q+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuT1JERVJFRF9MSVNUKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItb3JkZXJlZC1saXN0PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkxJU1RfSVRFTSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm5vZGUuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWxpc3QtaXRlbT5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5CTE9DS19RVU9URSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrLXF1b3RlPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1ibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwibm9kZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgICAgICA8L2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2stcXVvdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuQ09ERV9CTE9DSykge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWNvZGUtYmxvY2s+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVJlbmRlcmVyc109XCJjdXN0b21SZW5kZXJlcnNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1jb2RlLWJsb2NrPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhBUkRCUkVBSykge1xuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkhPUklaT05UQUxfUlVMRSkge1xuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9JTUFHRSkge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWltYWdlIFthdHRyc109XCJub2RlLmF0dHJzIHx8IHt9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGNhc2UgKEJMT0NLUy5ET1RfVklERU8pIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci12aWRlbyBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChCTE9DS1MuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10YWJsZSBbY29udGVudF09XCJub2RlLmNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAY2FzZSAoQkxPQ0tTLkRPVF9DT05URU5UKSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItY29udGVudGxldFxuICAgICAgICAgICAgICAgICAgICBbYXR0cnNdPVwibm9kZS5hdHRycyB8fCB7fVwiXG4gICAgICAgICAgICAgICAgICAgIFtjdXN0b21SZW5kZXJlcnNdPVwiY3VzdG9tUmVuZGVyZXJzXCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXVua25vd24gW25vZGVdPVwibm9kZVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tUmVuZGVyIGxldC1jdXN0b21SZW5kZXI9XCJjdXN0b21SZW5kZXJcIiBsZXQtbm9kZT1cIm5vZGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImN1c3RvbVJlbmRlciB8IGFzeW5jOyBpbnB1dHM6IHsgY29udGVudDogbm9kZSB9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19