@acorex/modules 19.4.12 → 19.4.14
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.
- package/content-management/index.d.ts +2 -0
- package/content-management/lib/entities/index.d.ts +1 -0
- package/content-management/lib/entities/promotion/index.d.ts +5 -0
- package/content-management/lib/features/index.d.ts +1 -0
- package/content-management/lib/features/promotion/components/index.d.ts +1 -0
- package/content-management/lib/features/promotion/index.d.ts +1 -0
- package/fesm2022/acorex-modules-content-management.mjs +1288 -1
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs} +17 -31
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CzMi7CBH.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DhSicYd3.mjs.map → acorex-modules-platform-management-list-version.component-DfbMc2hn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-CnGAUpof.mjs.map → acorex-modules-platform-management-settings.provider-B-19OJn0.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/package.json +1 -1
- package/platform-management/lib/entities/data-source/datasource-provider.dynamic.d.ts +2 -0
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs +0 -392
- package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs.map +0 -1
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs +0 -892
- package/fesm2022/acorex-modules-content-management-promotion.entity-D3qRwZhQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-B8aACrqL.mjs.map +0 -1
package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-C23PlUCn.mjs
DELETED
@@ -1,392 +0,0 @@
|
|
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
|
@@ -1 +0,0 @@
|
|
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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"}
|