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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +642 -167
  2. package/dotcms-angular.d.ts.map +1 -1
  3. package/esm2022/dotcms-angular.mjs +2 -2
  4. package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
  5. package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
  6. package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
  7. package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
  8. package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
  9. package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
  10. package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
  11. package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +106 -0
  12. package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
  13. package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
  14. package/esm2022/lib/deprecated/models/index.mjs +3 -0
  15. package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
  16. package/esm2022/lib/deprecated/utils/image_loader.mjs +74 -0
  17. package/esm2022/lib/deprecated/utils/index.mjs +84 -0
  18. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  19. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  20. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  21. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  22. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  23. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  24. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  25. package/esm2022/next/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  26. package/esm2022/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
  27. package/esm2022/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
  28. package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
  29. package/esm2022/next/components/dotcms-editable-text/utils.mjs +20 -0
  30. package/esm2022/next/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  31. package/esm2022/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  32. package/esm2022/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
  33. package/esm2022/next/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  34. package/esm2022/next/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  35. package/esm2022/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  36. package/esm2022/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  37. package/esm2022/next/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  38. package/esm2022/next/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  39. package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  40. package/esm2022/next/dotcms-angular-next.mjs +5 -0
  41. package/esm2022/next/models/index.mjs +3 -0
  42. package/esm2022/next/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
  43. package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  44. package/esm2022/next/public_api.mjs +8 -0
  45. package/esm2022/next/services/dotcms-editable-page.service.mjs +93 -0
  46. package/esm2022/next/store/dotcms.store.mjs +61 -0
  47. package/esm2022/public_api.mjs +2 -0
  48. package/fesm2022/dotcms-angular-next.mjs +1904 -0
  49. package/fesm2022/dotcms-angular-next.mjs.map +1 -0
  50. package/fesm2022/dotcms-angular.mjs +103 -10
  51. package/fesm2022/dotcms-angular.mjs.map +1 -1
  52. package/index.d.ts +6 -5
  53. package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +10 -6
  54. package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
  55. package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
  56. package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
  57. package/lib/deprecated/deprecated-api.d.ts +11 -0
  58. package/lib/deprecated/deprecated-api.d.ts.map +1 -0
  59. package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
  60. package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
  61. package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
  62. package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
  63. package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
  64. package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
  65. package/lib/{models → deprecated/models}/dotcms.model.d.ts +2 -2
  66. package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
  67. package/lib/deprecated/models/index.d.ts.map +1 -0
  68. package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
  69. package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
  70. package/lib/deprecated/utils/image_loader.d.ts +21 -0
  71. package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
  72. package/lib/deprecated/utils/index.d.ts.map +1 -0
  73. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  74. package/next/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  75. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  76. package/next/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  77. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  78. package/next/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  79. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  80. package/next/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  81. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  82. package/next/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  83. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  84. package/next/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  85. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  86. package/next/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  87. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  88. package/next/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  89. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
  90. package/next/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  91. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  92. package/next/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  93. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
  94. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  95. package/next/components/dotcms-editable-text/utils.d.ts +7 -0
  96. package/next/components/dotcms-editable-text/utils.d.ts.map +1 -0
  97. package/next/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  98. package/next/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  99. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  100. package/next/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  101. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  102. package/next/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  103. package/next/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  104. package/next/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  105. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  106. package/next/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  107. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  108. package/next/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  109. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  110. package/next/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  111. package/next/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  112. package/next/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  113. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  114. package/next/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  115. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  116. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  117. package/next/dotcms-angular-next.d.ts.map +1 -0
  118. package/next/index.d.ts +6 -0
  119. package/next/models/index.d.ts +39 -0
  120. package/next/models/index.d.ts.map +1 -0
  121. package/next/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
  122. package/next/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
  123. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
  124. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  125. package/next/public_api.d.ts +8 -0
  126. package/next/public_api.d.ts.map +1 -0
  127. package/next/services/dotcms-editable-page.service.d.ts +40 -0
  128. package/next/services/dotcms-editable-page.service.d.ts.map +1 -0
  129. package/next/store/dotcms.store.d.ts +36 -0
  130. package/next/store/dotcms.store.d.ts.map +1 -0
  131. package/package.json +9 -2
  132. package/public_api.d.ts +2 -0
  133. package/public_api.d.ts.map +1 -0
  134. package/esm2022/index.mjs +0 -5
  135. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  136. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  137. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  138. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  139. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  140. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
  141. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  142. package/esm2022/lib/models/index.mjs +0 -3
  143. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  144. package/esm2022/lib/utils/index.mjs +0 -84
  145. package/index.d.ts.map +0 -1
  146. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  147. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  148. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  149. package/lib/layout/column/column.component.d.ts.map +0 -1
  150. package/lib/layout/container/container.component.d.ts.map +0 -1
  151. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  152. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  153. package/lib/layout/row/row.component.d.ts.map +0 -1
  154. package/lib/models/dotcms.model.d.ts.map +0 -1
  155. package/lib/models/index.d.ts.map +0 -1
  156. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  157. package/lib/utils/index.d.ts.map +0 -1
  158. /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
  159. /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
  160. /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
  161. /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
  162. /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
  163. /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
  164. /package/lib/{models → deprecated/models}/index.d.ts +0 -0
  165. /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
