@acorex-platform/module-content-management-client 0.0.21

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.
@@ -0,0 +1,415 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Injectable, inject, signal, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import * as i1 from '@acorex-platform/framework-client/core';
4
+ import { AXPComponentSlotModule, AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';
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';
7
+ import { AXPFileStorageService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXPSearchCommandProvider, createEntityCommandOptions } from '@acorex-platform/framework-client/common';
8
+ import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
9
+ import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
10
+ import { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';
11
+ import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
12
+ import { AXSafePipe } from '@acorex/core/pipes';
13
+ import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';
14
+
15
+ //#region ---- Imports ----
16
+ //#endregion
17
+ //#region ---- Manifest Definition ----
18
+ /**
19
+ * Content Management Module Manifest.
20
+ * Defines module metadata, features, and provider references.
21
+ */
22
+ const ContentManagementManifest = {
23
+ name: RootConfig.module.name,
24
+ version: '1.0.0',
25
+ title: RootConfig.module.title,
26
+ icon: RootConfig.module.icon,
27
+ i18n: RootConfig.config.i18n,
28
+ type: 'domain',
29
+ domain: 'content-documents',
30
+ // Module dependencies (optional)
31
+ };
32
+ //#endregion
33
+
34
+ //#region ---- Token ----
35
+ /** Multi-provider token – all providers are merged for available channels */
36
+ const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER = new InjectionToken('AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER');
37
+ //#endregion
38
+
39
+ const I18N = `@${RootConfig.config.i18n}:templates.channels`;
40
+ //#region ---- Print text template channel ----
41
+ class AXMPrintTextTemplateChannelDefinitionProvider {
42
+ getChannels() {
43
+ return [
44
+ {
45
+ name: AXM_TEXT_TEMPLATE_PRINT_CHANNEL,
46
+ title: `${I18N}.print`,
47
+ type: 'rich',
48
+ hasSubject: false,
49
+ },
50
+ ];
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPrintTextTemplateChannelDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
53
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPrintTextTemplateChannelDefinitionProvider }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPrintTextTemplateChannelDefinitionProvider, decorators: [{
56
+ type: Injectable
57
+ }] });
58
+ //#endregion
59
+ const printTextTemplateChannelProvider = {
60
+ provide: AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER,
61
+ useClass: AXMPrintTextTemplateChannelDefinitionProvider,
62
+ multi: true,
63
+ };
64
+
65
+ const AXMTemplateContentEditorWidget = {
66
+ name: 'template-content-editor',
67
+ title: 'Template Content',
68
+ icon: 'fa-light fa-envelope',
69
+ description: 'Multi-channel template editor with tabs (Email, SMS, WhatsApp, etc.)',
70
+ categories: AXP_WIDGETS_EDITOR_CATEGORY,
71
+ type: 'editor',
72
+ defaultFilterWidgetName: 'string-filter',
73
+ properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
74
+ components: {
75
+ view: {
76
+ component: () => import('./acorex-platform-module-content-management-client-template-content-editor-widget-view.component-CfupUZTI.mjs').then((c) => c.AXMTemplateContentEditorWidgetViewComponent),
77
+ },
78
+ edit: {
79
+ component: () => import('./acorex-platform-module-content-management-client-template-content-editor-widget-edit.component-CApNVTfc.mjs').then((c) => c.AXMTemplateContentEditorWidgetEditComponent),
80
+ },
81
+ },
82
+ };
83
+
84
+ /** Re-export shared text-template placeholder / compose helpers from contracts. */
85
+
86
+ //#endregion
87
+ //#region ---- Content Management Widgets Provider ----
88
+ class AXMContentManagementWidgetsProvider {
89
+ getWidgets() {
90
+ return [AXMTemplateContentEditorWidget];
91
+ }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementWidgetsProvider }); }
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementWidgetsProvider, decorators: [{
96
+ type: Injectable
97
+ }] });
98
+
99
+ class AXMPromotionSlotComponent {
100
+ constructor() {
101
+ this.entityService = inject(AXPEntityService);
102
+ this.notificationChannelService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data();
103
+ this.listData = signal([], /* @ts-ignore */
104
+ ...(ngDevMode ? [{ debugName: "listData" }] : /* istanbul ignore next */ []));
105
+ this.fileStorage = inject(AXPFileStorageService);
106
+ }
107
+ async ngOnInit() {
108
+ const channels = await this.notificationChannelService.query({
109
+ skip: 0,
110
+ take: 10000,
111
+ // filter: {
112
+ // field: 'type',
113
+ // operator: { type: 'equal' },
114
+ // value: 'promotion',
115
+ // },
116
+ });
117
+ const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);
118
+ const mappedItems = await Promise.all(filteredItems.map(async (item) => {
119
+ if (item.imageId != null) {
120
+ const image = await this.fileStorage.getInfo(item.imageId);
121
+ return {
122
+ ...item,
123
+ image: image,
124
+ };
125
+ }
126
+ else {
127
+ return item;
128
+ }
129
+ }));
130
+ this.listData.set(mappedItems);
131
+ }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPromotionSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMPromotionSlotComponent, isStandalone: true, selector: "acorex-platform-promotion-slot", ngImport: i0, template: "@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} } ", dependencies: [{ kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPromotionSlotComponent, decorators: [{
136
+ type: Component,
137
+ args: [{ selector: 'acorex-platform-promotion-slot', imports: [AXSafePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "@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} } " }]
138
+ }] });
139
+
140
+ class AXMContentManagementModule {
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
142
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementModule, imports: [AXPWidgetCoreModule, i1.AXPComponentSlotModule] }); }
143
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementModule, providers: [
144
+ {
145
+ provide: AXP_MODULE_MANIFEST_PROVIDER,
146
+ useValue: ContentManagementManifest,
147
+ multi: true,
148
+ },
149
+ provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-content-management-client-permission-definition.provider-DHowV1eO.mjs').then((m) => m.AXMPermissionDefinitionProvider)),
150
+ provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then((m) => m.AXMMenuProvider)),
151
+ provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return setting_provider; }).then((m) => m.AXMSettingProvider)),
152
+ provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMSearchCommandProvider)),
153
+ {
154
+ provide: AXP_WIDGET_DEFINITION_PROVIDER,
155
+ useClass: AXMContentManagementWidgetsProvider,
156
+ multi: true,
157
+ },
158
+ printTextTemplateChannelProvider,
159
+ ], imports: [AXPWidgetCoreModule,
160
+ AXPComponentSlotModule.forChild({
161
+ 'side-menu-footer': [
162
+ {
163
+ name: 'side-menu-footer-promotion',
164
+ component: AXMPromotionSlotComponent,
165
+ options: {
166
+ location: 'side-menu-footer',
167
+ },
168
+ },
169
+ ],
170
+ 'side-menu-header': [
171
+ {
172
+ name: 'side-menu-header-promotion',
173
+ component: AXMPromotionSlotComponent,
174
+ priority: 2,
175
+ options: {
176
+ location: 'side-menu-header',
177
+ },
178
+ },
179
+ ],
180
+ })] }); }
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentManagementModule, decorators: [{
183
+ type: NgModule,
184
+ args: [{
185
+ imports: [
186
+ AXPWidgetCoreModule,
187
+ AXPComponentSlotModule.forChild({
188
+ 'side-menu-footer': [
189
+ {
190
+ name: 'side-menu-footer-promotion',
191
+ component: AXMPromotionSlotComponent,
192
+ options: {
193
+ location: 'side-menu-footer',
194
+ },
195
+ },
196
+ ],
197
+ 'side-menu-header': [
198
+ {
199
+ name: 'side-menu-header-promotion',
200
+ component: AXMPromotionSlotComponent,
201
+ priority: 2,
202
+ options: {
203
+ location: 'side-menu-header',
204
+ },
205
+ },
206
+ ],
207
+ }),
208
+ ],
209
+ exports: [],
210
+ declarations: [],
211
+ providers: [
212
+ {
213
+ provide: AXP_MODULE_MANIFEST_PROVIDER,
214
+ useValue: ContentManagementManifest,
215
+ multi: true,
216
+ },
217
+ provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-platform-module-content-management-client-permission-definition.provider-DHowV1eO.mjs').then((m) => m.AXMPermissionDefinitionProvider)),
218
+ provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then((m) => m.AXMMenuProvider)),
219
+ provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return setting_provider; }).then((m) => m.AXMSettingProvider)),
220
+ provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMSearchCommandProvider)),
221
+ {
222
+ provide: AXP_WIDGET_DEFINITION_PROVIDER,
223
+ useClass: AXMContentManagementWidgetsProvider,
224
+ multi: true,
225
+ },
226
+ printTextTemplateChannelProvider,
227
+ ],
228
+ }]
229
+ }] });
230
+
231
+ /** Registry / remote key for Nest `ContentManagement:TextTemplate:Render`. */
232
+ const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY$1 = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;
233
+
234
+ //#region ----- Types -----
235
+ /** @deprecated Prefer {@link AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY}. */
236
+ const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = AXM_TEXT_TEMPLATE_RENDER_COMMAND_KEY;
237
+ //#endregion
238
+
239
+ class AXMMenuProvider {
240
+ constructor() {
241
+ this.entityService = inject(AXPEntityService);
242
+ }
243
+ async provide(context) {
244
+ const scope = RootConfig.config.i18n;
245
+ const module = RootConfig.module;
246
+ //#region ---- Administration > Content (Promotions, Page Builder) ----
247
+ const contentMenu = context.find(AXPCommonMenuKeys.Content);
248
+ if (!contentMenu.exists) {
249
+ context.find(AXPCommonMenuKeys.Administration).addItems([
250
+ {
251
+ name: AXPCommonMenuKeys.Content,
252
+ priority: 10,
253
+ text: '@general:menus.content.title',
254
+ icon: 'fa-light fa-paint-brush',
255
+ type: 'menu',
256
+ children: [],
257
+ },
258
+ ]);
259
+ }
260
+ context.find(AXPCommonMenuKeys.Content).addItems([
261
+ {
262
+ name: AXPContentManagementMenuKeys.Promotions,
263
+ text: RootConfig.entities.promotion.titlePlural,
264
+ path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),
265
+ icon: RootConfig.entities.promotion.icon,
266
+ priority: 1,
267
+ policy: {
268
+ features: [module.name],
269
+ permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],
270
+ },
271
+ },
272
+ ]);
273
+ // Text Template under Configuration > Data and Content
274
+ context.find(AXPCommonMenuKeys.DataAndContent).addItems([
275
+ {
276
+ name: AXPContentManagementMenuKeys.TextTemplates,
277
+ text: RootConfig.entities.textTemplate.title,
278
+ path: this.entityService.createPath(module.name, RootConfig.entities.textTemplate.name),
279
+ icon: RootConfig.entities.textTemplate.icon,
280
+ priority: 2,
281
+ policy: {
282
+ features: [module.name],
283
+ permissions: [AXPContentDocumentsPermissionKeys.MaintainContent],
284
+ },
285
+ },
286
+ ]);
287
+ //#endregion
288
+ //#region ---- Help Menu Extensions ----
289
+ context.addItems([
290
+ {
291
+ name: AXPContentManagementMenuKeys.HelpRoot,
292
+ priority: 900000,
293
+ text: `@${scope}:help-center.menus.help.title`,
294
+ icon: 'fa-light fa-circle-question',
295
+ },
296
+ ]);
297
+ const helpMenu = context.find(AXPContentManagementMenuKeys.HelpRoot);
298
+ if (helpMenu.exists) {
299
+ helpMenu.addItems([
300
+ {
301
+ name: AXPContentManagementMenuKeys.HelpCenter,
302
+ text: `@${scope}:help-center.menus.help-center.title`,
303
+ icon: 'fa-light fa-book-open',
304
+ priority: 900001,
305
+ },
306
+ {
307
+ name: AXPContentManagementMenuKeys.Tutorials,
308
+ text: `@${scope}:help-center.menus.tutorials.title`,
309
+ icon: 'fa-light fa-clapperboard-play',
310
+ priority: 900002,
311
+ },
312
+ {
313
+ name: AXPContentManagementMenuKeys.About,
314
+ text: `@${scope}:help-center.menus.about.title`,
315
+ icon: 'fa-light fa-circle-info',
316
+ priority: 900011,
317
+ },
318
+ ]);
319
+ }
320
+ //#endregion
321
+ }
322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMenuProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
323
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMenuProvider }); }
324
+ }
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMMenuProvider, decorators: [{
326
+ type: Injectable
327
+ }] });
328
+
329
+ var menu_provider = /*#__PURE__*/Object.freeze({
330
+ __proto__: null,
331
+ AXMMenuProvider: AXMMenuProvider
332
+ });
333
+
334
+ class AXMSearchCommandProvider extends AXPSearchCommandProvider {
335
+ constructor() {
336
+ super(...arguments);
337
+ this.commands = [
338
+ {
339
+ id: 'create-promotion',
340
+ group: 'command',
341
+ title: RootConfig.entities.promotion.title,
342
+ icon: RootConfig.entities.promotion.icon,
343
+ description: RootConfig.entities.promotion.titlePlural,
344
+ command: {
345
+ name: 'Entity:Create',
346
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`, {
347
+ name: RootConfig.entities.promotion.name,
348
+ module: RootConfig.module.name,
349
+ title: RootConfig.entities.promotion.title,
350
+ }),
351
+ },
352
+ },
353
+ {
354
+ id: 'create-text-template',
355
+ group: 'command',
356
+ title: `@content-management:templates.search.create-text-template.title`,
357
+ icon: RootConfig.entities.textTemplate.icon,
358
+ description: `@content-management:templates.search.create-text-template.description`,
359
+ command: {
360
+ name: 'Entity:Create',
361
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.textTemplate.name}`, {
362
+ name: RootConfig.entities.textTemplate.name,
363
+ module: RootConfig.module.name,
364
+ title: RootConfig.entities.textTemplate.title,
365
+ }),
366
+ },
367
+ },
368
+ ];
369
+ }
370
+ }
371
+
372
+ var searchCommand_provider = /*#__PURE__*/Object.freeze({
373
+ __proto__: null,
374
+ AXMSearchCommandProvider: AXMSearchCommandProvider
375
+ });
376
+
377
+ class AXMSettingProvider {
378
+ async provide(context) {
379
+ // context
380
+ // // Add Form Template Group
381
+ // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)
382
+ // // Start Interface Section
383
+ // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')
384
+ // .addSetting({
385
+ // key: 'history-panel',
386
+ // title: 'Show History Panel',
387
+ // scope: 'U',
388
+ // isInherited: true,
389
+ // defaultValue: false,
390
+ // widget: {
391
+ // type: AXPWidgetsCatalog.toggle,
392
+ // },
393
+ // description: 'Enable or disable the history panel for forms.',
394
+ // validationRules: [
395
+ // {
396
+ // rule: 'required',
397
+ // },
398
+ // ],
399
+ // })
400
+ // .endSection()
401
+ // .endGroup();
402
+ }
403
+ }
404
+
405
+ var setting_provider = /*#__PURE__*/Object.freeze({
406
+ __proto__: null,
407
+ AXMSettingProvider: AXMSettingProvider
408
+ });
409
+
410
+ /**
411
+ * Generated bundle index. Do not edit.
412
+ */
413
+
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 };
415
+ //# sourceMappingURL=acorex-platform-module-content-management-client.mjs.map
@@ -0,0 +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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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@acorex-platform/module-content-management-client",
3
+ "version": "0.0.21",
4
+ "sideEffects": false,
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2022/acorex-platform-module-content-management-client.mjs",
13
+ "typings": "types/acorex-platform-module-content-management-client.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/acorex-platform-module-content-management-client.d.ts",
20
+ "default": "./fesm2022/acorex-platform-module-content-management-client.mjs"
21
+ },
22
+ "./contracts": {
23
+ "types": "./types/acorex-platform-module-content-management-client-contracts.d.ts",
24
+ "default": "./fesm2022/acorex-platform-module-content-management-client-contracts.mjs"
25
+ }
26
+ },
27
+ "type": "module"
28
+ }