@dotcms/angular 0.0.1-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +646 -167
  2. package/dotcms-angular.d.ts.map +1 -1
  3. package/esm2022/dotcms-angular.mjs +2 -2
  4. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  5. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  6. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  7. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  8. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  9. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  10. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  11. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  12. package/esm2022/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
  13. package/esm2022/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
  14. package/esm2022/lib/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
  15. package/esm2022/lib/components/dotcms-editable-text/utils.mjs +20 -0
  16. package/esm2022/lib/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  17. package/esm2022/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  18. package/esm2022/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
  19. package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  20. package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  21. package/esm2022/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  22. package/esm2022/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  23. package/esm2022/lib/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  24. package/esm2022/lib/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  25. package/esm2022/lib/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  26. package/esm2022/lib/models/index.mjs +2 -2
  27. package/esm2022/lib/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
  28. package/esm2022/lib/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  29. package/esm2022/lib/services/dotcms-editable-page.service.mjs +93 -0
  30. package/esm2022/lib/store/dotcms.store.mjs +61 -0
  31. package/esm2022/public_api.mjs +8 -0
  32. package/fesm2022/dotcms-angular.mjs +1578 -612
  33. package/fesm2022/dotcms-angular.mjs.map +1 -1
  34. package/index.d.ts +6 -6
  35. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  36. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  37. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  38. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  39. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  40. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  41. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  42. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  43. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  44. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  45. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  46. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  47. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  48. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  49. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  50. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  51. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
  52. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  53. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  54. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  55. package/lib/components/{dot-editable-text/dot-editable-text.component.d.ts → dotcms-editable-text/dotcms-editable-text.component.d.ts} +30 -30
  56. package/lib/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  57. package/lib/components/dotcms-editable-text/utils.d.ts.map +1 -0
  58. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  59. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  60. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  61. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  62. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  63. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  64. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  65. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  66. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  67. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  68. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  69. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  70. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  71. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  72. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  73. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  74. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  75. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  76. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  77. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  78. package/lib/models/index.d.ts +9 -10
  79. package/lib/models/index.d.ts.map +1 -1
  80. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
  81. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
  82. package/lib/{utils/image_loader.d.ts → providers/dotcms-image-loader/dotcms-image_loader.d.ts} +1 -1
  83. package/lib/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  84. package/lib/services/dotcms-editable-page.service.d.ts +40 -0
  85. package/lib/services/dotcms-editable-page.service.d.ts.map +1 -0
  86. package/lib/store/dotcms.store.d.ts +36 -0
  87. package/lib/store/dotcms.store.d.ts.map +1 -0
  88. package/package.json +9 -9
  89. package/public_api.d.ts +9 -0
  90. package/public_api.d.ts.map +1 -0
  91. package/esm2022/index.mjs +0 -6
  92. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  93. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  94. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  95. package/esm2022/lib/layout/column/column.component.mjs +0 -45
  96. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  97. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  98. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -101
  99. package/esm2022/lib/layout/row/row.component.mjs +0 -29
  100. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  101. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  102. package/esm2022/lib/utils/image_loader.mjs +0 -75
  103. package/esm2022/lib/utils/index.mjs +0 -84
  104. package/index.d.ts.map +0 -1
  105. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  106. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  107. package/lib/components/no-component/no-component.component.d.ts +0 -22
  108. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  109. package/lib/layout/column/column.component.d.ts +0 -29
  110. package/lib/layout/column/column.component.d.ts.map +0 -1
  111. package/lib/layout/container/container.component.d.ts +0 -88
  112. package/lib/layout/container/container.component.d.ts.map +0 -1
  113. package/lib/layout/contentlet/contentlet.component.d.ts +0 -86
  114. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  115. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts +0 -68
  116. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  117. package/lib/layout/row/row.component.d.ts +0 -20
  118. package/lib/layout/row/row.component.d.ts.map +0 -1
  119. package/lib/models/dotcms.model.d.ts +0 -416
  120. package/lib/models/dotcms.model.d.ts.map +0 -1
  121. package/lib/services/dotcms-context/page-context.service.d.ts +0 -49
  122. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  123. package/lib/utils/image_loader.d.ts.map +0 -1
  124. package/lib/utils/index.d.ts +0 -63
  125. package/lib/utils/index.d.ts.map +0 -1
  126. /package/lib/components/{dot-editable-text → dotcms-editable-text}/utils.d.ts +0 -0
