@acorex-platform/framework-shared 0.0.30 → 0.0.32

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 (158) hide show
  1. package/background-job/src/index.d.ts +1 -0
  2. package/background-job/src/index.d.ts.map +1 -1
  3. package/background-job/src/index.js +1 -0
  4. package/background-job/src/index.js.map +1 -1
  5. package/background-job/src/lib/background-job-notification.port.d.ts +9 -0
  6. package/background-job/src/lib/background-job-notification.port.d.ts.map +1 -0
  7. package/background-job/src/lib/background-job-notification.port.js +5 -0
  8. package/background-job/src/lib/background-job-notification.port.js.map +1 -0
  9. package/background-job/src/lib/background-job.constants.d.ts +6 -0
  10. package/background-job/src/lib/background-job.constants.d.ts.map +1 -1
  11. package/background-job/src/lib/background-job.constants.js +6 -0
  12. package/background-job/src/lib/background-job.constants.js.map +1 -1
  13. package/background-job/src/lib/background-job.types.d.ts +25 -0
  14. package/background-job/src/lib/background-job.types.d.ts.map +1 -1
  15. package/background-job/src/lib/background-job.types.js.map +1 -1
  16. package/core/src/lib/color-surface/index.d.ts +3 -0
  17. package/core/src/lib/color-surface/index.d.ts.map +1 -0
  18. package/core/src/lib/color-surface/index.js +6 -0
  19. package/core/src/lib/color-surface/index.js.map +1 -0
  20. package/core/src/lib/color-surface/runtime-surface.types.d.ts +17 -0
  21. package/core/src/lib/color-surface/runtime-surface.types.d.ts.map +1 -0
  22. package/core/src/lib/color-surface/runtime-surface.types.js +26 -0
  23. package/core/src/lib/color-surface/runtime-surface.types.js.map +1 -0
  24. package/core/src/lib/color-surface/runtime-surface.util.d.ts +15 -0
  25. package/core/src/lib/color-surface/runtime-surface.util.d.ts.map +1 -0
  26. package/core/src/lib/color-surface/runtime-surface.util.js +195 -0
  27. package/core/src/lib/color-surface/runtime-surface.util.js.map +1 -0
  28. package/core/src/lib/errors/platform-error-codes.d.ts +2 -0
  29. package/core/src/lib/errors/platform-error-codes.d.ts.map +1 -1
  30. package/core/src/lib/errors/platform-error-codes.js +2 -0
  31. package/core/src/lib/errors/platform-error-codes.js.map +1 -1
  32. package/core/src/lib/index.d.ts +3 -0
  33. package/core/src/lib/index.d.ts.map +1 -1
  34. package/core/src/lib/index.js +3 -0
  35. package/core/src/lib/index.js.map +1 -1
  36. package/core/src/lib/registry/index.d.ts +2 -0
  37. package/core/src/lib/registry/index.d.ts.map +1 -0
  38. package/core/src/lib/registry/index.js +7 -0
  39. package/core/src/lib/registry/index.js.map +1 -0
  40. package/core/src/lib/registry/registry.d.ts +23 -0
  41. package/core/src/lib/registry/registry.d.ts.map +1 -0
  42. package/core/src/lib/registry/registry.js +57 -0
  43. package/core/src/lib/registry/registry.js.map +1 -0
  44. package/core/src/lib/user-notification/index.d.ts +3 -0
  45. package/core/src/lib/user-notification/index.d.ts.map +1 -0
  46. package/core/src/lib/user-notification/index.js +6 -0
  47. package/core/src/lib/user-notification/index.js.map +1 -0
  48. package/core/src/lib/user-notification/user-notification-delivery.util.d.ts +10 -0
  49. package/core/src/lib/user-notification/user-notification-delivery.util.d.ts.map +1 -0
  50. package/core/src/lib/user-notification/user-notification-delivery.util.js +45 -0
  51. package/core/src/lib/user-notification/user-notification-delivery.util.js.map +1 -0
  52. package/core/src/lib/user-notification/user-notification.types.d.ts +56 -0
  53. package/core/src/lib/user-notification/user-notification.types.d.ts.map +1 -0
  54. package/core/src/lib/user-notification/user-notification.types.js +5 -0
  55. package/core/src/lib/user-notification/user-notification.types.js.map +1 -0
  56. package/core/src/lib/utils/index.d.ts +1 -0
  57. package/core/src/lib/utils/index.d.ts.map +1 -1
  58. package/core/src/lib/utils/index.js +1 -0
  59. package/core/src/lib/utils/index.js.map +1 -1
  60. package/core/src/lib/utils/random-uuid.util.d.ts +14 -0
  61. package/core/src/lib/utils/random-uuid.util.d.ts.map +1 -0
  62. package/core/src/lib/utils/random-uuid.util.js +54 -0
  63. package/core/src/lib/utils/random-uuid.util.js.map +1 -0
  64. package/core/src/lib/widgets/widgets-list.d.ts +1 -0
  65. package/core/src/lib/widgets/widgets-list.d.ts.map +1 -1
  66. package/core/src/lib/widgets/widgets-list.js +1 -0
  67. package/core/src/lib/widgets/widgets-list.js.map +1 -1
  68. package/entity/src/lib/types/entity-card-field.types.d.ts +31 -5
  69. package/entity/src/lib/types/entity-card-field.types.d.ts.map +1 -1
  70. package/entity/src/lib/types/entity-card-field.types.js +10 -0
  71. package/entity/src/lib/types/entity-card-field.types.js.map +1 -1
  72. package/entity/src/lib/types/entity-definition.types.d.ts +15 -12
  73. package/entity/src/lib/types/entity-definition.types.d.ts.map +1 -1
  74. package/entity/src/lib/types/entity-definition.types.js.map +1 -1
  75. package/entity/src/lib/types/entity-list-filter.types.d.ts +2 -0
  76. package/entity/src/lib/types/entity-list-filter.types.d.ts.map +1 -1
  77. package/entity/src/lib/types/entity-list-filter.types.js +18 -4
  78. package/entity/src/lib/types/entity-list-filter.types.js.map +1 -1
  79. package/entity/src/lib/types/entity-master-list.types.d.ts +14 -30
  80. package/entity/src/lib/types/entity-master-list.types.d.ts.map +1 -1
  81. package/entity/src/lib/types/entity-master-list.types.js +27 -15
  82. package/entity/src/lib/types/entity-master-list.types.js.map +1 -1
  83. package/entity/src/lib/types/entity-master-styling.types.d.ts +26 -0
  84. package/entity/src/lib/types/entity-master-styling.types.d.ts.map +1 -0
  85. package/entity/src/lib/types/entity-master-styling.types.js +5 -0
  86. package/entity/src/lib/types/entity-master-styling.types.js.map +1 -0
  87. package/entity/src/lib/types/index.d.ts +1 -0
  88. package/entity/src/lib/types/index.d.ts.map +1 -1
  89. package/entity/src/lib/types/index.js +1 -0
  90. package/entity/src/lib/types/index.js.map +1 -1
  91. package/entity/src/lib/utils/entity-default-card-layout.util.d.ts +43 -0
  92. package/entity/src/lib/utils/entity-default-card-layout.util.d.ts.map +1 -0
  93. package/entity/src/lib/utils/entity-default-card-layout.util.js +500 -0
  94. package/entity/src/lib/utils/entity-default-card-layout.util.js.map +1 -0
  95. package/entity/src/lib/utils/entity-master-styling.util.d.ts +19 -0
  96. package/entity/src/lib/utils/entity-master-styling.util.d.ts.map +1 -0
  97. package/entity/src/lib/utils/entity-master-styling.util.js +132 -0
  98. package/entity/src/lib/utils/entity-master-styling.util.js.map +1 -0
  99. package/entity/src/lib/utils/index.d.ts +2 -0
  100. package/entity/src/lib/utils/index.d.ts.map +1 -1
  101. package/entity/src/lib/utils/index.js +2 -0
  102. package/entity/src/lib/utils/index.js.map +1 -1
  103. package/package.json +5 -1
  104. package/runtime/src/lib/commands/bulk-command.types.d.ts +17 -0
  105. package/runtime/src/lib/commands/bulk-command.types.d.ts.map +1 -1
  106. package/runtime/src/lib/commands/bulk-command.types.js.map +1 -1
  107. package/runtime/src/lib/commands/entity-command-keys.d.ts +7 -1
  108. package/runtime/src/lib/commands/entity-command-keys.d.ts.map +1 -1
  109. package/runtime/src/lib/commands/entity-command-keys.js +29 -5
  110. package/runtime/src/lib/commands/entity-command-keys.js.map +1 -1
  111. package/runtime/src/lib/queries/presence-query-keys.d.ts +2 -0
  112. package/runtime/src/lib/queries/presence-query-keys.d.ts.map +1 -1
  113. package/runtime/src/lib/queries/presence-query-keys.js +3 -1
  114. package/runtime/src/lib/queries/presence-query-keys.js.map +1 -1
  115. package/text-template/src/index.d.ts +2 -0
  116. package/text-template/src/index.d.ts.map +1 -0
  117. package/text-template/src/index.js +5 -0
  118. package/text-template/src/index.js.map +1 -0
  119. package/text-template/src/lib/blocks.d.ts +5 -0
  120. package/text-template/src/lib/blocks.d.ts.map +1 -0
  121. package/text-template/src/lib/blocks.js +169 -0
  122. package/text-template/src/lib/blocks.js.map +1 -0
  123. package/text-template/src/lib/create-engine.d.ts +7 -0
  124. package/text-template/src/lib/create-engine.d.ts.map +1 -0
  125. package/text-template/src/lib/create-engine.js +117 -0
  126. package/text-template/src/lib/create-engine.js.map +1 -0
  127. package/text-template/src/lib/eval.util.d.ts +16 -0
  128. package/text-template/src/lib/eval.util.d.ts.map +1 -0
  129. package/text-template/src/lib/eval.util.js +244 -0
  130. package/text-template/src/lib/eval.util.js.map +1 -0
  131. package/text-template/src/lib/format.util.d.ts +11 -0
  132. package/text-template/src/lib/format.util.d.ts.map +1 -0
  133. package/text-template/src/lib/format.util.js +221 -0
  134. package/text-template/src/lib/format.util.js.map +1 -0
  135. package/text-template/src/lib/index.d.ts +10 -0
  136. package/text-template/src/lib/index.d.ts.map +1 -0
  137. package/text-template/src/lib/index.js +19 -0
  138. package/text-template/src/lib/index.js.map +1 -0
  139. package/text-template/src/lib/parse.d.ts +3 -0
  140. package/text-template/src/lib/parse.d.ts.map +1 -0
  141. package/text-template/src/lib/parse.js +356 -0
  142. package/text-template/src/lib/parse.js.map +1 -0
  143. package/text-template/src/lib/pipes.d.ts +3 -0
  144. package/text-template/src/lib/pipes.d.ts.map +1 -0
  145. package/text-template/src/lib/pipes.js +61 -0
  146. package/text-template/src/lib/pipes.js.map +1 -0
  147. package/text-template/src/lib/text-template.constants.d.ts +7 -0
  148. package/text-template/src/lib/text-template.constants.d.ts.map +1 -0
  149. package/text-template/src/lib/text-template.constants.js +35 -0
  150. package/text-template/src/lib/text-template.constants.js.map +1 -0
  151. package/text-template/src/lib/text-template.errors.d.ts +4 -0
  152. package/text-template/src/lib/text-template.errors.d.ts.map +1 -0
  153. package/text-template/src/lib/text-template.errors.js +13 -0
  154. package/text-template/src/lib/text-template.errors.js.map +1 -0
  155. package/text-template/src/lib/text-template.types.d.ts +108 -0
  156. package/text-template/src/lib/text-template.types.d.ts.map +1 -0
  157. package/text-template/src/lib/text-template.types.js +4 -0
  158. package/text-template/src/lib/text-template.types.js.map +1 -0