@@ -0,0 +1,69 @@
1
+ import { ChangeDetectionStrategy, Component, inject, Input, signal } from '@angular/core';
2
+ import { PageErrorMessageComponent } from './components/page-error-message/page-error-message.component';
3
+ import { RowComponent } from './components/row/row.component';
4
+ import { DotCMSStore } from '../../store/dotcms.store';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * @description This component is used to render the layout for a DotCMS page.
8
+ * @param {DotCMSPageAsset} page - The page to render the layout for
9
+ * @param {DotCMSPageComponent} components - The components to render the layout for
10
+ * @param {DotCMSPageRendererMode} mode - The mode to render the layout for
11
+ *
12
+ * @example
13
+ * <dotcms-layout-body [page]="page" [components]="components" [mode]="'development'" />
14
+ *
15
+ * @export
16
+ * @implements {OnChanges}
17
+ * @class DotCMSLayoutBodyComponent
18
+ */
19
+ export class DotCMSLayoutBodyComponent {
20
+ constructor() {
21
+ this.components = {};
22
+ this.mode = 'production';
23
+ this.#dotCMSStore = inject(DotCMSStore);
24
+ this.$isDevMode = this.#dotCMSStore.$isDevMode;
25
+ this.$rows = signal([]);
26
+ this.$isEmpty = signal(false);
27
+ }
28
+ #dotCMSStore;
29
+ ngOnChanges() {
30
+ this.#dotCMSStore.setStore({
31
+ page: this.page,
32
+ components: this.components,
33
+ mode: this.mode
34
+ });
35
+ this.$isEmpty.set(!this.page?.layout?.body);
36
+ this.$rows.set(this.page?.layout?.body?.rows ?? []);
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSLayoutBodyComponent, isStandalone: true, selector: "dotcms-layout-body", inputs: { page: "page", components: "components", mode: "mode" }, providers: [DotCMSStore], usesOnChanges: true, ngImport: i0, template: `
40
+ @if ($isEmpty() && $isDevMode()) {
41
+ <dotcms-page-error-message />
42
+ } @else {
43
+ @for (row of $rows(); track row.identifier) {
44
+ <dotcms-row [row]="row" />
45
+ }
46
+ }
47
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: PageErrorMessageComponent, selector: "dotcms-page-error-message" }, { kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'dotcms-layout-body', standalone: true, imports: [PageErrorMessageComponent, RowComponent], providers: [DotCMSStore], template: `
52
+ @if ($isEmpty() && $isDevMode()) {
53
+ <dotcms-page-error-message />
54
+ } @else {
55
+ @for (row of $rows(); track row.identifier) {
56
+ <dotcms-row [row]="row" />
57
+ }
58
+ }
59
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
60
+ }], propDecorators: { page: [{
61
+ type: Input,
62
+ args: [{ required: true }]
63
+ }], components: [{
64
+ type: Input,
65
+ args: [{ required: true }]
66
+ }], mode: [{
67
+ type: Input
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC1ib2R5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBQ3ZEOzs7Ozs7Ozs7Ozs7R0FZRztBQWtCSCxNQUFNLE9BQU8seUJBQXlCO0lBakJ0QztRQW1CK0IsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFDdkQsU0FBSSxHQUEyQixZQUFZLENBQUM7UUFFckQsaUJBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBRTFDLFVBQUssR0FBRyxNQUFNLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FhNUI7SUFuQkcsWUFBWSxDQUF1QjtJQVFuQyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0F2QlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUlBYnZCLENBQUMsV0FBVyxDQUFDLCtDQUNkOzs7Ozs7OztLQVFULGdHQVZTLHlCQUF5QixzRUFBRSxZQUFZOzsyRkFjeEMseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLGFBQ3ZDLENBQUMsV0FBVyxDQUFDLFlBQ2Q7Ozs7Ozs7O0tBUVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TUGFnZUFzc2V0LCBEb3RDTVNQYWdlUmVuZGVyZXJNb2RlLCBEb3RQYWdlQXNzZXRMYXlvdXRSb3cgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuaW1wb3J0IHsgUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWVycm9yLW1lc3NhZ2UvcGFnZS1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvZG90Y21zLnN0b3JlJztcbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yIGEgRG90Q01TIHBhZ2UuXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VBc3NldH0gcGFnZSAtIFRoZSBwYWdlIHRvIHJlbmRlciB0aGUgbGF5b3V0IGZvclxuICogQHBhcmFtIHtEb3RDTVNQYWdlQ29tcG9uZW50fSBjb21wb25lbnRzIC0gVGhlIGNvbXBvbmVudHMgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9IG1vZGUgLSBUaGUgbW9kZSB0byByZW5kZXIgdGhlIGxheW91dCBmb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogPGRvdGNtcy1sYXlvdXQtYm9keSBbcGFnZV09XCJwYWdlXCIgW2NvbXBvbmVudHNdPVwiY29tcG9uZW50c1wiIFttb2RlXT1cIidkZXZlbG9wbWVudCdcIiAvPlxuICpcbiAqIEBleHBvcnRcbiAqIEBpbXBsZW1lbnRzIHtPbkNoYW5nZXN9XG4gKiBAY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1sYXlvdXQtYm9keScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCwgUm93Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtEb3RDTVNTdG9yZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICgkaXNFbXB0eSgpICYmICRpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgPGRvdGNtcy1wYWdlLWVycm9yLW1lc3NhZ2UgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAZm9yIChyb3cgb2YgJHJvd3MoKTsgdHJhY2sgcm93LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLXJvdyBbcm93XT1cInJvd1wiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFnZSE6IERvdENNU1BhZ2VBc3NldDtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb21wb25lbnRzOiBEb3RDTVNQYWdlQ29tcG9uZW50ID0ge307XG4gICAgQElucHV0KCkgbW9kZTogRG90Q01TUGFnZVJlbmRlcmVyTW9kZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICNkb3RDTVNTdG9yZSA9IGluamVjdChEb3RDTVNTdG9yZSk7XG5cbiAgICAkaXNEZXZNb2RlID0gdGhpcy4jZG90Q01TU3RvcmUuJGlzRGV2TW9kZTtcblxuICAgICRyb3dzID0gc2lnbmFsPERvdFBhZ2VBc3NldExheW91dFJvd1tdPihbXSk7XG5cbiAgICAkaXNFbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy4jZG90Q01TU3RvcmUuc2V0U3RvcmUoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgY29tcG9uZW50czogdGhpcy5jb21wb25lbnRzLFxuICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuJGlzRW1wdHkuc2V0KCF0aGlzLnBhZ2U/LmxheW91dD8uYm9keSk7XG5cbiAgICAgICAgdGhpcy4kcm93cy5zZXQodGhpcy5wYWdlPy5sYXlvdXQ/LmJvZHk/LnJvd3MgPz8gW10pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Directive, Input, ViewContainerRef, TemplateRef, inject } from '@angular/core';
2
+ import { UVE_MODE } from '@dotcms/types';
3
+ import { getUVEState } from '@dotcms/uve';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Directive to show a template when the UVE is in a specific mode.
7
+ *
8
+ * @example
9
+ * <div *dotCMSShowWhen="UVE_MODE.EDIT">
10
+ * This will be shown when the UVE is in edit mode.
11
+ * </div>
12
+ *
13
+ * @export
14
+ * @class DotCMSShowWhenDirective
15
+ */
16
+ export class DotCMSShowWhenDirective {
17
+ #when = UVE_MODE.EDIT;
18
+ #hasView = false;
19
+ set dotCMSShowWhen(value) {
20
+ this.#when = value;
21
+ this.updateViewContainer();
22
+ }
23
+ #viewContainerRef = inject(ViewContainerRef);
24
+ #templateRef = inject(TemplateRef);
25
+ updateViewContainer() {
26
+ const state = getUVEState();
27
+ const shouldShow = state?.mode === this.#when;
28
+ if (shouldShow && !this.#hasView) {
29
+ this.#viewContainerRef.createEmbeddedView(this.#templateRef);
30
+ this.#hasView = true;
31
+ }
32
+ else if (!shouldShow && this.#hasView) {
33
+ this.#viewContainerRef.clear();
34
+ this.#hasView = false;
35
+ }
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: DotCMSShowWhenDirective, isStandalone: true, selector: "[dotCMSShowWhen]", inputs: { dotCMSShowWhen: "dotCMSShowWhen" }, ngImport: i0 }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: '[dotCMSShowWhen]',
44
+ standalone: true
45
+ }]
46
+ }], propDecorators: { dotCMSShowWhen: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLXNob3ctd2hlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvZGlyZWN0aXZlcy9kb3RjbXMtc2hvdy13aGVuL2RvdGNtcy1zaG93LXdoZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxLQUFLLEdBQWEsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWpCLElBQWEsY0FBYyxDQUFDLEtBQWU7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFM0IsbUJBQW1CO1FBQ3ZCLE1BQU0sS0FBSyxHQUF5QixXQUFXLEVBQUUsQ0FBQztRQUVsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOzhHQXhCUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBS2dCLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFVWRV9NT0RFLCBVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHNob3cgYSB0ZW1wbGF0ZSB3aGVuIHRoZSBVVkUgaXMgaW4gYSBzcGVjaWZpYyBtb2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8ZGl2ICpkb3RDTVNTaG93V2hlbj1cIlVWRV9NT0RFLkVESVRcIj5cbiAqICAgICBUaGlzIHdpbGwgYmUgc2hvd24gd2hlbiB0aGUgVVZFIGlzIGluIGVkaXQgbW9kZS5cbiAqIDwvZGl2PlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RDTVNTaG93V2hlbkRpcmVjdGl2ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tkb3RDTVNTaG93V2hlbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TU2hvd1doZW5EaXJlY3RpdmUge1xuICAgICN3aGVuOiBVVkVfTU9ERSA9IFVWRV9NT0RFLkVESVQ7XG4gICAgI2hhc1ZpZXcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBkb3RDTVNTaG93V2hlbih2YWx1ZTogVVZFX01PREUpIHtcbiAgICAgICAgdGhpcy4jd2hlbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAjdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAjdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3Q29udGFpbmVyKCkge1xuICAgICAgICBjb25zdCBzdGF0ZTogVVZFU3RhdGUgfCB1bmRlZmluZWQgPSBnZXRVVkVTdGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBzdGF0ZT8ubW9kZSA9PT0gdGhpcy4jd2hlbjtcblxuICAgICAgICBpZiAoc2hvdWxkU2hvdyAmJiAhdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy4jdGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZFNob3cgJiYgdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWFuZ3VsYXItbmV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9kb3RjbXMtYW5ndWxhci1uZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL25leHQvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQsIERvdENNU1BhZ2VSZW5kZXJlck1vZGUgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZHluYW1pYyBjb21wb25lbnQgZW50aXR5LlxuICogQHR5cGVkZWYge1Byb21pc2U8VHlwZTxhbnk+Pn0gRHluYW1pY0NvbXBvbmVudEVudGl0eVxuICogQG1lbWJlcm9mIEBkb3RjbXMvYW5ndWxhclxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50RW50aXR5ID0gUHJvbWlzZTxUeXBlPGFueT4+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbnRleHQgb2YgYSBEb3RDTVMgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNQYWdlU3RvcmUge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0LlxuICAgICAqIEB0eXBlIHtEb3RDTVNQYWdlQXNzZXR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIHBhZ2U6IERvdENNU1BhZ2VBc3NldDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiB0aGUgcGFnZSBmb3IgZWFjaCBDb250ZW50IFR5cGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VDb21wb25lbnR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIGNvbXBvbmVudHM6IERvdENNU1BhZ2VDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgdGhlIHJlbmRlcmVyIG1vZGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIG1vZGU6IERvdENNU1BhZ2VSZW5kZXJlck1vZGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIERvdENNUyBwYWdlIGNvbXBvbmVudC5cbiAqIFVzZWQgdG8gc3RvcmUgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiBhIERvdENNUyBwYWdlLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+fSBEb3RDTVNQYWdlQ29tcG9uZW50XG4gKiBAbWVtYmVyb2YgQGRvdGNtcy9hbmd1bGFyXG4gKi9cbmV4cG9ydCB0eXBlIERvdENNU1BhZ2VDb21wb25lbnQgPSBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljQ29tcG9uZW50RW50aXR5PjtcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { createDotCMSClient } from '@dotcms/client/next';
3
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
4
+ export class DotCMSClient {
5
+ constructor(client) {
6
+ return client;
7
+ }
8
+ }
9
+ /**
10
+ * Creates environment providers for the DotCMS client to be used in Angular applications.
11
+ * This function configures the DI container to provide a DotCMSClient instance
12
+ * throughout the application using the specified configuration.
13
+ *
14
+ * The provider should be registered at the application level (typically in main.ts)
15
+ * to ensure a single instance is shared across the entire application.
16
+ *
17
+ * @param options - Configuration object for the DotCMS client
18
+ * @param options.apiUrl - The base URL for the DotCMS API
19
+ * @param options.authToken - Authentication token for API requests (optional)
20
+ * @param options.siteId - The site identifier (optional)
21
+ * @returns Environment providers array that can be used with bootstrapApplication
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // main.ts
26
+ * import { bootstrapApplication } from '@angular/platform-browser';
27
+ * import { AppComponent } from './app/app.component';
28
+ * import { provideDotCMSClient } from '@dotcms/angular';
29
+ *
30
+ * bootstrapApplication(AppComponent, {
31
+ * providers: [
32
+ * provideDotCMSClient({
33
+ * apiUrl: 'https://demo.dotcms.com',
34
+ * authToken: 'your-auth-token',
35
+ * siteId: 'your-site-id'
36
+ * }),
37
+ * // other providers...
38
+ * ]
39
+ * });
40
+ * ```
41
+ *
42
+ */
43
+ export function provideDotCMSClient(options) {
44
+ const dotCMSClient = createDotCMSClient(options);
45
+ return makeEnvironmentProviders([
46
+ {
47
+ provide: DotCMSClient,
48
+ useFactory: () => new DotCMSClient(dotCMSClient)
49
+ }
50
+ ]);
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWNsaWVudC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wcm92aWRlcnMvZG90Y21zLWNsaWVudC9kb3RjbXMtY2xpZW50LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUF3QnpELDRFQUE0RTtBQUM1RSxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFZLE1BQWtCO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBMkI7SUFDM0QsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QjtZQUNJLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUM7U0FDbkQ7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjcmVhdGVEb3RDTVNDbGllbnQgfSBmcm9tICdAZG90Y21zL2NsaWVudC9uZXh0JztcbmltcG9ydCB7IERvdENNU0NsaWVudENvbmZpZyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBjcmVhdGVEb3RDTVNDbGllbnQgZnVuY3Rpb24uXG4gKiBVc2VkIHRvIGVuc3VyZSB0eXBlIGNvbnNpc3RlbmN5IGFjcm9zcyB0aGUgRG90Q01TQ2xpZW50IGludGVyZmFjZSBhbmQgY2xhc3MuXG4gKi9cbnR5cGUgQ2xpZW50VHlwZSA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZURvdENNU0NsaWVudD47XG5cbi8vIFRoaXMgaXMgYSBoYWNrIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXJmaXJlL2Jsb2IvYzFjNmFmOTc3OTE1NGNhZmY2YmMwZDliODM3ZjZjM2UyZDkxMzQ1Ni9zcmMvZmlyZXN0b3JlL2ZpcmVzdG9yZS50cyNMOFxuXG4vKipcbiAqIEludGVyZmFjZSB0aGF0IGV4dGVuZHMgdGhlIGNsaWVudCB0eXBlIGNyZWF0ZWQgYnkgY3JlYXRlRG90Q01TQ2xpZW50LlxuICogVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgdHlwZSBzYWZldHkgYW5kIEludGVsbGlTZW5zZSBzdXBwb3J0IGZvciB0aGUgRG90Q01TIGNsaWVudFxuICogd2hlbiB1c2VkIGFzIGEgZGVwZW5kZW5jeSBpbmplY3Rpb24gdG9rZW4gaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGRvdGNtc0NsaWVudCA9IGluamVjdChEb3RDTVNDbGllbnQpO1xuICogYGBgXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWRlY2xhcmF0aW9uLW1lcmdpbmcsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRG90Q01TQ2xpZW50IGV4dGVuZHMgQ2xpZW50VHlwZSB7fVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1kZWNsYXJhdGlvbi1tZXJnaW5nXG5leHBvcnQgY2xhc3MgRG90Q01TQ2xpZW50IHtcbiAgICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBlbnZpcm9ubWVudCBwcm92aWRlcnMgZm9yIHRoZSBEb3RDTVMgY2xpZW50IHRvIGJlIHVzZWQgaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbmZpZ3VyZXMgdGhlIERJIGNvbnRhaW5lciB0byBwcm92aWRlIGEgRG90Q01TQ2xpZW50IGluc3RhbmNlXG4gKiB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogVGhlIHByb3ZpZGVyIHNob3VsZCBiZSByZWdpc3RlcmVkIGF0IHRoZSBhcHBsaWNhdGlvbiBsZXZlbCAodHlwaWNhbGx5IGluIG1haW4udHMpXG4gKiB0byBlbnN1cmUgYSBzaW5nbGUgaW5zdGFuY2UgaXMgc2hhcmVkIGFjcm9zcyB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBEb3RDTVMgY2xpZW50XG4gKiBAcGFyYW0gb3B0aW9ucy5hcGlVcmwgLSBUaGUgYmFzZSBVUkwgZm9yIHRoZSBEb3RDTVMgQVBJXG4gKiBAcGFyYW0gb3B0aW9ucy5hdXRoVG9rZW4gLSBBdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgQVBJIHJlcXVlc3RzIChvcHRpb25hbClcbiAqIEBwYXJhbSBvcHRpb25zLnNpdGVJZCAtIFRoZSBzaXRlIGlkZW50aWZpZXIgKG9wdGlvbmFsKVxuICogQHJldHVybnMgRW52aXJvbm1lbnQgcHJvdmlkZXJzIGFycmF5IHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvYXBwLmNvbXBvbmVudCc7XG4gKiBpbXBvcnQgeyBwcm92aWRlRG90Q01TQ2xpZW50IH0gZnJvbSAnQGRvdGNtcy9hbmd1bGFyJztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZURvdENNU0NsaWVudCh7XG4gKiAgICAgICBhcGlVcmw6ICdodHRwczovL2RlbW8uZG90Y21zLmNvbScsXG4gKiAgICAgICBhdXRoVG9rZW46ICd5b3VyLWF1dGgtdG9rZW4nLFxuICogICAgICAgc2l0ZUlkOiAneW91ci1zaXRlLWlkJ1xuICogICAgIH0pLFxuICogICAgIC8vIG90aGVyIHByb3ZpZGVycy4uLlxuICogICBdXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEb3RDTVNDbGllbnQob3B0aW9uczogRG90Q01TQ2xpZW50Q29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIGNvbnN0IGRvdENNU0NsaWVudCA9IGNyZWF0ZURvdENNU0NsaWVudChvcHRpb25zKTtcblxuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEb3RDTVNDbGllbnQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiBuZXcgRG90Q01TQ2xpZW50KGRvdENNU0NsaWVudClcbiAgICAgICAgfVxuICAgIF0pO1xufVxuIl19
@@ -0,0 +1,74 @@
1
+ import { IMAGE_LOADER } from '@angular/common';
2
+ /**
3
+ * Validates if a given path is a valid URL string
4
+ *
5
+ * @param path - The path to validate
6
+ * @returns boolean indicating if the path is valid
7
+ */
8
+ function isValidPath(path) {
9
+ if (typeof path !== 'string' || path.trim() === '') {
10
+ return false;
11
+ }
12
+ try {
13
+ new URL(path);
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /**
21
+ * Provides a DotCMS image loader configuration for the Angular Image directive
22
+ *
23
+ * @param path - The base URL path to the DotCMS instance, or empty to use current site
24
+ * @returns An array of providers for the IMAGE_LOADER token
25
+ * @throws Error if the provided path is invalid
26
+ * @example
27
+ * ```typescript
28
+ * // In your app.config.ts
29
+ * export const appConfig: ApplicationConfig = {
30
+ * providers: [
31
+ * provideDotCMSImageLoader('https://demo.dotcms.com')
32
+ * // Or use current site:
33
+ * // provideDotCMSImageLoader()
34
+ * ]
35
+ * };
36
+ * ```
37
+ */
38
+ export function provideDotCMSImageLoader(path) {
39
+ // If path is provided, validate it
40
+ if (path && !isValidPath(path)) {
41
+ throw new Error(`Image loader has detected an invalid path (\`${path}\`). ` +
42
+ `To fix this, supply either the full URL to the dotCMS site, or leave it empty to use the current site.`);
43
+ }
44
+ return [
45
+ {
46
+ provide: IMAGE_LOADER,
47
+ useValue: (config) => createDotCMSURL(config, path)
48
+ }
49
+ ];
50
+ }
51
+ /**
52
+ * Creates a DotCMS-compatible URL for image loading
53
+ *
54
+ * @param config - The image loader configuration
55
+ * @param path - The base URL path to the DotCMS instance
56
+ * @returns A fully qualified URL for the image
57
+ * @internal
58
+ */
59
+ function createDotCMSURL(config, path) {
60
+ const { loaderParams, src, width } = config;
61
+ const params = loaderParams;
62
+ if (params?.isOutsideSRC) {
63
+ return src;
64
+ }
65
+ // Use empty string as fallback to support using current site
66
+ const dotcmsHost = path ? new URL(path).origin : '';
67
+ const imageSRC = src.includes('/dA/') ? src : `/dA/${src}`;
68
+ const languageId = params?.languageId ?? '1';
69
+ if (width) {
70
+ return `${dotcmsHost}${imageSRC}/${width}w?language_id=${languageId}`;
71
+ }
72
+ return `${dotcmsHost}${imageSRC}?language_id=${languageId}`;
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWltYWdlX2xvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wcm92aWRlcnMvZG90Y21zLWltYWdlLWxvYWRlci9kb3RjbXMtaW1hZ2VfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFXbEU7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFhO0lBQzlCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBYTtJQUNsRCxtQ0FBbUM7SUFDbkMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUNYLGdEQUFnRCxJQUFJLE9BQU87WUFDdkQsd0dBQXdHLENBQy9HLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7U0FDekU7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxNQUF5QixFQUFFLElBQWE7SUFDN0QsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFlBQXVDLENBQUM7SUFFdkQsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQzNELE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRTdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEdBQUcsVUFBVSxHQUFHLFFBQVEsSUFBSSxLQUFLLGlCQUFpQixVQUFVLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLGdCQUFnQixVQUFVLEVBQUUsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1BR0VfTE9BREVSLCBJbWFnZUxvYWRlckNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIERvdENNUyBpbWFnZSBsb2FkZXIgcGFyYW1ldGVyc1xuICovXG5pbnRlcmZhY2UgRG90Q01TSW1hZ2VMb2FkZXJQYXJhbXMge1xuICAgIGlzT3V0c2lkZVNSQz86IGJvb2xlYW47XG4gICAgbGFuZ3VhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgaWYgYSBnaXZlbiBwYXRoIGlzIGEgdmFsaWQgVVJMIHN0cmluZ1xuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgcGF0aCBpcyB2YWxpZFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkUGF0aChwYXRoOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJyB8fCBwYXRoLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIG5ldyBVUkwocGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSBEb3RDTVMgaW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbmd1bGFyIEltYWdlIGRpcmVjdGl2ZVxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGJhc2UgVVJMIHBhdGggdG8gdGhlIERvdENNUyBpbnN0YW5jZSwgb3IgZW1wdHkgdG8gdXNlIGN1cnJlbnQgc2l0ZVxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvdmlkZXJzIGZvciB0aGUgSU1BR0VfTE9BREVSIHRva2VuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBwcm92aWRlZCBwYXRoIGlzIGludmFsaWRcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiB5b3VyIGFwcC5jb25maWcudHNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlRG90Q01TSW1hZ2VMb2FkZXIoJ2h0dHBzOi8vZGVtby5kb3RjbXMuY29tJylcbiAqICAgICAvLyBPciB1c2UgY3VycmVudCBzaXRlOlxuICogICAgIC8vIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcigpXG4gKiAgIF1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcihwYXRoPzogc3RyaW5nKTogUHJvdmlkZXJbXSB7XG4gICAgLy8gSWYgcGF0aCBpcyBwcm92aWRlZCwgdmFsaWRhdGUgaXRcbiAgICBpZiAocGF0aCAmJiAhaXNWYWxpZFBhdGgocGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIGxvYWRlciBoYXMgZGV0ZWN0ZWQgYW4gaW52YWxpZCBwYXRoIChcXGAke3BhdGh9XFxgKS4gYCArXG4gICAgICAgICAgICAgICAgYFRvIGZpeCB0aGlzLCBzdXBwbHkgZWl0aGVyIHRoZSBmdWxsIFVSTCB0byB0aGUgZG90Q01TIHNpdGUsIG9yIGxlYXZlIGl0IGVtcHR5IHRvIHVzZSB0aGUgY3VycmVudCBzaXRlLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJTUFHRV9MT0FERVIsXG4gICAgICAgICAgICB1c2VWYWx1ZTogKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcpID0+IGNyZWF0ZURvdENNU1VSTChjb25maWcsIHBhdGgpXG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBEb3RDTVMtY29tcGF0aWJsZSBVUkwgZm9yIGltYWdlIGxvYWRpbmdcbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBiYXNlIFVSTCBwYXRoIHRvIHRoZSBEb3RDTVMgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEEgZnVsbHkgcXVhbGlmaWVkIFVSTCBmb3IgdGhlIGltYWdlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRG90Q01TVVJMKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgbG9hZGVyUGFyYW1zLCBzcmMsIHdpZHRoIH0gPSBjb25maWc7XG4gICAgY29uc3QgcGFyYW1zID0gbG9hZGVyUGFyYW1zIGFzIERvdENNU0ltYWdlTG9hZGVyUGFyYW1zO1xuXG4gICAgaWYgKHBhcmFtcz8uaXNPdXRzaWRlU1JDKSB7XG4gICAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgLy8gVXNlIGVtcHR5IHN0cmluZyBhcyBmYWxsYmFjayB0byBzdXBwb3J0IHVzaW5nIGN1cnJlbnQgc2l0ZVxuICAgIGNvbnN0IGRvdGNtc0hvc3QgPSBwYXRoID8gbmV3IFVSTChwYXRoKS5vcmlnaW4gOiAnJztcbiAgICBjb25zdCBpbWFnZVNSQyA9IHNyYy5pbmNsdWRlcygnL2RBLycpID8gc3JjIDogYC9kQS8ke3NyY31gO1xuICAgIGNvbnN0IGxhbmd1YWdlSWQgPSBwYXJhbXM/Lmxhbmd1YWdlSWQgPz8gJzEnO1xuXG4gICAgaWYgKHdpZHRoKSB7XG4gICAgICAgIHJldHVybiBgJHtkb3RjbXNIb3N0fSR7aW1hZ2VTUkN9LyR7d2lkdGh9dz9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7ZG90Y21zSG9zdH0ke2ltYWdlU1JDfT9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export { DotCMSShowWhenDirective } from './directives/dotcms-show-when/dotcms-show-when.directive';
2
+ export { provideDotCMSImageLoader } from './providers/dotcms-image-loader/dotcms-image_loader';
3
+ export { provideDotCMSClient, DotCMSClient } from './providers/dotcms-client/dotcms-client.provider';
4
+ export { DotCMSEditableTextComponent } from './components/dotcms-editable-text/dotcms-editable-text.component';
5
+ export { DotCMSBlockEditorRendererComponent } from './components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component';
6
+ export { DotCMSLayoutBodyComponent } from './components/dotcms-layout-body/dotcms-layout-body.component';
7
+ export { DotCMSEditablePageService } from './services/dotcms-editable-page.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRS9GLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNmLE1BQU0sa0RBQWtELENBQUM7QUFFMUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFL0csT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFFdEksT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFekcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEb3RDTVNTaG93V2hlbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kb3RjbXMtc2hvdy13aGVuL2RvdGNtcy1zaG93LXdoZW4uZGlyZWN0aXZlJztcblxuZXhwb3J0IHsgcHJvdmlkZURvdENNU0ltYWdlTG9hZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZG90Y21zLWltYWdlLWxvYWRlci9kb3RjbXMtaW1hZ2VfbG9hZGVyJztcblxuZXhwb3J0IHtcbiAgICBwcm92aWRlRG90Q01TQ2xpZW50LFxuICAgIERvdENNU0NsaWVudFxufSBmcm9tICcuL3Byb3ZpZGVycy9kb3RjbXMtY2xpZW50L2RvdGNtcy1jbGllbnQucHJvdmlkZXInO1xuXG5leHBvcnQgeyBEb3RDTVNFZGl0YWJsZVRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZG90Y21zLWVkaXRhYmxlLXRleHQvZG90Y21zLWVkaXRhYmxlLXRleHQuY29tcG9uZW50JztcblxuZXhwb3J0IHsgRG90Q01TQmxvY2tFZGl0b3JSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb3RjbXMtYmxvY2stZWRpdG9yLXJlbmRlcmVyL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHsgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb3RjbXMtbGF5b3V0LWJvZHkvZG90Y21zLWxheW91dC1ib2R5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IERvdENNU0VkaXRhYmxlUGFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RvdGNtcy1lZGl0YWJsZS1wYWdlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,93 @@
1
+ import { of, Subject } from 'rxjs';
2
+ import { Injectable } from '@angular/core';
3
+ import { finalize } from 'rxjs/operators';
4
+ import { UVEEventType } from '@dotcms/types';
5
+ import { createUVESubscription, getUVEState, initUVE, updateNavigation } from '@dotcms/uve';
6
+ import * as i0 from "@angular/core";
7
+ export class DotCMSEditablePageService {
8
+ /**
9
+ * Subject that emits the current editable page asset or null.
10
+ * Used internally to track changes to the page data.
11
+ *
12
+ * @private
13
+ * @type {Subject<DotCMSPageResponse | undefined>}
14
+ */
15
+ #responseSubject = new Subject();
16
+ /**
17
+ * Observable stream of the page asset changes.
18
+ * Exposes the pageAssetSubject as an Observable for subscribers.
19
+ *
20
+ * @private
21
+ * @type {Observable<DotCMSPageResponse | undefined>}
22
+ */
23
+ #response$ = this.#responseSubject.asObservable();
24
+ /**
25
+ * Listens for changes to an editable page and returns an Observable that emits the updated page data.
26
+ * This method initializes the UVE (Universal Visual Editor) and sets up subscriptions to track content changes.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * // Import the service
31
+ * import { DotCMSEditablePageService } from '@dotcms/angular';
32
+ *
33
+ * // Inject the service
34
+ * constructor(private editablePageService: DotCMSEditablePageService) {}
35
+ *
36
+ * // Get the page data from your API call
37
+ * const page = await client.page.get('/');
38
+ *
39
+ * // Listen for changes
40
+ * const subscription = this.editablePageService.listen(page).subscribe(updatedPage => {
41
+ * if (updatedPage) {
42
+ * // Handle updated page data
43
+ * console.log('Page updated:', updatedPage);
44
+ * }
45
+ * });
46
+ *
47
+ * // When done listening, unsubscribe
48
+ * subscription.unsubscribe();
49
+ * ```
50
+ *
51
+ * @param response Optional initial page data
52
+ * @returns Observable that emits the updated page data or undefined
53
+ */
54
+ listen(response) {
55
+ if (!getUVEState()) {
56
+ return of(response);
57
+ }
58
+ const pageURI = response?.pageAsset?.page?.pageURI;
59
+ initUVE(response);
60
+ // Update the navigation to the pageURI, when we have a pageURI
61
+ // Sometimes the page is null due to permissions, so we don't want to update the navigation
62
+ // And wait for the UVE to resolve the page
63
+ if (pageURI) {
64
+ updateNavigation(pageURI);
65
+ }
66
+ const unsubscribeUVEChanges = this.#listenUVEChanges();
67
+ return this.#response$.pipe(finalize(() => {
68
+ unsubscribeUVEChanges();
69
+ }));
70
+ }
71
+ /**
72
+ * Sets up a subscription to listen for UVE content changes and updates the page asset subject.
73
+ * This is an internal method used by listenEditablePage() to handle UVE events.
74
+ *
75
+ * @returns {UVEUnsubscribeFunction} Function to unsubscribe from the UVE content changes
76
+ * @private
77
+ */
78
+ #listenUVEChanges() {
79
+ const { unsubscribe } = createUVESubscription(UVEEventType.CONTENT_CHANGES, (payload) => {
80
+ this.#responseSubject.next(payload);
81
+ });
82
+ return unsubscribe;
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
85
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, providedIn: 'root' }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSEditablePageService, decorators: [{
88
+ type: Injectable,
89
+ args: [{
90
+ providedIn: 'root'
91
+ }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWVkaXRhYmxlLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9zZXJ2aWNlcy9kb3RjbXMtZWRpdGFibGUtcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFDSCxZQUFZLEVBSWYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzVGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEM7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQWtDLENBQUM7SUFFakU7Ozs7OztPQU1HO0lBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0E2Qkc7SUFDSCxNQUFNLENBQ0YsUUFBd0M7UUFFeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUVuRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEIsK0RBQStEO1FBQy9ELDJGQUEyRjtRQUMzRiwyQ0FBMkM7UUFDM0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3ZCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixxQkFBcUIsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCO1FBQ2IsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNwRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0F6RlEseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FGdEIsTUFBTTs7MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgVVZFRXZlbnRUeXBlLFxuICAgIERvdENNU1BhZ2VSZXNwb25zZSxcbiAgICBEb3RDTVNDb21wb3NlZFBhZ2VSZXNwb25zZSxcbiAgICBEb3RDTVNFeHRlbmRlZFBhZ2VSZXNwb25zZVxufSBmcm9tICdAZG90Y21zL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVVWRVN1YnNjcmlwdGlvbiwgZ2V0VVZFU3RhdGUsIGluaXRVVkUsIHVwZGF0ZU5hdmlnYXRpb24gfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogU3ViamVjdCB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGVkaXRhYmxlIHBhZ2UgYXNzZXQgb3IgbnVsbC5cbiAgICAgKiBVc2VkIGludGVybmFsbHkgdG8gdHJhY2sgY2hhbmdlcyB0byB0aGUgcGFnZSBkYXRhLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAdHlwZSB7U3ViamVjdDxEb3RDTVNQYWdlUmVzcG9uc2UgfCB1bmRlZmluZWQ+fVxuICAgICAqL1xuICAgICNyZXNwb25zZVN1YmplY3QgPSBuZXcgU3ViamVjdDxEb3RDTVNQYWdlUmVzcG9uc2UgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiB0aGUgcGFnZSBhc3NldCBjaGFuZ2VzLlxuICAgICAqIEV4cG9zZXMgdGhlIHBhZ2VBc3NldFN1YmplY3QgYXMgYW4gT2JzZXJ2YWJsZSBmb3Igc3Vic2NyaWJlcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEB0eXBlIHtPYnNlcnZhYmxlPERvdENNU1BhZ2VSZXNwb25zZSB8IHVuZGVmaW5lZD59XG4gICAgICovXG4gICAgI3Jlc3BvbnNlJCA9IHRoaXMuI3Jlc3BvbnNlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKlxuICAgICAqIExpc3RlbnMgZm9yIGNoYW5nZXMgdG8gYW4gZWRpdGFibGUgcGFnZSBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgcGFnZSBkYXRhLlxuICAgICAqIFRoaXMgbWV0aG9kIGluaXRpYWxpemVzIHRoZSBVVkUgKFVuaXZlcnNhbCBWaXN1YWwgRWRpdG9yKSBhbmQgc2V0cyB1cCBzdWJzY3JpcHRpb25zIHRvIHRyYWNrIGNvbnRlbnQgY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiAvLyBJbXBvcnQgdGhlIHNlcnZpY2VcbiAgICAgKiBpbXBvcnQgeyBEb3RDTVNFZGl0YWJsZVBhZ2VTZXJ2aWNlIH0gZnJvbSAnQGRvdGNtcy9hbmd1bGFyJztcbiAgICAgKlxuICAgICAqIC8vIEluamVjdCB0aGUgc2VydmljZVxuICAgICAqIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdGFibGVQYWdlU2VydmljZTogRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSkge31cbiAgICAgKlxuICAgICAqIC8vIEdldCB0aGUgcGFnZSBkYXRhIGZyb20geW91ciBBUEkgY2FsbFxuICAgICAqIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQucGFnZS5nZXQoJy8nKTtcbiAgICAgKlxuICAgICAqIC8vIExpc3RlbiBmb3IgY2hhbmdlc1xuICAgICAqIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdGFibGVQYWdlU2VydmljZS5saXN0ZW4ocGFnZSkuc3Vic2NyaWJlKHVwZGF0ZWRQYWdlID0+IHtcbiAgICAgKiAgIGlmICh1cGRhdGVkUGFnZSkge1xuICAgICAqICAgICAvLyBIYW5kbGUgdXBkYXRlZCBwYWdlIGRhdGFcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ1BhZ2UgdXBkYXRlZDonLCB1cGRhdGVkUGFnZSk7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBXaGVuIGRvbmUgbGlzdGVuaW5nLCB1bnN1YnNjcmliZVxuICAgICAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc3BvbnNlIE9wdGlvbmFsIGluaXRpYWwgcGFnZSBkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHBhZ2UgZGF0YSBvciB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBsaXN0ZW48VCBleHRlbmRzIERvdENNU0V4dGVuZGVkUGFnZVJlc3BvbnNlPihcbiAgICAgICAgcmVzcG9uc2U/OiBEb3RDTVNDb21wb3NlZFBhZ2VSZXNwb25zZTxUPlxuICAgICk6IE9ic2VydmFibGU8RG90Q01TQ29tcG9zZWRQYWdlUmVzcG9uc2U8VD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKCFnZXRVVkVTdGF0ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZVVSSSA9IHJlc3BvbnNlPy5wYWdlQXNzZXQ/LnBhZ2U/LnBhZ2VVUkk7XG5cbiAgICAgICAgaW5pdFVWRShyZXNwb25zZSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBwYWdlVVJJLCB3aGVuIHdlIGhhdmUgYSBwYWdlVVJJXG4gICAgICAgIC8vIFNvbWV0aW1lcyB0aGUgcGFnZSBpcyBudWxsIGR1ZSB0byBwZXJtaXNzaW9ucywgc28gd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgdGhlIG5hdmlnYXRpb25cbiAgICAgICAgLy8gQW5kIHdhaXQgZm9yIHRoZSBVVkUgdG8gcmVzb2x2ZSB0aGUgcGFnZVxuICAgICAgICBpZiAocGFnZVVSSSkge1xuICAgICAgICAgICAgdXBkYXRlTmF2aWdhdGlvbihwYWdlVVJJKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlVVZFQ2hhbmdlcyA9IHRoaXMuI2xpc3RlblVWRUNoYW5nZXMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy4jcmVzcG9uc2UkLnBpcGUoXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmVVVkVDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdXAgYSBzdWJzY3JpcHRpb24gdG8gbGlzdGVuIGZvciBVVkUgY29udGVudCBjaGFuZ2VzIGFuZCB1cGRhdGVzIHRoZSBwYWdlIGFzc2V0IHN1YmplY3QuXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdXNlZCBieSBsaXN0ZW5FZGl0YWJsZVBhZ2UoKSB0byBoYW5kbGUgVVZFIGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtVVkVVbnN1YnNjcmliZUZ1bmN0aW9ufSBGdW5jdGlvbiB0byB1bnN1YnNjcmliZSBmcm9tIHRoZSBVVkUgY29udGVudCBjaGFuZ2VzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICAjbGlzdGVuVVZFQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnN1YnNjcmliZSB9ID0gY3JlYXRlVVZFU3Vic2NyaXB0aW9uKFVWRUV2ZW50VHlwZS5DT05URU5UX0NIQU5HRVMsIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNyZXNwb25zZVN1YmplY3QubmV4dChwYXlsb2FkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHVuc3Vic2NyaWJlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { computed, Injectable, signal } from '@angular/core';
2
+ import { UVE_MODE } from '@dotcms/types';
3
+ import { getUVEState } from '@dotcms/uve';
4
+ import { DEVELOPMENT_MODE, PRODUCTION_MODE } from '@dotcms/uve/internal';
5
+ import * as i0 from "@angular/core";
6
+ export const EMPTY_DOTCMS_PAGE_STORE = {
7
+ page: {},
8
+ components: {},
9
+ mode: PRODUCTION_MODE
10
+ };
11
+ /**
12
+ * @description This service is responsible for managing the page context.
13
+ * @internal
14
+ * @author dotCMS
15
+ * @export
16
+ * @class DotCMSStore
17
+ */
18
+ export class DotCMSStore {
19
+ constructor() {
20
+ this.$store = signal(EMPTY_DOTCMS_PAGE_STORE);
21
+ /**
22
+ * @description Get if the current context is in development mode
23
+ * @readonly
24
+ * @type {boolean}
25
+ * @memberof DotCMSStore
26
+ */
27
+ this.$isDevMode = computed(() => {
28
+ const uveState = getUVEState();
29
+ if (uveState?.mode) {
30
+ return uveState?.mode === UVE_MODE.EDIT;
31
+ }
32
+ return this.$store()?.mode === DEVELOPMENT_MODE;
33
+ });
34
+ }
35
+ /**
36
+ * @description Get the store
37
+ * @readonly
38
+ * @type {DotCMSPageStore}
39
+ * @memberof DotCMSStore
40
+ */
41
+ get store() {
42
+ return this.$store();
43
+ }
44
+ /**
45
+ * @description Set the store
46
+ * @param {DotCMSPageStore} value
47
+ * @memberof DotCMSStore
48
+ */
49
+ setStore(store) {
50
+ this.$store.set(store);
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
53
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, providedIn: 'root' }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSStore, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root'
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9uZXh0L3N0b3JlL2RvdGNtcy5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFtQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBSXpFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFvQjtJQUNwRCxJQUFJLEVBQUUsRUFBcUI7SUFDM0IsVUFBVSxFQUFFLEVBQUU7SUFDZCxJQUFJLEVBQUUsZUFBZTtDQUN4QixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFJWSxXQUFNLEdBQUcsTUFBTSxDQUFrQix1QkFBdUIsQ0FBQyxDQUFDO1FBcUJsRTs7Ozs7V0FLRztRQUNILGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBRS9CLElBQUksUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNqQixPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztZQUM1QyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxLQUFLLGdCQUFnQixDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0tBQ047SUFsQ0c7Ozs7O09BS0c7SUFDSCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXBCUSxXQUFXO2tIQUFYLFdBQVcsY0FGUixNQUFNOzsyRkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TUGFnZUFzc2V0LCBVVkVfTU9ERSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5pbXBvcnQgeyBERVZFTE9QTUVOVF9NT0RFLCBQUk9EVUNUSU9OX01PREUgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IERvdENNU1BhZ2VTdG9yZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9ET1RDTVNfUEFHRV9TVE9SRTogRG90Q01TUGFnZVN0b3JlID0ge1xuICAgIHBhZ2U6IHt9IGFzIERvdENNU1BhZ2VBc3NldCxcbiAgICBjb21wb25lbnRzOiB7fSxcbiAgICBtb2RlOiBQUk9EVUNUSU9OX01PREVcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHBhZ2UgY29udGV4dC5cbiAqIEBpbnRlcm5hbFxuICogQGF1dGhvciBkb3RDTVNcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RDTVNTdG9yZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERvdENNU1N0b3JlIHtcbiAgICBwcml2YXRlICRzdG9yZSA9IHNpZ25hbDxEb3RDTVNQYWdlU3RvcmU+KEVNUFRZX0RPVENNU19QQUdFX1NUT1JFKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgdGhlIHN0b3JlXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VTdG9yZX1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICBnZXQgc3RvcmUoKTogRG90Q01TUGFnZVN0b3JlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNldCB0aGUgc3RvcmVcbiAgICAgKiBAcGFyYW0ge0RvdENNU1BhZ2VTdG9yZX0gdmFsdWVcbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICBzZXRTdG9yZShzdG9yZTogRG90Q01TUGFnZVN0b3JlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJHN0b3JlLnNldChzdG9yZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBpZiB0aGUgY3VycmVudCBjb250ZXh0IGlzIGluIGRldmVsb3BtZW50IG1vZGVcbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKiBAbWVtYmVyb2YgRG90Q01TU3RvcmVcbiAgICAgKi9cbiAgICAkaXNEZXZNb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB1dmVTdGF0ZSA9IGdldFVWRVN0YXRlKCk7XG5cbiAgICAgICAgaWYgKHV2ZVN0YXRlPy5tb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdXZlU3RhdGU/Lm1vZGUgPT09IFVWRV9NT0RFLkVESVQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy4kc3RvcmUoKT8ubW9kZSA9PT0gREVWRUxPUE1FTlRfTU9ERTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './lib/deprecated/deprecated-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RlcHJlY2F0ZWQvZGVwcmVjYXRlZC1hcGknO1xuIl19