@acorex/modules 19.4.10 → 19.4.12

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 (64) hide show
  1. package/content-management/README.md +3 -0
  2. package/content-management/index.d.ts +6 -0
  3. package/content-management/lib/const.d.ts +19 -0
  4. package/content-management/lib/content-management.module.d.ts +7 -0
  5. package/content-management/lib/entity.provider.d.ts +10 -0
  6. package/content-management/lib/menu.provider.d.ts +5 -0
  7. package/content-management/lib/permission-definition.provider.d.ts +4 -0
  8. package/content-management/lib/search-command.provider.d.ts +4 -0
  9. package/content-management/lib/setting.provider.d.ts +4 -0
  10. package/document-management/lib/features/shared/document-manager.service.d.ts +3 -0
  11. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs +392 -0
  12. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map +1 -0
  13. package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs +892 -0
  14. package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs.map +1 -0
  15. package/fesm2022/acorex-modules-content-management.mjs +2 -0
  16. package/fesm2022/acorex-modules-content-management.mjs.map +1 -0
  17. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-lAGMGi3Y.mjs → acorex-modules-document-management-acorex-modules-document-management-_tXLNsja.mjs} +20 -20
  18. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-_tXLNsja.mjs.map +1 -0
  19. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DieghltT.mjs → acorex-modules-document-management-attachment-widget.component-BVOXu-Jt.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DieghltT.mjs.map → acorex-modules-document-management-attachment-widget.component-BVOXu-Jt.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-Ddzknhp0.mjs → acorex-modules-document-management-create-folder-dialog.component-DRj1LyK3.mjs} +2 -2
  22. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-Ddzknhp0.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DRj1LyK3.mjs.map} +1 -1
  23. package/fesm2022/{acorex-modules-document-management-details-view.component-irEPa71J.mjs → acorex-modules-document-management-details-view.component-llMxeeFn.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-document-management-details-view.component-irEPa71J.mjs.map → acorex-modules-document-management-details-view.component-llMxeeFn.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-document-management-drive-choose.component-eAqk3eca.mjs → acorex-modules-document-management-drive-choose.component-DDepk8Hb.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-document-management-drive-choose.component-eAqk3eca.mjs.map → acorex-modules-document-management-drive-choose.component-DDepk8Hb.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-document-management-drive.component-TNwvgpB_.mjs → acorex-modules-document-management-drive.component-BQ2w-PZw.mjs} +3 -2
  28. package/fesm2022/acorex-modules-document-management-drive.component-BQ2w-PZw.mjs.map +1 -0
  29. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-iBkydbXJ.mjs → acorex-modules-document-management-large-icons-view.component-9Q0LX8M-.mjs} +2 -2
  30. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-iBkydbXJ.mjs.map → acorex-modules-document-management-large-icons-view.component-9Q0LX8M-.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-BUnwhB1D.mjs → acorex-modules-document-management-large-tiles-view.component-CyqKSkZY.mjs} +2 -2
  32. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-BUnwhB1D.mjs.map → acorex-modules-document-management-large-tiles-view.component-CyqKSkZY.mjs.map} +1 -1
  33. package/fesm2022/{acorex-modules-document-management-list-view.component-Bu6EA_LC.mjs → acorex-modules-document-management-list-view.component-CpXtdrMZ.mjs} +2 -2
  34. package/fesm2022/{acorex-modules-document-management-list-view.component-Bu6EA_LC.mjs.map → acorex-modules-document-management-list-view.component-CpXtdrMZ.mjs.map} +1 -1
  35. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-D0O5DPux.mjs → acorex-modules-document-management-permission-definition.provider-DZni4b4s.mjs} +2 -2
  36. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-D0O5DPux.mjs.map → acorex-modules-document-management-permission-definition.provider-DZni4b4s.mjs.map} +1 -1
  37. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-CSnz9s0C.mjs → acorex-modules-document-management-rename-node-dialog.component-hcrBZ7h2.mjs} +2 -2
  38. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-CSnz9s0C.mjs.map → acorex-modules-document-management-rename-node-dialog.component-hcrBZ7h2.mjs.map} +1 -1
  39. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BvgWgPdU.mjs → acorex-modules-document-management-small-icons-view.component-y9M40s9q.mjs} +2 -2
  40. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BvgWgPdU.mjs.map → acorex-modules-document-management-small-icons-view.component-y9M40s9q.mjs.map} +1 -1
  41. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CGAmXmDZ.mjs → acorex-modules-document-management-small-tiles-view.component-Ck8m3hZE.mjs} +2 -2
  42. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CGAmXmDZ.mjs.map → acorex-modules-document-management-small-tiles-view.component-Ck8m3hZE.mjs.map} +1 -1
  43. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  44. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-l00277iI.mjs → acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs} +229 -1225
  45. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs.map +1 -0
  46. package/fesm2022/{acorex-modules-platform-management-list-version.component-CbjbxadS.mjs → acorex-modules-platform-management-list-version.component-DhSicYd3.mjs} +2 -2
  47. package/fesm2022/{acorex-modules-platform-management-list-version.component-CbjbxadS.mjs.map → acorex-modules-platform-management-list-version.component-DhSicYd3.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-platform-management-settings.provider-DKwQuq9_.mjs → acorex-modules-platform-management-settings.provider-CnGAUpof.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-platform-management-settings.provider-DKwQuq9_.mjs.map → acorex-modules-platform-management-settings.provider-CnGAUpof.mjs.map} +1 -1
  50. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  51. package/package.json +5 -1
  52. package/platform-management/lib/const.d.ts +0 -6
  53. package/platform-management/lib/entities/data-source/data-source.types.d.ts +1 -2
  54. package/platform-management/lib/entities/index.d.ts +0 -1
  55. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-lAGMGi3Y.mjs.map +0 -1
  56. package/fesm2022/acorex-modules-document-management-drive.component-TNwvgpB_.mjs.map +0 -1
  57. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-l00277iI.mjs.map +0 -1
  58. package/platform-management/lib/entities/promotion/index.d.ts +0 -4
  59. package/platform-management/lib/features/promotion/components/index.d.ts +0 -1
  60. /package/{platform-management → content-management}/lib/entities/promotion/promotion.datasource.d.ts +0 -0
  61. /package/{platform-management → content-management}/lib/entities/promotion/promotion.entity.d.ts +0 -0
  62. /package/{platform-management → content-management}/lib/entities/promotion/promotion.service.d.ts +0 -0
  63. /package/{platform-management → content-management}/lib/entities/promotion/promotion.types.d.ts +0 -0
  64. /package/{platform-management → content-management}/lib/features/promotion/components/promotion-slot/promotion-slot.component.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ # @acorex/modules/content-management