@@ -0,0 +1,60 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { createDotCMSClient } from '@dotcms/client';
3
+ import { DotCMSClientConfig } from '@dotcms/types';
4
+ /**
5
+ * Type alias for the return type of createDotCMSClient function.
6
+ * Used to ensure type consistency across the DotCMSClient interface and class.
7
+ */
8
+ type ClientType = ReturnType<typeof createDotCMSClient>;
9
+ /**
10
+ * Interface that extends the client type created by createDotCMSClient.
11
+ * This interface provides type safety and IntelliSense support for the DotCMS client
12
+ * when used as a dependency injection token in Angular applications.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * dotcmsClient = inject(DotCMSClient);
17
+ * ```
18
+ */
19
+ export interface DotCMSClient extends ClientType {
20
+ }
21
+ export declare class DotCMSClient {
22
+ constructor(client: ClientType);
23
+ }
24
+ /**
25
+ * Creates environment providers for the DotCMS client to be used in Angular applications.
26
+ * This function configures the DI container to provide a DotCMSClient instance
27
+ * throughout the application using the specified configuration.
28
+ *
29
+ * The provider should be registered at the application level (typically in main.ts)
30
+ * to ensure a single instance is shared across the entire application.
31
+ *
32
+ * @param options - Configuration object for the DotCMS client
33
+ * @param options.apiUrl - The base URL for the DotCMS API
34
+ * @param options.authToken - Authentication token for API requests (optional)
35
+ * @param options.siteId - The site identifier (optional)
36
+ * @returns Environment providers array that can be used with bootstrapApplication
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // main.ts
41
+ * import { bootstrapApplication } from '@angular/platform-browser';
42
+ * import { AppComponent } from './app/app.component';
43
+ * import { provideDotCMSClient } from '@dotcms/angular';
44
+ *
45
+ * bootstrapApplication(AppComponent, {
46
+ * providers: [
47
+ * provideDotCMSClient({
48
+ * apiUrl: 'https://demo.dotcms.com',
49
+ * authToken: 'your-auth-token',
50
+ * siteId: 'your-site-id'
51
+ * }),
52
+ * // other providers...
53
+ * ]
54
+ * });
55
+ * ```
56
+ *
57
+ */
58
+ export declare function provideDotCMSClient(options: DotCMSClientConfig): EnvironmentProviders;
59
+ export {};
60
+ //# sourceMappingURL=dotcms-client.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms-client.provider.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/providers/dotcms-client/dotcms-client.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;;GAGG;AACH,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIxD;;;;;;;;;GASG;AAEH,MAAM,WAAW,YAAa,SAAQ,UAAU;CAAG;AAGnD,qBAAa,YAAY;gBACT,MAAM,EAAE,UAAU;CAGjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CASrF"}
@@ -18,4 +18,4 @@ import { Provider } from '@angular/core';
18
18
  * ```
19
19
  */
20
20
  export declare function provideDotCMSImageLoader(path?: string): Provider[];
21
- //# sourceMappingURL=image_loader.d.ts.map
21
+ //# sourceMappingURL=dotcms-image_loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms-image_loader.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/providers/dotcms-image-loader/dotcms-image_loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA8BzC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAelE"}
@@ -0,0 +1,40 @@
1
+ import { Observable } from 'rxjs';
2
+ import { DotCMSComposedPageResponse, DotCMSExtendedPageResponse } from '@dotcms/types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DotCMSEditablePageService {
5
+ #private;
6
+ /**
7
+ * Listens for changes to an editable page and returns an Observable that emits the updated page data.
8
+ * This method initializes the UVE (Universal Visual Editor) and sets up subscriptions to track content changes.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Import the service
13
+ * import { DotCMSEditablePageService } from '@dotcms/angular';
14
+ *
15
+ * // Inject the service
16
+ * constructor(private editablePageService: DotCMSEditablePageService) {}
17
+ *
18
+ * // Get the page data from your API call
19
+ * const page = await client.page.get('/');
20
+ *
21
+ * // Listen for changes
22
+ * const subscription = this.editablePageService.listen(page).subscribe(updatedPage => {
23
+ * if (updatedPage) {
24
+ * // Handle updated page data
25
+ * console.log('Page updated:', updatedPage);
26
+ * }
27
+ * });
28
+ *
29
+ * // When done listening, unsubscribe
30
+ * subscription.unsubscribe();
31
+ * ```
32
+ *
33
+ * @param response Optional initial page data
34
+ * @returns Observable that emits the updated page data or undefined
35
+ */
36
+ listen<T extends DotCMSExtendedPageResponse>(response?: DotCMSComposedPageResponse<T>): Observable<DotCMSComposedPageResponse<T> | undefined>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<DotCMSEditablePageService, never>;
38
+ static ɵprov: i0.ɵɵInjectableDeclaration<DotCMSEditablePageService>;
39
+ }
40
+ //# sourceMappingURL=dotcms-editable-page.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms-editable-page.service.d.ts","sourceRoot":"","sources":["../../../../../../libs/sdk/angular/src/lib/services/dotcms-editable-page.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,MAAM,CAAC;AAM/C,OAAO,EAGH,0BAA0B,EAC1B,0BAA0B,EAC7B,MAAM,eAAe,CAAC;;AAGvB,qBAGa,yBAAyB;;IAmBlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,CAAC,CAAC,SAAS,0BAA0B,EACvC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACzC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;yCAnD/C,yBAAyB;6CAAzB,yBAAyB;CA0FrC"}
@@ -0,0 +1,36 @@
1
+ import { DotCMSPageStore } from '../models';
2
+ import * as i0 from "@angular/core";
3
+ export declare const EMPTY_DOTCMS_PAGE_STORE: DotCMSPageStore;
4
+ /**
5
+ * @description This service is responsible for managing the page context.
6
+ * @internal
7
+ * @author dotCMS
8
+ * @export
9
+ * @class DotCMSStore
10
+ */
11
+ export declare class DotCMSStore {
12
+ private $store;
13
+ /**
14
+ * @description Get the store
15
+ * @readonly
16
+ * @type {DotCMSPageStore}
17
+ * @memberof DotCMSStore
18
+ */
19
+ get store(): DotCMSPageStore;
20
+ /**
21
+ * @description Set the store
22
+ * @param {DotCMSPageStore} value
23
+ * @memberof DotCMSStore
24
+ */
25
+ setStore(store: DotCMSPageStore): void;
26
+ /**
27
+ * @description Get if the current context is in development mode
28
+ * @readonly
29
+ * @type {boolean}
30
+ * @memberof DotCMSStore
31
+ */
32
+ $isDevMode: import("@angular/core").Signal<boolean>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<DotCMSStore, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<DotCMSStore>;
35
+ }
36
+ //# sourceMappingURL=dotcms.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms.store.d.ts","sourceRoot":"","sources":["../../../../../../libs/sdk/angular/src/lib/store/dotcms.store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAE5C,eAAO,MAAM,uBAAuB,EAAE,eAIrC,CAAC;AAEF;;;;;;GAMG;AACH,qBAGa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAoD;IAElE;;;;;OAKG;IACH,IAAI,KAAK,IAAI,eAAe,CAE3B;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC;;;;;OAKG;IACH,UAAU,0CAQP;yCApCM,WAAW;6CAAX,WAAW;CAqCvB"}
package/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@dotcms/angular",
3
- "version": "0.0.1-beta.9",
3
+ "version": "1.0.0",
4
4
  "peerDependencies": {
5
+ "rxjs": ">=7.0.0",
5
6
  "@angular/common": ">=17.0.0",
6
7
  "@angular/core": ">=17.0.0",
7
8
  "@angular/router": ">=17.0.0",
8
- "@dotcms/client": "0.0.1-beta.9",
9
- "@dotcms/uve": "0.0.1-beta.9",
10
- "@tinymce/tinymce-angular": "^8.0.0",
11
- "rxjs": ">=7.0.0"
9
+ "@dotcms/client": "^1.0.0",
10
+ "@dotcms/uve": "^1.0.0"
11
+ },
12
+ "dependencies": {
13
+ "@tinymce/tinymce-angular": "8.0.0",
14
+ "tslib": "^2.3.0"
12
15
  },
13
16
  "description": "Official Angular Components library to render a dotCMS page.",
14
17
  "repository": {
@@ -43,8 +46,5 @@
43
46
  "default": "./fesm2022/dotcms-angular.mjs"
44
47
  }
45
48
  },
46
- "sideEffects": false,
47
- "dependencies": {
48
- "tslib": "^2.3.0"
49
- }
49
+ "sideEffects": false
50
50
  }
@@ -0,0 +1,9 @@
1
+ export { DotCMSShowWhenDirective } from './lib/directives/dotcms-show-when/dotcms-show-when.directive';
2
+ export { provideDotCMSImageLoader } from './lib/providers/dotcms-image-loader/dotcms-image_loader';
3
+ export { provideDotCMSClient, DotCMSClient } from './lib/providers/dotcms-client/dotcms-client.provider';
4
+ export { DotCMSEditableTextComponent } from './lib/components/dotcms-editable-text/dotcms-editable-text.component';
5
+ export { DotCMSBlockEditorRendererComponent } from './lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component';
6
+ export { DotCMSLayoutBodyComponent } from './lib/components/dotcms-layout-body/dotcms-layout-body.component';
7
+ export { DotCMSEditablePageService } from './lib/services/dotcms-editable-page.service';
8
+ export { DynamicComponentEntity } from './lib/models';
9
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/public_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAEvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AAEnG,OAAO,EACH,mBAAmB,EACnB,YAAY,EACf,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AAEnH,OAAO,EAAE,kCAAkC,EAAE,MAAM,sFAAsF,CAAC;AAE1I,OAAO,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAE7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
package/esm2022/index.mjs DELETED
@@ -1,6 +0,0 @@
1
- export * from './lib/components/dot-editable-text/dot-editable-text.component';
2
- export * from './lib/layout/dotcms-layout/dotcms-layout.component';
3
- export * from './lib/services/dotcms-context/page-context.service';
4
- export * from './lib/models';
5
- export * from './lib/utils/image_loader';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb3QtZWRpdGFibGUtdGV4dC9kb3QtZWRpdGFibGUtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2RvdGNtcy1sYXlvdXQvZG90Y21zLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2ltYWdlX2xvYWRlcic7XG4iXX0=
@@ -1,225 +0,0 @@
1
- import { EditorComponent, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
2
- import { Component, ElementRef, HostListener, inject, Input, Renderer2, SecurityContext, ViewChild } from '@angular/core';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import { CLIENT_ACTIONS, DotCmsClient, isInsideEditor, NOTIFY_CLIENT, postMessageToEditor } from '@dotcms/client';
5
- import { TINYMCE_CONFIG } from './utils';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Dot editable text component.
9
- * This component is responsible to render a text field that can be edited inline.
10
- *
11
- * @export
12
- * @class DotEditableTextComponent
13
- * @implements {OnInit}
14
- * @implements {OnChanges}
15
- */
16
- export class DotEditableTextComponent {
17
- constructor() {
18
- /**
19
- * Represents the mode of the editor which can be `plain`, `minimal`, or `full`
20
- *
21
- * @type {DOT_EDITABLE_TEXT_MODE}
22
- * @memberof DotEditableTextComponent
23
- */
24
- this.mode = 'plain';
25
- /**
26
- * Represents the format of the editor which can be `text` or `html`
27
- *
28
- * @type {DOT_EDITABLE_TEXT_FORMAT}
29
- * @memberof DotEditableTextComponent
30
- */
31
- this.format = 'text';
32
- /**
33
- * Represents the field name of the `contentlet` that can be edited
34
- *
35
- * @memberof DotEditableTextComponent
36
- */
37
- this.fieldName = '';
38
- /**
39
- * Represents the content of the `contentlet` that can be edited
40
- *
41
- * @protected
42
- * @memberof DotEditableTextComponent
43
- */
44
- this.content = '';
45
- this.#sanitizer = inject(DomSanitizer);
46
- this.#renderer = inject(Renderer2);
47
- this.#elementRef = inject(ElementRef);
48
- }
49
- #sanitizer;
50
- #renderer;
51
- #elementRef;
52
- /**
53
- * The TinyMCE editor
54
- *
55
- * @readonly
56
- * @memberof DotEditableTextComponent
57
- */
58
- get editor() {
59
- return this.editorComponent?.editor;
60
- }
61
- /**
62
- * Returns the number of pages the contentlet is on
63
- *
64
- * @readonly
65
- * @memberof DotEditableTextComponent
66
- */
67
- get onNumberOfPages() {
68
- return this.contentlet['onNumberOfPages'] || 1;
69
- }
70
- /**
71
- * Handle copy contentlet inline editing success event
72
- *
73
- * @param {MessageEvent} { data }
74
- * @return {*}
75
- * @memberof DotEditableTextComponent
76
- */
77
- onMessage({ data }) {
78
- const { name, payload } = data;
79
- if (name !== NOTIFY_CLIENT.UVE_COPY_CONTENTLET_INLINE_EDITING_SUCCESS) {
80
- return;
81
- }
82
- const { oldInode, inode } = payload;
83
- const currentInode = this.contentlet.inode;
84
- if (currentInode === oldInode || currentInode === inode) {
85
- this.editorComponent.editor.focus();
86
- return;
87
- }
88
- }
89
- ngOnInit() {
90
- this.isInsideEditor = isInsideEditor();
91
- if (!this.isInsideEditor) {
92
- this.innerHTMLToElement();
93
- return;
94
- }
95
- this.init = {
96
- ...TINYMCE_CONFIG[this.mode],
97
- base_url: `${DotCmsClient.dotcmsUrl}/ext/tinymcev7`
98
- };
99
- }
100
- ngOnChanges() {
101
- this.content = this.contentlet[this.fieldName] || '';
102
- if (this.editor) {
103
- this.editor.setContent(this.content, { format: this.format });
104
- }
105
- }
106
- /**
107
- * Handle mouse down event
108
- *
109
- * @param {EventObj<MouseEvent>} { event }
110
- * @return {*}
111
- * @memberof DotEditableTextComponent
112
- */
113
- onMouseDown({ event }) {
114
- if (this.onNumberOfPages <= 1 || this.editorComponent.editor.hasFocus()) {
115
- return;
116
- }
117
- const { inode, languageId: language } = this.contentlet;
118
- event.stopPropagation();
119
- event.preventDefault();
120
- try {
121
- postMessageToEditor({
122
- action: CLIENT_ACTIONS.COPY_CONTENTLET_INLINE_EDITING,
123
- payload: {
124
- dataset: {
125
- inode,
126
- language,
127
- fieldName: this.fieldName
128
- }
129
- }
130
- });
131
- }
132
- catch (error) {
133
- console.error('Failed to post message to editor:', error);
134
- }
135
- }
136
- /**
137
- * Handle focus out event
138
- *
139
- * @return {*}
140
- * @memberof DotEditableTextComponent
141
- */
142
- onFocusOut() {
143
- const content = this.editor.getContent({ format: this.format });
144
- if (!this.editor.isDirty() || !this.didContentChange(content)) {
145
- return;
146
- }
147
- const { inode, languageId: langId } = this.contentlet;
148
- try {
149
- postMessageToEditor({
150
- action: CLIENT_ACTIONS.UPDATE_CONTENTLET_INLINE_EDITING,
151
- payload: {
152
- content,
153
- dataset: {
154
- inode,
155
- langId,
156
- fieldName: this.fieldName
157
- }
158
- }
159
- });
160
- }
161
- catch (error) {
162
- console.error('Failed to post message to editor:', error);
163
- }
164
- }
165
- /**
166
- * inner HTML to element
167
- *
168
- * @private
169
- * @param {string} editedContent
170
- * @return {*}
171
- * @memberof DotEditableTextComponent
172
- */
173
- innerHTMLToElement() {
174
- const element = this.#elementRef.nativeElement;
175
- const safeHtml = this.#sanitizer.bypassSecurityTrustHtml(this.content);
176
- const content = this.#sanitizer.sanitize(SecurityContext.HTML, safeHtml) || '';
177
- this.#renderer.setProperty(element, 'innerHTML', content);
178
- }
179
- /**
180
- * Check if the content has changed
181
- *
182
- * @private
183
- * @param {string} editedContent
184
- * @return {*}
185
- * @memberof DotEditableTextComponent
186
- */
187
- didContentChange(editedContent) {
188
- return this.content !== editedContent;
189
- }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotEditableTextComponent, isStandalone: true, selector: "dot-editable-text", inputs: { mode: "mode", format: "format", contentlet: "contentlet", fieldName: "fieldName" }, host: { listeners: { "window:message": "onMessage($event)" } }, providers: [
192
- {
193
- provide: TINYMCE_SCRIPT_SRC,
194
- useFactory: () => {
195
- return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
196
- }
197
- }
198
- ], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isInsideEditor) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }] }); }
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, decorators: [{
201
- type: Component,
202
- args: [{ selector: 'dot-editable-text', standalone: true, imports: [EditorComponent], providers: [
203
- {
204
- provide: TINYMCE_SCRIPT_SRC,
205
- useFactory: () => {
206
- return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
207
- }
208
- }
209
- ], template: "@if (isInsideEditor) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"] }]
210
- }], propDecorators: { editorComponent: [{
211
- type: ViewChild,
212
- args: [EditorComponent]
213
- }], mode: [{
214
- type: Input
215
- }], format: [{
216
- type: Input
217
- }], contentlet: [{
218
- type: Input
219
- }], fieldName: [{
220
- type: Input
221
- }], onMessage: [{
222
- type: HostListener,
223
- args: ['window:message', ['$event']]
224
- }] } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90LWVkaXRhYmxlLXRleHQvZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90LWVkaXRhYmxlLXRleHQvZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQ0gsY0FBYyxFQUNkLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLG1CQUFtQixFQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQW9ELE1BQU0sU0FBUyxDQUFDOztBQUkzRjs7Ozs7Ozs7R0FRRztBQWdCSCxNQUFNLE9BQU8sd0JBQXdCO0lBZnJDO1FBa0JJOzs7OztXQUtHO1FBQ00sU0FBSSxHQUEyQixPQUFPLENBQUM7UUFDaEQ7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQTZCLE1BQU0sQ0FBQztRQVFuRDs7OztXQUlHO1FBQ00sY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7Ozs7V0FLRztRQUNPLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFrQmQsZUFBVSxHQUFHLE1BQU0sQ0FBZSxZ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QUUvRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssZ0JBQWdCLENBQUMsYUFBcUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQztJQUMxQyxDQUFDOzhHQXZOUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4TkFUdEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixVQUFVLEVBQUUsR0FBRyxFQUFFO29CQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUywrQkFBK0IsQ0FBQztnQkFDcEUsQ0FBQzthQUNKO1NBQ0osMkVBR1UsZUFBZSxxRUN0RDlCLHFOQVFBLHFLRG1DYyxlQUFlOzsyRkFVaEIsd0JBQXdCO2tCQWZwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBR1AsQ0FBQyxlQUFlLENBQUMsYUFDZjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixVQUFVLEVBQUUsR0FBRyxFQUFFO2dDQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUywrQkFBK0IsQ0FBQzs0QkFDcEUsQ0FBQzt5QkFDSjtxQkFDSjs4QkFHMkIsZUFBZTtzQkFBMUMsU0FBUzt1QkFBQyxlQUFlO2dCQVFqQixJQUFJO3NCQUFaLEtBQUs7Z0JBT0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkEwRE4sU0FBUztzQkFEUixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50LCBUSU5ZTUNFX1NDUklQVF9TUkMgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRXZlbnRPYmogfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXIvZWRpdG9yL0V2ZW50cyc7XG5cbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWN1cml0eUNvbnRleHQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7XG4gICAgQ0xJRU5UX0FDVElPTlMsXG4gICAgRG90Q21zQ2xpZW50LFxuICAgIGlzSW5zaWRlRWRpdG9yLFxuICAgIE5PVElGWV9DTElFTlQsXG4gICAgcG9zdE1lc3NhZ2VUb0VkaXRvclxufSBmcm9tICdAZG90Y21zL2NsaWVudCc7XG5cbmltcG9ydCB7IFRJTllNQ0VfQ09ORklHLCBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQsIERPVF9FRElUQUJMRV9URVhUX01PREUgfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHsgRG90Q01TQ29udGVudGxldCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogRG90IGVkaXRhYmxlIHRleHQgY29tcG9uZW50LlxuICogVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgdG8gcmVuZGVyIGEgdGV4dCBmaWVsZCB0aGF0IGNhbiBiZSBlZGl0ZWQgaW5saW5lLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAaW1wbGVtZW50cyB7T25DaGFuZ2VzfVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdC1lZGl0YWJsZS10ZXh0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3QtZWRpdGFibGUtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RvdC1lZGl0YWJsZS10ZXh0LmNvbXBvbmVudC5jc3MnLFxuICAgIGltcG9ydHM6IFtFZGl0b3JDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSU5ZTUNFX1NDUklQVF9TUkMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke0RvdENtc0NsaWVudC5kb3RjbXNVcmx9L2V4dC90aW55bWNldjcvdGlueW1jZS5taW4uanNgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZChFZGl0b3JDb21wb25lbnQpIGVkaXRvckNvbXBvbmVudCE6IEVkaXRvckNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIG1vZGUgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHBsYWluYCwgYG1pbmltYWxgLCBvciBgZnVsbGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtET1RfRURJVEFCTEVfVEVYVF9NT0RFfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlOiBET1RfRURJVEFCTEVfVEVYVF9NT0RFID0gJ3BsYWluJztcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmb3JtYXQgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHRleHRgIG9yIGBodG1sYFxuICAgICAqXG4gICAgICogQHR5cGUge0RPVF9FRElUQUJMRV9URVhUX0ZPUk1BVH1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZm9ybWF0OiBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQgPSAndGV4dCc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgYGNvbnRlbnRsZXRgIHRoYXQgY2FuIGJlIGlubGluZSBlZGl0ZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtEb3RDTVNDb250ZW50bGV0fVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50bGV0ITogRG90Q01TQ29udGVudGxldDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZmllbGROYW1lID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb250ZW50ID0gJyc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge0VkaXRvckNvbXBvbmVudFsnaW5pdCddfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdCE6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgaWYgdGhlIGNvbXBvbmVudCBpcyBpbnNpZGUgdGhlIGVkaXRvclxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNJbnNpZGVFZGl0b3IhOiBib29sZWFuO1xuXG4gICAgcmVhZG9ubHkgI3Nhbml0aXplciA9IGluamVjdDxEb21TYW5pdGl6ZXI+KERvbVNhbml0aXplcik7XG4gICAgcmVhZG9ubHkgI3JlbmRlcmVyID0gaW5qZWN0PFJlbmRlcmVyMj4oUmVuZGVyZXIyKTtcbiAgICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBUaW55TUNFIGVkaXRvclxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBlZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvckNvbXBvbmVudD8uZWRpdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGUgY29udGVudGxldCBpcyBvblxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBvbk51bWJlck9mUGFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRsZXRbJ29uTnVtYmVyT2ZQYWdlcyddIHx8IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGNvcHkgY29udGVudGxldCBpbmxpbmUgZWRpdGluZyBzdWNjZXNzIGV2ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge01lc3NhZ2VFdmVudH0geyBkYXRhIH1cbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXG4gICAgb25NZXNzYWdlKHsgZGF0YSB9OiBNZXNzYWdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lLCBwYXlsb2FkIH0gPSBkYXRhO1xuICAgICAgICBpZiAobmFtZSAhPT0gTk9USUZZX0NMSUVOVC5VVkVfQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HX1NVQ0NFU1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgb2xkSW5vZGUsIGlub2RlIH0gPSBwYXlsb2FkO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbm9kZSA9PT0gb2xkSW5vZGUgfHwgY3VycmVudElub2RlID09PSBpbm9kZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlzSW5zaWRlRWRpdG9yID0gaXNJbnNpZGVFZGl0b3IoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNJbnNpZGVFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJIVE1MVG9FbGVtZW50KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgICAgICAgIC4uLlRJTllNQ0VfQ09ORklHW3RoaXMubW9kZV0sXG4gICAgICAgICAgICBiYXNlX3VybDogYCR7RG90Q21zQ2xpZW50LmRvdGNtc1VybH0vZXh0L3RpbnltY2V2N2BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jb250ZW50bGV0W3RoaXMuZmllbGROYW1lXSB8fCAnJztcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHRoaXMuY29udGVudCwgeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIG1vdXNlIGRvd24gZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RXZlbnRPYmo8TW91c2VFdmVudD59IHsgZXZlbnQgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uTW91c2VEb3duKHsgZXZlbnQgfTogRXZlbnRPYmo8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKHRoaXMub25OdW1iZXJPZlBhZ2VzIDw9IDEgfHwgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgaW5vZGUsIGxhbmd1YWdlSWQ6IGxhbmd1YWdlIH0gPSB0aGlzLmNvbnRlbnRsZXQ7XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlVG9FZGl0b3Ioe1xuICAgICAgICAgICAgICAgIGFjdGlvbjogQ0xJRU5UX0FDVElPTlMuQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBmb2N1cyBvdXQgZXZlbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uRm9jdXNPdXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLmlzRGlydHkoKSB8fCAhdGhpcy5kaWRDb250ZW50Q2hhbmdlKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlub2RlLCBsYW5ndWFnZUlkOiBsYW5nSWQgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcG9zdE1lc3NhZ2VUb0VkaXRvcih7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBDTElFTlRfQUNUSU9OUy5VUERBVEVfQ09OVEVOVExFVF9JTkxJTkVfRURJVElORyxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlub2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ0lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmZpZWxkTmFtZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcG9zdCBtZXNzYWdlIHRvIGVkaXRvcjonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbm5lciBIVE1MIHRvIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGVkaXRlZENvbnRlbnRcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlubmVySFRNTFRvRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2FmZUh0bWwgPSB0aGlzLiNzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5jb250ZW50KTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuI3Nhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgc2FmZUh0bWwpIHx8ICcnO1xuXG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnQsICdpbm5lckhUTUwnLCBjb250ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgY29udGVudCBoYXMgY2hhbmdlZFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZWRpdGVkQ29udGVudFxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgZGlkQ29udGVudENoYW5nZShlZGl0ZWRDb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudCAhPT0gZWRpdGVkQ29udGVudDtcbiAgICB9XG59XG4iLCJAaWYgKGlzSW5zaWRlRWRpdG9yKSB7XG4gICAgPGVkaXRvclxuICAgICAgICAjdGlueUVkaXRvclxuICAgICAgICBbaW5pdF09XCJpbml0XCJcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb250ZW50XCJcbiAgICAgICAgKG9uTW91c2VEb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAob25Gb2N1c091dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxufVxuIl19
@@ -1,43 +0,0 @@
1
- const DEFAULT_TINYMCE_CONFIG = {
2
- menubar: false,
3
- inline: true,
4
- valid_styles: {
5
- '*': 'font-size,font-family,color,text-decoration,text-align'
6
- },
7
- powerpaste_word_import: 'clean',
8
- powerpaste_html_import: 'clean',
9
- suffix: '.min', // Suffix to use when loading resources
10
- license_key: 'gpl'
11
- };
12
- export const TINYMCE_CONFIG = {
13
- minimal: {
14
- ...DEFAULT_TINYMCE_CONFIG,
15
- plugins: 'link autolink',
16
- toolbar: 'bold italic underline | link',
17
- valid_elements: 'strong,em,span[style],a[href]'
18
- },
19
- full: {
20
- ...DEFAULT_TINYMCE_CONFIG,
21
- plugins: 'link lists autolink charmap',
22
- style_formats: [
23
- { title: 'Paragraph', format: 'p' },
24
- { title: 'Header 1', format: 'h1' },
25
- { title: 'Header 2', format: 'h2' },
26
- { title: 'Header 3', format: 'h3' },
27
- { title: 'Header 4', format: 'h4' },
28
- { title: 'Header 5', format: 'h5' },
29
- { title: 'Header 6', format: 'h6' },
30
- { title: 'Pre', format: 'pre' },
31
- { title: 'Code', format: 'code' }
32
- ],
33
- toolbar: [
34
- 'styleselect undo redo | bold italic underline | forecolor backcolor | alignleft aligncenter alignright alignfull | numlist bullist outdent indent | hr charmap removeformat | link'
35
- ]
36
- },
37
- plain: {
38
- ...DEFAULT_TINYMCE_CONFIG,
39
- plugins: '',
40
- toolbar: ''
41
- }
42
- };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3QtZWRpdGFibGUtdGV4dC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLHNCQUFzQixHQUE0QjtJQUNwRCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFO1FBQ1YsR0FBRyxFQUFFLHdEQUF3RDtLQUNoRTtJQUNELHNCQUFzQixFQUFFLE9BQU87SUFDL0Isc0JBQXNCLEVBQUUsT0FBTztJQUMvQixNQUFNLEVBQUUsTUFBTSxFQUFFLHVDQUF1QztJQUN2RCxXQUFXLEVBQUUsS0FBSztDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUV2QjtJQUNBLE9BQU8sRUFBRTtRQUNMLEdBQUcsc0JBQXNCO1FBQ3pCLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLE9BQU8sRUFBRSw4QkFBOEI7UUFDdkMsY0FBYyxFQUFFLCtCQUErQjtLQUNsRDtJQUNELElBQUksRUFBRTtRQUNGLEdBQUcsc0JBQXNCO1FBQ3pCLE9BQU8sRUFBRSw2QkFBNkI7UUFDdEMsYUFBYSxFQUFFO1lBQ1gsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUU7U0FDcEM7UUFDRCxPQUFPLEVBQUU7WUFDTCxvTEFBb0w7U0FDdkw7S0FDSjtJQUNELEtBQUssRUFBRTtRQUNILEdBQUcsc0JBQXNCO1FBQ3pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEVBQUU7S0FDZDtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xuXG5leHBvcnQgdHlwZSBET1RfRURJVEFCTEVfVEVYVF9NT0RFID0gJ21pbmltYWwnIHwgJ2Z1bGwnIHwgJ3BsYWluJztcblxuZXhwb3J0IHR5cGUgRE9UX0VESVRBQkxFX1RFWFRfRk9STUFUID0gJ2h0bWwnIHwgJ3RleHQnO1xuXG5jb25zdCBERUZBVUxUX1RJTllNQ0VfQ09ORklHOiBFZGl0b3JDb21wb25lbnRbJ2luaXQnXSA9IHtcbiAgICBtZW51YmFyOiBmYWxzZSxcbiAgICBpbmxpbmU6IHRydWUsXG4gICAgdmFsaWRfc3R5bGVzOiB7XG4gICAgICAgICcqJzogJ2ZvbnQtc2l6ZSxmb250LWZhbWlseSxjb2xvcix0ZXh0LWRlY29yYXRpb24sdGV4dC1hbGlnbidcbiAgICB9LFxuICAgIHBvd2VycGFzdGVfd29yZF9pbXBvcnQ6ICdjbGVhbicsXG4gICAgcG93ZXJwYXN0ZV9odG1sX2ltcG9ydDogJ2NsZWFuJyxcbiAgICBzdWZmaXg6ICcubWluJywgLy8gU3VmZml4IHRvIHVzZSB3aGVuIGxvYWRpbmcgcmVzb3VyY2VzXG4gICAgbGljZW5zZV9rZXk6ICdncGwnXG59O1xuXG5leHBvcnQgY29uc3QgVElOWU1DRV9DT05GSUc6IHtcbiAgICBba2V5IGluIERPVF9FRElUQUJMRV9URVhUX01PREVdOiBFZGl0b3JDb21wb25lbnRbJ2luaXQnXTtcbn0gPSB7XG4gICAgbWluaW1hbDoge1xuICAgICAgICAuLi5ERUZBVUxUX1RJTllNQ0VfQ09ORklHLFxuICAgICAgICBwbHVnaW5zOiAnbGluayBhdXRvbGluaycsXG4gICAgICAgIHRvb2xiYXI6ICdib2xkIGl0YWxpYyB1bmRlcmxpbmUgfCBsaW5rJyxcbiAgICAgICAgdmFsaWRfZWxlbWVudHM6ICdzdHJvbmcsZW0sc3BhbltzdHlsZV0sYVtocmVmXSdcbiAgICB9LFxuICAgIGZ1bGw6IHtcbiAgICAgICAgLi4uREVGQVVMVF9USU5ZTUNFX0NPTkZJRyxcbiAgICAgICAgcGx1Z2luczogJ2xpbmsgbGlzdHMgYXV0b2xpbmsgY2hhcm1hcCcsXG4gICAgICAgIHN0eWxlX2Zvcm1hdHM6IFtcbiAgICAgICAgICAgIHsgdGl0bGU6ICdQYXJhZ3JhcGgnLCBmb3JtYXQ6ICdwJyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ0hlYWRlciAxJywgZm9ybWF0OiAnaDEnIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnSGVhZGVyIDInLCBmb3JtYXQ6ICdoMicgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdIZWFkZXIgMycsIGZvcm1hdDogJ2gzJyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ0hlYWRlciA0JywgZm9ybWF0OiAnaDQnIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnSGVhZGVyIDUnLCBmb3JtYXQ6ICdoNScgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdIZWFkZXIgNicsIGZvcm1hdDogJ2g2JyB9LFxuICAgICAgICAgICAgeyB0aXRsZTogJ1ByZScsIGZvcm1hdDogJ3ByZScgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdDb2RlJywgZm9ybWF0OiAnY29kZScgfVxuICAgICAgICBdLFxuICAgICAgICB0b29sYmFyOiBbXG4gICAgICAgICAgICAnc3R5bGVzZWxlY3QgdW5kbyByZWRvIHwgYm9sZCBpdGFsaWMgdW5kZXJsaW5lIHwgZm9yZWNvbG9yIGJhY2tjb2xvciB8IGFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0IGFsaWduZnVsbCB8IG51bWxpc3QgYnVsbGlzdCBvdXRkZW50IGluZGVudCB8IGhyIGNoYXJtYXAgcmVtb3ZlZm9ybWF0IHwgbGluaydcbiAgICAgICAgXVxuICAgIH0sXG4gICAgcGxhaW46IHtcbiAgICAgICAgLi4uREVGQVVMVF9USU5ZTUNFX0NPTkZJRyxcbiAgICAgICAgcGx1Z2luczogJycsXG4gICAgICAgIHRvb2xiYXI6ICcnXG4gICAgfVxufTtcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * This component is responsible to display a message when there is no component for a contentlet.
5
- *
6
- * @export
7
- * @class NoComponent
8
- */
9
- export class NoComponent {
10
- constructor() {
11
- /**
12
- * The data-testid attribute used for identifying the component during testing.
13
- */
14
- this.testId = 'no-component';
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NoComponent, isStandalone: true, selector: "dotcms-no-component", inputs: { contentlet: "contentlet" }, host: { properties: { "attr.data-testid": "this.testId" } }, ngImport: i0, template: `
18
- No Component for {{ contentlet.contentType }}
19
- `, isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'dotcms-no-component', standalone: true, template: `
24
- No Component for {{ contentlet.contentType }}
25
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
26
- }], propDecorators: { contentlet: [{
27
- type: Input
28
- }], testId: [{
29
- type: HostBinding,
30
- args: ['attr.data-testid']
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL25vLWNvbXBvbmVudC9uby1jb21wb25lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkY7Ozs7O0dBS0c7QUFVSCxNQUFNLE9BQU8sV0FBVztJQVR4QjtRQWdCSTs7V0FFRztRQUM4QixXQUFNLEdBQUcsY0FBYyxDQUFDO0tBQzVEOzhHQVhZLFdBQVc7a0dBQVgsV0FBVyxrTEFOVjs7S0FFVDs7MkZBSVEsV0FBVztrQkFUdkIsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxZQUNOOztLQUVULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU90QyxVQUFVO3NCQUFsQixLQUFLO2dCQUsyQixNQUFNO3NCQUF0QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSB0byBkaXNwbGF5IGEgbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIGNvbXBvbmVudCBmb3IgYSBjb250ZW50bGV0LlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBOb0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1uby1jb21wb25lbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgTm8gQ29tcG9uZW50IGZvciB7eyBjb250ZW50bGV0LmNvbnRlbnRUeXBlIH19XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vbm8tY29tcG9uZW50LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGVudGxldCBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGRhdGEuXG4gICAgICogVGhlIGNvbXBvbmVudCBkaXNwbGF5cyBhIG1lc3NhZ2UgYmFzZWQgb24gdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGlzIGNvbnRlbnRsZXQuXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudGxldCE6IERvdENNU0NvbnRlbnRsZXQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YS10ZXN0aWQgYXR0cmlidXRlIHVzZWQgZm9yIGlkZW50aWZ5aW5nIHRoZSBjb21wb25lbnQgZHVyaW5nIHRlc3RpbmcuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGVzdGlkJykgdGVzdElkID0gJ25vLWNvbXBvbmVudCc7XG59XG4iXX0=
@@ -1,45 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
- import { getPositionStyleClasses } from '../../utils';
3
- import { ContainerComponent } from '../container/container.component';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * This component is responsible to display a column with containers.
7
- *
8
- * @export
9
- * @class ColumnComponent
10
- * @implements {OnInit}
11
- */
12
- export class ColumnComponent {
13
- constructor() {
14
- /**
15
- * The data-testid attribute used for identifying the component during testing.
16
- *
17
- * @memberof ColumnComponent
18
- */
19
- this.containerClasses = '';
20
- }
21
- ngOnInit() {
22
- const { startClass, endClass } = getPositionStyleClasses(this.column.leftOffset, this.column.width + this.column.leftOffset);
23
- this.containerClasses = `${startClass} ${endClass}`;
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: ColumnComponent, isStandalone: true, selector: "dotcms-column", inputs: { column: "column" }, host: { properties: { "class": "this.containerClasses" } }, ngImport: i0, template: `
27
- @for (container of column.containers; track $index) {
28
- <dotcms-container [container]="container" />
29
- }
30
- `, isInline: true, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"], dependencies: [{ kind: "component", type: ContainerComponent, selector: "dotcms-container", inputs: ["container"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ColumnComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'dotcms-column', standalone: true, imports: [ContainerComponent], template: `
35
- @for (container of column.containers; track $index) {
36
- <dotcms-container [container]="container" />
37
- }
38
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"] }]
39
- }], propDecorators: { column: [{
40
- type: Input
41
- }], containerClasses: [{
42
- type: HostBinding,
43
- args: ['class']
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29sdW1uL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFdEU7Ozs7OztHQU1HO0FBYUgsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFxQkk7Ozs7V0FJRztRQUNtQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7S0FTL0M7SUFQRyxRQUFRO1FBQ0osTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyx1QkFBdUIsQ0FDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUM3QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsVUFBVSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQ3hELENBQUM7OEdBdEJRLGVBQWU7a0dBQWYsZUFBZSxtS0FSZDs7OztLQUlULDQ5QkFMUyxrQkFBa0I7OzJGQVNuQixlQUFlO2tCQVozQixTQUFTOytCQUNJLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsQ0FBQyxZQUNuQjs7OztLQUlULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVN0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBT2dCLGdCQUFnQjtzQkFBckMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGdldFBvc2l0aW9uU3R5bGVDbGFzc2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIGRpc3BsYXkgYSBjb2x1bW4gd2l0aCBjb250YWluZXJzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb2x1bW5Db21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbHVtbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAZm9yIChjb250YWluZXIgb2YgY29sdW1uLmNvbnRhaW5lcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRvdGNtcy1jb250YWluZXIgW2NvbnRhaW5lcl09XCJjb250YWluZXJcIiAvPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vY29sdW1uLmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbHVtbiBvYmplY3QgY29udGFpbmluZyB0aGUgY29udGFpbmVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW59XG4gICAgICogQG1lbWJlcm9mIENvbHVtbkNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbHVtbiE6IERvdFBhZ2VBc3NldExheW91dENvbHVtbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhLXRlc3RpZCBhdHRyaWJ1dGUgdXNlZCBmb3IgaWRlbnRpZnlpbmcgdGhlIGNvbXBvbmVudCBkdXJpbmcgdGVzdGluZy5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBDb2x1bW5Db21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY29udGFpbmVyQ2xhc3NlcyA9ICcnO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnRDbGFzcywgZW5kQ2xhc3MgfSA9IGdldFBvc2l0aW9uU3R5bGVDbGFzc2VzKFxuICAgICAgICAgICAgdGhpcy5jb2x1bW4ubGVmdE9mZnNldCxcbiAgICAgICAgICAgIHRoaXMuY29sdW1uLndpZHRoICsgdGhpcy5jb2x1bW4ubGVmdE9mZnNldFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzZXMgPSBgJHtzdGFydENsYXNzfSAke2VuZENsYXNzfWA7XG4gICAgfVxufVxuIl19