@dotcms/angular 0.0.1-beta.3 → 0.0.1-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dotcms-angular.d.ts.map +1 -1
  2. package/esm2022/dotcms-angular.mjs +2 -2
  3. package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
  4. package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
  5. package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
  6. package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
  7. package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
  8. package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
  9. package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
  10. package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +106 -0
  11. package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
  12. package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
  13. package/esm2022/lib/deprecated/models/index.mjs +3 -0
  14. package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
  15. package/esm2022/lib/deprecated/utils/image_loader.mjs +74 -0
  16. package/esm2022/lib/deprecated/utils/index.mjs +84 -0
  17. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  18. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.mjs +53 -0
  19. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  20. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  21. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  22. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  23. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  24. package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +46 -0
  25. package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +43 -0
  26. package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +246 -0
  27. package/esm2022/next/components/dotcms-editable-text/utils.mjs +20 -0
  28. package/esm2022/next/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  29. package/esm2022/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  30. package/esm2022/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +43 -0
  31. package/esm2022/next/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  32. package/esm2022/next/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  33. package/esm2022/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  34. package/esm2022/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  35. package/esm2022/next/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  36. package/esm2022/next/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  37. package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  38. package/esm2022/next/dotcms-angular-next.mjs +5 -0
  39. package/esm2022/next/models/index.mjs +3 -0
  40. package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  41. package/esm2022/next/public_api.mjs +7 -0
  42. package/esm2022/next/services/dotcms-editable-page.service.mjs +93 -0
  43. package/esm2022/next/store/dotcms.store.mjs +61 -0
  44. package/esm2022/public_api.mjs +2 -0
  45. package/fesm2022/dotcms-angular-next.mjs +1725 -0
  46. package/fesm2022/dotcms-angular-next.mjs.map +1 -0
  47. package/fesm2022/dotcms-angular.mjs +103 -10
  48. package/fesm2022/dotcms-angular.mjs.map +1 -1
  49. package/index.d.ts +6 -5
  50. package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +10 -6
  51. package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
  52. package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
  53. package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
  54. package/lib/deprecated/deprecated-api.d.ts +11 -0
  55. package/lib/deprecated/deprecated-api.d.ts.map +1 -0
  56. package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
  57. package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
  58. package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
  59. package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
  60. package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
  61. package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
  62. package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
  63. package/lib/deprecated/models/index.d.ts.map +1 -0
  64. package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
  65. package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
  66. package/lib/deprecated/utils/image_loader.d.ts +21 -0
  67. package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
  68. package/lib/deprecated/utils/index.d.ts.map +1 -0
  69. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  70. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  71. package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts +25 -0
  72. package/next/components/dotcms-block-editor-renderer/blocks/contentlet.component.d.ts.map +1 -0
  73. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  74. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  75. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  76. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  77. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  78. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  79. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  80. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  81. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  82. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  83. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +37 -0
  84. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  85. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  86. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  87. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
  88. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  89. package/next/components/dotcms-editable-text/utils.d.ts +7 -0
  90. package/next/components/dotcms-editable-text/utils.d.ts.map +1 -0
  91. package/next/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  92. package/next/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  93. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  94. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  95. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  96. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  97. package/next/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  98. package/next/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  99. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  100. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  101. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  102. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  103. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  104. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  105. package/next/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  106. package/next/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  107. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  108. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  109. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  110. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  111. package/next/dotcms-angular-next.d.ts.map +1 -0
  112. package/next/index.d.ts +6 -0
  113. package/next/models/index.d.ts +39 -0
  114. package/next/models/index.d.ts.map +1 -0
  115. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
  116. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  117. package/next/public_api.d.ts +7 -0
  118. package/next/public_api.d.ts.map +1 -0
  119. package/next/services/dotcms-editable-page.service.d.ts +40 -0
  120. package/next/services/dotcms-editable-page.service.d.ts.map +1 -0
  121. package/next/store/dotcms.store.d.ts +36 -0
  122. package/next/store/dotcms.store.d.ts.map +1 -0
  123. package/package.json +9 -2
  124. package/public_api.d.ts +2 -0
  125. package/public_api.d.ts.map +1 -0
  126. package/esm2022/index.mjs +0 -5
  127. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  128. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  129. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  130. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  131. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  132. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
  133. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  134. package/esm2022/lib/models/index.mjs +0 -3
  135. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  136. package/esm2022/lib/utils/index.mjs +0 -84
  137. package/index.d.ts.map +0 -1
  138. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  139. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  140. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  141. package/lib/layout/column/column.component.d.ts.map +0 -1
  142. package/lib/layout/container/container.component.d.ts.map +0 -1
  143. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  144. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  145. package/lib/layout/row/row.component.d.ts.map +0 -1
  146. package/lib/models/dotcms.model.d.ts.map +0 -1
  147. package/lib/models/index.d.ts.map +0 -1
  148. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  149. package/lib/utils/index.d.ts.map +0 -1
  150. /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
  151. /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
  152. /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
  153. /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
  154. /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
  155. /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
  156. /package/lib/{models → deprecated/models}/dotcms.model.d.ts +0 -0
  157. /package/lib/{models → deprecated/models}/index.d.ts +0 -0
  158. /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
