@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,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,7 @@
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 { DotCMSEditableTextComponent } from './components/dotcms-editable-text/dotcms-editable-text.component';
4
+ export { DotCMSBlockEditorRendererComponent } from './components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component';
5
+ export { DotCMSLayoutBodyComponent } from './components/dotcms-layout-body/dotcms-layout-body.component';
6
+ export { DotCMSEditablePageService } from './services/dotcms-editable-page.service';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRS9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBRXRJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXpHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRG90Q01TU2hvd1doZW5EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZG90Y21zLXNob3ctd2hlbi9kb3RjbXMtc2hvdy13aGVuLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB7IHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2RvdGNtcy1pbWFnZS1sb2FkZXIvZG90Y21zLWltYWdlX2xvYWRlcic7XG5cbmV4cG9ydCB7IERvdENNU0VkaXRhYmxlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb3RjbXMtZWRpdGFibGUtdGV4dC9kb3RjbXMtZWRpdGFibGUtdGV4dC5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBEb3RDTVNCbG9ja0VkaXRvclJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RvdGNtcy1ibG9jay1lZGl0b3ItcmVuZGVyZXIvZG90Y21zLWJsb2NrLWVkaXRvci1yZW5kZXJlci5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBEb3RDTVNMYXlvdXRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50JztcblxuZXhwb3J0IHsgRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG90Y21zLWVkaXRhYmxlLXBhZ2Uuc2VydmljZSc7XG4iXX0=
@@ -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 | null>}
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 | null>}
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 null
53
+ */
54
+ listen(response) {
55
+ if (!getUVEState()) {
56
+ return of(response || null);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWVkaXRhYmxlLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvbmV4dC9zZXJ2aWNlcy9kb3RjbXMtZWRpdGFibGUtcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUs1RixNQUFNLE9BQU8seUJBQXlCO0lBQ2xDOzs7Ozs7T0FNRztJQUNILGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRTVEOzs7Ozs7T0FNRztJQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNkJHO0lBQ0gsTUFBTSxDQUFDLFFBQTZCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBRW5ELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsQiwrREFBK0Q7UUFDL0QsMkZBQTJGO1FBQzNGLDJDQUEyQztRQUMzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDdkIsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLHFCQUFxQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxpQkFBaUI7UUFDYixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzhHQXZGUSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ0QixNQUFNOzsyRkFFVCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgVVZFRXZlbnRUeXBlLCBEb3RDTVNQYWdlUmVzcG9uc2UgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVVWRVN1YnNjcmlwdGlvbiwgZ2V0VVZFU3RhdGUsIGluaXRVVkUsIHVwZGF0ZU5hdmlnYXRpb24gfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogU3ViamVjdCB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGVkaXRhYmxlIHBhZ2UgYXNzZXQgb3IgbnVsbC5cbiAgICAgKiBVc2VkIGludGVybmFsbHkgdG8gdHJhY2sgY2hhbmdlcyB0byB0aGUgcGFnZSBkYXRhLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAdHlwZSB7U3ViamVjdDxEb3RDTVNQYWdlUmVzcG9uc2UgfCBudWxsPn1cbiAgICAgKi9cbiAgICAjcmVzcG9uc2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RG90Q01TUGFnZVJlc3BvbnNlIHwgbnVsbD4oKTtcblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBwYWdlIGFzc2V0IGNoYW5nZXMuXG4gICAgICogRXhwb3NlcyB0aGUgcGFnZUFzc2V0U3ViamVjdCBhcyBhbiBPYnNlcnZhYmxlIGZvciBzdWJzY3JpYmVycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge09ic2VydmFibGU8RG90Q01TUGFnZVJlc3BvbnNlIHwgbnVsbD59XG4gICAgICovXG4gICAgI3Jlc3BvbnNlJCA9IHRoaXMuI3Jlc3BvbnNlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKlxuICAgICAqIExpc3RlbnMgZm9yIGNoYW5nZXMgdG8gYW4gZWRpdGFibGUgcGFnZSBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgcGFnZSBkYXRhLlxuICAgICAqIFRoaXMgbWV0aG9kIGluaXRpYWxpemVzIHRoZSBVVkUgKFVuaXZlcnNhbCBWaXN1YWwgRWRpdG9yKSBhbmQgc2V0cyB1cCBzdWJzY3JpcHRpb25zIHRvIHRyYWNrIGNvbnRlbnQgY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiAvLyBJbXBvcnQgdGhlIHNlcnZpY2VcbiAgICAgKiBpbXBvcnQgeyBEb3RDTVNFZGl0YWJsZVBhZ2VTZXJ2aWNlIH0gZnJvbSAnQGRvdGNtcy9hbmd1bGFyJztcbiAgICAgKlxuICAgICAqIC8vIEluamVjdCB0aGUgc2VydmljZVxuICAgICAqIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdGFibGVQYWdlU2VydmljZTogRG90Q01TRWRpdGFibGVQYWdlU2VydmljZSkge31cbiAgICAgKlxuICAgICAqIC8vIEdldCB0aGUgcGFnZSBkYXRhIGZyb20geW91ciBBUEkgY2FsbFxuICAgICAqIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQucGFnZS5nZXQoJy8nKTtcbiAgICAgKlxuICAgICAqIC8vIExpc3RlbiBmb3IgY2hhbmdlc1xuICAgICAqIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdGFibGVQYWdlU2VydmljZS5saXN0ZW4ocGFnZSkuc3Vic2NyaWJlKHVwZGF0ZWRQYWdlID0+IHtcbiAgICAgKiAgIGlmICh1cGRhdGVkUGFnZSkge1xuICAgICAqICAgICAvLyBIYW5kbGUgdXBkYXRlZCBwYWdlIGRhdGFcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ1BhZ2UgdXBkYXRlZDonLCB1cGRhdGVkUGFnZSk7XG4gICAgICogICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBXaGVuIGRvbmUgbGlzdGVuaW5nLCB1bnN1YnNjcmliZVxuICAgICAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc3BvbnNlIE9wdGlvbmFsIGluaXRpYWwgcGFnZSBkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIHBhZ2UgZGF0YSBvciBudWxsXG4gICAgICovXG4gICAgbGlzdGVuKHJlc3BvbnNlPzogRG90Q01TUGFnZVJlc3BvbnNlKTogT2JzZXJ2YWJsZTxEb3RDTVNQYWdlUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgICAgIGlmICghZ2V0VVZFU3RhdGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3BvbnNlIHx8IG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZVVSSSA9IHJlc3BvbnNlPy5wYWdlQXNzZXQ/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