@acorex-platform/module-content-management-client 0.0.30 → 0.0.33

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 (28) hide show
  1. package/fesm2022/acorex-platform-module-content-management-client-contracts-entities-promotion.mjs +302 -0
  2. package/fesm2022/acorex-platform-module-content-management-client-contracts-entities-promotion.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-content-management-client-contracts-entities-text-template.mjs +264 -0
  4. package/fesm2022/acorex-platform-module-content-management-client-contracts-entities-text-template.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-acorex-platform-module-content-management-client-contracts-entity-catalog-CTui3PB-.mjs +56 -0
  6. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-acorex-platform-module-content-management-client-contracts-entity-catalog-CTui3PB-.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-promotion.entity-DXk_WIh3.mjs +266 -0
  8. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-promotion.entity-DXk_WIh3.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-text-template.entity-C8SFkg-E.mjs +228 -0
  10. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog-text-template.entity-C8SFkg-E.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog.mjs +2 -0
  12. package/fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-content-management-client-contracts.mjs +44 -14
  14. package/fesm2022/acorex-platform-module-content-management-client-contracts.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-content-management-client-local-entities.mjs +30 -0
  16. package/fesm2022/acorex-platform-module-content-management-client-local-entities.mjs.map +1 -0
  17. package/fesm2022/{acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-CApNVTfc.mjs → acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-BkSjAXjQ.mjs} +6 -6
  18. package/fesm2022/acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-BkSjAXjQ.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-content-management-client.mjs +26 -3
  20. package/fesm2022/acorex-platform-module-content-management-client.mjs.map +1 -1
  21. package/package.json +17 -1
  22. package/types/acorex-platform-module-content-management-client-contracts-entities-promotion.d.ts +8 -0
  23. package/types/acorex-platform-module-content-management-client-contracts-entities-text-template.d.ts +5 -0
  24. package/types/acorex-platform-module-content-management-client-contracts-entity-catalog.d.ts +10 -0
  25. package/types/acorex-platform-module-content-management-client-contracts.d.ts +27 -19
  26. package/types/acorex-platform-module-content-management-client-local-entities.d.ts +12 -0
  27. package/types/acorex-platform-module-content-management-client.d.ts +8 -2
  28. package/fesm2022/acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-CApNVTfc.mjs.map +0 -1
@@ -3,11 +3,12 @@ import { InjectionToken, Injectable, inject, signal, ChangeDetectionStrategy, Co
3
3
  import * as i1 from '@acorex-platform/framework-client/core';
4
4
  import { AXPComponentSlotModule, AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';
5
5
  import { RootConfig, AXM_TEXT_TEMPLATE_PRINT_CHANNEL, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXPContentDocumentsPermissionKeys, AXPContentManagementMenuKeys } from '@acorex-platform/module-content-management-client/contracts';
6
- export { AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain } from '@acorex-platform/module-content-management-client/contracts';
6
+ export { AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, renderTextTemplateSource, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain } from '@acorex-platform/module-content-management-client/contracts';
7
7
  import { AXPFileStorageService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXPSearchCommandProvider, createEntityCommandOptions } from '@acorex-platform/framework-client/common';
8
8
  import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
9
9
  import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
10
10
  import { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';
11
+ import { createBuiltinBlockRegistry, createBuiltinPipeRegistry, createTextTemplateEngine } from '@acorex-platform/framework-shared/text-template';
11
12
  import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
12
13
  import { AXSafePipe } from '@acorex/core/pipes';
13
14
  import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';
@@ -76,7 +77,7 @@ const AXMTemplateContentEditorWidget = {
76
77
  component: () => import('./acorex-platform-module-content-management-client-template-content-editor-widget-view.component-CfupUZTI.mjs').then((c) => c.AXMTemplateContentEditorWidgetViewComponent),
77
78
  },
78
79
  edit: {
79
- component: () => import('./acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-CApNVTfc.mjs').then((c) => c.AXMTemplateContentEditorWidgetEditComponent),
80
+ component: () => import('./acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-BkSjAXjQ.mjs').then((c) => c.AXMTemplateContentEditorWidgetEditComponent),
80
81
  },
81
82
  },
82
83
  };
@@ -96,6 +97,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
96
97
  type: Injectable
97
98
  }] });
98
99
 
100
+ //#region ----- Angular tokens -----
101
+ const AXC_TEXT_TEMPLATE_BLOCK_REGISTRY = new InjectionToken('AXC_TEXT_TEMPLATE_BLOCK_REGISTRY', { factory: createBuiltinBlockRegistry });
102
+ const AXC_TEXT_TEMPLATE_PIPE_REGISTRY = new InjectionToken('AXC_TEXT_TEMPLATE_PIPE_REGISTRY', { factory: createBuiltinPipeRegistry });
103
+ const AXC_TEXT_TEMPLATE_ENGINE = new InjectionToken('AXC_TEXT_TEMPLATE_ENGINE', {
104
+ factory: () => createTextTemplateEngine({
105
+ blocks: inject(AXC_TEXT_TEMPLATE_BLOCK_REGISTRY),
106
+ pipes: inject(AXC_TEXT_TEMPLATE_PIPE_REGISTRY),
107
+ }),
108
+ });
109
+ const textTemplateEngineProviders = [
110
+ { provide: AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, useFactory: createBuiltinBlockRegistry },
111
+ { provide: AXC_TEXT_TEMPLATE_PIPE_REGISTRY, useFactory: createBuiltinPipeRegistry },
112
+ {
113
+ provide: AXC_TEXT_TEMPLATE_ENGINE,
114
+ useFactory: (blocks, pipes) => createTextTemplateEngine({ blocks, pipes }),
115
+ deps: [AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, AXC_TEXT_TEMPLATE_PIPE_REGISTRY],
116
+ },
117
+ ];
118
+ //#endregion
119
+
99
120
  class AXMPromotionSlotComponent {
100
121
  constructor() {
101
122
  this.entityService = inject(AXPEntityService);
@@ -156,6 +177,7 @@ class AXMContentManagementModule {
156
177
  multi: true,
157
178
  },
158
179
  printTextTemplateChannelProvider,
180
+ ...textTemplateEngineProviders,
159
181
  ], imports: [AXPWidgetCoreModule,
160
182
  AXPComponentSlotModule.forChild({
161
183
  'side-menu-footer': [
@@ -224,6 +246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
224
246
  multi: true,
225
247
  },
226
248
  printTextTemplateChannelProvider,
249
+ ...textTemplateEngineProviders,
227
250
  ],
228
251
  }]
229
252
  }] });