@@ -0,0 +1,53 @@
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Default component for unknown content type
6
+ */
7
+ export class DotDefaultContentBlock {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotDefaultContentBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotDefaultContentBlock, selector: "dot-default-content", inputs: { contentlet: "contentlet" }, ngImport: i0, template: '<div>Unknown Content Type: {{ contentlet?.contentType }}</div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotDefaultContentBlock, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'dot-default-content',
15
+ template: '<div>Unknown Content Type: {{ contentlet?.contentType }}</div>',
16
+ changeDetection: ChangeDetectionStrategy.OnPush
17
+ }]
18
+ }], propDecorators: { contentlet: [{
19
+ type: Input
20
+ }] } });
21
+ /**
22
+ * DotContent component that renders content based on content type
23
+ */
24
+ export class DotContentletBlock {
25
+ constructor() {
26
+ this.$data = computed(() => this.attrs?.['data']);
27
+ }
28
+ ngOnInit() {
29
+ if (!this.$data()) {
30
+ console.error('DotCMSBlockEditorRendererContentlet: No data provided');
31
+ }
32
+ this.contentComponent =
33
+ this.customRenderers?.[this.$data()?.contentType] ??
34
+ import('./contentlet.component').then((m) => m.DotDefaultContentBlock);
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotContentletBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotContentletBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-contentlet", inputs: { customRenderers: "customRenderers", attrs: "attrs" }, ngImport: i0, template: '<ng-container *ngComponentOutlet="contentComponent | async; inputs: { contentlet: $data() }"></ng-container>', isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotContentletBlock, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'dotcms-block-editor-renderer-contentlet',
43
+ standalone: true,
44
+ imports: [NgComponentOutlet, AsyncPipe],
45
+ changeDetection: ChangeDetectionStrategy.OnPush,
46
+ template: '<ng-container *ngComponentOutlet="contentComponent | async; inputs: { contentlet: $data() }"></ng-container>'
47
+ }]
48
+ }], propDecorators: { customRenderers: [{
49
+ type: Input
50
+ }], attrs: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy9jb250ZW50bGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9wRjs7R0FFRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlHQUhyQixnRUFBZ0U7OzJGQUdqRSxzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLGdFQUFnRTtvQkFDMUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQUVZLFVBQVU7c0JBQWxCLEtBQUs7O0FBR1Y7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBY3VCLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBd0IsQ0FBQyxDQUFDO0tBVzFGO0lBVEcsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0I7WUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUFXLENBQUM7Z0JBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDL0UsQ0FBQzs4R0FoQlEsa0JBQWtCO2tHQUFsQixrQkFBa0IsbUtBRnZCLDhHQUE4Ryw0REFIeEcsaUJBQWlCLCtPQUFFLFNBQVM7OzJGQUs3QixrQkFBa0I7a0JBUjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFDSiw4R0FBOEc7aUJBQ3JIOzhCQUVZLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29udGVudGxldCwgQmxvY2tFZGl0b3JOb2RlIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5cbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3VzdG9tUmVuZGVyZXIgfSBmcm9tICcuLi9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRGVmYXVsdCBjb21wb25lbnQgZm9yIHVua25vd24gY29udGVudCB0eXBlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90LWRlZmF1bHQtY29udGVudCcsXG4gICAgdGVtcGxhdGU6ICc8ZGl2PlVua25vd24gQ29udGVudCBUeXBlOiB7eyBjb250ZW50bGV0Py5jb250ZW50VHlwZSB9fTwvZGl2PicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG90RGVmYXVsdENvbnRlbnRCbG9jayB7XG4gICAgQElucHV0KCkgY29udGVudGxldDogQ29udGVudGxldDx1bmtub3duPiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEb3RDb250ZW50IGNvbXBvbmVudCB0aGF0IHJlbmRlcnMgY29udGVudCBiYXNlZCBvbiBjb250ZW50IHR5cGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWNvbnRlbnRsZXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ29tcG9uZW50T3V0bGV0LCBBc3luY1BpcGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlOlxuICAgICAgICAnPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb250ZW50Q29tcG9uZW50IHwgYXN5bmM7IGlucHV0czogeyBjb250ZW50bGV0OiAkZGF0YSgpIH1cIj48L25nLWNvbnRhaW5lcj4nXG59KVxuZXhwb3J0IGNsYXNzIERvdENvbnRlbnRsZXRCbG9jayB7XG4gICAgQElucHV0KCkgY3VzdG9tUmVuZGVyZXJzOiBDdXN0b21SZW5kZXJlciB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBhdHRyczogQmxvY2tFZGl0b3JOb2RlWydhdHRycyddO1xuXG4gICAgY29udGVudENvbXBvbmVudDogRHluYW1pY0NvbXBvbmVudEVudGl0eSB8IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSAkZGF0YSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXR0cnM/LlsnZGF0YSddIGFzIENvbnRlbnRsZXQ8dW5rbm93bj4pO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy4kZGF0YSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdEb3RDTVNCbG9ja0VkaXRvclJlbmRlcmVyQ29udGVudGxldDogTm8gZGF0YSBwcm92aWRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250ZW50Q29tcG9uZW50ID1cbiAgICAgICAgICAgIHRoaXMuY3VzdG9tUmVuZGVyZXJzPy5bdGhpcy4kZGF0YSgpPy5jb250ZW50VHlwZV0gPz9cbiAgICAgICAgICAgIGltcG9ydCgnLi9jb250ZW50bGV0LmNvbXBvbmVudCcpLnRoZW4oKG0pID0+IG0uRG90RGVmYXVsdENvbnRlbnRCbG9jayk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,25 @@
1
+ import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DotImageBlock {
4
+ constructor() {
5
+ this.$srcURL = computed(() => this.attrs?.['src']);
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotImageBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotImageBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-image", inputs: { attrs: "attrs" }, ngImport: i0, template: `
9
+ <img [alt]="attrs?.['alt']" [src]="$srcURL()" />
10
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotImageBlock, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: 'dotcms-block-editor-renderer-image',
16
+ standalone: true,
17
+ template: `
18
+ <img [alt]="attrs?.['alt']" [src]="$srcURL()" />
19
+ `,
20
+ changeDetection: ChangeDetectionStrategy.OnPush
21
+ }]
22
+ }], propDecorators: { attrs: [{
23
+ type: Input
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9ibG9ja3MvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZcEYsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFXdUIsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNwRTs4R0FKWSxhQUFhO2tHQUFiLGFBQWEsMEhBTFo7O0tBRVQ7OzJGQUdRLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7S0FFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBRVksS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsb2NrRWRpdG9yTm9kZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaW1hZ2UnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGltZyBbYWx0XT1cImF0dHJzPy5bJ2FsdCddXCIgW3NyY109XCIkc3JjVVJMKClcIiAvPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG90SW1hZ2VCbG9jayB7XG4gICAgQElucHV0KCkgYXR0cnMhOiBCbG9ja0VkaXRvck5vZGVbJ2F0dHJzJ107XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJHNyY1VSTCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXR0cnM/Llsnc3JjJ10pO1xufVxuIl19
@@ -0,0 +1,66 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DotBulletList {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotBulletList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotBulletList, isStandalone: true, selector: "dotcms-block-editor-renderer-bullet-list", ngImport: i0, template: `
6
+ <ul>
7
+ <ng-content />
8
+ </ul>
9
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotBulletList, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'dotcms-block-editor-renderer-bullet-list',
15
+ standalone: true,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ template: `
18
+ <ul>
19
+ <ng-content />
20
+ </ul>
21
+ `
22
+ }]
23
+ }] });
24
+ export class DotOrdererList {
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotOrdererList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotOrdererList, isStandalone: true, selector: "dotcms-block-editor-renderer-ordered-list", ngImport: i0, template: `
27
+ <ol>
28
+ <ng-content />
29
+ </ol>
30
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotOrdererList, decorators: [{
33
+ type: Component,
34
+ args: [{
35
+ selector: 'dotcms-block-editor-renderer-ordered-list',
36
+ standalone: true,
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ template: `
39
+ <ol>
40
+ <ng-content />
41
+ </ol>
42
+ `
43
+ }]
44
+ }] });
45
+ export class DotListItem {
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotListItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DotListItem, isStandalone: true, selector: "dotcms-block-editor-renderer-list-item", ngImport: i0, template: `
48
+ <li>
49
+ <ng-content />
50
+ </li>
51
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotListItem, decorators: [{
54
+ type: Component,
55
+ args: [{
56
+ selector: 'dotcms-block-editor-renderer-list-item',
57
+ standalone: true,
58
+ changeDetection: ChangeDetectionStrategy.OnPush,
59
+ template: `
60
+ <li>
61
+ <ng-content />
62
+ </li>
63
+ `
64
+ }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy9saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVluRSxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhO2tHQUFiLGFBQWEsb0dBTlo7Ozs7S0FJVDs7MkZBRVEsYUFBYTtrQkFWekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7OztLQUlUO2lCQUNKOztBQWFELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7a0dBQWQsY0FBYyxxR0FOYjs7OztLQUlUOzsyRkFFUSxjQUFjO2tCQVYxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQ0FBMkM7b0JBQ3JELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7O0tBSVQ7aUJBQ0o7O0FBYUQsTUFBTSxPQUFPLFdBQVc7OEdBQVgsV0FBVztrR0FBWCxXQUFXLGtHQU5WOzs7O0tBSVQ7OzJGQUVRLFdBQVc7a0JBVnZCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7S0FJVDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLWJ1bGxldC1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvdWw+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RCdWxsZXRMaXN0IHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1vcmRlcmVkLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG9sPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9vbD5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdE9yZGVyZXJMaXN0IHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1saXN0LWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGxpPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9saT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdExpc3RJdGVtIHt9XG4iXX0=
@@ -0,0 +1,97 @@
1
+ import { NgComponentOutlet } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { DotCMSBlockEditorItemComponent } from '../item/dotcms-block-editor-item.component';
4
+ import * as i0 from "@angular/core";
5
+ export class DotTableBlock {
6
+ constructor() {
7
+ this.blockEditorItem = DotCMSBlockEditorItemComponent;
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotTableBlock, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotTableBlock, isStandalone: true, selector: "dotcms-block-editor-renderer-table", inputs: { content: "content" }, ngImport: i0, template: `
11
+ <table>
12
+ <thead>
13
+ @for (rowNode of content?.slice(0, 1); track rowNode.type) {
14
+ <tr>
15
+ @for (cellNode of rowNode.content; track cellNode.type) {
16
+ <th
17
+ [attr.colspan]="cellNode.attrs?.['colspan'] || 1"
18
+ [attr.rowspan]="cellNode.attrs?.['rowspan'] || 1">
19
+ <ng-container
20
+ *ngComponentOutlet="
21
+ blockEditorItem;
22
+ inputs: { content: cellNode.content }
23
+ "></ng-container>
24
+ </th>
25
+ }
26
+ </tr>
27
+ }
28
+ </thead>
29
+ <tbody>
30
+ @for (rowNode of content?.slice(1); track rowNode.type) {
31
+ <tr>
32
+ @for (cellNode of rowNode.content; track cellNode.type) {
33
+ <td
34
+ [attr.colspan]="cellNode.attrs?.['colspan'] || 1"
35
+ [attr.rowspan]="cellNode.attrs?.['rowspan'] || 1">
36
+ <ng-container
37
+ *ngComponentOutlet="
38
+ blockEditorItem;
39
+ inputs: { content: cellNode.content }
40
+ "></ng-container>
41
+ </td>
42
+ }
43
+ </tr>
44
+ }
45
+ </tbody>
46
+ </table>
47
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotTableBlock, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'dotcms-block-editor-renderer-table',
53
+ standalone: true,
54
+ imports: [NgComponentOutlet],
55
+ template: `
56
+ <table>
57
+ <thead>
58
+ @for (rowNode of content?.slice(0, 1); track rowNode.type) {
59
+ <tr>
60
+ @for (cellNode of rowNode.content; track cellNode.type) {
61
+ <th
62
+ [attr.colspan]="cellNode.attrs?.['colspan'] || 1"
63
+ [attr.rowspan]="cellNode.attrs?.['rowspan'] || 1">
64
+ <ng-container
65
+ *ngComponentOutlet="
66
+ blockEditorItem;
67
+ inputs: { content: cellNode.content }
68
+ "></ng-container>
69
+ </th>
70
+ }
71
+ </tr>
72
+ }
73
+ </thead>
74
+ <tbody>
75
+ @for (rowNode of content?.slice(1); track rowNode.type) {
76
+ <tr>
77
+ @for (cellNode of rowNode.content; track cellNode.type) {
78
+ <td
79
+ [attr.colspan]="cellNode.attrs?.['colspan'] || 1"
80
+ [attr.rowspan]="cellNode.attrs?.['rowspan'] || 1">
81
+ <ng-container
82
+ *ngComponentOutlet="
83
+ blockEditorItem;
84
+ inputs: { content: cellNode.content }
85
+ "></ng-container>
86
+ </td>
87
+ }
88
+ </tr>
89
+ }
90
+ </tbody>
91
+ </table>
92
+ `
93
+ }]
94
+ }], propDecorators: { content: [{
95
+ type: Input
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9ibG9ja3MvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQTRDNUYsTUFBTSxPQUFPLGFBQWE7SUEzQzFCO1FBNkNJLG9CQUFlLEdBQUcsOEJBQThCLENBQUM7S0FDcEQ7OEdBSFksYUFBYTtrR0FBYixhQUFhLDhIQXZDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXFDVCw0REF0Q1MsaUJBQWlCOzsyRkF3Q2xCLGFBQWE7a0JBM0N6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBcUNUO2lCQUNKOzhCQUVZLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JOb2RlIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5cbmltcG9ydCB7IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2l0ZW0vZG90Y21zLWJsb2NrLWVkaXRvci1pdGVtLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGFibGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ29tcG9uZW50T3V0bGV0XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgQGZvciAocm93Tm9kZSBvZiBjb250ZW50Py5zbGljZSgwLCAxKTsgdHJhY2sgcm93Tm9kZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNlbGxOb2RlIG9mIHJvd05vZGUuY29udGVudDsgdHJhY2sgY2VsbE5vZGUudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNlbGxOb2RlLmF0dHJzPy5bJ2NvbHNwYW4nXSB8fCAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucm93c3Bhbl09XCJjZWxsTm9kZS5hdHRycz8uWydyb3dzcGFuJ10gfHwgMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja0VkaXRvckl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IGNvbnRlbnQ6IGNlbGxOb2RlLmNvbnRlbnQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIEBmb3IgKHJvd05vZGUgb2YgY29udGVudD8uc2xpY2UoMSk7IHRyYWNrIHJvd05vZGUudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjZWxsTm9kZSBvZiByb3dOb2RlLmNvbnRlbnQ7IHRyYWNrIGNlbGxOb2RlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjZWxsTm9kZS5hdHRycz8uWydjb2xzcGFuJ10gfHwgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJvd3NwYW5dPVwiY2VsbE5vZGUuYXR0cnM/Llsncm93c3BhbiddIHx8IDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tFZGl0b3JJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBjb250ZW50OiBjZWxsTm9kZS5jb250ZW50IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdFRhYmxlQmxvY2sge1xuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IEJsb2NrRWRpdG9yTm9kZVtdIHwgdW5kZWZpbmVkO1xuICAgIGJsb2NrRWRpdG9ySXRlbSA9IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudDtcbn1cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2Jsb2Nrcy90ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBY3BGLE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtHQU5oQjs7OztLQUlUOzsyRkFFUSxpQkFBaUI7a0JBVjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7S0FJVDtpQkFDSjs7QUErQ0QsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTtrR0FBZixlQUFlLDRIQXhDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzQ1Q7OzJGQUVRLGVBQWU7a0JBNUMzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNDVDtpQkFDSjs4QkFFWSxLQUFLO3NCQUFiLEtBQUs7O0FBeURWLE1BQU0sT0FBTyxZQUFZO0lBakR6QjtRQWtEYSxVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUNwQyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRUEsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBRXBELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztLQUNOOzhHQWhCWSxZQUFZO2tHQUFaLFlBQVksdUlBN0NYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkNULDREQUVRLFlBQVk7OzJGQUFaLFlBQVk7a0JBakR4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkNUO2lCQUNKOzhCQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmxvY2tFZGl0b3JNYXJrIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci1wYXJhZ3JhcGgnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHA+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L3A+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RQYXJhZ3JhcGhCbG9jayB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItaGVhZGluZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAc3dpdGNoIChsZXZlbCkge1xuICAgICAgICAgICAgQGNhc2UgKCcxJykge1xuICAgICAgICAgICAgICAgIDxoMT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCcyJykge1xuICAgICAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCczJykge1xuICAgICAgICAgICAgICAgIDxoMz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc0Jykge1xuICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc1Jykge1xuICAgICAgICAgICAgICAgIDxoNT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g1PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCc2Jykge1xuICAgICAgICAgICAgICAgIDxoNj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2g2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIDxoMT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBEb3RIZWFkaW5nQmxvY2sge1xuICAgIEBJbnB1dCgpIGxldmVsITogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGV4dEJsb2NrUHJvcHMge1xuICAgIG1hcmtzPzogQmxvY2tFZGl0b3JNYXJrW107XG4gICAgdGV4dD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQHN3aXRjaCAobWFya3M/LlswXT8udHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKCdsaW5rJykge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiJGN1cnJlbnRBdHRycygpWydocmVmJ10gfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiJGN1cnJlbnRBdHRycygpWyd0YXJnZXQnXSB8fCAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnYm9sZCcpIHtcbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCd1bmRlcmxpbmUnKSB7XG4gICAgICAgICAgICAgICAgPHU+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQgW21hcmtzXT1cIiRyZW1haW5pbmdNYXJrcygpXCIgW3RleHRdPVwidGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC91PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdpdGFsaWMnKSB7XG4gICAgICAgICAgICAgICAgPGVtPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N0cmlrZScpIHtcbiAgICAgICAgICAgICAgICA8cz5cbiAgICAgICAgICAgICAgICAgICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdGV4dCBbbWFya3NdPVwiJHJlbWFpbmluZ01hcmtzKClcIiBbdGV4dF09XCJ0ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICA8L3M+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N1cGVyc2NyaXB0Jykge1xuICAgICAgICAgICAgICAgIDxzdXA+XG4gICAgICAgICAgICAgICAgICAgIDxkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLXRleHQgW21hcmtzXT1cIiRyZW1haW5pbmdNYXJrcygpXCIgW3RleHRdPVwidGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdXA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3N1YnNjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICA8c3ViPlxuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci10ZXh0IFttYXJrc109XCIkcmVtYWluaW5nTWFya3MoKVwiIFt0ZXh0XT1cInRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ViPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgRG90VGV4dEJsb2NrIHtcbiAgICBASW5wdXQoKSBtYXJrczogVGV4dEJsb2NrUHJvcHNbJ21hcmtzJ10gPSBbXTtcbiAgICBASW5wdXQoKSB0ZXh0ID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJHJlbWFpbmluZ01hcmtzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXJrcz8uc2xpY2UoMSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRjdXJyZW50QXR0cnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF0dHJzID0geyAuLi4odGhpcy5tYXJrcz8uWzBdPy5hdHRycyB8fCB7fSkgfTtcblxuICAgICAgICBpZiAoYXR0cnNbJ2NsYXNzJ10pIHtcbiAgICAgICAgICAgIGF0dHJzWydjbGFzc05hbWUnXSA9IGF0dHJzWydjbGFzcyddO1xuICAgICAgICAgICAgZGVsZXRlIGF0dHJzWydjbGFzcyddO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF0dHJzO1xuICAgIH0pO1xufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9ibG9ja3MvdmlkZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QnBGLE1BQU0sT0FBTyxhQUFhO0lBbkIxQjtRQXNCdUIsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU5QyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7S0FDdkY7OEdBTlksYUFBYTtrR0FBYixhQUFhLDBIQWZaOzs7Ozs7Ozs7Ozs7O0tBYVQ7OzJGQUVRLGFBQWE7a0JBbkJ6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7aUJBQ0o7OEJBRVksS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsb2NrRWRpdG9yTm9kZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItdmlkZW8nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHZpZGVvXG4gICAgICAgICAgICBbY29udHJvbHNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBwcmVsb2FkPVwibWV0YWRhdGFcIlxuICAgICAgICAgICAgW3Bvc3Rlcl09XCJ0aGlzLiRwb3N0ZXJVUkwoKVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiYXR0cnM/Llsnd2lkdGgnXVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cImF0dHJzPy5bJ2hlaWdodCddXCI+XG4gICAgICAgICAgICA8dHJhY2sgZGVmYXVsdCBraW5kPVwiY2FwdGlvbnNcIiBzcmNsYW5nPVwiZW5cIiAvPlxuICAgICAgICAgICAgPHNvdXJjZSBbc3JjXT1cInRoaXMuJHNyY1VSTCgpXCIgW3R5cGVdPVwiYXR0cnM/LlsnbWltZVR5cGUnXVwiIC8+XG4gICAgICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGVcbiAgICAgICAgICAgIDxjb2RlPnZpZGVvPC9jb2RlPlxuICAgICAgICAgICAgZWxlbWVudC5cbiAgICAgICAgPC92aWRlbz5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIERvdFZpZGVvQmxvY2sge1xuICAgIEBJbnB1dCgpIGF0dHJzITogQmxvY2tFZGl0b3JOb2RlWydhdHRycyddO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRzcmNVUkwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF0dHJzPy5bJ3NyYyddKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSAkcG9zdGVyVVJMID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdHRycz8uWydkYXRhJ10/LlsndGh1bWJuYWlsJ10pO1xufVxuIl19
@@ -0,0 +1,46 @@
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" }, 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 <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\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 <dotcms-block-editor-renderer-block\n [content]=\"blocks.content\"\n [customRenderers]=\"customRenderers\" />\n}\n" }]
41
+ }], propDecorators: { blocks: [{
42
+ type: Input
43
+ }], customRenderers: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L2NvbXBvbmVudHMvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFZM0Y7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBUUgsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVdJLHNCQUFpQixHQUFHLE1BQU0sQ0FBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBV2pFO0lBVEcsUUFBUTtRQUNKLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs4R0FmUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywwSkMxQy9DLDhVQVNBLDBERCtCYyw4QkFBOEI7OzJGQUUvQixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0ksOEJBQThCLGNBQzVCLElBQUksV0FHUCxDQUFDLDhCQUE4QixDQUFDOzhCQUdoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVVkVfTU9ERSwgQmxvY2tFZGl0b3JDb250ZW50IH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBCbG9ja0VkaXRvclN0YXRlIH0gZnJvbSAnQGRvdGNtcy90eXBlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdXZlJztcbmltcG9ydCB7IGlzVmFsaWRCbG9ja3MgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU0Jsb2NrRWRpdG9ySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9kb3RjbXMtYmxvY2stZWRpdG9yLWl0ZW0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEN1c3RvbSBSZW5kZXJlciB1c2VkIGJ5IHRoZSBCbG9jayBFZGl0b3IgQ29tcG9uZW50XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBDdXN0b21SZW5kZXJlclxuICovXG5leHBvcnQgdHlwZSBDdXN0b21SZW5kZXJlciA9IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVuZGVycyBjb250ZW50IGZyb20gRG90Q01TJ3MgQmxvY2sgRWRpdG9yIGZpZWxkLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJlbmRlciBCbG9jayBFZGl0b3IgY29udGVudCBpbiB5b3VyIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHN0YW5kYXJkIGJsb2NrcyBhbmQgYWxsb3dzIGN1c3RvbWl6YXRpb24gdGhyb3VnaCBjdXN0b20gcmVuZGVyZXJzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEJsb2NrIEVkaXRvciwgc2VlIHtAbGluayBodHRwczovL2Rldi5kb3RjbXMuY29tL2RvY3MvYmxvY2stZWRpdG9yfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8ZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlclxuICogICBbYmxvY2tzXT1cIm15QmxvY2tFZGl0b3JDb250ZW50XCJcbiAqICAgW2N1c3RvbVJlbmRlcmVyc109XCJteUN1c3RvbVJlbmRlcmVyc1wiPlxuICogPC9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtEb3RDTVNCbG9ja0VkaXRvckl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU0Jsb2NrRWRpdG9yUmVuZGVyZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGJsb2NrcyE6IEJsb2NrRWRpdG9yQ29udGVudDtcbiAgICBASW5wdXQoKSBjdXN0b21SZW5kZXJlcnM6IEN1c3RvbVJlbmRlcmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgJGJsb2NrRWRpdG9yU3RhdGUgPSBzaWduYWw8QmxvY2tFZGl0b3JTdGF0ZT4oeyBlcnJvcjogbnVsbCB9KTtcbiAgICAkaXNJbkVkaXRNb2RlID0gc2lnbmFsKGdldFVWRVN0YXRlKCk/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gaXNWYWxpZEJsb2Nrcyh0aGlzLmJsb2Nrcyk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBkb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyOiAnLCBzdGF0ZS5lcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiRibG9ja0VkaXRvclN0YXRlLnNldChpc1ZhbGlkQmxvY2tzKHRoaXMuYmxvY2tzKSk7XG4gICAgfVxufVxuIiwiQGlmICgkYmxvY2tFZGl0b3JTdGF0ZSgpLmVycm9yICYmICRpc0luRWRpdE1vZGUoKSkge1xuICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJpbnZhbGlkLWJsb2Nrcy1tZXNzYWdlXCI+XG4gICAgICAgIHt7ICRibG9ja0VkaXRvclN0YXRlKCkuZXJyb3IgfX1cbiAgICA8L2Rpdj5cbn0gQGVsc2UgaWYgKCEkYmxvY2tFZGl0b3JTdGF0ZSgpLmVycm9yKSB7XG4gICAgPGRvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXItYmxvY2tcbiAgICAgICAgW2NvbnRlbnRdPVwiYmxvY2tzLmNvbnRlbnRcIlxuICAgICAgICBbY3VzdG9tUmVuZGVyZXJzXT1cImN1c3RvbVJlbmRlcmVyc1wiIC8+XG59XG4iXX0=