2
+
3
+ Secondary entry point of `@acorex/modules`. It can be used by importing from `@acorex/modules/content-management`.
@@ -0,0 +1,6 @@
1
+ export * from './lib/content-management.module';
2
+ export * from './lib/const';
3
+ export * from './lib/entity.provider';
4
+ export * from './lib/menu.provider';
5
+ export * from './lib/search-command.provider';
6
+ export * from './lib/setting.provider';
@@ -0,0 +1,19 @@
1
+ export declare const RootConfig: {
2
+ config: {
3
+ i18n: string;
4
+ };
5
+ module: {
6
+ module: string;
7
+ name: string;
8
+ title: string;
9
+ icon: string;
10
+ };
11
+ entities: {
12
+ promotion: {
13
+ name: string;
14
+ title: string;
15
+ titlePlural: string;
16
+ icon: string;
17
+ };
18
+ };
19
+ };
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@acorex/platform/layout/components";
3
+ export declare class AXMContentManagementModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMContentManagementModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMContentManagementModule, never, [typeof i1.AXPComponentSlotModule], never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMContentManagementModule>;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {
5
+ private injector;
6
+ preload(): AXPEntityPreloadEntity[];
7
+ get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMEntityProvider, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMEntityProvider>;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';
2
+ export declare class AXMMenuProvider implements AXPMenuProvider {
3
+ private entityService;
4
+ provide(context: AXPMenuProviderContext): Promise<void>;
5
+ }
@@ -0,0 +1,4 @@
1
+ import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';
2
+ export declare class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
3
+ define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';
2
+ export declare class AXMSearchCommandProvider extends AXPSearchCommandProvider {
3
+ commands: AXPSearchResult[];
4
+ }
@@ -0,0 +1,4 @@
1
+ import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';
2
+ export declare class AXMSettingProvider implements AXPSettingDefinitionProvider {
3
+ provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
4
+ }
@@ -222,6 +222,7 @@ export declare class AXMDocumentManagerService implements AXMDocumentManagerServ
222
222
  searchFolders(searchTerm: string, scope: AXPPlatformScope, options?: {
223
223
  tenantId?: string;
224
224
  userId?: string;
225
+ folderId?: string;
225
226
  }): Promise<AXMDocumentExplorerNode[]>;
226
227
  /**
227
228
  * Searches for files by term within a scope
@@ -229,6 +230,7 @@ export declare class AXMDocumentManagerService implements AXMDocumentManagerServ
229
230
  searchFiles(searchTerm: string, scope: AXPPlatformScope, options?: {
230
231
  tenantId?: string;
231
232
  userId?: string;
233
+ folderId?: string;
232
234
  }): Promise<AXMDocumentExplorerNode[]>;
233
235
  /**
234
236
  * Searches for both files and folders by term within a scope
@@ -236,6 +238,7 @@ export declare class AXMDocumentManagerService implements AXMDocumentManagerServ
236
238
  searchNodes(searchTerm: string, scope: AXPPlatformScope, options?: {
237
239
  tenantId?: string;
238
240
  userId?: string;
241
+ folderId?: string;
239
242
  }): Promise<AXMDocumentExplorerNode[]>;
240
243
  /**
241
244
  * Gets all folders
@@ -0,0 +1,392 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injector, Injectable, signal, Component, NgModule } from '@angular/core';
3
+ import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';
4
+ import { AXPSearchCommandProvider, AXPFileStorageService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
5
+ import { AXPEntityService, AXMEntityCrudServiceImpl, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
6
+ import * as i1 from '@acorex/platform/layout/components';
7
+ import { AXPComponentSlotModule } from '@acorex/platform/layout/components';
8
+ import { AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';
9
+ import { AXDataSource } from '@acorex/cdk/common';
10
+ import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
11
+ import { AXSafePipe } from '@acorex/core/pipes';
12
+ import { CommonModule } from '@angular/common';
13
+
14
+ const config = {
15
+ i18n: 'content-management',
16
+ };
17
+ const RootConfig = {
18
+ config,
19
+ module: {
20
+ module: 'ContentManagement',
21
+ name: 'ContentManagement',
22
+ title: `t('module-name', {scope:"${config.i18n}"})`,
23
+ icon: 'fa-light fa-file-invoice',
24
+ },
25
+ entities: {
26
+ promotion: {
27
+ name: 'Promotion',
28
+ title: `t("promotion", { scope: "${config.i18n}" })`,
29
+ titlePlural: `t("promotions", { scope: "${config.i18n}" })`,
30
+ icon: 'fa-light fa-megaphone',
31
+ },
32
+ },
33
+ };
34
+
35
+ class AXMMenuProvider {
36
+ constructor() {
37
+ this.entityService = inject(AXPEntityService);
38
+ }
39
+ async provide(context) {
40
+ const scope = RootConfig.config.i18n;
41
+ const module = RootConfig.module;
42
+ context.addItems([
43
+ {
44
+ priority: 100,
45
+ text: `t('module-name', {scope:"${scope}"})`,
46
+ icon: module.icon,
47
+ name: 'content-management-menu',
48
+ children: [
49
+ {
50
+ text: RootConfig.entities.promotion.title,
51
+ path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),
52
+ icon: RootConfig.entities.promotion.icon,
53
+ priority: 1,
54
+ name: 'content-management-promotion-menu-item'
55
+ }
56
+ ],
57
+ },
58
+ ]);
59
+ }
60
+ }
61
+
62
+ class AXMEntityProvider {
63
+ constructor() {
64
+ this.injector = inject(Injector);
65
+ }
66
+ preload() {
67
+ const module = RootConfig.module.name;
68
+ return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
69
+ module: module,
70
+ entity: entity.name,
71
+ }));
72
+ }
73
+ async get(moduleName, entityName) {
74
+ if (moduleName == RootConfig.module.name) {
75
+ switch (entityName) {
76
+ // case RootConfig.entities.sample.name:
77
+ // return (await import('./entities/sample/sample.entity')).factory(this.injector);
78
+ case RootConfig.entities.promotion.name: {
79
+ const entity = (await import('./acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs')).promotionEntityFactory;
80
+ return entity(this.injector);
81
+ }
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMEntityProvider }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMEntityProvider, decorators: [{
90
+ type: Injectable
91
+ }] });
92
+
93
+ class AXMPermissionDefinitionProvider {
94
+ async define(context) {
95
+ // context.addPermissions([
96
+ // {
97
+ // name: 'view_templates',
98
+ // title: 'Permission to view templates',
99
+ // isArchived: false,
100
+ // },
101
+ // ]);
102
+ }
103
+ }
104
+
105
+ class AXMSettingProvider {
106
+ async provide(context) {
107
+ // context
108
+ // // Add Form Template Group
109
+ // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)
110
+ // // Start Interface Section
111
+ // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')
112
+ // .addSetting({
113
+ // key: 'history-panel',
114
+ // title: 'Show History Panel',
115
+ // scope: 'U',
116
+ // isInherited: true,
117
+ // defaultValue: false,
118
+ // widget: {
119
+ // type: AXPWidgetsCatalog.toggle,
120
+ // },
121
+ // description: 'Enable or disable the history panel for forms.',
122
+ // validationRules: [
123
+ // {
124
+ // rule: 'required',
125
+ // },
126
+ // ],
127
+ // })
128
+ // .endSection()
129
+ // .endGroup();
130
+ }
131
+ }
132
+
133
+ class AXMSearchCommandProvider extends AXPSearchCommandProvider {
134
+ constructor() {
135
+ super(...arguments);
136
+ this.commands = [
137
+ // {
138
+ // group: 'command',
139
+ // title: 'New Form Template',
140
+ // icon: RootConfig.entities.template.icon,
141
+ // description: 'Create a new form template for designing reusable forms.', // Added description
142
+ // commands: {
143
+ // 'create-entity': {
144
+ // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,
145
+ // },
146
+ // },
147
+ // }
148
+ ];
149
+ }
150
+ }
151
+
152
+ class AXMAppPromotionService extends AXMEntityCrudServiceImpl {
153
+ }
154
+ class AXMPromotionServiceImpl extends AXMEntityCrudServiceImpl {
155
+ constructor() {
156
+ super(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`);
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMPromotionServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
159
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMPromotionServiceImpl }); }
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMPromotionServiceImpl, decorators: [{
162
+ type: Injectable
163
+ }], ctorParameters: () => [] });
164
+
165
+ class AXMPromotionDataSourceDefinition {
166
+ constructor() {
167
+ this.promotionService = inject(AXMAppPromotionService);
168
+ this.i18n = RootConfig.config.i18n;
169
+ }
170
+ items() {
171
+ return Promise.resolve([
172
+ {
173
+ name: 'promotion',
174
+ title: 'Promotion',
175
+ source: () => {
176
+ return new AXDataSource({
177
+ load: async (_) => {
178
+ try {
179
+ const res = await this.promotionService.query();
180
+ return {
181
+ items: res.items,
182
+ total: res.total,
183
+ };
184
+ }
185
+ catch (e) {
186
+ console.log(e);
187
+ throw e;
188
+ }
189
+ },
190
+ pageSize: 100,
191
+ });
192
+ },
193
+ columns: [
194
+ {
195
+ name: 'id',
196
+ title: 'ID',
197
+ datatype: 'uuid',
198
+ type: AXPWidgetsCatalog.text,
199
+ },
200
+ {
201
+ name: 'title',
202
+ //TODO translate
203
+ title: `Title`,
204
+ datatype: 'string',
205
+ type: AXPWidgetsCatalog.text,
206
+ },
207
+ {
208
+ name: 'body',
209
+ title: `Body`,
210
+ datatype: 'string',
211
+ type: AXPWidgetsCatalog.richText,
212
+ },
213
+ ],
214
+ textField: 'title',
215
+ valueField: 'id',
216
+ },
217
+ ]);
218
+ }
219
+ }
220
+
221
+ class AXMPromotionSlotComponent {
222
+ constructor() {
223
+ this.notificationChannelService = inject(AXMAppPromotionService);
224
+ this.listData = signal([]);
225
+ this.fileStorage = inject(AXPFileStorageService);
226
+ }
227
+ async ngOnInit() {
228
+ const channels = await this.notificationChannelService.query({
229
+ skip: 0,
230
+ take: 10000,
231
+ // filter: {
232
+ // field: 'type',
233
+ // operator: { type: 'equal' },
234
+ // value: 'promotion',
235
+ // },
236
+ });
237
+ const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);
238
+ const mappedItems = await Promise.all(filteredItems.map(async (item) => {
239
+ if (item.imageId != null) {
240
+ const image = await this.fileStorage.getInfo(item.imageId);
241
+ return {
242
+ ...item,
243
+ image: image,
244
+ };
245
+ }
246
+ else {
247
+ return item;
248
+ }
249
+ }));
250
+ this.listData.set(mappedItems);
251
+ }
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMPromotionSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", 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=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: AXSafePipe, name: "safe" }] }); }
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMPromotionSlotComponent, decorators: [{
256
+ type: Component,
257
+ args: [{ selector: 'acorex-platform-promotion-slot', imports: [CommonModule, AXSafePipe], template: "@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } " }]
258
+ }] });
259
+
260
+ class AXMContentManagementModule {
261
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMContentManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
262
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXMContentManagementModule, imports: [i1.AXPComponentSlotModule] }); }
263
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMContentManagementModule, providers: [
264
+ {
265
+ provide: AXP_MENU_PROVIDER,
266
+ useClass: AXMMenuProvider,
267
+ multi: true,
268
+ },
269
+ {
270
+ provide: AXP_ENTITY_DEFINITION_LOADER,
271
+ useClass: AXMEntityProvider,
272
+ multi: true,
273
+ },
274
+ {
275
+ provide: AXP_SETTING_DEFINITION_PROVIDER,
276
+ useClass: AXMSettingProvider,
277
+ multi: true,
278
+ },
279
+ {
280
+ provide: AXP_SEARCH_PROVIDER,
281
+ useClass: AXMSearchCommandProvider,
282
+ multi: true,
283
+ },
284
+ {
285
+ provide: AXP_PERMISSION_DEFINITION_PROVIDER,
286
+ useClass: AXMPermissionDefinitionProvider,
287
+ multi: true,
288
+ },
289
+ {
290
+ provide: AXMAppPromotionService,
291
+ useClass: AXMPromotionServiceImpl,
292
+ },
293
+ {
294
+ provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
295
+ useClass: AXMPromotionDataSourceDefinition,
296
+ multi: true,
297
+ },
298
+ ], imports: [AXPComponentSlotModule.forChild({
299
+ 'side-menu-footer': [
300
+ {
301
+ name: 'side-menu-footer-promotion',
302
+ component: AXMPromotionSlotComponent,
303
+ options: {
304
+ location: 'side-menu-footer',
305
+ },
306
+ },
307
+ ],
308
+ 'side-menu-header': [
309
+ {
310
+ name: 'side-menu-header-promotion',
311
+ component: AXMPromotionSlotComponent,
312
+ priority: 2,
313
+ options: {
314
+ location: 'side-menu-header',
315
+ },
316
+ },
317
+ ],
318
+ })] }); }
319
+ }
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMContentManagementModule, decorators: [{
321
+ type: NgModule,
322
+ args: [{
323
+ imports: [
324
+ AXPComponentSlotModule.forChild({
325
+ 'side-menu-footer': [
326
+ {
327
+ name: 'side-menu-footer-promotion',
328
+ component: AXMPromotionSlotComponent,
329
+ options: {
330
+ location: 'side-menu-footer',
331
+ },
332
+ },
333
+ ],
334
+ 'side-menu-header': [
335
+ {
336
+ name: 'side-menu-header-promotion',
337
+ component: AXMPromotionSlotComponent,
338
+ priority: 2,
339
+ options: {
340
+ location: 'side-menu-header',
341
+ },
342
+ },
343
+ ],
344
+ }),
345
+ ],
346
+ exports: [],
347
+ declarations: [],
348
+ providers: [
349
+ {
350
+ provide: AXP_MENU_PROVIDER,
351
+ useClass: AXMMenuProvider,
352
+ multi: true,
353
+ },
354
+ {
355
+ provide: AXP_ENTITY_DEFINITION_LOADER,
356
+ useClass: AXMEntityProvider,
357
+ multi: true,
358
+ },
359
+ {
360
+ provide: AXP_SETTING_DEFINITION_PROVIDER,
361
+ useClass: AXMSettingProvider,
362
+ multi: true,
363
+ },
364
+ {
365
+ provide: AXP_SEARCH_PROVIDER,
366
+ useClass: AXMSearchCommandProvider,
367
+ multi: true,
368
+ },
369
+ {
370
+ provide: AXP_PERMISSION_DEFINITION_PROVIDER,
371
+ useClass: AXMPermissionDefinitionProvider,
372
+ multi: true,
373
+ },
374
+ {
375
+ provide: AXMAppPromotionService,
376
+ useClass: AXMPromotionServiceImpl,
377
+ },
378
+ {
379
+ provide: AXP_DATASOURCE_DEFINITION_PROVIDER,
380
+ useClass: AXMPromotionDataSourceDefinition,
381
+ multi: true,
382
+ },
383
+ ]
384
+ }]
385
+ }] });
386
+
387
+ /**
388
+ * Generated bundle index. Do not edit.
389
+ */
390
+
391
+ export { AXMAppPromotionService as A, RootConfig as R, AXMContentManagementModule as a, AXMEntityProvider as b, AXMMenuProvider as c, AXMSearchCommandProvider as d, AXMSettingProvider as e };
392
+ //# sourceMappingURL=acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs","sources":["../../../../libs/modules/content-management/src/lib/const.ts","../../../../libs/modules/content-management/src/lib/menu.provider.ts","../../../../libs/modules/content-management/src/lib/entity.provider.ts","../../../../libs/modules/content-management/src/lib/permission-definition.provider.ts","../../../../libs/modules/content-management/src/lib/setting.provider.ts","../../../../libs/modules/content-management/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.service.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.datasource.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/src/lib/content-management.module.ts","../../../../libs/modules/content-management/src/acorex-modules-content-management.ts"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `t('module-name', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `t(\"promotion\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"promotions\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-megaphone',\n },\n },\n};\n","import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from './const';\n\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 context.addItems([\n {\n priority: 100,\n text: `t('module-name', {scope:\"${scope}\"})`,\n icon: module.icon,\n name: 'content-management-menu',\n children: [\n {\n text: RootConfig.entities.promotion.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n name: 'content-management-promotion-menu-item'\n }\n ],\n },\n ]);\n }\n}\n","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n private injector = inject(Injector);\n\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n // case RootConfig.entities.sample.name:\n // return (await import('./entities/sample/sample.entity')).factory(this.injector);\n case RootConfig.entities.promotion.name: {\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\n return entity(this.injector);\n }\n }\n }\n return null;\n }\n}\n","import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n // context.addPermissions([\n // {\n // name: 'view_templates',\n // title: 'Permission to view templates',\n // isArchived: false,\n // },\n // ]);\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/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","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMPromotionEntityModel } from './promotion.types';\n\nexport abstract class AXMAppPromotionService extends AXMEntityCrudServiceImpl<string, AXMPromotionEntityModel> {}\n\n@Injectable()\nexport class AXMPromotionServiceImpl extends AXMEntityCrudServiceImpl<string, AXMPromotionEntityModel> {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`);\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinition, AXPDataSourceDefinitionProvider } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\n\nexport class AXMPromotionDataSourceDefinition implements AXPDataSourceDefinitionProvider {\n protected promotionService = inject(AXMAppPromotionService);\n protected i18n = RootConfig.config.i18n;\n\n items(): Promise<AXPDataSourceDefinition[]> {\n return Promise.resolve([\n {\n name: 'promotion',\n title: 'Promotion',\n source: () => {\n return new AXDataSource({\n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n } catch (e) {\n console.log(e);\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.richText,\n },\n ],\n textField: 'title',\n valueField: 'id',\n },\n ]);\n }\n} ","import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, signal, WritableSignal } from '@angular/core';\nimport { AXMAppPromotionService } from '../../../../entities/promotion/promotion.service';\nimport { AXMPromotionEntityModel } from '../../../../entities/promotion/promotion.types';\n\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [CommonModule, AXSafePipe],\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n location: string;\n\n notificationChannelService = inject(AXMAppPromotionService);\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=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from \"@angular/core\";\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider'; \nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';\n\n// Import promotion-related services and components\nimport {\n AXMAppPromotionService,\n AXMPromotionServiceImpl,\n} from './entities/promotion/promotion.service';\nimport { AXMPromotionDataSourceDefinition } from './entities/promotion/promotion.datasource';\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\n\n@NgModule({\n imports: [\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 {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ]\n})\nexport class AXMContentManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}