@@ -411,5 +434,5 @@ var setting_provider = /*#__PURE__*/Object.freeze({
411
434
  * Generated bundle index. Do not edit.
412
435
  */
413
436
 
414
- export { AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY$1 as AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXMContentManagementModule, AXMMenuProvider, AXMPromotionSlotComponent, AXMSearchCommandProvider, AXMSettingProvider, AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER };
437
+ export { AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, AXC_TEXT_TEMPLATE_ENGINE, AXC_TEXT_TEMPLATE_PIPE_REGISTRY, AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY$1 as AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXMContentManagementModule, AXMMenuProvider, AXMPromotionSlotComponent, AXMSearchCommandProvider, AXMSettingProvider, AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER };
415
438
  //# sourceMappingURL=acorex-platform-module-content-management-client.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-content-management-client.mjs","sources":["../../../../libs/modules/content-management/client/src/lib/manifest.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/channel-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/print-text-template-channel-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/template-content-editor-widget.config.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/text-template-placeholder.util.ts","../../../../libs/modules/content-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/client/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/client/src/lib/content-management.module.ts","../../../../libs/modules/content-management/client/src/lib/text-template-render.command.key.ts","../../../../libs/modules/content-management/client/src/lib/features/text-template-render/text-template-render.types.ts","../../../../libs/modules/content-management/client/src/lib/menu.provider.ts","../../../../libs/modules/content-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/client/src/lib/setting.provider.ts","../../../../libs/modules/content-management/client/src/acorex-platform-module-content-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Content Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const ContentManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n\n type: 'domain',\n domain: 'content-documents',\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { InjectionToken } from '@angular/core';\nimport type { AXMTextTemplateChannelDefinitionProvider } from '@acorex-platform/module-content-management-client/contracts';\n\n//#region ---- Token ----\n\n/** Multi-provider token – all providers are merged for available channels */\nexport const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER = new InjectionToken<\n AXMTextTemplateChannelDefinitionProvider\n>('AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER');\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport {\n AXM_TEXT_TEMPLATE_PRINT_CHANNEL,\n RootConfig,\n type AXMTextTemplateChannelDefinition,\n type AXMTextTemplateChannelDefinitionProvider,\n} from '@acorex-platform/module-content-management-client/contracts';\nimport { AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER } from './channel-definition.provider';\n\nconst I18N = `@${RootConfig.config.i18n}:templates.channels`;\n\n//#region ---- Print text template channel ----\n\n@Injectable()\nexport class AXMPrintTextTemplateChannelDefinitionProvider\n implements AXMTextTemplateChannelDefinitionProvider\n{\n getChannels(): AXMTextTemplateChannelDefinition[] {\n return [\n {\n name: AXM_TEXT_TEMPLATE_PRINT_CHANNEL,\n title: `${I18N}.print`,\n type: 'rich',\n hasSubject: false,\n },\n ];\n }\n}\n\n//#endregion\n\nexport const printTextTemplateChannelProvider = {\n provide: AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER,\n useClass: AXMPrintTextTemplateChannelDefinitionProvider,\n multi: true,\n};\n","import { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXMTemplateContentEditorWidget: AXPWidgetConfig = {\n name: 'template-content-editor',\n title: 'Template Content',\n icon: 'fa-light fa-envelope',\n description: 'Multi-channel template editor with tabs (Email, SMS, WhatsApp, etc.)',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./template-content-editor-widget-view.component').then(\n (c) => c.AXMTemplateContentEditorWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./template-content-editor-widget-edit.component').then(\n (c) => c.AXMTemplateContentEditorWidgetEditComponent\n ),\n },\n },\n};\n","/** Re-export shared text-template placeholder / compose helpers from contracts. */\nexport {\n AXM_TEXT_TEMPLATE_CONTENT_SLOT,\n AXM_TEXT_TEMPLATE_KIND,\n AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH,\n collectTextTemplatePlaceholderNames,\n composeTextTemplateBodyChain,\n replaceTextTemplateContentSlot,\n replaceTextTemplatePlaceholders,\n resolveTextTemplateLocalizedString,\n textTemplateContainsContentSlot,\n validateTextTemplateContentSlots,\n validateTextTemplateParentChain,\n type AXMTextTemplateEntityModel,\n type AXMTextTemplateKind,\n type AXMTextTemplateParentChainNode,\n} from '@acorex-platform/module-content-management-client/contracts';\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMTemplateContentEditorWidget } from './features/template-content-editor';\n\n//#endregion\n\n//#region ---- Content Management Widgets Provider ----\n\n@Injectable()\nexport class AXMContentManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMTemplateContentEditorWidget];\n }\n}\n\n//#endregion\n","import { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex-platform/framework-client/common';\nimport { Component, inject, OnInit, signal, WritableSignal, ChangeDetectionStrategy } from '@angular/core';\nimport { AXMPromotionEntityModel } from '@acorex-platform/module-content-management-client/contracts';\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [AXSafePipe],\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n private readonly entityService = inject(AXPEntityService);\n location: string;\n\n notificationChannelService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n\n listData: WritableSignal<AXMPromotionEntityModel[]> = signal([]);\n\n private fileStorage = inject(AXPFileStorageService);\n\n async ngOnInit(): Promise<void> {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n\n const mappedItems = await Promise.all(\n filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n\n return {\n ...item,\n image: image,\n };\n } else {\n return item;\n }\n })\n );\n\n this.listData.set(mappedItems);\n }\n} ","@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"w-full p-3 border {{\n item.shape?.name == 'circle' ? 'rounded-full' : 'rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"m-1 px-6 p-4 border bg-primary rounded-lg\">\n <h1 class=\"text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from '@angular/core';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { ContentManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXMContentManagementWidgetsProvider } from './widget-definition.provider';\nimport { printTextTemplateChannelProvider } from './features/template-content-editor/print-text-template-channel-definition.provider';\n\n// Import promotion-related components\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: ContentManagementManifest,\n multi: true,\n },\n provideLazyProvider(\n AXP_PERMISSION_DEFINITION_PROVIDER,\n () => import('./permission-definition.provider').then((m) => m.AXMPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () => import('./menu.provider').then((m) => m.AXMMenuProvider)),\n \n provideLazyProvider(\n AXP_SETTING_DEFINITION_PROVIDER,\n () => import('./setting.provider').then((m) => m.AXMSettingProvider),\n ),\n provideLazyProvider(\n AXP_SEARCH_PROVIDER,\n () => import('./search-command.provider').then((m) => m.AXMSearchCommandProvider),\n ),\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMContentManagementWidgetsProvider,\n multi: true,\n },\n printTextTemplateChannelProvider,\n ],\n})\nexport class AXMContentManagementModule {}\n","import { AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY } from '@acorex-platform/module-content-management-client/contracts';\n\n/** Registry / remote key for Nest `ContentManagement:TextTemplate:Render`. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;\n","import {\n AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY,\n AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY,\n type AXMTextTemplatePreviewRequest,\n type AXMTextTemplatePreviewResult,\n type AXMTextTemplateRenderRequest,\n type AXMTextTemplateRenderResult,\n} from '@acorex-platform/module-content-management-client/contracts';\n\n//#region ----- Types -----\n\n/** @deprecated Prefer {@link AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY}. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;\n\n/** @deprecated Prefer {@link AXMTextTemplateRenderRequest}. */\nexport type AXPTextTemplateRenderRequest = AXMTextTemplateRenderRequest;\n\n/** @deprecated Prefer {@link AXMTextTemplateRenderResult}. */\nexport type AXPTextTemplateRenderResult = AXMTextTemplateRenderResult;\n\nexport {\n AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY,\n AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY,\n type AXMTextTemplatePreviewRequest,\n type AXMTextTemplatePreviewResult,\n type AXMTextTemplateRenderRequest,\n type AXMTextTemplateRenderResult,\n};\n\n//#endregion\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPContentDocumentsPermissionKeys } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPContentManagementMenuKeys } from '@acorex-platform/module-content-management-client/contracts';\n\n@Injectable()\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n\n //#region ---- Administration > Content (Promotions, Page Builder) ----\n\n const contentMenu = context.find(AXPCommonMenuKeys.Content);\n if (!contentMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Content,\n priority: 10,\n text: '@general:menus.content.title',\n icon: 'fa-light fa-paint-brush',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Content).addItems([\n {\n name: AXPContentManagementMenuKeys.Promotions,\n text: RootConfig.entities.promotion.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],\n },\n },\n ]);\n\n // Text Template under Configuration > Data and Content\n context.find(AXPCommonMenuKeys.DataAndContent).addItems([\n {\n name: AXPContentManagementMenuKeys.TextTemplates,\n text: RootConfig.entities.textTemplate.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.textTemplate.name),\n icon: RootConfig.entities.textTemplate.icon,\n priority: 2,\n policy: {\n features: [module.name],\n permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],\n },\n },\n ]);\n\n //#endregion\n\n //#region ---- Help Menu Extensions ----\n\n context.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpRoot,\n priority: 900000,\n text: `@${scope}:help-center.menus.help.title`,\n icon: 'fa-light fa-circle-question',\n },\n ]);\n\n const helpMenu = context.find(AXPContentManagementMenuKeys.HelpRoot);\n\n if (helpMenu.exists) {\n helpMenu.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpCenter,\n text: `@${scope}:help-center.menus.help-center.title`,\n icon: 'fa-light fa-book-open',\n priority: 900001,\n },\n {\n name: AXPContentManagementMenuKeys.Tutorials,\n text: `@${scope}:help-center.menus.tutorials.title`,\n icon: 'fa-light fa-clapperboard-play',\n priority: 900002,\n },\n {\n name: AXPContentManagementMenuKeys.About,\n text: `@${scope}:help-center.menus.about.title`,\n icon: 'fa-light fa-circle-info',\n priority: 900011,\n },\n ]);\n }\n\n //#endregion\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-promotion',\n group: 'command',\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n description: RootConfig.entities.promotion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n {\n name: RootConfig.entities.promotion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.promotion.title,\n }\n ),\n },\n },\n {\n id: 'create-text-template',\n group: 'command',\n title: `@content-management:templates.search.create-text-template.title`,\n icon: RootConfig.entities.textTemplate.icon,\n description: `@content-management:templates.search.create-text-template.description`,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.textTemplate.name}`,\n {\n name: RootConfig.entities.textTemplate.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.textTemplate.title,\n }\n ),\n },\n },\n ];\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-content-management-client.mjs","sources":["../../../../libs/modules/content-management/client/src/lib/manifest.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/channel-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/print-text-template-channel-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/template-content-editor-widget.config.ts","../../../../libs/modules/content-management/client/src/lib/features/template-content-editor/text-template-placeholder.util.ts","../../../../libs/modules/content-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/content-management/client/src/lib/text-template-engine.tokens.ts","../../../../libs/modules/content-management/client/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/client/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/client/src/lib/content-management.module.ts","../../../../libs/modules/content-management/client/src/lib/text-template-render.command.key.ts","../../../../libs/modules/content-management/client/src/lib/features/text-template-render/text-template-render.types.ts","../../../../libs/modules/content-management/client/src/lib/menu.provider.ts","../../../../libs/modules/content-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/client/src/lib/setting.provider.ts","../../../../libs/modules/content-management/client/src/acorex-platform-module-content-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Content Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const ContentManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n\n type: 'domain',\n domain: 'content-documents',\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { InjectionToken } from '@angular/core';\nimport type { AXMTextTemplateChannelDefinitionProvider } from '@acorex-platform/module-content-management-client/contracts';\n\n//#region ---- Token ----\n\n/** Multi-provider token – all providers are merged for available channels */\nexport const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER = new InjectionToken<\n AXMTextTemplateChannelDefinitionProvider\n>('AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER');\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport {\n AXM_TEXT_TEMPLATE_PRINT_CHANNEL,\n RootConfig,\n type AXMTextTemplateChannelDefinition,\n type AXMTextTemplateChannelDefinitionProvider,\n} from '@acorex-platform/module-content-management-client/contracts';\nimport { AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER } from './channel-definition.provider';\n\nconst I18N = `@${RootConfig.config.i18n}:templates.channels`;\n\n//#region ---- Print text template channel ----\n\n@Injectable()\nexport class AXMPrintTextTemplateChannelDefinitionProvider\n implements AXMTextTemplateChannelDefinitionProvider\n{\n getChannels(): AXMTextTemplateChannelDefinition[] {\n return [\n {\n name: AXM_TEXT_TEMPLATE_PRINT_CHANNEL,\n title: `${I18N}.print`,\n type: 'rich',\n hasSubject: false,\n },\n ];\n }\n}\n\n//#endregion\n\nexport const printTextTemplateChannelProvider = {\n provide: AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER,\n useClass: AXMPrintTextTemplateChannelDefinitionProvider,\n multi: true,\n};\n","import { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXMTemplateContentEditorWidget: AXPWidgetConfig = {\n name: 'template-content-editor',\n title: 'Template Content',\n icon: 'fa-light fa-envelope',\n description: 'Multi-channel template editor with tabs (Email, SMS, WhatsApp, etc.)',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./template-content-editor-widget-view.component').then(\n (c) => c.AXMTemplateContentEditorWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./template-content-editor-widget-edit.component').then(\n (c) => c.AXMTemplateContentEditorWidgetEditComponent\n ),\n },\n },\n};\n","/** Re-export shared text-template placeholder / compose helpers from contracts. */\nexport {\n AXM_TEXT_TEMPLATE_CONTENT_SLOT,\n AXM_TEXT_TEMPLATE_KIND,\n AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH,\n collectTextTemplatePlaceholderNames,\n composeTextTemplateBodyChain,\n renderTextTemplateSource,\n replaceTextTemplateContentSlot,\n replaceTextTemplatePlaceholders,\n resolveTextTemplateLocalizedString,\n textTemplateContainsContentSlot,\n validateTextTemplateContentSlots,\n validateTextTemplateParentChain,\n type AXMTextTemplateEntityModel,\n type AXMTextTemplateKind,\n type AXMTextTemplateParentChainNode,\n} from '@acorex-platform/module-content-management-client/contracts';\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMTemplateContentEditorWidget } from './features/template-content-editor';\n\n//#endregion\n\n//#region ---- Content Management Widgets Provider ----\n\n@Injectable()\nexport class AXMContentManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMTemplateContentEditorWidget];\n }\n}\n\n//#endregion\n","import { InjectionToken, inject } from '@angular/core';\nimport {\n createBuiltinBlockRegistry,\n createBuiltinPipeRegistry,\n createTextTemplateEngine,\n type ContentBlockDefinition,\n type ContentPipe,\n type TextTemplateEngine,\n} from '@acorex-platform/framework-shared/text-template';\nimport type { AXPRegistry } from '@acorex-platform/framework-shared/core';\n\n//#region ----- Angular tokens -----\n\nexport const AXC_TEXT_TEMPLATE_BLOCK_REGISTRY = new InjectionToken<AXPRegistry<ContentBlockDefinition>>(\n 'AXC_TEXT_TEMPLATE_BLOCK_REGISTRY',\n { factory: createBuiltinBlockRegistry },\n);\n\nexport const AXC_TEXT_TEMPLATE_PIPE_REGISTRY = new InjectionToken<AXPRegistry<ContentPipe>>(\n 'AXC_TEXT_TEMPLATE_PIPE_REGISTRY',\n { factory: createBuiltinPipeRegistry },\n);\n\nexport const AXC_TEXT_TEMPLATE_ENGINE = new InjectionToken<TextTemplateEngine>(\n 'AXC_TEXT_TEMPLATE_ENGINE',\n {\n factory: () =>\n createTextTemplateEngine({\n blocks: inject(AXC_TEXT_TEMPLATE_BLOCK_REGISTRY),\n pipes: inject(AXC_TEXT_TEMPLATE_PIPE_REGISTRY),\n }),\n },\n);\n\nexport const textTemplateEngineProviders = [\n { provide: AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, useFactory: createBuiltinBlockRegistry },\n { provide: AXC_TEXT_TEMPLATE_PIPE_REGISTRY, useFactory: createBuiltinPipeRegistry },\n {\n provide: AXC_TEXT_TEMPLATE_ENGINE,\n useFactory: (\n blocks: AXPRegistry<ContentBlockDefinition>,\n pipes: AXPRegistry<ContentPipe>,\n ) => createTextTemplateEngine({ blocks, pipes }),\n deps: [AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, AXC_TEXT_TEMPLATE_PIPE_REGISTRY],\n },\n];\n\n//#endregion\n","import { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex-platform/framework-client/common';\nimport { Component, inject, OnInit, signal, WritableSignal, ChangeDetectionStrategy } from '@angular/core';\nimport { AXMPromotionEntityModel } from '@acorex-platform/module-content-management-client/contracts';\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [AXSafePipe],\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n private readonly entityService = inject(AXPEntityService);\n location: string;\n\n notificationChannelService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n\n listData: WritableSignal<AXMPromotionEntityModel[]> = signal([]);\n\n private fileStorage = inject(AXPFileStorageService);\n\n async ngOnInit(): Promise<void> {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n\n const mappedItems = await Promise.all(\n filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n\n return {\n ...item,\n image: image,\n };\n } else {\n return item;\n }\n })\n );\n\n this.listData.set(mappedItems);\n }\n} ","@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"w-full p-3 border {{\n item.shape?.name == 'circle' ? 'rounded-full' : 'rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"m-1 px-6 p-4 border bg-primary rounded-lg\">\n <h1 class=\"text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from '@angular/core';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { ContentManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXMContentManagementWidgetsProvider } from './widget-definition.provider';\nimport { printTextTemplateChannelProvider } from './features/template-content-editor/print-text-template-channel-definition.provider';\nimport { textTemplateEngineProviders } from './text-template-engine.tokens';\n\n// Import promotion-related components\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: ContentManagementManifest,\n multi: true,\n },\n provideLazyProvider(\n AXP_PERMISSION_DEFINITION_PROVIDER,\n () => import('./permission-definition.provider').then((m) => m.AXMPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () => import('./menu.provider').then((m) => m.AXMMenuProvider)),\n \n provideLazyProvider(\n AXP_SETTING_DEFINITION_PROVIDER,\n () => import('./setting.provider').then((m) => m.AXMSettingProvider),\n ),\n provideLazyProvider(\n AXP_SEARCH_PROVIDER,\n () => import('./search-command.provider').then((m) => m.AXMSearchCommandProvider),\n ),\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMContentManagementWidgetsProvider,\n multi: true,\n },\n printTextTemplateChannelProvider,\n ...textTemplateEngineProviders,\n ],\n})\nexport class AXMContentManagementModule {}\n","import { AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY } from '@acorex-platform/module-content-management-client/contracts';\n\n/** Registry / remote key for Nest `ContentManagement:TextTemplate:Render`. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;\n","import {\n AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY,\n AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY,\n type AXMTextTemplatePreviewRequest,\n type AXMTextTemplatePreviewResult,\n type AXMTextTemplateRenderRequest,\n type AXMTextTemplateRenderResult,\n} from '@acorex-platform/module-content-management-client/contracts';\n\n//#region ----- Types -----\n\n/** @deprecated Prefer {@link AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY}. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;\n\n/** @deprecated Prefer {@link AXMTextTemplateRenderRequest}. */\nexport type AXPTextTemplateRenderRequest = AXMTextTemplateRenderRequest;\n\n/** @deprecated Prefer {@link AXMTextTemplateRenderResult}. */\nexport type AXPTextTemplateRenderResult = AXMTextTemplateRenderResult;\n\nexport {\n AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY,\n AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY,\n type AXMTextTemplatePreviewRequest,\n type AXMTextTemplatePreviewResult,\n type AXMTextTemplateRenderRequest,\n type AXMTextTemplateRenderResult,\n};\n\n//#endregion\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPContentDocumentsPermissionKeys } from '@acorex-platform/module-content-management-client/contracts';\nimport { AXPContentManagementMenuKeys } from '@acorex-platform/module-content-management-client/contracts';\n\n@Injectable()\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n\n //#region ---- Administration > Content (Promotions, Page Builder) ----\n\n const contentMenu = context.find(AXPCommonMenuKeys.Content);\n if (!contentMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Content,\n priority: 10,\n text: '@general:menus.content.title',\n icon: 'fa-light fa-paint-brush',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Content).addItems([\n {\n name: AXPContentManagementMenuKeys.Promotions,\n text: RootConfig.entities.promotion.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],\n },\n },\n ]);\n\n // Text Template under Configuration > Data and Content\n context.find(AXPCommonMenuKeys.DataAndContent).addItems([\n {\n name: AXPContentManagementMenuKeys.TextTemplates,\n text: RootConfig.entities.textTemplate.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.textTemplate.name),\n icon: RootConfig.entities.textTemplate.icon,\n priority: 2,\n policy: {\n features: [module.name],\n permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],\n },\n },\n ]);\n\n //#endregion\n\n //#region ---- Help Menu Extensions ----\n\n context.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpRoot,\n priority: 900000,\n text: `@${scope}:help-center.menus.help.title`,\n icon: 'fa-light fa-circle-question',\n },\n ]);\n\n const helpMenu = context.find(AXPContentManagementMenuKeys.HelpRoot);\n\n if (helpMenu.exists) {\n helpMenu.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpCenter,\n text: `@${scope}:help-center.menus.help-center.title`,\n icon: 'fa-light fa-book-open',\n priority: 900001,\n },\n {\n name: AXPContentManagementMenuKeys.Tutorials,\n text: `@${scope}:help-center.menus.tutorials.title`,\n icon: 'fa-light fa-clapperboard-play',\n priority: 900002,\n },\n {\n name: AXPContentManagementMenuKeys.About,\n text: `@${scope}:help-center.menus.about.title`,\n icon: 'fa-light fa-circle-info',\n priority: 900011,\n },\n ]);\n }\n\n //#endregion\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-content-management-client/contracts';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-promotion',\n group: 'command',\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n description: RootConfig.entities.promotion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n {\n name: RootConfig.entities.promotion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.promotion.title,\n }\n ),\n },\n },\n {\n id: 'create-text-template',\n group: 'command',\n title: `@content-management:templates.search.create-text-template.title`,\n icon: RootConfig.entities.textTemplate.icon,\n description: `@content-management:templates.search.create-text-template.description`,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.textTemplate.name}`,\n {\n name: RootConfig.entities.textTemplate.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.textTemplate.title,\n }\n ),\n },\n },\n ];\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-content-management-client",
3
- "version": "0.0.30",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
@@ -22,6 +22,22 @@
22
22
  "./contracts": {
23
23
  "types": "./types/acorex-platform-module-content-management-client-contracts.d.ts",
24
24
  "default": "./fesm2022/acorex-platform-module-content-management-client-contracts.mjs"
25
+ },
26
+ "./contracts/entities/promotion": {
27
+ "types": "./types/acorex-platform-module-content-management-client-contracts-entities-promotion.d.ts",
28
+ "default": "./fesm2022/acorex-platform-module-content-management-client-contracts-entities-promotion.mjs"
29
+ },
30
+ "./contracts/entities/text-template": {
31
+ "types": "./types/acorex-platform-module-content-management-client-contracts-entities-text-template.d.ts",
32
+ "default": "./fesm2022/acorex-platform-module-content-management-client-contracts-entities-text-template.mjs"
33
+ },
34
+ "./contracts/entity-catalog": {
35
+ "types": "./types/acorex-platform-module-content-management-client-contracts-entity-catalog.d.ts",
36
+ "default": "./fesm2022/acorex-platform-module-content-management-client-contracts-entity-catalog.mjs"
37
+ },
38
+ "./local-entities": {
39
+ "types": "./types/acorex-platform-module-content-management-client-local-entities.d.ts",
40
+ "default": "./fesm2022/acorex-platform-module-content-management-client-local-entities.mjs"
25
41
  }
26
42
  },
27
43
  "type": "module"
@@ -0,0 +1,8 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ /**
4
+ * Builds the Promotion entity definition (mock/runtime parity with former module JSON seed).
5
+ */
6
+ declare function promotionEntityFactory(): Promise<AXPEntity | null>;
7
+
8
+ export { promotionEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function textTemplateEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { textTemplateEntityFactory };
@@ -0,0 +1,10 @@
1
+ import { AXPLocalEntityCatalog } from '@acorex-platform/framework-shared/entity';
2
+
3
+ /**
4
+ * Lazy per-entity layout factories. Do not re-export from the contracts barrel
5
+ * so RootConfig imports stay light. Server seed and client `local-entities`
6
+ * consume this catalog explicitly.
7
+ */
8
+ declare const contentManagementLocalEntityCatalog: AXPLocalEntityCatalog;
9
+
10
+ export { contentManagementLocalEntityCatalog };
@@ -195,13 +195,18 @@ interface AXMTextTemplateEntityModel extends AXPEntityModel<string> {
195
195
  }
196
196
 
197
197
  /**
198
- * Collects unique placeholder token names from text (`{{name}}`).
198
+ * Collects unique root paths from template source (`{{ employee.name }}`, `{{#table users as user}}`).
199
199
  */
200
200
  declare function collectTextTemplatePlaceholderNames(text: string): string[];
201
201
  /**
202
- * Replaces `{{token}}` when `merge[token]` is defined; otherwise leaves the token unchanged.
202
+ * Interpolates `{{ path | pipe }}` using typed `data` (and optional `[content]`).
203
+ * Does not parse block tags (`{{#table}}`, …) — use {@link renderTextTemplateSource} for bodies.
203
204
  */
204
- declare function replaceTextTemplatePlaceholders(text: string, merge: Record<string, string>): string;
205
+ declare function replaceTextTemplatePlaceholders(text: string, data?: Record<string, unknown>): string;
206
+ /**
207
+ * Parses source to blocks and renders for the email channel (local preview / compose fallback).
208
+ */
209
+ declare function renderTextTemplateSource(source: string, data?: Record<string, unknown>, slotContent?: string): string;
205
210
  /**
206
211
  * Resolves a template channel field (plain string or per-locale map) for the active locale.
207
212
  */
@@ -216,9 +221,9 @@ declare function textTemplateContainsContentSlot(text: string | null | undefined
216
221
  declare function replaceTextTemplateContentSlot(masterBody: string, content: string): string;
217
222
  /**
218
223
  * Composes a body chain: leaf first, then parents toward root.
219
- * Each level applies `{{token}}` merge; parents receive the child body via `[content]`.
224
+ * Injects `[content]` only — callers interpolate or {@link renderTextTemplateSource} afterward.
220
225
  */
221
- declare function composeTextTemplateBodyChain(bodiesLeafToRoot: string[], merge: Record<string, string>): string;
226
+ declare function composeTextTemplateBodyChain(bodiesLeafToRoot: string[]): string;
222
227
  /**
223
228
  * Master templates: every non-empty channel body locale must include `[content]`.
224
229
  * Content templates: no channel body may include `[content]`.
@@ -256,7 +261,7 @@ declare function validateTextTemplateParentChain(input: {
256
261
  /** Server + client command key for rendering a text template channel. */
257
262
  declare const AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY: "ContentManagement:TextTemplate:Render";
258
263
  /**
259
- * Request to render a persisted text template channel with merge values.
264
+ * Request to render a persisted text template channel with typed domain/event data.
260
265
  * Walks optional `parentId` masters and injects child body into `[content]`.
261
266
  */
262
267
  interface AXMTextTemplateRenderRequest {
@@ -281,16 +286,13 @@ interface AXMTextTemplateRenderRequest {
281
286
  */
282
287
  locale?: string;
283
288
  /**
284
- * Event/domain values merged into `{{name}}` placeholders (e.g. `employeeName`, `documentTitle`).
285
- * Prefer raw ISO dates and numeric strings — the render engine formats typed tokens
286
- * (`DateTime`, `Integer`, `Decimal`, Currency/Percent) using regional settings.
287
- * Context tokens used by shared masters (`companyName`, `companyEmail`, …) are filled by the
288
- * render engine via PlatformManagement.Tokens when missing — do not re-supply them per caller.
289
+ * Event tokens and domain graphs (`users`, `workOrders`, …).
290
+ * Context/Computed tokens (`companyName`, …) are filled from PlatformManagement.Tokens.
289
291
  */
290
- merge?: Record<string, string>;
292
+ data?: Record<string, unknown>;
291
293
  }
292
294
  /**
293
- * Rendered subject/body for one channel after placeholder replacement and parent composition.
295
+ * Rendered subject/body for one channel after engine render and parent composition.
294
296
  */
295
297
  interface AXMTextTemplateRenderResult {
296
298
  textTemplateId: string;
@@ -318,11 +320,11 @@ interface AXMTextTemplatePreviewRequest {
318
320
  * or `en-US` when omitted on the server.
319
321
  */
320
322
  locale?: string;
321
- /** Optional merge overrides (applied before Context resolve and Event samples). */
322
- merge?: Record<string, string>;
323
+ /** Optional data overrides (applied before Context resolve and Event samples). */
324
+ data?: Record<string, unknown>;
323
325
  }
324
326
  /**
325
- * Preview subject/body for one channel after placeholder replacement and parent composition.
327
+ * Preview subject/body for one channel after engine render and parent composition.
326
328
  */
327
329
  interface AXMTextTemplatePreviewResult {
328
330
  channel: string;
@@ -351,15 +353,21 @@ declare const AXM_TEXT_TEMPLATE_IDS: {
351
353
  readonly ticketResolved: "c7100006-0001-4111-b111-060606060606";
352
354
  readonly employeeHappyBirthday: "c7100007-0001-4111-b111-070707070707";
353
355
  readonly employeeJoiningCompany: "c7100008-0001-4111-b111-080808080808";
354
- /** Document expired — daily notifier (email + in-app). */
356
+ /** Combined document expiration digest (expired + near) — daily notifier (email + in-app). */
355
357
  readonly documentExpired: "c7100009-0001-4111-b111-090909090909";
356
- /** Document near expiry — daily notifier (email + in-app). */
358
+ /** Legacy near-expiry template id; same digest body as documentExpired. */
357
359
  readonly documentNearExpiry: "c710000a-0001-4111-b111-0a0a0a0a0a0a";
358
360
  /** Company print master — header, border, footer around `[content]`. */
359
361
  readonly printCompanyMaster: "c710000b-0001-4111-b111-0b0b0b0b0b0b";
360
362
  /** Default questionnaire print child (title, date, `{{sessionBody}}`). */
361
363
  readonly questionnairePrint: "c710000c-0001-4111-b111-0c0c0c0c0c0c";
364
+ /** Daily list of employees with a birthday today — emailed to account holders. */
365
+ readonly employeeBirthdayDigest: "c710000d-0001-4111-b111-0d0d0d0d0d0d";
366
+ /** Daily list of employees whose hire date is today — emailed to account holders. */
367
+ readonly employeeJoiningDigest: "c710000e-0001-4111-b111-0e0e0e0e0e0e";
368
+ /** List of tenants with no login in the last 30 days. */
369
+ readonly tenantLoginDigest: "c710000f-0001-4111-b111-0f0f0f0f0f0f";
362
370
  };
363
371
 
364
- export { AXMPermissionsKeys, AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_IDS, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_PRINT_CHANNEL, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXM_TEXT_TEMPLATE_TENANT_MASTER_NAMESPACE, AXPContentDocumentsPermissionKeys, AXPContentManagementMenuKeys, RootConfig, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, defaultShortDatePatternForLocale, defaultShortTimePatternForLocale, formatTextTemplateDate, formatTextTemplateMergeValues, formatTextTemplateNumber, parseTextTemplateDateValue, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateCalendar, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain };
372
+ export { AXMPermissionsKeys, AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_IDS, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_PRINT_CHANNEL, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXM_TEXT_TEMPLATE_TENANT_MASTER_NAMESPACE, AXPContentDocumentsPermissionKeys, AXPContentManagementMenuKeys, RootConfig, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, defaultShortDatePatternForLocale, defaultShortTimePatternForLocale, formatTextTemplateDate, formatTextTemplateMergeValues, formatTextTemplateNumber, parseTextTemplateDateValue, renderTextTemplateSource, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateCalendar, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain };
365
373
  export type { AXMPromotionEntityModel, AXMSelectModel, AXMTextTemplateCalendarSystem, AXMTextTemplateChannelConfigureSettings, AXMTextTemplateChannelDefinition, AXMTextTemplateChannelDefinitionProvider, AXMTextTemplateChannelEditorType, AXMTextTemplateChannelsValue, AXMTextTemplateEntityModel, AXMTextTemplateKind, AXMTextTemplateParentChainNode, AXMTextTemplatePreviewRequest, AXMTextTemplatePreviewResult, AXMTextTemplateRegionalFormatContext, AXMTextTemplateRenderRequest, AXMTextTemplateRenderResult, AXMTextTemplateTokenFormatMeta };
@@ -0,0 +1,12 @@
1
+ import * as _angular_core from '@angular/core';
2
+ export { contentManagementLocalEntityCatalog } from '@acorex-platform/module-content-management-client/contracts/entity-catalog';
3
+
4
+ /**
5
+ * Registers content-management layouts on the client from packaged factories.
6
+ * Each `import()` targets a secondary entry so unused entities stay out of the
7
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
8
+ * `Domain:GetEntityLayout`.
9
+ */
10
+ declare function provideContentManagementLocalEntities(): _angular_core.EnvironmentProviders;
11
+
12
+ export { provideContentManagementLocalEntities };
@@ -3,9 +3,11 @@ import { OnInit, WritableSignal, InjectionToken } from '@angular/core';
3
3
  import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
4
4
  import * as i2 from '@acorex-platform/framework-client/core';
5
5
  import { AXMPromotionEntityModel, AXMTextTemplateChannelDefinitionProvider } from '@acorex-platform/module-content-management-client/contracts';
6
- export { AXMTextTemplateEntityModel, AXMTextTemplateKind, AXMTextTemplateParentChainNode, AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain } from '@acorex-platform/module-content-management-client/contracts';
6
+ export { AXMTextTemplateEntityModel, AXMTextTemplateKind, AXMTextTemplateParentChainNode, AXM_TEXT_TEMPLATE_CONTENT_SLOT, AXM_TEXT_TEMPLATE_KIND, AXM_TEXT_TEMPLATE_MAX_PARENT_DEPTH, AXM_TEXT_TEMPLATE_PREVIEW_COMMAND_KEY, AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY, collectTextTemplatePlaceholderNames, composeTextTemplateBodyChain, renderTextTemplateSource, replaceTextTemplateContentSlot, replaceTextTemplatePlaceholders, resolveTextTemplateLocalizedString, textTemplateContainsContentSlot, validateTextTemplateContentSlots, validateTextTemplateParentChain } from '@acorex-platform/module-content-management-client/contracts';
7
7
  import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';
8
8
  import * as _acorex_platform_framework_client_layout_entity from '@acorex-platform/framework-client/layout/entity';
9
+ import { ContentBlockDefinition, TextTemplateEngine, ContentPipe } from '@acorex-platform/framework-shared/text-template';
10
+ import { AXPRegistry } from '@acorex-platform/framework-shared/core';
9
11
 
10
12
  declare class AXMContentManagementModule {
11
13
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMContentManagementModule, never>;
@@ -45,4 +47,8 @@ declare class AXMPromotionSlotComponent implements OnInit {
45
47
  /** Multi-provider token – all providers are merged for available channels */
46
48
  declare const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER: InjectionToken<AXMTextTemplateChannelDefinitionProvider>;
47
49
 
48
- export { AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXMContentManagementModule, AXMMenuProvider, AXMPromotionSlotComponent, AXMSearchCommandProvider, AXMSettingProvider, AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER };
50
+ declare const AXC_TEXT_TEMPLATE_BLOCK_REGISTRY: InjectionToken<AXPRegistry<ContentBlockDefinition>>;
51
+ declare const AXC_TEXT_TEMPLATE_PIPE_REGISTRY: InjectionToken<AXPRegistry<ContentPipe>>;
52
+ declare const AXC_TEXT_TEMPLATE_ENGINE: InjectionToken<TextTemplateEngine>;
53
+
54
+ export { AXC_TEXT_TEMPLATE_BLOCK_REGISTRY, AXC_TEXT_TEMPLATE_ENGINE, AXC_TEXT_TEMPLATE_PIPE_REGISTRY, AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY, AXMContentManagementModule, AXMMenuProvider, AXMPromotionSlotComponent, AXMSearchCommandProvider, AXMSettingProvider, AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER };