@acorex-platform/module-communication-management-client 0.0.38 → 0.0.46

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 (38) hide show
  1. package/fesm2022/{acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-CZh_tBTN.mjs → acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-BJvTWpBc.mjs} +268 -91
  2. package/fesm2022/acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-BJvTWpBc.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-communication-management-client-communication-email-send.command-Bnqy-YMs.mjs → acorex-platform-module-communication-management-client-communication-email-send.command-CR4RjM-X.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-communication-management-client-communication-email-send.command-Bnqy-YMs.mjs.map → acorex-platform-module-communication-management-client-communication-email-send.command-CR4RjM-X.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-D4o0Bhce.mjs → acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-yaRijsuh.mjs} +3 -3
  6. package/fesm2022/{acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-D4o0Bhce.mjs.map → acorex-platform-module-communication-management-client-communication-in-app-inbox-page.component-yaRijsuh.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-communication-management-client-communication-send.command-BH9jjHfA.mjs → acorex-platform-module-communication-management-client-communication-send.command-D19heywC.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-module-communication-management-client-communication-send.command-BH9jjHfA.mjs.map → acorex-platform-module-communication-management-client-communication-send.command-D19heywC.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-communication-management-client-communication-test-smtp.command-BMsTVFBN.mjs → acorex-platform-module-communication-management-client-communication-test-smtp.command-Bck8R4as.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-module-communication-management-client-communication-test-smtp.command-BMsTVFBN.mjs.map → acorex-platform-module-communication-management-client-communication-test-smtp.command-Bck8R4as.mjs.map} +1 -1
  11. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs +25 -0
  12. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication-delivery.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication.mjs +25 -0
  14. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-communication.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-entity-change-notify-policy.mjs +195 -0
  16. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entities-entity-change-notify-policy.mjs.map +1 -0
  17. package/fesm2022/{acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs → acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-DTHjzWFn.mjs} +15 -3
  18. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-DTHjzWFn.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs → acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DN0_CPBO.mjs} +16 -2
  20. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DN0_CPBO.mjs.map +1 -0
  21. package/fesm2022/{acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs → acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-BAa4oCXu.mjs} +16 -2
  22. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-BAa4oCXu.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-entity-change-notify-policy.entity-DmM894ok.mjs +144 -0
  24. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-entity-change-notify-policy.entity-DmM894ok.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog.mjs +1 -1
  26. package/fesm2022/acorex-platform-module-communication-management-client-contracts.mjs +29 -1
  27. package/fesm2022/acorex-platform-module-communication-management-client-contracts.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-module-communication-management-client-local-entities.mjs +1 -0
  29. package/fesm2022/acorex-platform-module-communication-management-client-local-entities.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-module-communication-management-client.mjs +1 -1
  31. package/package.json +7 -3
  32. package/types/acorex-platform-module-communication-management-client-contracts-entities-entity-change-notify-policy.d.ts +5 -0
  33. package/types/acorex-platform-module-communication-management-client-contracts.d.ts +48 -2
  34. package/types/acorex-platform-module-communication-management-client.d.ts +17 -0
  35. package/fesm2022/acorex-platform-module-communication-management-client-acorex-platform-module-communication-management-client-CZh_tBTN.mjs.map +0 -1
  36. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-acorex-platform-module-communication-management-client-contracts-entity-catalog-BvLoGDK5.mjs.map +0 -1
  37. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication-delivery.entity-DPCU8P32.mjs.map +0 -1
  38. package/fesm2022/acorex-platform-module-communication-management-client-contracts-entity-catalog-communication.entity-DGj9OD3Z.mjs.map +0 -1
@@ -1,3 +1,6 @@
1
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPModuleManifest } from '@acorex-platform/framework-shared/core';
3
+
1
4
  type CommunicationAggregateStatus = 'Pending' | 'Processing' | 'Completed' | 'Failed' | 'Cancelled';
2
5
  type CommunicationDeliveryStatus = 'Pending' | 'Queued' | 'Processing' | 'Accepted' | 'Sent' | 'Delivered' | 'Failed' | 'RetryScheduled' | 'Cancelled' | 'DeadLettered';
