@acorex-platform/module-communication-management-client 0.0.32 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs +235 -0
  2. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication.mjs +254 -0
  4. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs +60 -0
  6. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs +183 -0
  8. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs +202 -0
  10. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs +15 -0
  12. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs +2 -0
  14. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-communication-management-client-local-entities.mjs +30 -0
  16. package/fesm2022/acorex-platform-module-communication-management-client-local-entities.mjs.map +1 -0
  17. package/package.json +19 -3
  18. package/types/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.d.ts +5 -0
  19. package/types/acorex-platform-module-communication-management-client-contracts-entities-communication.d.ts +5 -0
  20. package/types/acorex-platform-module-communication-management-client-contracts-entity-catalog.d.ts +10 -0
  21. package/types/acorex-platform-module-communication-management-client-local-entities.d.ts +12 -0
@@ -0,0 +1,235 @@
1
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions } from '@acorex-platform/framework-shared/entity';
3
+
4
+ //#region ---- Status definition keys ----
5
+ /** Registered client status provider key for logical communications. */
6
+ const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';
7
+ /** Registered client status provider key for communication deliveries. */
8
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY = 'communication-management.status.communication-delivery';
9
+ const AXP_COMMUNICATION_STATUS_PENDING = 'Pending';
10
+ const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing';
11
+ const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed';
12
+ const AXP_COMMUNICATION_STATUS_FAILED = 'Failed';
13
+ const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending';
14
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered';
15
+ //#endregion
16
+
17
+ const config = {
18
+ i18n: 'communication-management',
19
+ };
20
+ const dashboardWidgetId = (segment) => `CommunicationManagement:Widget:Dashboard:${segment}`;
21
+ const RootConfig = {
22
+ config,
23
+ module: {
24
+ name: 'CommunicationManagement',
25
+ title: '@communication-management:module.title',
26
+ icon: 'fa-light fa-paper-plane',
27
+ },
28
+ entities: {
29
+ communication: {
30
+ name: 'Communications',
31
+ title: '@communication-management:entities.communication.title',
32
+ titlePlural: '@communication-management:entities.communication.plural',
33
+ icon: 'fa-light fa-envelope',
34
+ },
35
+ communicationDelivery: {
36
+ name: 'CommunicationDeliveries',
37
+ title: '@communication-management:entities.communication-delivery.title',
38
+ titlePlural: '@communication-management:entities.communication-delivery.plural',
39
+ icon: 'fa-light fa-truck-fast',
40
+ },
41
+ },
42
+ widgets: {
43
+ myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),
44
+ },
45
+ queries: {
46
+ dashboard: {
47
+ deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',
48
+ },
49
+ },
50
+ };
51
+ const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;
52
+ const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;
53
+
54
+ const listOptions = {
55
+ filter: { inline: { enabled: true }, advance: { enabled: true } },
56
+ sort: { enabled: true },
57
+ };
58
+ async function communicationDeliveryEntityFactory() {
59
+ const i18n = RootConfig.config.i18n;
60
+ return {
61
+ module: RootConfig.module.name,
62
+ name: RootConfig.entities.communicationDelivery.name,
63
+ title: RootConfig.entities.communicationDelivery.title,
64
+ icon: RootConfig.entities.communicationDelivery.icon,
65
+ plugins: [
66
+ {
67
+ name: 'status',
68
+ options: {
69
+ field: 'status',
70
+ definition: AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY,
71
+ showInCreate: false,
72
+ readonly: true,
73
+ generate: { views: { enabled: true } },
74
+ },
75
+ },
76
+ ],
77
+ formats: {
78
+ individual: RootConfig.entities.communicationDelivery.title,
79
+ plural: RootConfig.entities.communicationDelivery.titlePlural,
80
+ searchResult: {
81
+ title: '{{ channel }} — {{ recipientAddress }}',
82
+ description: '{{ status }}',
83
+ },
84
+ },
85
+ columns: [
86
+ { name: 'communicationId', options: { width: '180px' } },
87
+ { name: 'channel', options: { width: '120px' } },
88
+ { name: 'recipientAddress', options: { width: '200px' } },
89
+ { name: 'sentAt', options: { width: '170px' } },
90
+ { name: 'deliveredAt', options: { width: '170px' } },
91
+ ],
92
+ groups: [
93
+ { id: 'general', title: '@general:terms.interface.basic-info' },
94
+ { id: 'tracking', title: `@${i18n}:entities.communication-delivery.groups.tracking` },
95
+ { id: 'timeline', title: `@${i18n}:entities.communication-delivery.groups.timeline` },
96
+ ],
97
+ properties: [
98
+ {
99
+ name: 'communicationId',
100
+ title: `@${i18n}:entities.communication-delivery.fields.communication-id`,
101
+ groupId: 'general',
102
+ options: listOptions,
103
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
104
+ },
105
+ {
106
+ name: 'channel',
107
+ title: `@${i18n}:entities.communication-delivery.fields.channel`,
108
+ groupId: 'general',
109
+ options: listOptions,
110
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
111
+ },
112
+ {
113
+ name: 'providerKey',
114
+ title: `@${i18n}:entities.communication-delivery.fields.provider-key`,
115
+ groupId: 'general',
116
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
117
+ },
118
+ {
119
+ name: 'recipientUserId',
120
+ title: `@${i18n}:entities.communication-delivery.fields.recipient-user-id`,
121
+ groupId: 'general',
122
+ options: listOptions,
123
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
124
+ },
125
+ {
126
+ name: 'recipientAddress',
127
+ title: `@${i18n}:entities.communication-delivery.fields.recipient-address`,
128
+ groupId: 'general',
129
+ options: listOptions,
130
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
131
+ },
132
+ {
133
+ name: 'providerMessageId',
134
+ title: `@${i18n}:entities.communication-delivery.fields.provider-message-id`,
135
+ groupId: 'tracking',
136
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
137
+ },
138
+ {
139
+ name: 'sentAt',
140
+ title: `@${i18n}:entities.communication-delivery.fields.sent-at`,
141
+ groupId: 'tracking',
142
+ options: listOptions,
143
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
144
+ },
145
+ {
146
+ name: 'deliveredAt',
147
+ title: `@${i18n}:entities.communication-delivery.fields.delivered-at`,
148
+ groupId: 'tracking',
149
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
150
+ },
151
+ {
152
+ name: 'seenAt',
153
+ title: `@${i18n}:entities.communication-delivery.fields.seen-at`,
154
+ groupId: 'tracking',
155
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
156
+ },
157
+ {
158
+ name: 'readAt',
159
+ title: `@${i18n}:entities.communication-delivery.fields.read-at`,
160
+ groupId: 'tracking',
161
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
162
+ },
163
+ {
164
+ name: 'isPinned',
165
+ title: `@${i18n}:entities.communication-delivery.fields.is-pinned`,
166
+ groupId: 'tracking',
167
+ schema: { dataType: 'boolean', readonly: true, interface: { type: AXPWidgetsCatalog.toggle } },
168
+ },
169
+ {
170
+ name: 'archivedAt',
171
+ title: `@${i18n}:entities.communication-delivery.fields.archived-at`,
172
+ groupId: 'tracking',
173
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
174
+ },
175
+ {
176
+ name: 'repliedAt',
177
+ title: `@${i18n}:entities.communication-delivery.fields.replied-at`,
178
+ groupId: 'tracking',
179
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
180
+ },
181
+ {
182
+ name: 'timelineSummary',
183
+ title: `@${i18n}:entities.communication-delivery.fields.timeline-summary`,
184
+ groupId: 'timeline',
185
+ schema: {
186
+ dataType: 'string',
187
+ readonly: true,
188
+ interface: { type: AXPWidgetsCatalog.largeText },
189
+ },
190
+ },
191
+ ],
192
+ interfaces: {
193
+ master: {
194
+ // Empty create/update keeps deliveries view-only (engine creates records).
195
+ create: {
196
+ sections: [],
197
+ properties: [],
198
+ },
199
+ update: {
200
+ sections: [],
201
+ properties: [],
202
+ },
203
+ single: {
204
+ title: '{{ channel }} — {{ recipientAddress }}',
205
+ sections: [{ id: 'general' }, { id: 'tracking' }, { id: 'timeline' }],
206
+ properties: [
207
+ { name: 'communicationId' },
208
+ { name: 'channel' },
209
+ { name: 'providerKey' },
210
+ { name: 'recipientAddress' },
211
+ { name: 'providerMessageId' },
212
+ { name: 'sentAt' },
213
+ { name: 'deliveredAt' },
214
+ { name: 'seenAt' },
215
+ { name: 'readAt' },
216
+ { name: 'repliedAt' },
217
+ { name: 'timelineSummary' },
218
+ ],
219
+ actions: [],
220
+ },
221
+ list: {
222
+ actions: [...entityMasterCrudActions({ create: false, delete: false, edit: false, view: true })],
223
+ views: [createAllQueryView()],
224
+ },
225
+ },
226
+ },
227
+ };
228
+ }
229
+
230
+ /**
231
+ * Generated bundle index. Do not edit.
232
+ */
233
+
234
+ export { communicationDeliveryEntityFactory };
235
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/status.keys.ts","../../../../libs/modules/communication-management/contracts/src/root-config.ts","../../../../libs/modules/communication-management/contracts/src/entities/communication-delivery/communication-delivery.entity.ts","../../../../libs/modules/communication-management/contracts/src/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.ts"],"sourcesContent":["//#region ---- Status definition keys ----\n\n/** Registered client status provider key for logical communications. */\nexport const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';\n\n/** Registered client status provider key for communication deliveries. */\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY =\n 'communication-management.status.communication-delivery';\n\nexport const AXP_COMMUNICATION_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing' as const;\nexport const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed' as const;\nexport const AXP_COMMUNICATION_STATUS_FAILED = 'Failed' as const;\n\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered' as const;\n\n//#endregion\n","const config = {\n i18n: 'communication-management',\n};\n\nconst dashboardWidgetId = (segment: string): string =>\n `CommunicationManagement:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: 'CommunicationManagement',\n title: '@communication-management:module.title',\n icon: 'fa-light fa-paper-plane',\n },\n entities: {\n communication: {\n name: 'Communications',\n title: '@communication-management:entities.communication.title',\n titlePlural: '@communication-management:entities.communication.plural',\n icon: 'fa-light fa-envelope',\n },\n communicationDelivery: {\n name: 'CommunicationDeliveries',\n title: '@communication-management:entities.communication-delivery.title',\n titlePlural: '@communication-management:entities.communication-delivery.plural',\n icon: 'fa-light fa-truck-fast',\n },\n },\n widgets: {\n myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),\n },\n queries: {\n dashboard: {\n deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',\n },\n },\n} as const;\n\nexport const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;\nexport const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;\n","import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n createAllQueryView,\n entityMasterCrudActions,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY } from '../../status.keys';\nimport { RootConfig } from '../../root-config';\n\nconst listOptions = {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n sort: { enabled: true },\n};\n\nexport async function communicationDeliveryEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.communicationDelivery.name,\n title: RootConfig.entities.communicationDelivery.title,\n icon: RootConfig.entities.communicationDelivery.icon,\n plugins: [\n {\n name: 'status',\n options: {\n field: 'status',\n definition: AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY,\n showInCreate: false,\n readonly: true,\n generate: { views: { enabled: true } },\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.communicationDelivery.title,\n plural: RootConfig.entities.communicationDelivery.titlePlural,\n searchResult: {\n title: '{{ channel }} — {{ recipientAddress }}',\n description: '{{ status }}',\n },\n },\n columns: [\n { name: 'communicationId', options: { width: '180px' } },\n { name: 'channel', options: { width: '120px' } },\n { name: 'recipientAddress', options: { width: '200px' } },\n { name: 'sentAt', options: { width: '170px' } },\n { name: 'deliveredAt', options: { width: '170px' } },\n ],\n groups: [\n { id: 'general', title: '@general:terms.interface.basic-info' },\n { id: 'tracking', title: `@${i18n}:entities.communication-delivery.groups.tracking` },\n { id: 'timeline', title: `@${i18n}:entities.communication-delivery.groups.timeline` },\n ],\n properties: [\n {\n name: 'communicationId',\n title: `@${i18n}:entities.communication-delivery.fields.communication-id`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'channel',\n title: `@${i18n}:entities.communication-delivery.fields.channel`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'providerKey',\n title: `@${i18n}:entities.communication-delivery.fields.provider-key`,\n groupId: 'general',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientUserId',\n title: `@${i18n}:entities.communication-delivery.fields.recipient-user-id`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientAddress',\n title: `@${i18n}:entities.communication-delivery.fields.recipient-address`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'providerMessageId',\n title: `@${i18n}:entities.communication-delivery.fields.provider-message-id`,\n groupId: 'tracking',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'sentAt',\n title: `@${i18n}:entities.communication-delivery.fields.sent-at`,\n groupId: 'tracking',\n options: listOptions,\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'deliveredAt',\n title: `@${i18n}:entities.communication-delivery.fields.delivered-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'seenAt',\n title: `@${i18n}:entities.communication-delivery.fields.seen-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'readAt',\n title: `@${i18n}:entities.communication-delivery.fields.read-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'isPinned',\n title: `@${i18n}:entities.communication-delivery.fields.is-pinned`,\n groupId: 'tracking',\n schema: { dataType: 'boolean', readonly: true, interface: { type: AXPWidgetsCatalog.toggle } },\n },\n {\n name: 'archivedAt',\n title: `@${i18n}:entities.communication-delivery.fields.archived-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'repliedAt',\n title: `@${i18n}:entities.communication-delivery.fields.replied-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'timelineSummary',\n title: `@${i18n}:entities.communication-delivery.fields.timeline-summary`,\n groupId: 'timeline',\n schema: {\n dataType: 'string',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.largeText },\n },\n },\n ],\n interfaces: {\n master: {\n // Empty create/update keeps deliveries view-only (engine creates records).\n create: {\n sections: [],\n properties: [],\n },\n update: {\n sections: [],\n properties: [],\n },\n single: {\n title: '{{ channel }} — {{ recipientAddress }}',\n sections: [{ id: 'general' }, { id: 'tracking' }, { id: 'timeline' }],\n properties: [\n { name: 'communicationId' },\n { name: 'channel' },\n { name: 'providerKey' },\n { name: 'recipientAddress' },\n { name: 'providerMessageId' },\n { name: 'sentAt' },\n { name: 'deliveredAt' },\n { name: 'seenAt' },\n { name: 'readAt' },\n { name: 'repliedAt' },\n { name: 'timelineSummary' },\n ],\n actions: [],\n },\n list: {\n actions: [...entityMasterCrudActions({ create: false, delete: false, edit: false, view: true })],\n views: [createAllQueryView()],\n },\n },\n },\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.communication-delivery';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { AXPEntityCommandScope, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions, entityDetailsSimpleCondition } from '@acorex-platform/framework-shared/entity';
3
+
4
+ //#region ---- Client command keys ----
5
+ const AXMCommunicationManagementCommandKeys = {
6
+ Send: 'CommunicationManagement:Communication:Send',
7
+ TestSmtp: 'CommunicationManagement:Communication:TestSmtp',
8
+ EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',
9
+ EmailSend: 'CommunicationManagement:Email:Send',
10
+ ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',
11
+ };
12
+ //#endregion
13
+
14
+ //#region ---- Status definition keys ----
15
+ /** Registered client status provider key for logical communications. */
16
+ const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';
17
+ /** Registered client status provider key for communication deliveries. */
18
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY = 'communication-management.status.communication-delivery';
19
+ const AXP_COMMUNICATION_STATUS_PENDING = 'Pending';
20
+ const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing';
21
+ const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed';
22
+ const AXP_COMMUNICATION_STATUS_FAILED = 'Failed';
23
+ const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending';
24
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered';
25
+ //#endregion
26
+
27
+ const config = {
28
+ i18n: 'communication-management',
29
+ };
30
+ const dashboardWidgetId = (segment) => `CommunicationManagement:Widget:Dashboard:${segment}`;
31
+ const RootConfig = {
32
+ config,
33
+ module: {
34
+ name: 'CommunicationManagement',
35
+ title: '@communication-management:module.title',
36
+ icon: 'fa-light fa-paper-plane',
37
+ },
38
+ entities: {
39
+ communication: {
40
+ name: 'Communications',
41
+ title: '@communication-management:entities.communication.title',
42
+ titlePlural: '@communication-management:entities.communication.plural',
43
+ icon: 'fa-light fa-envelope',
44
+ },
45
+ communicationDelivery: {
46
+ name: 'CommunicationDeliveries',
47
+ title: '@communication-management:entities.communication-delivery.title',
48
+ titlePlural: '@communication-management:entities.communication-delivery.plural',
49
+ icon: 'fa-light fa-truck-fast',
50
+ },
51
+ },
52
+ widgets: {
53
+ myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),
54
+ },
55
+ queries: {
56
+ dashboard: {
57
+ deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',
58
+ },
59
+ },
60
+ };
61
+ const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;
62
+ const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;
63
+
64
+ const listOptions = {
65
+ filter: { inline: { enabled: true }, advance: { enabled: true } },
66
+ sort: { enabled: true },
67
+ };
68
+ const previewMessageAction = (i18n) => ({
69
+ title: `@${i18n}:entities.communication.actions.preview.title`,
70
+ name: 'preview-message',
71
+ icon: 'fa-light fa-envelope-open-text',
72
+ command: {
73
+ name: AXMCommunicationManagementCommandKeys.ShowSentMessage,
74
+ options: {
75
+ communicationId: '{{ context.eval("id") }}',
76
+ },
77
+ },
78
+ priority: 'primary',
79
+ type: 'execute',
80
+ scope: AXPEntityCommandScope.Individual,
81
+ });
82
+ async function communicationEntityFactory() {
83
+ const i18n = RootConfig.config.i18n;
84
+ return {
85
+ module: RootConfig.module.name,
86
+ name: RootConfig.entities.communication.name,
87
+ title: RootConfig.entities.communication.title,
88
+ icon: RootConfig.entities.communication.icon,
89
+ plugins: [
90
+ {
91
+ name: 'status',
92
+ options: {
93
+ field: 'status',
94
+ definition: AXP_COMMUNICATION_STATUS_DEFINITION_KEY,
95
+ showInCreate: false,
96
+ readonly: true,
97
+ generate: { views: { enabled: true } },
98
+ },
99
+ },
100
+ ],
101
+ formats: {
102
+ individual: RootConfig.entities.communication.title,
103
+ plural: RootConfig.entities.communication.titlePlural,
104
+ searchResult: {
105
+ title: '{{ title }}',
106
+ description: '{{ message.subject }}',
107
+ },
108
+ },
109
+ columns: [
110
+ { name: 'title', options: { width: '220px' } },
111
+ { name: 'primaryChannel', options: { width: '140px' } },
112
+ { name: 'recipientSummary', options: { width: '200px' } },
113
+ ],
114
+ relatedEntities: [
115
+ {
116
+ entity: `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`,
117
+ title: RootConfig.entities.communicationDelivery.titlePlural,
118
+ columns: ['channel', 'status', 'recipientAddress', 'sentAt', 'deliveredAt'],
119
+ conditions: [entityDetailsSimpleCondition('communicationId')],
120
+ persistence: { foreignKeyField: 'communicationId' },
121
+ excludeProperties: ['communicationId'],
122
+ actions: [
123
+ ...entityDetailsCrudActions('communicationId', {
124
+ create: false,
125
+ edit: false,
126
+ delete: false,
127
+ view: true,
128
+ }),
129
+ ],
130
+ layout: { type: 'page-list', position: 'after', order: 1 },
131
+ },
132
+ ],
133
+ groups: [
134
+ { id: 'general', title: '@general:terms.interface.basic-info' },
135
+ { id: 'routing', title: `@${i18n}:entities.communication.groups.routing` },
136
+ ],
137
+ properties: [
138
+ {
139
+ name: 'title',
140
+ title: '@general:terms.common.title',
141
+ groupId: 'general',
142
+ options: listOptions,
143
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
144
+ },
145
+ {
146
+ name: 'message.subject',
147
+ title: `@${i18n}:entities.communication.fields.message-subject`,
148
+ groupId: 'general',
149
+ options: listOptions,
150
+ schema: {
151
+ dataType: 'string',
152
+ visible: false,
153
+ readonly: true,
154
+ interface: { type: AXPWidgetsCatalog.text },
155
+ },
156
+ },
157
+ {
158
+ name: 'message.body',
159
+ title: `@${i18n}:entities.communication.fields.message-body`,
160
+ groupId: 'general',
161
+ schema: {
162
+ dataType: 'string',
163
+ visible: false,
164
+ readonly: true,
165
+ interface: { type: AXPWidgetsCatalog.largeText },
166
+ },
167
+ },
168
+ {
169
+ name: 'primaryChannel',
170
+ title: `@${i18n}:entities.communication.fields.primary-channel`,
171
+ groupId: 'routing',
172
+ options: listOptions,
173
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
174
+ },
175
+ {
176
+ name: 'recipientSummary',
177
+ title: `@${i18n}:entities.communication.fields.recipient-summary`,
178
+ groupId: 'routing',
179
+ options: listOptions,
180
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
181
+ },
182
+ {
183
+ name: 'definitionKey',
184
+ title: `@${i18n}:entities.communication.fields.definition-key`,
185
+ groupId: 'routing',
186
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
187
+ },
188
+ {
189
+ name: 'priority',
190
+ title: `@${i18n}:entities.communication.fields.priority`,
191
+ groupId: 'routing',
192
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
193
+ },
194
+ {
195
+ name: 'correlationId',
196
+ title: `@${i18n}:entities.communication.fields.correlation-id`,
197
+ groupId: 'routing',
198
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
199
+ },
200
+ {
201
+ name: 'idempotencyKey',
202
+ title: `@${i18n}:entities.communication.fields.idempotency-key`,
203
+ groupId: 'routing',
204
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
205
+ },
206
+ {
207
+ name: 'actions',
208
+ title: `@${i18n}:entities.communication.fields.actions`,
209
+ groupId: 'routing',
210
+ schema: { dataType: 'object', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
211
+ },
212
+ ],
213
+ interfaces: {
214
+ master: {
215
+ // Empty create/update keeps the entity view-only (send API creates records).
216
+ create: {
217
+ sections: [],
218
+ properties: [],
219
+ },
220
+ update: {
221
+ sections: [],
222
+ properties: [],
223
+ },
224
+ single: {
225
+ title: '{{ title }}',
226
+ sections: [{ id: 'general' }, { id: 'routing' }],
227
+ properties: [
228
+ { name: 'title' },
229
+ { name: 'primaryChannel' },
230
+ { name: 'recipientSummary' },
231
+ { name: 'definitionKey' },
232
+ { name: 'correlationId' },
233
+ { name: 'idempotencyKey' },
234
+ ],
235
+ actions: [previewMessageAction(i18n), ...entityMasterRecordActions()],
236
+ },
237
+ list: {
238
+ actions: [
239
+ ...entityMasterCrudActions({ create: false, edit: false, view: true, delete: true }),
240
+ previewMessageAction(i18n),
241
+ ],
242
+ views: [createAllQueryView()],
243
+ },
244
+ },
245
+ },
246
+ };
247
+ }
248
+
249
+ /**
250
+ * Generated bundle index. Do not edit.
251
+ */
252
+
253
+ export { communicationEntityFactory };
254
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entities-communication.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entities-communication.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/commands.keys.ts","../../../../libs/modules/communication-management/contracts/src/status.keys.ts","../../../../libs/modules/communication-management/contracts/src/root-config.ts","../../../../libs/modules/communication-management/contracts/src/entities/communication/communication.entity.ts","../../../../libs/modules/communication-management/contracts/src/acorex-platform-module-communication-management-client-contracts-entities-communication.ts"],"sourcesContent":["//#region ---- Client command keys ----\n\nexport const AXMCommunicationManagementCommandKeys = {\n Send: 'CommunicationManagement:Communication:Send',\n TestSmtp: 'CommunicationManagement:Communication:TestSmtp',\n EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',\n EmailSend: 'CommunicationManagement:Email:Send',\n ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',\n} as const;\n\n//#endregion\n","//#region ---- Status definition keys ----\n\n/** Registered client status provider key for logical communications. */\nexport const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';\n\n/** Registered client status provider key for communication deliveries. */\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY =\n 'communication-management.status.communication-delivery';\n\nexport const AXP_COMMUNICATION_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing' as const;\nexport const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed' as const;\nexport const AXP_COMMUNICATION_STATUS_FAILED = 'Failed' as const;\n\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered' as const;\n\n//#endregion\n","const config = {\n i18n: 'communication-management',\n};\n\nconst dashboardWidgetId = (segment: string): string =>\n `CommunicationManagement:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: 'CommunicationManagement',\n title: '@communication-management:module.title',\n icon: 'fa-light fa-paper-plane',\n },\n entities: {\n communication: {\n name: 'Communications',\n title: '@communication-management:entities.communication.title',\n titlePlural: '@communication-management:entities.communication.plural',\n icon: 'fa-light fa-envelope',\n },\n communicationDelivery: {\n name: 'CommunicationDeliveries',\n title: '@communication-management:entities.communication-delivery.title',\n titlePlural: '@communication-management:entities.communication-delivery.plural',\n icon: 'fa-light fa-truck-fast',\n },\n },\n widgets: {\n myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),\n },\n queries: {\n dashboard: {\n deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',\n },\n },\n} as const;\n\nexport const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;\nexport const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;\n","import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityAction,\n AXPEntityCommandScope,\n createAllQueryView,\n entityDetailsCrudActions,\n entityDetailsSimpleCondition,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXMCommunicationManagementCommandKeys } from '../../commands.keys';\nimport { AXP_COMMUNICATION_STATUS_DEFINITION_KEY } from '../../status.keys';\nimport { RootConfig } from '../../root-config';\n\nconst listOptions = {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n sort: { enabled: true },\n};\n\nconst previewMessageAction = (i18n: string): AXPEntityAction =>\n ({\n title: `@${i18n}:entities.communication.actions.preview.title`,\n name: 'preview-message',\n icon: 'fa-light fa-envelope-open-text',\n command: {\n name: AXMCommunicationManagementCommandKeys.ShowSentMessage,\n options: {\n communicationId: '{{ context.eval(\"id\") }}',\n },\n },\n priority: 'primary',\n type: 'execute',\n scope: AXPEntityCommandScope.Individual,\n }) as AXPEntityAction;\n\nexport async function communicationEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.communication.name,\n title: RootConfig.entities.communication.title,\n icon: RootConfig.entities.communication.icon,\n plugins: [\n {\n name: 'status',\n options: {\n field: 'status',\n definition: AXP_COMMUNICATION_STATUS_DEFINITION_KEY,\n showInCreate: false,\n readonly: true,\n generate: { views: { enabled: true } },\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.communication.title,\n plural: RootConfig.entities.communication.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ message.subject }}',\n },\n },\n columns: [\n { name: 'title', options: { width: '220px' } },\n { name: 'primaryChannel', options: { width: '140px' } },\n { name: 'recipientSummary', options: { width: '200px' } },\n ],\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`,\n title: RootConfig.entities.communicationDelivery.titlePlural,\n columns: ['channel', 'status', 'recipientAddress', 'sentAt', 'deliveredAt'],\n conditions: [entityDetailsSimpleCondition('communicationId')],\n persistence: { foreignKeyField: 'communicationId' },\n excludeProperties: ['communicationId'],\n actions: [\n ...entityDetailsCrudActions('communicationId', {\n create: false,\n edit: false,\n delete: false,\n view: true,\n }),\n ],\n layout: { type: 'page-list', position: 'after', order: 1 },\n },\n ],\n\n groups: [\n { id: 'general', title: '@general:terms.interface.basic-info' },\n { id: 'routing', title: `@${i18n}:entities.communication.groups.routing` },\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'message.subject',\n title: `@${i18n}:entities.communication.fields.message-subject`,\n groupId: 'general',\n options: listOptions,\n schema: {\n dataType: 'string',\n visible: false,\n readonly: true,\n interface: { type: AXPWidgetsCatalog.text },\n },\n },\n {\n name: 'message.body',\n title: `@${i18n}:entities.communication.fields.message-body`,\n groupId: 'general',\n schema: {\n dataType: 'string',\n visible: false,\n readonly: true,\n interface: { type: AXPWidgetsCatalog.largeText },\n },\n },\n {\n name: 'primaryChannel',\n title: `@${i18n}:entities.communication.fields.primary-channel`,\n groupId: 'routing',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientSummary',\n title: `@${i18n}:entities.communication.fields.recipient-summary`,\n groupId: 'routing',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'definitionKey',\n title: `@${i18n}:entities.communication.fields.definition-key`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'priority',\n title: `@${i18n}:entities.communication.fields.priority`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'correlationId',\n title: `@${i18n}:entities.communication.fields.correlation-id`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'idempotencyKey',\n title: `@${i18n}:entities.communication.fields.idempotency-key`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'actions',\n title: `@${i18n}:entities.communication.fields.actions`,\n groupId: 'routing',\n schema: { dataType: 'object', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n ],\n interfaces: {\n master: {\n // Empty create/update keeps the entity view-only (send API creates records).\n create: {\n sections: [],\n properties: [],\n },\n update: {\n sections: [],\n properties: [],\n },\n single: {\n title: '{{ title }}',\n sections: [{ id: 'general' }, { id: 'routing' }],\n properties: [\n { name: 'title' },\n { name: 'primaryChannel' },\n { name: 'recipientSummary' },\n { name: 'definitionKey' },\n { name: 'correlationId' },\n { name: 'idempotencyKey' },\n ],\n actions: [previewMessageAction(i18n), ...entityMasterRecordActions()],\n },\n list: {\n actions: [\n ...entityMasterCrudActions({ create: false, edit: false, view: true, delete: true }),\n previewMessageAction(i18n),\n ],\n views: [createAllQueryView()],\n },\n },\n },\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.communication';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ const config = {
2
+ i18n: 'communication-management',
3
+ };
4
+ const dashboardWidgetId = (segment) => `CommunicationManagement:Widget:Dashboard:${segment}`;
5
+ const RootConfig = {
6
+ config,
7
+ module: {
8
+ name: 'CommunicationManagement',
9
+ title: '@communication-management:module.title',
10
+ icon: 'fa-light fa-paper-plane',
11
+ },
12
+ entities: {
13
+ communication: {
14
+ name: 'Communications',
15
+ title: '@communication-management:entities.communication.title',
16
+ titlePlural: '@communication-management:entities.communication.plural',
17
+ icon: 'fa-light fa-envelope',
18
+ },
19
+ communicationDelivery: {
20
+ name: 'CommunicationDeliveries',
21
+ title: '@communication-management:entities.communication-delivery.title',
22
+ titlePlural: '@communication-management:entities.communication-delivery.plural',
23
+ icon: 'fa-light fa-truck-fast',
24
+ },
25
+ },
26
+ widgets: {
27
+ myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),
28
+ },
29
+ queries: {
30
+ dashboard: {
31
+ deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',
32
+ },
33
+ },
34
+ };
35
+ const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;
36
+ const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;
37
+
38
+ //#region ----- Imports -----
39
+ //#endregion
40
+ //#region ----- Local entity catalog -----
41
+ /**
42
+ * Lazy per-entity layout factories. Do not re-export from the contracts barrel
43
+ * so RootConfig imports stay light. Server seed and client `local-entities`
44
+ * consume this catalog explicitly.
45
+ */
46
+ const communicationManagementLocalEntityCatalog = {
47
+ moduleName: RootConfig.module.name,
48
+ loaders: {
49
+ [RootConfig.entities.communication.name]: () => import('./acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs').then((m) => m.communicationEntityFactory()),
50
+ [RootConfig.entities.communicationDelivery.name]: () => import('./acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs').then((m) => m.communicationDeliveryEntityFactory()),
51
+ },
52
+ };
53
+ //#endregion
54
+
55
+ /**
56
+ * Generated bundle index. Do not edit.
57
+ */
58
+
59
+ export { RootConfig as R, communicationManagementLocalEntityCatalog as c };
60
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/root-config.ts","../../../../libs/modules/communication-management/contracts/src/entity-catalog.ts","../../../../libs/modules/communication-management/contracts/src/acorex-platform-module-communication-management-client-contracts-entity-catalog.ts"],"sourcesContent":["const config = {\n i18n: 'communication-management',\n};\n\nconst dashboardWidgetId = (segment: string): string =>\n `CommunicationManagement:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n name: 'CommunicationManagement',\n title: '@communication-management:module.title',\n icon: 'fa-light fa-paper-plane',\n },\n entities: {\n communication: {\n name: 'Communications',\n title: '@communication-management:entities.communication.title',\n titlePlural: '@communication-management:entities.communication.plural',\n icon: 'fa-light fa-envelope',\n },\n communicationDelivery: {\n name: 'CommunicationDeliveries',\n title: '@communication-management:entities.communication-delivery.title',\n titlePlural: '@communication-management:entities.communication-delivery.plural',\n icon: 'fa-light fa-truck-fast',\n },\n },\n widgets: {\n myInAppInboxDashboard: dashboardWidgetId('MyInAppInboxDashboard'),\n },\n queries: {\n dashboard: {\n deliveryStatusDonut: 'CommunicationManagement:Dashboard:DeliveryStatusDonut',\n },\n },\n} as const;\n\nexport const COMMUNICATION_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communication.name}`;\nexport const COMMUNICATION_DELIVERY_ENTITY_NAME = `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`;\n","//#region ----- Imports -----\n\nimport type { AXPLocalEntityCatalog } from '@acorex-platform/framework-shared/entity';\n\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ----- Local entity catalog -----\n\n/**\n * Lazy per-entity layout factories. Do not re-export from the contracts barrel\n * so RootConfig imports stay light. Server seed and client `local-entities`\n * consume this catalog explicitly.\n */\nexport const communicationManagementLocalEntityCatalog: AXPLocalEntityCatalog = {\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.communication.name]: () =>\n import('./entities/communication/communication.entity.js').then((m) => m.communicationEntityFactory()),\n [RootConfig.entities.communicationDelivery.name]: () =>\n import('./entities/communication-delivery/communication-delivery.entity.js').then((m) => m.communicationDeliveryEntityFactory()),\n },\n};\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-catalog';\n"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,0BAA0B;CACjC;AAED,MAAM,iBAAiB,GAAG,CAAC,OAAe,KACxC,CAAA,yCAAA,EAA4C,OAAO,CAAA,CAAE;AAEhD,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,yBAAyB;AAC/B,QAAA,KAAK,EAAE,wCAAwC;AAC/C,QAAA,IAAI,EAAE,yBAAyB;AAChC,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,aAAa,EAAE;AACb,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,KAAK,EAAE,wDAAwD;AAC/D,YAAA,WAAW,EAAE,yDAAyD;AACtE,YAAA,IAAI,EAAE,sBAAsB;AAC7B,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,IAAI,EAAE,yBAAyB;AAC/B,YAAA,KAAK,EAAE,iEAAiE;AACxE,YAAA,WAAW,EAAE,kEAAkE;AAC/E,YAAA,IAAI,EAAE,wBAAwB;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,qBAAqB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC;AAClE,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE;AACT,YAAA,mBAAmB,EAAE,uDAAuD;AAC7E,SAAA;AACF,KAAA;;AAGI,MAAM,yBAAyB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE;AACvG,MAAM,kCAAkC,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE;;ACvC/H;AAMA;AAEA;AAEA;;;;AAIG;AACI,MAAM,yCAAyC,GAA0B;AAC9E,IAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,IAAA,OAAO,EAAE;AACP,QAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,MACxC,OAAO,qHAAkD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC;AACxG,QAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,GAAG,MAChD,OAAO,8HAAoE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,EAAE,CAAC;AACnI,KAAA;;AAGH;;ACzBA;;AAEG;;;;"}
@@ -0,0 +1,183 @@
1
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions } from '@acorex-platform/framework-shared/entity';
3
+ import { a as AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY } from './acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs';
4
+ import { R as RootConfig } from './acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs';
5
+
6
+ const listOptions = {
7
+ filter: { inline: { enabled: true }, advance: { enabled: true } },
8
+ sort: { enabled: true },
9
+ };
10
+ async function communicationDeliveryEntityFactory() {
11
+ const i18n = RootConfig.config.i18n;
12
+ return {
13
+ module: RootConfig.module.name,
14
+ name: RootConfig.entities.communicationDelivery.name,
15
+ title: RootConfig.entities.communicationDelivery.title,
16
+ icon: RootConfig.entities.communicationDelivery.icon,
17
+ plugins: [
18
+ {
19
+ name: 'status',
20
+ options: {
21
+ field: 'status',
22
+ definition: AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY,
23
+ showInCreate: false,
24
+ readonly: true,
25
+ generate: { views: { enabled: true } },
26
+ },
27
+ },
28
+ ],
29
+ formats: {
30
+ individual: RootConfig.entities.communicationDelivery.title,
31
+ plural: RootConfig.entities.communicationDelivery.titlePlural,
32
+ searchResult: {
33
+ title: '{{ channel }} — {{ recipientAddress }}',
34
+ description: '{{ status }}',
35
+ },
36
+ },
37
+ columns: [
38
+ { name: 'communicationId', options: { width: '180px' } },
39
+ { name: 'channel', options: { width: '120px' } },
40
+ { name: 'recipientAddress', options: { width: '200px' } },
41
+ { name: 'sentAt', options: { width: '170px' } },
42
+ { name: 'deliveredAt', options: { width: '170px' } },
43
+ ],
44
+ groups: [
45
+ { id: 'general', title: '@general:terms.interface.basic-info' },
46
+ { id: 'tracking', title: `@${i18n}:entities.communication-delivery.groups.tracking` },
47
+ { id: 'timeline', title: `@${i18n}:entities.communication-delivery.groups.timeline` },
48
+ ],
49
+ properties: [
50
+ {
51
+ name: 'communicationId',
52
+ title: `@${i18n}:entities.communication-delivery.fields.communication-id`,
53
+ groupId: 'general',
54
+ options: listOptions,
55
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
56
+ },
57
+ {
58
+ name: 'channel',
59
+ title: `@${i18n}:entities.communication-delivery.fields.channel`,
60
+ groupId: 'general',
61
+ options: listOptions,
62
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
63
+ },
64
+ {
65
+ name: 'providerKey',
66
+ title: `@${i18n}:entities.communication-delivery.fields.provider-key`,
67
+ groupId: 'general',
68
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
69
+ },
70
+ {
71
+ name: 'recipientUserId',
72
+ title: `@${i18n}:entities.communication-delivery.fields.recipient-user-id`,
73
+ groupId: 'general',
74
+ options: listOptions,
75
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
76
+ },
77
+ {
78
+ name: 'recipientAddress',
79
+ title: `@${i18n}:entities.communication-delivery.fields.recipient-address`,
80
+ groupId: 'general',
81
+ options: listOptions,
82
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
83
+ },
84
+ {
85
+ name: 'providerMessageId',
86
+ title: `@${i18n}:entities.communication-delivery.fields.provider-message-id`,
87
+ groupId: 'tracking',
88
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
89
+ },
90
+ {
91
+ name: 'sentAt',
92
+ title: `@${i18n}:entities.communication-delivery.fields.sent-at`,
93
+ groupId: 'tracking',
94
+ options: listOptions,
95
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
96
+ },
97
+ {
98
+ name: 'deliveredAt',
99
+ title: `@${i18n}:entities.communication-delivery.fields.delivered-at`,
100
+ groupId: 'tracking',
101
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
102
+ },
103
+ {
104
+ name: 'seenAt',
105
+ title: `@${i18n}:entities.communication-delivery.fields.seen-at`,
106
+ groupId: 'tracking',
107
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
108
+ },
109
+ {
110
+ name: 'readAt',
111
+ title: `@${i18n}:entities.communication-delivery.fields.read-at`,
112
+ groupId: 'tracking',
113
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
114
+ },
115
+ {
116
+ name: 'isPinned',
117
+ title: `@${i18n}:entities.communication-delivery.fields.is-pinned`,
118
+ groupId: 'tracking',
119
+ schema: { dataType: 'boolean', readonly: true, interface: { type: AXPWidgetsCatalog.toggle } },
120
+ },
121
+ {
122
+ name: 'archivedAt',
123
+ title: `@${i18n}:entities.communication-delivery.fields.archived-at`,
124
+ groupId: 'tracking',
125
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
126
+ },
127
+ {
128
+ name: 'repliedAt',
129
+ title: `@${i18n}:entities.communication-delivery.fields.replied-at`,
130
+ groupId: 'tracking',
131
+ schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },
132
+ },
133
+ {
134
+ name: 'timelineSummary',
135
+ title: `@${i18n}:entities.communication-delivery.fields.timeline-summary`,
136
+ groupId: 'timeline',
137
+ schema: {
138
+ dataType: 'string',
139
+ readonly: true,
140
+ interface: { type: AXPWidgetsCatalog.largeText },
141
+ },
142
+ },
143
+ ],
144
+ interfaces: {
145
+ master: {
146
+ // Empty create/update keeps deliveries view-only (engine creates records).
147
+ create: {
148
+ sections: [],
149
+ properties: [],
150
+ },
151
+ update: {
152
+ sections: [],
153
+ properties: [],
154
+ },
155
+ single: {
156
+ title: '{{ channel }} — {{ recipientAddress }}',
157
+ sections: [{ id: 'general' }, { id: 'tracking' }, { id: 'timeline' }],
158
+ properties: [
159
+ { name: 'communicationId' },
160
+ { name: 'channel' },
161
+ { name: 'providerKey' },
162
+ { name: 'recipientAddress' },
163
+ { name: 'providerMessageId' },
164
+ { name: 'sentAt' },
165
+ { name: 'deliveredAt' },
166
+ { name: 'seenAt' },
167
+ { name: 'readAt' },
168
+ { name: 'repliedAt' },
169
+ { name: 'timelineSummary' },
170
+ ],
171
+ actions: [],
172
+ },
173
+ list: {
174
+ actions: [...entityMasterCrudActions({ create: false, delete: false, edit: false, view: true })],
175
+ views: [createAllQueryView()],
176
+ },
177
+ },
178
+ },
179
+ };
180
+ }
181
+
182
+ export { communicationDeliveryEntityFactory };
183
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/entities/communication-delivery/communication-delivery.entity.ts"],"sourcesContent":["import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n createAllQueryView,\n entityMasterCrudActions,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY } from '../../status.keys';\nimport { RootConfig } from '../../root-config';\n\nconst listOptions = {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n sort: { enabled: true },\n};\n\nexport async function communicationDeliveryEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.communicationDelivery.name,\n title: RootConfig.entities.communicationDelivery.title,\n icon: RootConfig.entities.communicationDelivery.icon,\n plugins: [\n {\n name: 'status',\n options: {\n field: 'status',\n definition: AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY,\n showInCreate: false,\n readonly: true,\n generate: { views: { enabled: true } },\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.communicationDelivery.title,\n plural: RootConfig.entities.communicationDelivery.titlePlural,\n searchResult: {\n title: '{{ channel }} — {{ recipientAddress }}',\n description: '{{ status }}',\n },\n },\n columns: [\n { name: 'communicationId', options: { width: '180px' } },\n { name: 'channel', options: { width: '120px' } },\n { name: 'recipientAddress', options: { width: '200px' } },\n { name: 'sentAt', options: { width: '170px' } },\n { name: 'deliveredAt', options: { width: '170px' } },\n ],\n groups: [\n { id: 'general', title: '@general:terms.interface.basic-info' },\n { id: 'tracking', title: `@${i18n}:entities.communication-delivery.groups.tracking` },\n { id: 'timeline', title: `@${i18n}:entities.communication-delivery.groups.timeline` },\n ],\n properties: [\n {\n name: 'communicationId',\n title: `@${i18n}:entities.communication-delivery.fields.communication-id`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'channel',\n title: `@${i18n}:entities.communication-delivery.fields.channel`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'providerKey',\n title: `@${i18n}:entities.communication-delivery.fields.provider-key`,\n groupId: 'general',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientUserId',\n title: `@${i18n}:entities.communication-delivery.fields.recipient-user-id`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientAddress',\n title: `@${i18n}:entities.communication-delivery.fields.recipient-address`,\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'providerMessageId',\n title: `@${i18n}:entities.communication-delivery.fields.provider-message-id`,\n groupId: 'tracking',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'sentAt',\n title: `@${i18n}:entities.communication-delivery.fields.sent-at`,\n groupId: 'tracking',\n options: listOptions,\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'deliveredAt',\n title: `@${i18n}:entities.communication-delivery.fields.delivered-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'seenAt',\n title: `@${i18n}:entities.communication-delivery.fields.seen-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'readAt',\n title: `@${i18n}:entities.communication-delivery.fields.read-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'isPinned',\n title: `@${i18n}:entities.communication-delivery.fields.is-pinned`,\n groupId: 'tracking',\n schema: { dataType: 'boolean', readonly: true, interface: { type: AXPWidgetsCatalog.toggle } },\n },\n {\n name: 'archivedAt',\n title: `@${i18n}:entities.communication-delivery.fields.archived-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'repliedAt',\n title: `@${i18n}:entities.communication-delivery.fields.replied-at`,\n groupId: 'tracking',\n schema: { dataType: 'date', readonly: true, interface: { type: AXPWidgetsCatalog.dateTime } },\n },\n {\n name: 'timelineSummary',\n title: `@${i18n}:entities.communication-delivery.fields.timeline-summary`,\n groupId: 'timeline',\n schema: {\n dataType: 'string',\n readonly: true,\n interface: { type: AXPWidgetsCatalog.largeText },\n },\n },\n ],\n interfaces: {\n master: {\n // Empty create/update keeps deliveries view-only (engine creates records).\n create: {\n sections: [],\n properties: [],\n },\n update: {\n sections: [],\n properties: [],\n },\n single: {\n title: '{{ channel }} — {{ recipientAddress }}',\n sections: [{ id: 'general' }, { id: 'tracking' }, { id: 'timeline' }],\n properties: [\n { name: 'communicationId' },\n { name: 'channel' },\n { name: 'providerKey' },\n { name: 'recipientAddress' },\n { name: 'providerMessageId' },\n { name: 'sentAt' },\n { name: 'deliveredAt' },\n { name: 'seenAt' },\n { name: 'readAt' },\n { name: 'repliedAt' },\n { name: 'timelineSummary' },\n ],\n actions: [],\n },\n list: {\n actions: [...entityMasterCrudActions({ create: false, delete: false, edit: false, view: true })],\n views: [createAllQueryView()],\n },\n },\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
+ import { AXPEntityCommandScope, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions, entityDetailsSimpleCondition } from '@acorex-platform/framework-shared/entity';
3
+ import { A as AXP_COMMUNICATION_STATUS_DEFINITION_KEY } from './acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs';
4
+ import { R as RootConfig } from './acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs';
5
+
6
+ //#region ---- Client command keys ----
7
+ const AXMCommunicationManagementCommandKeys = {
8
+ Send: 'CommunicationManagement:Communication:Send',
9
+ TestSmtp: 'CommunicationManagement:Communication:TestSmtp',
10
+ EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',
11
+ EmailSend: 'CommunicationManagement:Email:Send',
12
+ ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',
13
+ };
14
+ //#endregion
15
+
16
+ const listOptions = {
17
+ filter: { inline: { enabled: true }, advance: { enabled: true } },
18
+ sort: { enabled: true },
19
+ };
20
+ const previewMessageAction = (i18n) => ({
21
+ title: `@${i18n}:entities.communication.actions.preview.title`,
22
+ name: 'preview-message',
23
+ icon: 'fa-light fa-envelope-open-text',
24
+ command: {
25
+ name: AXMCommunicationManagementCommandKeys.ShowSentMessage,
26
+ options: {
27
+ communicationId: '{{ context.eval("id") }}',
28
+ },
29
+ },
30
+ priority: 'primary',
31
+ type: 'execute',
32
+ scope: AXPEntityCommandScope.Individual,
33
+ });
34
+ async function communicationEntityFactory() {
35
+ const i18n = RootConfig.config.i18n;
36
+ return {
37
+ module: RootConfig.module.name,
38
+ name: RootConfig.entities.communication.name,
39
+ title: RootConfig.entities.communication.title,
40
+ icon: RootConfig.entities.communication.icon,
41
+ plugins: [
42
+ {
43
+ name: 'status',
44
+ options: {
45
+ field: 'status',
46
+ definition: AXP_COMMUNICATION_STATUS_DEFINITION_KEY,
47
+ showInCreate: false,
48
+ readonly: true,
49
+ generate: { views: { enabled: true } },
50
+ },
51
+ },
52
+ ],
53
+ formats: {
54
+ individual: RootConfig.entities.communication.title,
55
+ plural: RootConfig.entities.communication.titlePlural,
56
+ searchResult: {
57
+ title: '{{ title }}',
58
+ description: '{{ message.subject }}',
59
+ },
60
+ },
61
+ columns: [
62
+ { name: 'title', options: { width: '220px' } },
63
+ { name: 'primaryChannel', options: { width: '140px' } },
64
+ { name: 'recipientSummary', options: { width: '200px' } },
65
+ ],
66
+ relatedEntities: [
67
+ {
68
+ entity: `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`,
69
+ title: RootConfig.entities.communicationDelivery.titlePlural,
70
+ columns: ['channel', 'status', 'recipientAddress', 'sentAt', 'deliveredAt'],
71
+ conditions: [entityDetailsSimpleCondition('communicationId')],
72
+ persistence: { foreignKeyField: 'communicationId' },
73
+ excludeProperties: ['communicationId'],
74
+ actions: [
75
+ ...entityDetailsCrudActions('communicationId', {
76
+ create: false,
77
+ edit: false,
78
+ delete: false,
79
+ view: true,
80
+ }),
81
+ ],
82
+ layout: { type: 'page-list', position: 'after', order: 1 },
83
+ },
84
+ ],
85
+ groups: [
86
+ { id: 'general', title: '@general:terms.interface.basic-info' },
87
+ { id: 'routing', title: `@${i18n}:entities.communication.groups.routing` },
88
+ ],
89
+ properties: [
90
+ {
91
+ name: 'title',
92
+ title: '@general:terms.common.title',
93
+ groupId: 'general',
94
+ options: listOptions,
95
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
96
+ },
97
+ {
98
+ name: 'message.subject',
99
+ title: `@${i18n}:entities.communication.fields.message-subject`,
100
+ groupId: 'general',
101
+ options: listOptions,
102
+ schema: {
103
+ dataType: 'string',
104
+ visible: false,
105
+ readonly: true,
106
+ interface: { type: AXPWidgetsCatalog.text },
107
+ },
108
+ },
109
+ {
110
+ name: 'message.body',
111
+ title: `@${i18n}:entities.communication.fields.message-body`,
112
+ groupId: 'general',
113
+ schema: {
114
+ dataType: 'string',
115
+ visible: false,
116
+ readonly: true,
117
+ interface: { type: AXPWidgetsCatalog.largeText },
118
+ },
119
+ },
120
+ {
121
+ name: 'primaryChannel',
122
+ title: `@${i18n}:entities.communication.fields.primary-channel`,
123
+ groupId: 'routing',
124
+ options: listOptions,
125
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
126
+ },
127
+ {
128
+ name: 'recipientSummary',
129
+ title: `@${i18n}:entities.communication.fields.recipient-summary`,
130
+ groupId: 'routing',
131
+ options: listOptions,
132
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
133
+ },
134
+ {
135
+ name: 'definitionKey',
136
+ title: `@${i18n}:entities.communication.fields.definition-key`,
137
+ groupId: 'routing',
138
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
139
+ },
140
+ {
141
+ name: 'priority',
142
+ title: `@${i18n}:entities.communication.fields.priority`,
143
+ groupId: 'routing',
144
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
145
+ },
146
+ {
147
+ name: 'correlationId',
148
+ title: `@${i18n}:entities.communication.fields.correlation-id`,
149
+ groupId: 'routing',
150
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
151
+ },
152
+ {
153
+ name: 'idempotencyKey',
154
+ title: `@${i18n}:entities.communication.fields.idempotency-key`,
155
+ groupId: 'routing',
156
+ schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
157
+ },
158
+ {
159
+ name: 'actions',
160
+ title: `@${i18n}:entities.communication.fields.actions`,
161
+ groupId: 'routing',
162
+ schema: { dataType: 'object', readonly: true, interface: { type: AXPWidgetsCatalog.text } },
163
+ },
164
+ ],
165
+ interfaces: {
166
+ master: {
167
+ // Empty create/update keeps the entity view-only (send API creates records).
168
+ create: {
169
+ sections: [],
170
+ properties: [],
171
+ },
172
+ update: {
173
+ sections: [],
174
+ properties: [],
175
+ },
176
+ single: {
177
+ title: '{{ title }}',
178
+ sections: [{ id: 'general' }, { id: 'routing' }],
179
+ properties: [
180
+ { name: 'title' },
181
+ { name: 'primaryChannel' },
182
+ { name: 'recipientSummary' },
183
+ { name: 'definitionKey' },
184
+ { name: 'correlationId' },
185
+ { name: 'idempotencyKey' },
186
+ ],
187
+ actions: [previewMessageAction(i18n), ...entityMasterRecordActions()],
188
+ },
189
+ list: {
190
+ actions: [
191
+ ...entityMasterCrudActions({ create: false, edit: false, view: true, delete: true }),
192
+ previewMessageAction(i18n),
193
+ ],
194
+ views: [createAllQueryView()],
195
+ },
196
+ },
197
+ },
198
+ };
199
+ }
200
+
201
+ export { communicationEntityFactory };
202
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/commands.keys.ts","../../../../libs/modules/communication-management/contracts/src/entities/communication/communication.entity.ts"],"sourcesContent":["//#region ---- Client command keys ----\n\nexport const AXMCommunicationManagementCommandKeys = {\n Send: 'CommunicationManagement:Communication:Send',\n TestSmtp: 'CommunicationManagement:Communication:TestSmtp',\n EmailShowDialog: 'CommunicationManagement:Email:ShowDialog',\n EmailSend: 'CommunicationManagement:Email:Send',\n ShowSentMessage: 'CommunicationManagement:Communication:ShowSentMessage',\n} as const;\n\n//#endregion\n","import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityAction,\n AXPEntityCommandScope,\n createAllQueryView,\n entityDetailsCrudActions,\n entityDetailsSimpleCondition,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXMCommunicationManagementCommandKeys } from '../../commands.keys';\nimport { AXP_COMMUNICATION_STATUS_DEFINITION_KEY } from '../../status.keys';\nimport { RootConfig } from '../../root-config';\n\nconst listOptions = {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n sort: { enabled: true },\n};\n\nconst previewMessageAction = (i18n: string): AXPEntityAction =>\n ({\n title: `@${i18n}:entities.communication.actions.preview.title`,\n name: 'preview-message',\n icon: 'fa-light fa-envelope-open-text',\n command: {\n name: AXMCommunicationManagementCommandKeys.ShowSentMessage,\n options: {\n communicationId: '{{ context.eval(\"id\") }}',\n },\n },\n priority: 'primary',\n type: 'execute',\n scope: AXPEntityCommandScope.Individual,\n }) as AXPEntityAction;\n\nexport async function communicationEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.communication.name,\n title: RootConfig.entities.communication.title,\n icon: RootConfig.entities.communication.icon,\n plugins: [\n {\n name: 'status',\n options: {\n field: 'status',\n definition: AXP_COMMUNICATION_STATUS_DEFINITION_KEY,\n showInCreate: false,\n readonly: true,\n generate: { views: { enabled: true } },\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.communication.title,\n plural: RootConfig.entities.communication.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ message.subject }}',\n },\n },\n columns: [\n { name: 'title', options: { width: '220px' } },\n { name: 'primaryChannel', options: { width: '140px' } },\n { name: 'recipientSummary', options: { width: '200px' } },\n ],\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.communicationDelivery.name}`,\n title: RootConfig.entities.communicationDelivery.titlePlural,\n columns: ['channel', 'status', 'recipientAddress', 'sentAt', 'deliveredAt'],\n conditions: [entityDetailsSimpleCondition('communicationId')],\n persistence: { foreignKeyField: 'communicationId' },\n excludeProperties: ['communicationId'],\n actions: [\n ...entityDetailsCrudActions('communicationId', {\n create: false,\n edit: false,\n delete: false,\n view: true,\n }),\n ],\n layout: { type: 'page-list', position: 'after', order: 1 },\n },\n ],\n\n groups: [\n { id: 'general', title: '@general:terms.interface.basic-info' },\n { id: 'routing', title: `@${i18n}:entities.communication.groups.routing` },\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'general',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'message.subject',\n title: `@${i18n}:entities.communication.fields.message-subject`,\n groupId: 'general',\n options: listOptions,\n schema: {\n dataType: 'string',\n visible: false,\n readonly: true,\n interface: { type: AXPWidgetsCatalog.text },\n },\n },\n {\n name: 'message.body',\n title: `@${i18n}:entities.communication.fields.message-body`,\n groupId: 'general',\n schema: {\n dataType: 'string',\n visible: false,\n readonly: true,\n interface: { type: AXPWidgetsCatalog.largeText },\n },\n },\n {\n name: 'primaryChannel',\n title: `@${i18n}:entities.communication.fields.primary-channel`,\n groupId: 'routing',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'recipientSummary',\n title: `@${i18n}:entities.communication.fields.recipient-summary`,\n groupId: 'routing',\n options: listOptions,\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'definitionKey',\n title: `@${i18n}:entities.communication.fields.definition-key`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'priority',\n title: `@${i18n}:entities.communication.fields.priority`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'correlationId',\n title: `@${i18n}:entities.communication.fields.correlation-id`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'idempotencyKey',\n title: `@${i18n}:entities.communication.fields.idempotency-key`,\n groupId: 'routing',\n schema: { dataType: 'string', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n {\n name: 'actions',\n title: `@${i18n}:entities.communication.fields.actions`,\n groupId: 'routing',\n schema: { dataType: 'object', readonly: true, interface: { type: AXPWidgetsCatalog.text } },\n },\n ],\n interfaces: {\n master: {\n // Empty create/update keeps the entity view-only (send API creates records).\n create: {\n sections: [],\n properties: [],\n },\n update: {\n sections: [],\n properties: [],\n },\n single: {\n title: '{{ title }}',\n sections: [{ id: 'general' }, { id: 'routing' }],\n properties: [\n { name: 'title' },\n { name: 'primaryChannel' },\n { name: 'recipientSummary' },\n { name: 'definitionKey' },\n { name: 'correlationId' },\n { name: 'idempotencyKey' },\n ],\n actions: [previewMessageAction(i18n), ...entityMasterRecordActions()],\n },\n list: {\n actions: [\n ...entityMasterCrudActions({ create: false, edit: false, view: true, delete: true }),\n previewMessageAction(i18n),\n ],\n views: [createAllQueryView()],\n },\n },\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ //#region ---- Status definition keys ----
2
+ /** Registered client status provider key for logical communications. */
3
+ const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';
4
+ /** Registered client status provider key for communication deliveries. */
5
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY = 'communication-management.status.communication-delivery';
6
+ const AXP_COMMUNICATION_STATUS_PENDING = 'Pending';
7
+ const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing';
8
+ const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed';
9
+ const AXP_COMMUNICATION_STATUS_FAILED = 'Failed';
10
+ const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending';
11
+ const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered';
12
+ //#endregion
13
+
14
+ export { AXP_COMMUNICATION_STATUS_DEFINITION_KEY as A, AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY as a };
15
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entity-catalog-status.keys-JESc4HlO.mjs","sources":["../../../../libs/modules/communication-management/contracts/src/status.keys.ts"],"sourcesContent":["//#region ---- Status definition keys ----\n\n/** Registered client status provider key for logical communications. */\nexport const AXP_COMMUNICATION_STATUS_DEFINITION_KEY = 'communication-management.status.communication';\n\n/** Registered client status provider key for communication deliveries. */\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY =\n 'communication-management.status.communication-delivery';\n\nexport const AXP_COMMUNICATION_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_STATUS_PROCESSING = 'Processing' as const;\nexport const AXP_COMMUNICATION_STATUS_COMPLETED = 'Completed' as const;\nexport const AXP_COMMUNICATION_STATUS_FAILED = 'Failed' as const;\n\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING = 'Pending' as const;\nexport const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED = 'Delivered' as const;\n\n//#endregion\n"],"names":[],"mappings":"AAAA;AAEA;AACO,MAAM,uCAAuC,GAAG;AAEvD;AACO,MAAM,gDAAgD,GAC3D;AAEK,MAAM,gCAAgC,GAAG,SAAkB;AAC3D,MAAM,mCAAmC,GAAG,YAAqB;AACjE,MAAM,kCAAkC,GAAG,WAAoB;AAC/D,MAAM,+BAA+B,GAAG,QAAiB;AAEzD,MAAM,yCAAyC,GAAG,SAAkB;AACpE,MAAM,2CAA2C,GAAG,WAAoB;AAE/E;;;;"}
@@ -0,0 +1,2 @@
1
+ export { c as communicationManagementLocalEntityCatalog } from './acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs';
2
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
2
+ import { RootConfig } from '@acorex-platform/module-communication-management-client/contracts';
3
+ export { communicationManagementLocalEntityCatalog } from '@acorex-platform/module-communication-management-client/contracts/entity-catalog';
4
+
5
+ //#region ----- Imports -----
6
+ //#endregion
7
+ //#region ----- Provide local entities -----
8
+ /**
9
+ * Registers communication-management layouts on the client from packaged factories.
10
+ * Each `import()` targets a secondary entry so unused entities stay out of the
11
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
12
+ * `Domain:GetEntityLayout`.
13
+ */
14
+ function provideCommunicationManagementLocalEntities() {
15
+ return provideLocalEntityCatalog({
16
+ moduleName: RootConfig.module.name,
17
+ loaders: {
18
+ [RootConfig.entities.communication.name]: () => import('@acorex-platform/module-communication-management-client/contracts/entities/communication').then((m) => m.communicationEntityFactory()),
19
+ [RootConfig.entities.communicationDelivery.name]: () => import('@acorex-platform/module-communication-management-client/contracts/entities/communication-delivery').then((m) => m.communicationDeliveryEntityFactory()),
20
+ },
21
+ });
22
+ }
23
+ //#endregion
24
+
25
+ /**
26
+ * Generated bundle index. Do not edit.
27
+ */
28
+
29
+ export { provideCommunicationManagementLocalEntities };
30
+ //# sourceMappingURL=acorex-platform-module-communication-management-client-local-entities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-communication-management-client-local-entities.mjs","sources":["../../../../libs/modules/communication-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/communication-management/client/src/lib/acorex-platform-module-communication-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-communication-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers communication-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideCommunicationManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.communication.name]: () =>\n import('@acorex-platform/module-communication-management-client/contracts/entities/communication').then((m) => m.communicationEntityFactory()),\n [RootConfig.entities.communicationDelivery.name]: () =>\n import('@acorex-platform/module-communication-management-client/contracts/entities/communication-delivery').then((m) => m.communicationDeliveryEntityFactory()),\n },\n });\n}\n\nexport { communicationManagementLocalEntityCatalog } from '@acorex-platform/module-communication-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,2CAA2C,GAAA;AACzD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,MACxC,OAAO,0FAA0F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC;AAChJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,GAAG,MAChD,OAAO,mGAAmG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,EAAE,CAAC;AAClK,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;AC7BA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-communication-management-client",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-dashboard-management-client": "0.0.32",
7
- "@acorex-platform/module-organization-management-client": "0.0.32",
6
+ "@acorex-platform/module-dashboard-management-client": "0.0.33",
7
+ "@acorex-platform/module-organization-management-client": "0.0.33",
8
8
  "@angular/common": "^21.0.0 || ^22.0.0",
9
9
  "@angular/core": "^21.0.0 || ^22.0.0"
10
10
  },
@@ -24,6 +24,22 @@
24
24
  "./contracts": {
25
25
  "types": "./types/acorex-platform-module-communication-management-client-contracts.d.ts",
26
26
  "default": "./fesm2022/acorex-platform-module-communication-management-client-contracts.mjs"
27
+ },
28
+ "./contracts/entities/communication": {
29
+ "types": "./types/acorex-platform-module-communication-management-client-contracts-entities-communication.d.ts",
30
+ "default": "./fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication.mjs"
31
+ },
32
+ "./contracts/entities/communication-delivery": {
33
+ "types": "./types/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.d.ts",
34
+ "default": "./fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs"
35
+ },
36
+ "./contracts/entity-catalog": {
37
+ "types": "./types/acorex-platform-module-communication-management-client-contracts-entity-catalog.d.ts",
38
+ "default": "./fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs"
39
+ },
40
+ "./local-entities": {
41
+ "types": "./types/acorex-platform-module-communication-management-client-local-entities.d.ts",
42
+ "default": "./fesm2022/acorex-platform-module-communication-management-client-local-entities.mjs"
27
43
  }
28
44
  },
29
45
  "type": "module"
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function communicationDeliveryEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { communicationDeliveryEntityFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function communicationEntityFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { communicationEntityFactory };
@@ -0,0 +1,10 @@
1
+ import { AXPLocalEntityCatalog } from '@acorex-platform/framework-shared/entity';
2
+
3
+ /**
4
+ * Lazy per-entity layout factories. Do not re-export from the contracts barrel
5
+ * so RootConfig imports stay light. Server seed and client `local-entities`
6
+ * consume this catalog explicitly.
7
+ */
8
+ declare const communicationManagementLocalEntityCatalog: AXPLocalEntityCatalog;
9
+
10
+ export { communicationManagementLocalEntityCatalog };
@@ -0,0 +1,12 @@
1
+ import * as _angular_core from '@angular/core';
2
+ export { communicationManagementLocalEntityCatalog } from '@acorex-platform/module-communication-management-client/contracts/entity-catalog';
3
+
4
+ /**
5
+ * Registers communication-management layouts on the client from packaged factories.
6
+ * Each `import()` targets a secondary entry so unused entities stay out of the
7
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
8
+ * `Domain:GetEntityLayout`.
9
+ */
10
+ declare function provideCommunicationManagementLocalEntities(): _angular_core.EnvironmentProviders;
11
+
12
+ export { provideCommunicationManagementLocalEntities };