@@ -3,9 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./core"), exports);
6
+ tslib_1.__exportStar(require("./registry"), exports);
6
7
  tslib_1.__exportStar(require("./context-definition"), exports);
7
8
  tslib_1.__exportStar(require("./errors"), exports);
8
9
  tslib_1.__exportStar(require("./utils"), exports);
10
+ tslib_1.__exportStar(require("./color-surface"), exports);
9
11
  tslib_1.__exportStar(require("./expression-evaluator"), exports);
10
12
  tslib_1.__exportStar(require("./multi-language-string"), exports);
11
13
  tslib_1.__exportStar(require("./data"), exports);
@@ -20,5 +22,6 @@ tslib_1.__exportStar(require("./mock"), exports);
20
22
  tslib_1.__exportStar(require("./integration"), exports);
21
23
  tslib_1.__exportStar(require("./identifier"), exports);
22
24
  tslib_1.__exportStar(require("./settings"), exports);
25
+ tslib_1.__exportStar(require("./user-notification"), exports);
23
26
  //#endregion
24
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/framework/shared/core/src/lib/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAEpC,iDAAuB;AACvB,+DAAqC;AACrC,mDAAyB;AACzB,kDAAwB;AACxB,iEAAuC;AACvC,kEAAwC;AACxC,iDAAuB;AACvB,qDAA2B;AAC3B,wDAA8B;AAC9B,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,iDAAuB;AACvB,wDAA8B;AAC9B,uDAA6B;AAC7B,qDAA2B;AAE3B,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/framework/shared/core/src/lib/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAEpC,iDAAuB;AACvB,qDAA2B;AAC3B,+DAAqC;AACrC,mDAAyB;AACzB,kDAAwB;AACxB,0DAAgC;AAChC,iEAAuC;AACvC,kEAAwC;AACxC,iDAAuB;AACvB,qDAA2B;AAC3B,wDAA8B;AAC9B,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,iDAAuB;AACvB,wDAA8B;AAC9B,uDAA6B;AAC7B,qDAA2B;AAC3B,8DAAoC;AAEpC,YAAY"}
@@ -0,0 +1,2 @@
1
+ export { createRegistry, AXPRegistryError, type AXPRegistry, type AXPRegistryDuplicates, type AXPRegistryListItem, type AXPRegistryOptions, } from './registry';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AXPRegistryError = exports.createRegistry = void 0;
4
+ var registry_1 = require("./registry");
5
+ Object.defineProperty(exports, "createRegistry", { enumerable: true, get: function () { return registry_1.createRegistry; } });
6
+ Object.defineProperty(exports, "AXPRegistryError", { enumerable: true, get: function () { return registry_1.AXPRegistryError; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/registry/index.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AANlB,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,23 @@
1
+ export interface AXPRegistryListItem<T> {
2
+ name: string;
3
+ value: T;
4
+ }
5
+ export interface AXPRegistry<T> {
6
+ register(name: string, value: T): void;
7
+ get(name: string): T;
8
+ has(name: string): boolean;
9
+ list(): ReadonlyArray<AXPRegistryListItem<T>>;
10
+ }
11
+ export type AXPRegistryDuplicates = 'throw' | 'replace';
12
+ export interface AXPRegistryOptions {
13
+ duplicates?: AXPRegistryDuplicates;
14
+ }
15
+ export declare class AXPRegistryError extends Error {
16
+ constructor(message: string);
17
+ }
18
+ /**
19
+ * Named plugin bag. Pure TypeScript — no Nest or Angular.
20
+ * Hosts hold instances (`useFactory` / `InjectionToken`); tests call this directly.
21
+ */
22
+ export declare function createRegistry<T>(options?: AXPRegistryOptions): AXPRegistry<T>;
23
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/registry/registry.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IACrB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,IAAI,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAMD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAmC9E"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ //#region ----- Types -----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AXPRegistryError = void 0;
5
+ exports.createRegistry = createRegistry;
6
+ //#endregion
7
+ //#region ----- Errors -----
8
+ class AXPRegistryError extends Error {
9
+ constructor(message) {
10
+ super(message);
11
+ this.name = 'AXPRegistryError';
12
+ }
13
+ }
14
+ exports.AXPRegistryError = AXPRegistryError;
15
+ //#endregion
16
+ //#region ----- Factory -----
17
+ /**
18
+ * Named plugin bag. Pure TypeScript — no Nest or Angular.
19
+ * Hosts hold instances (`useFactory` / `InjectionToken`); tests call this directly.
20
+ */
21
+ function createRegistry(options) {
22
+ var _a;
23
+ const duplicates = (_a = options === null || options === void 0 ? void 0 : options.duplicates) !== null && _a !== void 0 ? _a : 'throw';
24
+ const values = new Map();
25
+ const normalizeName = (name) => {
26
+ const normalized = typeof name === 'string' ? name.trim() : '';
27
+ if (!normalized) {
28
+ throw new AXPRegistryError('Registry name is required.');
29
+ }
30
+ return normalized;
31
+ };
32
+ return {
33
+ register(name, value) {
34
+ const key = normalizeName(name);
35
+ if (values.has(key) && duplicates === 'throw') {
36
+ throw new AXPRegistryError(`Registry already has "${key}".`);
37
+ }
38
+ values.set(key, value);
39
+ },
40
+ get(name) {
41
+ const key = normalizeName(name);
42
+ if (!values.has(key)) {
43
+ throw new AXPRegistryError(`Registry has no entry named "${key}".`);
44
+ }
45
+ return values.get(key);
46
+ },
47
+ has(name) {
48
+ const key = typeof name === 'string' ? name.trim() : '';
49
+ return key.length > 0 && values.has(key);
50
+ },
51
+ list() {
52
+ return [...values.entries()].map(([entryName, value]) => ({ name: entryName, value }));
53
+ },
54
+ };
55
+ }
56
+ //#endregion
57
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/registry/registry.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;AAuC3B,wCAmCC;AAtDD,YAAY;AAEZ,4BAA4B;AAE5B,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,YAAY;AAEZ,6BAA6B;AAE7B;;;GAGG;AACH,SAAgB,cAAc,CAAI,OAA4B;;IAC5D,MAAM,UAAU,GAA0B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,OAAO,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAa,CAAC;IAEpC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;QAC7C,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,CAAC,IAAY,EAAE,KAAQ;YAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAC9C,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,GAAG,CAAC,IAAY;YACd,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,IAAY;YACd,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI;YACF,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,YAAY"}
@@ -0,0 +1,3 @@
1
+ export * from './user-notification.types';
2
+ export * from './user-notification-delivery.util';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./user-notification.types"), exports);
5
+ tslib_1.__exportStar(require("./user-notification-delivery.util"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,4EAAkD"}
@@ -0,0 +1,10 @@
1
+ import type { AXPUserNotificationDelivery, AXPUserNotificationInboxOptions, AXPUserNotificationToastOptions } from './user-notification.types';
2
+ export declare const AXP_USER_NOTIFICATION_TOAST_DEFAULTS: Readonly<AXPUserNotificationToastOptions>;
3
+ export declare const AXP_USER_NOTIFICATION_INBOX_DEFAULTS: Readonly<AXPUserNotificationInboxOptions>;
4
+ export declare function axpResolveUserNotificationDelivery(delivery: AXPUserNotificationDelivery): {
5
+ toast: AXPUserNotificationToastOptions | null;
6
+ inbox: AXPUserNotificationInboxOptions | null;
7
+ };
8
+ export declare function axpShouldDeliverUserNotificationInbox(delivery: AXPUserNotificationDelivery): boolean;
9
+ export declare function axpShouldDeliverUserNotificationToast(delivery: AXPUserNotificationDelivery): boolean;
10
+ //# sourceMappingURL=user-notification-delivery.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-notification-delivery.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/user-notification-delivery.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,2BAA2B,CAAC;AAMnC,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,+BAA+B,CAO1F,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,+BAA+B,CAE1F,CAAC;AAmBF,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,2BAA2B,GAAG;IACzF,KAAK,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAC9C,KAAK,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC/C,CAKA;AAED,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAEpG;AAED,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAEpG"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ //#region ---- Imports ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AXP_USER_NOTIFICATION_INBOX_DEFAULTS = exports.AXP_USER_NOTIFICATION_TOAST_DEFAULTS = void 0;
5
+ exports.axpResolveUserNotificationDelivery = axpResolveUserNotificationDelivery;
6
+ exports.axpShouldDeliverUserNotificationInbox = axpShouldDeliverUserNotificationInbox;
7
+ exports.axpShouldDeliverUserNotificationToast = axpShouldDeliverUserNotificationToast;
8
+ //#endregion
9
+ //#region ---- Defaults ----
10
+ exports.AXP_USER_NOTIFICATION_TOAST_DEFAULTS = {
11
+ location: 'bottom-center',
12
+ timeOut: 3000,
13
+ timeOutProgress: true,
14
+ closeButton: true,
15
+ color: 'primary',
16
+ showActions: true,
17
+ };
18
+ exports.AXP_USER_NOTIFICATION_INBOX_DEFAULTS = {
19
+ priority: 'Notice',
20
+ };
21
+ //#endregion
22
+ //#region ---- Delivery resolution ----
23
+ function resolveChannel(value, defaults) {
24
+ if (value === false || value === undefined) {
25
+ return null;
26
+ }
27
+ if (value === true) {
28
+ return Object.assign({}, defaults);
29
+ }
30
+ return Object.assign(Object.assign({}, defaults), value);
31
+ }
32
+ function axpResolveUserNotificationDelivery(delivery) {
33
+ return {
34
+ toast: resolveChannel(delivery.toast, exports.AXP_USER_NOTIFICATION_TOAST_DEFAULTS),
35
+ inbox: resolveChannel(delivery.inbox, exports.AXP_USER_NOTIFICATION_INBOX_DEFAULTS),
36
+ };
37
+ }
38
+ function axpShouldDeliverUserNotificationInbox(delivery) {
39
+ return axpResolveUserNotificationDelivery(delivery).inbox !== null;
40
+ }
41
+ function axpShouldDeliverUserNotificationToast(delivery) {
42
+ return axpResolveUserNotificationDelivery(delivery).toast !== null;
43
+ }
44
+ //#endregion
45
+ //# sourceMappingURL=user-notification-delivery.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-notification-delivery.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/user-notification-delivery.util.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;AA0C3B,gFAQC;AAED,sFAEC;AAED,sFAEC;AAlDD,YAAY;AAEZ,4BAA4B;AAEf,QAAA,oCAAoC,GAA8C;IAC7F,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,IAAK;IACd,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEW,QAAA,oCAAoC,GAA8C;IAC7F,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,YAAY;AAEZ,uCAAuC;AAEvC,SAAS,cAAc,CACrB,KAA8B,EAC9B,QAAW;IAEX,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,yBAAY,QAAQ,EAAG;IACzB,CAAC;IACD,uCAAY,QAAQ,GAAK,KAAK,EAAG;AACnC,CAAC;AAED,SAAgB,kCAAkC,CAAC,QAAqC;IAItF,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,4CAAoC,CAAC;QAC3E,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,4CAAoC,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED,SAAgB,qCAAqC,CAAC,QAAqC;IACzF,OAAO,kCAAkC,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AACrE,CAAC;AAED,SAAgB,qCAAqC,CAAC,QAAqC;IACzF,OAAO,kCAAkC,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;AACrE,CAAC;AAED,YAAY"}
@@ -0,0 +1,56 @@
1
+ export type AXPUserNotificationPriority = 'Notice' | 'Danger' | 'Warning';
2
+ export type AXPUserNotificationToastColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning';
3
+ /** Common overlay anchor locations for transient toast delivery. */
4
+ export type AXPUserNotificationToastLocation = 'bottom-center' | 'bottom-start' | 'bottom-end' | 'top-center' | 'top-start' | 'top-end';
5
+ export interface AXPUserNotificationToastAction {
6
+ text: string;
7
+ color?: AXPUserNotificationToastColor;
8
+ onClick?: () => void | Promise<void>;
9
+ }
10
+ export interface AXPUserNotificationToastOptions {
11
+ location?: AXPUserNotificationToastLocation;
12
+ timeOut?: number;
13
+ timeOutProgress?: boolean;
14
+ closeButton?: boolean;
15
+ color?: AXPUserNotificationToastColor;
16
+ /** When false, toast actions/buttons are omitted (e.g. user is already on the target screen). */
17
+ showActions?: boolean;
18
+ }
19
+ export interface AXPUserNotificationInboxAction {
20
+ title: string;
21
+ command: {
22
+ name: string;
23
+ options?: Record<string, unknown>;
24
+ };
25
+ }
26
+ export interface AXPUserNotificationInboxOptions {
27
+ definitionKey?: string;
28
+ priority?: AXPUserNotificationPriority;
29
+ actions?: AXPUserNotificationInboxAction[];
30
+ }
31
+ export interface AXPUserNotificationDelivery {
32
+ /** Ephemeral overlay. `true` = defaults; `false`/omit = off. */
33
+ toast?: boolean | AXPUserNotificationToastOptions;
34
+ /** Persistent in-app inbox row. `true` = defaults; `false`/omit = off. */
35
+ inbox?: boolean | AXPUserNotificationInboxOptions;
36
+ }
37
+ /**
38
+ * Unified user-notification request. Features build this once; client/server presenters
39
+ * decide which channels to deliver.
40
+ */
41
+ export interface AXPUserNotificationRequest {
42
+ correlationId: string;
43
+ idempotencyKey?: string;
44
+ title: string;
45
+ body: string;
46
+ icon?: string;
47
+ /** Display name for inbox persistence; defaults to {@link title}. */
48
+ name?: string;
49
+ delivery: AXPUserNotificationDelivery;
50
+ /** Client-side toast button actions (mapped when {@link AXPUserNotificationToastOptions.showActions} is true). */
51
+ toastActions?: AXPUserNotificationToastAction[];
52
+ /** Inbox recipient; server paths must set explicitly. Client defaults to session user. */
53
+ recipientUserId?: string;
54
+ data?: Record<string, unknown>;
55
+ }
56
+ //# sourceMappingURL=user-notification.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-notification.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/user-notification.types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,6BAA6B,GACrC,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,oEAAoE;AACpE,MAAM,MAAM,gCAAgC,GACxC,eAAe,GACf,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,6BAA6B,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,6BAA6B,CAAC;IACtC,iGAAiG;IACjG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,+BAA+B;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,OAAO,CAAC,EAAE,8BAA8B,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,GAAG,+BAA+B,CAAC;IAClD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,GAAG,+BAA+B,CAAC;CACnD;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,2BAA2B,CAAC;IACtC,kHAAkH;IAClH,YAAY,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAChD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ //#region ---- User notification contracts (leaf) ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //#endregion
5
+ //# sourceMappingURL=user-notification.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-notification.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/user-notification/user-notification.types.ts"],"names":[],"mappings":";AAAA,sDAAsD;;AA6EtD,YAAY"}
@@ -1,5 +1,6 @@
1
1
  export * from './object-util';
2
2
  export * from './password.util';
3
+ export * from './random-uuid.util';
3
4
  export * from './scalar-coercion';
4
5
  export * from './string.util';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./object-util"), exports);
6
6
  tslib_1.__exportStar(require("./password.util"), exports);
7
+ tslib_1.__exportStar(require("./random-uuid.util"), exports);
7
8
  tslib_1.__exportStar(require("./scalar-coercion"), exports);
8
9
  tslib_1.__exportStar(require("./string.util"), exports);
9
10
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAEpC,wDAA8B;AAC9B,0DAAgC;AAChC,4DAAkC;AAClC,wDAA8B;AAE9B,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAEpC,wDAA8B;AAC9B,0DAAgC;AAChC,6DAAmC;AACnC,4DAAkC;AAClC,wDAA8B;AAE9B,YAAY"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generates a RFC 4122 v4 UUID.
3
+ *
4
+ * `crypto.randomUUID()` is unavailable in some browsers (notably Safari) on
5
+ * non-secure origins such as `http://192.168.x.x`. Falls back to
6
+ * `crypto.getRandomValues()` when present, otherwise a time/random suffix.
7
+ */
8
+ export declare function createRandomUuid(): string;
9
+ /**
10
+ * Patches `globalThis.crypto.randomUUID` when missing (Safari on HTTP).
11
+ * Call once before app bootstrap so third-party code can use the Web Crypto API.
12
+ */
13
+ export declare function ensureRandomUuidPolyfill(): void;
14
+ //# sourceMappingURL=random-uuid.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-uuid.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/random-uuid.util.ts"],"names":[],"mappings":"AAiBA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAmB/C"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ //#region ----- Random UUID (secure context + HTTP fallback) -----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createRandomUuid = createRandomUuid;
5
+ exports.ensureRandomUuidPolyfill = ensureRandomUuidPolyfill;
6
+ function randomUuidViaGetRandomValues() {
7
+ const cryptoRef = globalThis.crypto;
8
+ if (cryptoRef && typeof cryptoRef.getRandomValues === 'function') {
9
+ const bytes = new Uint8Array(16);
10
+ cryptoRef.getRandomValues(bytes);
11
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
12
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
13
+ const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');
14
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
15
+ }
16
+ return `${Date.now().toString(16)}-${Math.random().toString(16).slice(2, 10)}-${Math.random().toString(16).slice(2, 6)}-4${Math.random().toString(16).slice(2, 5)}-8${Math.random().toString(16).slice(2, 14)}`;
17
+ }
18
+ /**
19
+ * Generates a RFC 4122 v4 UUID.
20
+ *
21
+ * `crypto.randomUUID()` is unavailable in some browsers (notably Safari) on
22
+ * non-secure origins such as `http://192.168.x.x`. Falls back to
23
+ * `crypto.getRandomValues()` when present, otherwise a time/random suffix.
24
+ */
25
+ function createRandomUuid() {
26
+ const cryptoRef = globalThis.crypto;
27
+ if (cryptoRef && typeof cryptoRef.randomUUID === 'function') {
28
+ return cryptoRef.randomUUID();
29
+ }
30
+ return randomUuidViaGetRandomValues();
31
+ }
32
+ /**
33
+ * Patches `globalThis.crypto.randomUUID` when missing (Safari on HTTP).
34
+ * Call once before app bootstrap so third-party code can use the Web Crypto API.
35
+ */
36
+ function ensureRandomUuidPolyfill() {
37
+ if (typeof globalThis === 'undefined') {
38
+ return;
39
+ }
40
+ const cryptoRef = globalThis.crypto;
41
+ if (!cryptoRef || typeof cryptoRef.randomUUID === 'function') {
42
+ return;
43
+ }
44
+ if (typeof cryptoRef.getRandomValues !== 'function') {
45
+ return;
46
+ }
47
+ Object.defineProperty(cryptoRef, 'randomUUID', {
48
+ value: () => randomUuidViaGetRandomValues(),
49
+ configurable: true,
50
+ writable: true,
51
+ });
52
+ }
53
+ //#endregion
54
+ //# sourceMappingURL=random-uuid.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-uuid.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/utils/random-uuid.util.ts"],"names":[],"mappings":";AAAA,kEAAkE;;AAwBlE,4CAOC;AAMD,4DAmBC;AAtDD,SAAS,4BAA4B;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACjC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7G,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAClN,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,4BAA4B,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB;IACtC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;QAC7C,KAAK,EAAE,GAAG,EAAE,CAAC,4BAA4B,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC;AAED,YAAY"}
@@ -4,6 +4,7 @@ export declare const AXPWidgetsList: {
4
4
  TagEditor: string;
5
5
  CheckBox: string;
6
6
  ColorBox: string;
7
+ ColorChooser: string;
7
8
  ColorPalette: string;
8
9
  DateTimeBox: string;
9
10
  AddressBox: string;
@@ -1 +1 @@
1
- {"version":3,"file":"widgets-list.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/widgets/widgets-list.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJ1B,CAAC"}
1
+ {"version":3,"file":"widgets-list.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/widgets/widgets-list.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJ1B,CAAC"}
@@ -7,6 +7,7 @@ exports.AXPWidgetsList = {
7
7
  TagEditor: 'tag-editor',
8
8
  CheckBox: 'checkbox-editor',
9
9
  ColorBox: 'color-editor',
10
+ ColorChooser: 'color-chooser',
10
11
  ColorPalette: 'color-palette-editor',
11
12
  DateTimeBox: 'date-time-editor',
12
13
  AddressBox: 'address-editor',
@@ -1 +1 @@
1
- {"version":3,"file":"widgets-list.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/widgets/widgets-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets-list.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/widgets/widgets-list.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { AXPExpression, AXStyleColorType } from '@acorex-platform/framework-shared/core';
2
2
  import type { AXPEntityPropertyLayoutConfig } from './entity-property.types';
3
3
  import type { AXPEntityDisplayField } from './entity-display-field.types';
4
- /** Card layout field presentation in master list card view. */
5
- export type AXPCardFieldDisplay = 'simple' | 'badge';
4
+ /** Card layout field presentation (list card/row and lookup popover). */
5
+ export type AXPCardFieldDisplay = 'simple' | 'badge' | 'meta' | 'more';
6
6
  /** Badge color: semantic token or per-row expression (`{{ context.eval(...) }}`). */
7
7
  export type AXPCardBadgeColor = AXStyleColorType | AXPExpression;
8
8
  export interface AXPCardBadgeDisplayOptions {
@@ -15,12 +15,15 @@ export interface AXPCardBadgeDisplay {
15
15
  }
16
16
  /** Shorthand (`badge` / `simple`) or structured badge config with optional per-row color. */
17
17
  export type AXPCardFieldDisplayConfig = AXPCardFieldDisplay | AXPCardBadgeDisplay;
18
- /** Card layout field in master list view. */
18
+ /** Card layout field. */
19
19
  export type AXPCardField = AXPEntityDisplayField & {
20
20
  layout?: AXPEntityPropertyLayoutConfig;
21
21
  /**
22
- * Field presentation. Default: `simple` (card body).
23
- * Use `badge` or `{ type: 'badge', options: { color } }` for header chips beside title.
22
+ * Field presentation.
23
+ * `meta` — unlabeled header extra (identifier/code, or contact when that is the identity extra).
24
+ * `simple` — labeled body rows for values that need context (code, lookup, date).
25
+ * `badge` or `{ type: 'badge', options: { color } }` — header chips beside the title.
26
+ * `more` — extra labeled body facts revealed by the card More button.
24
27
  */
25
28
  display?: AXPCardFieldDisplayConfig;
26
29
  /**
@@ -30,6 +33,29 @@ export type AXPCardField = AXPEntityDisplayField & {
30
33
  */
31
34
  badgeColor?: AXPCardBadgeColor;
32
35
  };
36
+ /** Identity header for a reusable entity card. */
37
+ export interface AXPEntityCardHeader {
38
+ /** Property path, expression (`{{ ... }}`), or literal — evaluated per row. */
39
+ title?: string;
40
+ description?: string;
41
+ icon?: string;
42
+ /** Property path to an image/avatar/file field. Initials are used when empty. */
43
+ avatar?: string;
44
+ }
45
+ /**
46
+ * Shared card preview contract.
47
+ * Stored on `interfaces.master.card`; list mode uses `enabled`,
48
+ * other hosts (lookup popover) ignore `enabled` and reuse header + fields.
49
+ */
50
+ export interface AXPEntityCardLayout {
51
+ enabled?: boolean;
52
+ header: AXPEntityCardHeader;
53
+ fields: AXPCardField[];
54
+ }
55
+ /** Whether the card field is shown as a header-less fact (icon + value). */
56
+ export declare function isCardFieldMetaDisplay(display: AXPCardFieldDisplayConfig | undefined): boolean;
57
+ /** Whether the card field is revealed by the More button (not in the initial preview). */
58
+ export declare function isCardFieldMoreDisplay(display: AXPCardFieldDisplayConfig | undefined): boolean;
33
59
  /** Whether the card field is shown as a header badge (not in the card body). */
34
60
  export declare function isCardFieldBadgeDisplay(display: AXPCardFieldDisplayConfig | undefined): display is 'badge' | AXPCardBadgeDisplay;
35
61
  /** Resolves static badge color config from {@link AXPCardField.display} and legacy {@link AXPCardField.badgeColor}. */
@@ -1 +1 @@
1
- {"version":3,"file":"entity-card-field.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/entity-card-field.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,6FAA6F;AAC7F,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAElF,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG;IACjD,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC;;;OAGG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,yBAAyB,GAAG,SAAS,GAC7C,OAAO,IAAI,OAAO,GAAG,mBAAmB,CAK1C;AAED,uHAAuH;AACvH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,YAAY,CAAC,GAClD,iBAAiB,GAAG,SAAS,CAQ/B"}
1
+ {"version":3,"file":"entity-card-field.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/entity-card-field.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,yEAAyE;AACzE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvE,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,6FAA6F;AAC7F,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAElF,yBAAyB;AACzB,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG;IACjD,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,SAAS,GAAG,OAAO,CAE9F;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,SAAS,GAAG,OAAO,CAE9F;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,yBAAyB,GAAG,SAAS,GAC7C,OAAO,IAAI,OAAO,GAAG,mBAAmB,CAK1C;AAED,uHAAuH;AACvH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,YAAY,CAAC,GAClD,iBAAiB,GAAG,SAAS,CAQ/B"}
@@ -1,8 +1,18 @@
1
1
  "use strict";
2
2
  //#region ---- Entity card fields ----
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isCardFieldMetaDisplay = isCardFieldMetaDisplay;
5
+ exports.isCardFieldMoreDisplay = isCardFieldMoreDisplay;
4
6
  exports.isCardFieldBadgeDisplay = isCardFieldBadgeDisplay;
5
7
  exports.resolveCardFieldBadgeColor = resolveCardFieldBadgeColor;
8
+ /** Whether the card field is shown as a header-less fact (icon + value). */
9
+ function isCardFieldMetaDisplay(display) {
10
+ return display === 'meta' || display == null;
11
+ }
12
+ /** Whether the card field is revealed by the More button (not in the initial preview). */
13
+ function isCardFieldMoreDisplay(display) {
14
+ return display === 'more';
15
+ }
6
16
  /** Whether the card field is shown as a header badge (not in the card body). */
7
17
  function isCardFieldBadgeDisplay(display) {
8
18
  if (display === 'badge') {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-card-field.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/entity-card-field.types.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AA2CtC,0DAOC;AAGD,gEAUC;AArBD,gFAAgF;AAChF,SAAgB,uBAAuB,CACrC,OAA8C;IAE9C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;AACrF,CAAC;AAED,uHAAuH;AACvH,SAAgB,0BAA0B,CACxC,KAAmD;;IAEnD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxE,OAAO,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,0CAAE,KAAK,mCAAI,KAAK,CAAC,UAAU,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,YAAY"}
1
+ {"version":3,"file":"entity-card-field.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/entity-card-field.types.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAmEtC,wDAEC;AAGD,wDAEC;AAGD,0DAOC;AAGD,gEAUC;AA/BD,4EAA4E;AAC5E,SAAgB,sBAAsB,CAAC,OAA8C;IACnF,OAAO,OAAO,KAAK,MAAM,IAAI,OAAO,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED,0FAA0F;AAC1F,SAAgB,sBAAsB,CAAC,OAA8C;IACnF,OAAO,OAAO,KAAK,MAAM,CAAC;AAC5B,CAAC;AAED,gFAAgF;AAChF,SAAgB,uBAAuB,CACrC,OAA8C;IAE9C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;AACrF,CAAC;AAED,uHAAuH;AACvH,SAAgB,0BAA0B,CACxC,KAAmD;;IAEnD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxE,OAAO,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,0CAAE,KAAK,mCAAI,KAAK,CAAC,UAAU,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,YAAY"}
@@ -3,7 +3,9 @@ import type { AXPEntityDetailListView } from './entity-detail-list.types';
3
3
  import type { AXPEntityFormats } from './entity-formats.types';
4
4
  import type { AXPEntityTableColumn } from './entity-display-field.types';
5
5
  import type { AXPEntityMasterCreateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView } from './entity-layout-view.types';
6
+ import type { AXPEntityCardLayout } from './entity-card-field.types';
6
7
  import type { AXPEntityMasterListView } from './entity-master-list.types';
8
+ import type { AXPEntityMasterStyling } from './entity-master-styling.types';
7
9
  import type { AXPRelatedEntity } from './entity-related-layout.types';
8
10
  import type { AXPQueryFilter } from './entity-query-view.types';
9
11
  import type { AXPEntityCommand, AXPEntityQuery } from './entity-action.types';
@@ -75,17 +77,23 @@ export interface AXPEntity {
75
77
  };
76
78
  validations?: AXPValidationRules;
77
79
  interfaces?: {
78
- master?: {
79
- single?: AXPEntityMasterSingleLayoutView;
80
- list?: AXPEntityMasterListView;
81
- create?: AXPEntityMasterCreateLayoutView;
82
- update?: AXPEntityMasterUpdateLayoutView;
83
- };
80
+ master?: AXPEntityMasterInterfaces;
84
81
  detail?: {
85
82
  list?: AXPEntityDetailListView;
86
83
  };
87
84
  };
88
85
  }
86
+ /** Master surfaces: record layouts plus the shared identity card. */
87
+ export interface AXPEntityMasterInterfaces {
88
+ single?: AXPEntityMasterSingleLayoutView;
89
+ list?: AXPEntityMasterListView;
90
+ create?: AXPEntityMasterCreateLayoutView;
91
+ update?: AXPEntityMasterUpdateLayoutView;
92
+ /** Shared identity card (list card/row, lookup popover). List mode honors `enabled`. */
93
+ card?: AXPEntityCardLayout;
94
+ /** Record/field CSS classes shared by table, card, and single. */
95
+ styling?: AXPEntityMasterStyling;
96
+ }
89
97
  export declare function getEntityInfo(entity: AXPEntity): {
90
98
  source: string;
91
99
  module: {
@@ -168,12 +176,7 @@ export interface AXPEntityV2 {
168
176
  columns?: AXPEntityTableColumn[];
169
177
  validations?: AXPValidationRules;
170
178
  interfaces?: {
171
- master?: {
172
- single?: AXPEntityMasterSingleLayoutView;
173
- list?: AXPEntityMasterListView;
174
- create?: AXPEntityMasterCreateLayoutView;
175
- update?: AXPEntityMasterUpdateLayoutView;
176
- };
179
+ master?: AXPEntityMasterInterfaces;
177
180
  detail?: {
178
181
  list?: AXPEntityDetailListView;
179
182
  };