3
6
  interface CommunicationMessage {
@@ -57,6 +60,12 @@ interface CommunicationSendInput {
57
60
  * When omitted, channel adapters use the authenticated session tenant.
58
61
  */
59
62
  tenantId?: string;
63
+ /**
64
+ * When true, Communication/Delivery are inserted with empty `scopeInfo` (no tenant).
65
+ * With `catalog-read`, those rows are visible in any tenant session; inbox UI still
66
+ * filters by `recipientUserId`.
67
+ */
68
+ unscoped?: boolean;
60
69
  definitionKey?: string;
61
70
  correlationId?: string;
62
71
  idempotencyKey?: string;
@@ -208,9 +217,31 @@ interface CommunicationDeliveryMutationResult {
208
217
  affectedIds: string[];
209
218
  }
210
219
 
220
+ type AXMEntityChangeNotifyOp = 'update';
221
+ interface AXMEntityChangeNotifyRelated {
222
+ /** Related entity name (`PersonCore.Person`). */
223
+ entity: string;
224
+ /** FK on the primary entity that points at the related row (`personId`). */
225
+ via: string;
226
+ }
227
+ interface AXMEntityChangeNotifyPolicyEntityModel extends AXPEntityModel<string> {
228
+ name: string;
229
+ title?: string;
230
+ enabled: boolean;
231
+ entityName: string;
232
+ related?: AXMEntityChangeNotifyRelated[];
233
+ debounceSeconds?: number;
234
+ templateId?: string;
235
+ recipientRoleNames?: string[];
236
+ includeFields?: string[];
237
+ excludeFields?: string[];
238
+ channels?: string[];
239
+ }
240
+
211
241
  declare const AXMCommunicationManagementMenuKeys: {
212
242
  readonly Root: "CommunicationManagement:Menu:Root";
213
243
  readonly Communications: "CommunicationManagement:Menu:Communications";
244
+ readonly EntityChangeNotifyPolicies: "CommunicationManagement:Menu:EntityChangeNotifyPolicies";
214
245
  };
215
246
 
216
247
  /**
@@ -262,6 +293,12 @@ declare const RootConfig: {
262
293
  readonly titlePlural: "@communication-management:entities.communication-delivery.plural";
263
294
  readonly icon: "fa-light fa-truck-fast";
264
295
  };
296
+ readonly entityChangeNotifyPolicy: {
297
+ readonly name: "EntityChangeNotifyPolicy";
298
+ readonly title: "@communication-management:entities.entity-change-notify-policy.title";
299
+ readonly titlePlural: "@communication-management:entities.entity-change-notify-policy.plural";
300
+ readonly icon: "fa-light fa-bell-on";
301
+ };
265
302
  };
266
303
  readonly widgets: {
267
304
  readonly myInAppInboxDashboard: string;
@@ -274,10 +311,18 @@ declare const RootConfig: {
274
311
  };
275
312
  declare const COMMUNICATION_ENTITY_NAME: string;
276
313
  declare const COMMUNICATION_DELIVERY_ENTITY_NAME: string;
314
+ declare const ENTITY_CHANGE_NOTIFY_POLICY_ENTITY_NAME: string;
315
+ declare const ENTITY_CHANGE_NOTIFY_JOB_PROVIDER_KEY = "communication-management";
316
+ declare const DEFAULT_ENTITY_CHANGE_NOTIFY_DEBOUNCE_SECONDS = 60;
317
+ /** Namespace for {@link tenantMasterId} when cloning notify policies per tenant. */
318
+ declare const ENTITY_CHANGE_NOTIFY_POLICY_TENANT_MASTER_NAMESPACE: "communication";
319
+
320
+ declare const CommunicationManagementManifest: AXPModuleManifest;
277
321
 
278
322
  declare const AXMCommunicationManagementServerCommands: {
279
323
  readonly Send: "CommunicationManagement:Server:Send";
280
324
  readonly Deliver: "CommunicationManagement:Server:Deliver";
325
+ readonly EntityChangeNotifyRun: "CommunicationManagement:EntityChangeNotify:Run";
281
326
  readonly InApp: {
282
327
  readonly MarkSeen: "CommunicationManagement:InApp:MarkSeen";
283
328
  readonly MarkRead: "CommunicationManagement:InApp:MarkRead";
@@ -290,6 +335,7 @@ declare const AXMCommunicationManagementServerCommands: {
290
335
  readonly Test: "CommunicationManagement:Smtp:Test";
291
336
  };
292
337
  };
338
+ declare const AXM_ENTITY_CHANGE_NOTIFY_RUN_COMMAND_KEY: "CommunicationManagement:EntityChangeNotify:Run";
293
339
 
294
340
  /** Settings group slug → `/:app/settings/user/communication-notifications` */
295
341
  declare const AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP = "communication-notifications";
@@ -331,5 +377,5 @@ declare const AXP_COMMUNICATION_STATUS_FAILED: "Failed";
331
377
  declare const AXP_COMMUNICATION_DELIVERY_STATUS_PENDING: "Pending";
332
378
  declare const AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED: "Delivered";
333
379
 
334
- export { AXMCommunicationManagementCommandKeys, AXMCommunicationManagementMenuKeys, AXMCommunicationManagementPermissionKeys, AXMCommunicationManagementServerCommands, AXPCollaborationPermissionKeys, AXPCommunicationManagementSettingKeys, AXP_COMMUNICATION_DELIVERY_CHANNELS_SETTINGS_SECTION, AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED, AXP_COMMUNICATION_DELIVERY_STATUS_PENDING, AXP_COMMUNICATION_SMTP_SETTING_DEFAULTS, AXP_COMMUNICATION_STATUS_COMPLETED, AXP_COMMUNICATION_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_STATUS_FAILED, AXP_COMMUNICATION_STATUS_PENDING, AXP_COMMUNICATION_STATUS_PROCESSING, AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP, AXP_COMMUNICATION_USER_NOTIFICATION_DEFAULTS, BUILTIN_CHANNEL_DEFINITIONS, COMMUNICATION_BUILTIN_CHANNEL_KEYS, COMMUNICATION_CHANNEL_ADAPTER, COMMUNICATION_CHANNEL_SEND_VALIDATOR, COMMUNICATION_DEBUG_REDIRECT_RESOLVER, COMMUNICATION_DELIVERY_ENTITY_NAME, COMMUNICATION_DELIVERY_EXECUTOR, COMMUNICATION_ENTITY_NAME, COMMUNICATION_MANAGEMENT_EMAIL_SEND_COMMAND_KEY, COMMUNICATION_MANAGEMENT_EMAIL_SHOW_DIALOG_COMMAND_KEY, RootConfig, formatCommunicationDeliveryJobTitle, getCommunicationChannel, isBuiltInCommunicationChannel, listCommunicationChannels, registerCommunicationChannel, resolveCommunicationMessage, resolveCommunicationRecipientLabel };
335
- export type { AXMCommunicationDeliveryModel, AXMCommunicationModel, CommunicationAggregateStatus, CommunicationBuiltinChannelKey, CommunicationChannelAdapter, CommunicationChannelAdapterContext, CommunicationChannelCapabilities, CommunicationChannelDefinition, CommunicationChannelDeliverResult, CommunicationChannelSendValidator, CommunicationDebugRedirectResolver, CommunicationDebugRedirectResult, CommunicationDeliverPayload, CommunicationDeliverResult, CommunicationDeliveryEngagementRequest, CommunicationDeliveryEngagementResult, CommunicationDeliveryExecutor, CommunicationDeliveryMutationResult, CommunicationDeliveryStatus, CommunicationManagementEmailSendInput, CommunicationManagementEmailSendResult, CommunicationManagementEmailShowDialogInput, CommunicationMessage, CommunicationNotificationAction, CommunicationPriority, CommunicationRecipientLabelInput, CommunicationSendInput, CommunicationSendResult, CommunicationSmtpSettings, CommunicationSmtpTestInput, CommunicationSmtpTestResult };
380
+ export { AXMCommunicationManagementCommandKeys, AXMCommunicationManagementMenuKeys, AXMCommunicationManagementPermissionKeys, AXMCommunicationManagementServerCommands, AXM_ENTITY_CHANGE_NOTIFY_RUN_COMMAND_KEY, AXPCollaborationPermissionKeys, AXPCommunicationManagementSettingKeys, AXP_COMMUNICATION_DELIVERY_CHANNELS_SETTINGS_SECTION, AXP_COMMUNICATION_DELIVERY_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_DELIVERY_STATUS_DELIVERED, AXP_COMMUNICATION_DELIVERY_STATUS_PENDING, AXP_COMMUNICATION_SMTP_SETTING_DEFAULTS, AXP_COMMUNICATION_STATUS_COMPLETED, AXP_COMMUNICATION_STATUS_DEFINITION_KEY, AXP_COMMUNICATION_STATUS_FAILED, AXP_COMMUNICATION_STATUS_PENDING, AXP_COMMUNICATION_STATUS_PROCESSING, AXP_COMMUNICATION_USER_NOTIFICATIONS_SETTINGS_GROUP, AXP_COMMUNICATION_USER_NOTIFICATION_DEFAULTS, BUILTIN_CHANNEL_DEFINITIONS, COMMUNICATION_BUILTIN_CHANNEL_KEYS, COMMUNICATION_CHANNEL_ADAPTER, COMMUNICATION_CHANNEL_SEND_VALIDATOR, COMMUNICATION_DEBUG_REDIRECT_RESOLVER, COMMUNICATION_DELIVERY_ENTITY_NAME, COMMUNICATION_DELIVERY_EXECUTOR, COMMUNICATION_ENTITY_NAME, COMMUNICATION_MANAGEMENT_EMAIL_SEND_COMMAND_KEY, COMMUNICATION_MANAGEMENT_EMAIL_SHOW_DIALOG_COMMAND_KEY, CommunicationManagementManifest, DEFAULT_ENTITY_CHANGE_NOTIFY_DEBOUNCE_SECONDS, ENTITY_CHANGE_NOTIFY_JOB_PROVIDER_KEY, ENTITY_CHANGE_NOTIFY_POLICY_ENTITY_NAME, ENTITY_CHANGE_NOTIFY_POLICY_TENANT_MASTER_NAMESPACE, RootConfig, formatCommunicationDeliveryJobTitle, getCommunicationChannel, isBuiltInCommunicationChannel, listCommunicationChannels, registerCommunicationChannel, resolveCommunicationMessage, resolveCommunicationRecipientLabel };
381
+ export type { AXMCommunicationDeliveryModel, AXMCommunicationModel, AXMEntityChangeNotifyOp, AXMEntityChangeNotifyPolicyEntityModel, AXMEntityChangeNotifyRelated, CommunicationAggregateStatus, CommunicationBuiltinChannelKey, CommunicationChannelAdapter, CommunicationChannelAdapterContext, CommunicationChannelCapabilities, CommunicationChannelDefinition, CommunicationChannelDeliverResult, CommunicationChannelSendValidator, CommunicationDebugRedirectResolver, CommunicationDebugRedirectResult, CommunicationDeliverPayload, CommunicationDeliverResult, CommunicationDeliveryEngagementRequest, CommunicationDeliveryEngagementResult, CommunicationDeliveryExecutor, CommunicationDeliveryMutationResult, CommunicationDeliveryStatus, CommunicationManagementEmailSendInput, CommunicationManagementEmailSendResult, CommunicationManagementEmailShowDialogInput, CommunicationMessage, CommunicationNotificationAction, CommunicationPriority, CommunicationRecipientLabelInput, CommunicationSendInput, CommunicationSendResult, CommunicationSmtpSettings, CommunicationSmtpTestInput, CommunicationSmtpTestResult };
@@ -126,6 +126,7 @@ interface AXPInAppInboxI18nKeys {
126
126
  selectItems: string;
127
127
  clearFilters: string;
128
128
  liveUpdatesOffline: string;
129
+ pendingSync: string;
129
130
  }
130
131
  interface AXPInAppInboxConfig {
131
132
  headerIconClass: string;
@@ -199,6 +200,7 @@ type AXPInAppInboxListResult = Awaited<ReturnType<AXPInAppInboxPort['loadInbox']
199
200
  /**
200
201
  * Single source of truth for active in-app inbox UI.
201
202
  * Active items live in the shared local-entity engine (max 100) and sync via realtime / reconnect.
203
+ * Offline writes enqueue on the local-entity outbox and flush over HTTP on reconnect.
202
204
  * Archived views always load from the API.
203
205
  */
204
206
  declare class AXPInAppInboxConnectorService {
@@ -206,6 +208,8 @@ declare class AXPInAppInboxConnectorService {
206
208
  private readonly realtime;
207
209
  private readonly engine;
208
210
  private readonly localBridge;
211
+ private readonly outbox;
212
+ private readonly connectivity;
209
213
  private readonly sessionService;
210
214
  private readonly destroyRef;
211
215
  private readonly entityKey;
@@ -266,6 +270,12 @@ declare class AXPInAppInboxConnectorService {
266
270
  private fetchActiveByIds;
267
271
  private loadArchivePage;
268
272
  private handleRealtimeEvent;
273
+ private canQueueWrites;
274
+ private commitOrEnqueue;
275
+ private flushOutboxOp;
276
+ private revertOutboxOp;
277
+ private reapplyPendingOutboxOps;
278
+ private applyOutboxOpLocally;
269
279
  private canLoadInbox;
270
280
  private clearInboxState;
271
281
  private readLocalItems;
@@ -374,6 +384,7 @@ declare class AXPInAppInboxSlotComponent {
374
384
  sideMenuWidth: _angular_core.Signal<number>;
375
385
  sideMenuCompactWidth: _angular_core.Signal<number>;
376
386
  menuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
387
+ menuToggleCyclesStyle: _angular_core.Signal<boolean>;
377
388
  menuOrientation: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuOrientation>;
378
389
  menuAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuAppearance>;
379
390
  headerAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPHeaderAppearance>;
@@ -387,6 +398,7 @@ declare class AXPInAppInboxSlotComponent {
387
398
  overlayTaskCount: _angular_core.Signal<number>;
388
399
  isNavigationLoading: _angular_core.Signal<boolean>;
389
400
  isMenuHorizontal: _angular_core.Signal<boolean>;
401
+ menuToggleCyclesStyleEnabled: _angular_core.Signal<boolean>;
390
402
  effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
391
403
  sideMenuDrawerWidth: _angular_core.Signal<number>;
392
404
  menuDarkEnabled: _angular_core.Signal<boolean>;
@@ -401,6 +413,7 @@ declare class AXPInAppInboxSlotComponent {
401
413
  setSideMenuWidth: (width: number) => void;
402
414
  setSideMenuCompactWidth: (width: number) => void;
403
415
  setSideMenuDrawerWidth: (width: number) => void;
416
+ setMenuVerticalMode: (mode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode) => void;
404
417
  toggleSideMenu: () => void;
405
418
  setNavigationLoading: (value: boolean, delay?: number) => void;
406
419
  setOverlayLoading: (value: boolean, delay?: number) => void;
@@ -423,6 +436,7 @@ declare class AXPInAppInboxSlotComponent {
423
436
  sideMenuWidth: number;
424
437
  sideMenuCompactWidth: number;
425
438
  menuVerticalMode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode;
439
+ menuToggleCyclesStyle: boolean;
426
440
  menuOrientation: _acorex_platform_framework_client_themes_shared.AXPMenuOrientation;
427
441
  menuAppearance: _acorex_platform_framework_client_themes_shared.AXPMenuAppearance;
428
442
  headerAppearance: _acorex_platform_framework_client_themes_shared.AXPHeaderAppearance;
@@ -430,8 +444,11 @@ declare class AXPInAppInboxSlotComponent {
430
444
  isPrinting: boolean;
431
445
  }>;
432
446
  private readonly connector;
447
+ private readonly outbox;
433
448
  private readonly syncStatus;
434
449
  protected liveUpdatesOffline: _angular_core.Signal<boolean>;
450
+ protected pendingSync: _angular_core.Signal<boolean>;
451
+ protected statusTitleKey: _angular_core.Signal<string>;
435
452
  protected badgeDisplay: _angular_core.Signal<string>;
436
453
  private popover;
437
454
  protected closePopover(): void;