@acorex-platform/framework-shared 0.0.28 → 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
@@ -0,0 +1,500 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENTITY_CARD_LABELED_PREVIEW_MAX = void 0;
4
+ exports.resolveEntityCardLayout = resolveEntityCardLayout;
5
+ exports.promoteLegacyEntityCardLayout = promoteLegacyEntityCardLayout;
6
+ exports.buildDefaultEntityCardLayout = buildDefaultEntityCardLayout;
7
+ exports.resolveEntityCardAvatarPath = resolveEntityCardAvatarPath;
8
+ exports.resolveEntityCardIdentityKind = resolveEntityCardIdentityKind;
9
+ exports.collectEntityCardUserIdQueryFields = collectEntityCardUserIdQueryFields;
10
+ exports.resolveEntityCardUserId = resolveEntityCardUserId;
11
+ exports.collectLeftoverCardMoreFieldNames = collectLeftoverCardMoreFieldNames;
12
+ exports.isEntityCardUnlabeledHeaderField = isEntityCardUnlabeledHeaderField;
13
+ exports.isEntityCardQrField = isEntityCardQrField;
14
+ exports.isEntityCardImportantPreviewField = isEntityCardImportantPreviewField;
15
+ exports.isEntityCardTypePreviewField = isEntityCardTypePreviewField;
16
+ const entity_search_title_context_util_1 = require("./entity-search-title-context.util");
17
+ //#region ---- Constants ----
18
+ const TITLE_PATH_CANDIDATES = [
19
+ 'title',
20
+ 'name',
21
+ 'fullName',
22
+ 'displayName',
23
+ 'person.fullName',
24
+ 'person.displayName',
25
+ ];
26
+ const VISUAL_NAME_CANDIDATES = ['avatar', 'logo', 'image', 'photo', 'picture'];
27
+ const QR_NAME_CANDIDATES = ['qrcode', 'qrCode', 'qr'];
28
+ const TYPE_NAME_PATTERN = /(^|\.)(\w*Type(Id)?|type)$/i;
29
+ const IDENTIFIER_NAME_PATTERN = /(^|\.)(\w*code)$/i;
30
+ const SKIP_BODY_LEAF_NAMES = new Set([
31
+ 'firstname',
32
+ 'lastname',
33
+ 'id',
34
+ 'icon',
35
+ 'title',
36
+ 'name',
37
+ 'fullname',
38
+ 'displayname',
39
+ 'image',
40
+ 'avatar',
41
+ 'logo',
42
+ 'photo',
43
+ 'picture',
44
+ 'qrcode',
45
+ 'qr',
46
+ ]);
47
+ const IMPORTANT_PREVIEW_NAME_PATTERN = /(^|\.)(emails?|phones?|mobile|username|\w*code)$/i;
48
+ const CONTACT_NAME_PATTERN = /(^|\.)(emails?|phones?|mobile|username|website|url|websiteurl)$/i;
49
+ /** Leftover facts at or below this count stay in the body; the header is title-only. */
50
+ const LEAN_CARD_FACT_MAX = 3;
51
+ /** Collapsed card body shows this many labeled rows; More appears only after that. */
52
+ exports.ENTITY_CARD_LABELED_PREVIEW_MAX = 4;
53
+ /** Card layout stored on `interfaces.master.card` (legacy list slot still accepted). */
54
+ function resolveEntityCardLayout(entity) {
55
+ var _a, _b, _c;
56
+ return (_c = (_b = (_a = entity.interfaces) === null || _a === void 0 ? void 0 : _a.master) === null || _b === void 0 ? void 0 : _b.card) !== null && _c !== void 0 ? _c : readLegacyMasterListCard(entity);
57
+ }
58
+ /** Promotes `interfaces.master.list.layouts.card` to `interfaces.master.card` when needed. */
59
+ function promoteLegacyEntityCardLayout(entity) {
60
+ var _a, _b, _c, _d;
61
+ var _e;
62
+ const existing = (_b = (_a = entity.interfaces) === null || _a === void 0 ? void 0 : _a.master) === null || _b === void 0 ? void 0 : _b.card;
63
+ if (existing) {
64
+ return existing;
65
+ }
66
+ const legacy = readLegacyMasterListCard(entity);
67
+ if (!legacy) {
68
+ return undefined;
69
+ }
70
+ (_c = entity.interfaces) !== null && _c !== void 0 ? _c : (entity.interfaces = {});
71
+ (_d = (_e = entity.interfaces).master) !== null && _d !== void 0 ? _d : (_e.master = {});
72
+ entity.interfaces.master.card = legacy;
73
+ const layouts = readLegacyMasterListLayouts(entity);
74
+ if (layouts === null || layouts === void 0 ? void 0 : layouts.card) {
75
+ delete layouts.card;
76
+ }
77
+ return legacy;
78
+ }
79
+ function readLegacyMasterListCard(entity) {
80
+ var _a;
81
+ return (_a = readLegacyMasterListLayouts(entity)) === null || _a === void 0 ? void 0 : _a.card;
82
+ }
83
+ function readLegacyMasterListLayouts(entity) {
84
+ var _a, _b;
85
+ const list = (_b = (_a = entity.interfaces) === null || _a === void 0 ? void 0 : _a.master) === null || _b === void 0 ? void 0 : _b.list;
86
+ return list === null || list === void 0 ? void 0 : list.layouts;
87
+ }
88
+ //#endregion
89
+ //#region ---- Default card layout ----
90
+ /**
91
+ * Builds an identity-first card/row layout from entity metadata.
92
+ * Title prefers search/single templates. Avatar, logo, image, or QR occupy the identity slot.
93
+ * Lean cards (few leftover facts) keep the header to title only.
94
+ * Richer cards may take one header extra: identifier/code, else one contact, else description.
95
+ */
96
+ function buildDefaultEntityCardLayout(entity, entityColumns) {
97
+ var _a;
98
+ const properties = (_a = entity.properties) !== null && _a !== void 0 ? _a : [];
99
+ const columnNames = resolveIdentityColumnNames(entityColumns);
100
+ const relatedPrefixes = resolveRelatedDataPrefixes(entity);
101
+ const identifierField = resolveCardIdentifierField(entity, columnNames);
102
+ const title = resolveTitle(entity, properties, columnNames, relatedPrefixes);
103
+ if (!title && columnNames.length === 0) {
104
+ return null;
105
+ }
106
+ const descriptionField = resolveDescriptionField(properties, columnNames);
107
+ const icon = resolveIconField(properties, columnNames);
108
+ const avatar = resolveAvatarField(entity, properties, columnNames, relatedPrefixes);
109
+ const statusField = resolveStatusField(properties, columnNames);
110
+ const headerOccupied = new Set([toHeaderOccupiedName(title), icon, avatar].filter((name) => !!name));
111
+ const factNames = collectCardFactNames(entity, headerOccupied, statusField);
112
+ const headerExtra = pickHeaderExtra(factNames, identifierField, descriptionField);
113
+ if (headerExtra.description) {
114
+ headerOccupied.add(headerExtra.description);
115
+ }
116
+ const fields = buildCardFields({
117
+ entity,
118
+ headerOccupied,
119
+ statusField,
120
+ identifierField,
121
+ descriptionField,
122
+ headerMetaNames: [headerExtra.identifier, headerExtra.contact].filter((name) => !!name),
123
+ });
124
+ if (!title && fields.length === 0) {
125
+ return null;
126
+ }
127
+ return {
128
+ enabled: true,
129
+ header: Object.assign(Object.assign(Object.assign(Object.assign({}, (title ? { title } : {})), (headerExtra.description ? { description: headerExtra.description } : {})), (icon ? { icon } : {})), (avatar ? { avatar } : {})),
130
+ fields,
131
+ };
132
+ }
133
+ //#endregion
134
+ //#region ---- Title / avatar / status ----
135
+ function resolveTitle(entity, properties, columnNames, relatedPrefixes) {
136
+ var _a, _b, _c, _d, _e, _f;
137
+ const template = (0, entity_search_title_context_util_1.resolveEntityRowTitleTemplate)(entity);
138
+ if (template) {
139
+ return template;
140
+ }
141
+ const candidates = [
142
+ ...TITLE_PATH_CANDIDATES,
143
+ ...relatedPrefixes.map((prefix) => `${prefix}.fullName`),
144
+ ...relatedPrefixes.map((prefix) => `${prefix}.displayName`),
145
+ ...relatedPrefixes.map((prefix) => `${prefix}.title`),
146
+ ...relatedPrefixes.map((prefix) => `${prefix}.name`),
147
+ ];
148
+ return ((_f = (_e = (_d = (_c = (_b = (_a = findPropertyName(properties, TITLE_PATH_CANDIDATES)) !== null && _a !== void 0 ? _a : findColumnName(columnNames, candidates)) !== null && _b !== void 0 ? _b : findNestedColumnName(columnNames, 'fullName')) !== null && _c !== void 0 ? _c : findNestedColumnName(columnNames, 'displayName')) !== null && _d !== void 0 ? _d : findNestedColumnName(columnNames, 'title')) !== null && _e !== void 0 ? _e : findNestedColumnName(columnNames, 'name')) !== null && _f !== void 0 ? _f : columnNames[0]);
149
+ }
150
+ function resolveDescriptionField(properties, columnNames) {
151
+ var _a, _b;
152
+ return ((_b = (_a = findPropertyName(properties, ['description'])) !== null && _a !== void 0 ? _a : findColumnName(columnNames, ['description'])) !== null && _b !== void 0 ? _b : findNestedColumnName(columnNames, 'description'));
153
+ }
154
+ function resolveIconField(properties, columnNames) {
155
+ var _a;
156
+ return (_a = findPropertyName(properties, ['icon'])) !== null && _a !== void 0 ? _a : findColumnName(columnNames, ['icon']);
157
+ }
158
+ /**
159
+ * Resolves the identity visual path (avatar, logo, or image) when the layout does not set `header.avatar`.
160
+ */
161
+ function resolveEntityCardAvatarPath(entity, entityColumns) {
162
+ var _a;
163
+ const properties = (_a = entity.properties) !== null && _a !== void 0 ? _a : [];
164
+ const columnNames = resolveIdentityColumnNames(entityColumns);
165
+ return resolveAvatarField(entity, properties, columnNames, resolveRelatedDataPrefixes(entity));
166
+ }
167
+ /** Person/user photos use `axp-user-avatar`; logos and company images use a plain image; QR uses `ax-qrcode`. */
168
+ function resolveEntityCardIdentityKind(entity, avatarPath) {
169
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
170
+ if (!avatarPath) {
171
+ return 'image';
172
+ }
173
+ const segments = avatarPath.split('.');
174
+ const leaf = ((_a = segments.pop()) !== null && _a !== void 0 ? _a : '').toLowerCase();
175
+ const prefix = (_c = (_b = segments[0]) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : '';
176
+ const property = (_d = entity.properties) === null || _d === void 0 ? void 0 : _d.find((item) => item.name === avatarPath);
177
+ const widgetType = (_f = (_e = property === null || property === void 0 ? void 0 : property.schema) === null || _e === void 0 ? void 0 : _e.interface) === null || _f === void 0 ? void 0 : _f.type;
178
+ if (leaf === 'qrcode' || leaf === 'qr' || widgetType === 'qrcode') {
179
+ return 'qrcode';
180
+ }
181
+ if (leaf === 'logo' || prefix === 'party') {
182
+ return 'image';
183
+ }
184
+ if (leaf === 'avatar' || prefix === 'person') {
185
+ return 'user-avatar';
186
+ }
187
+ const imageType = (_j = (_h = (_g = property === null || property === void 0 ? void 0 : property.schema) === null || _g === void 0 ? void 0 : _g.interface) === null || _h === void 0 ? void 0 : _h.options) === null || _j === void 0 ? void 0 : _j['type'];
188
+ if (imageType === 'profile-photo' || widgetType === 'avatar') {
189
+ return 'user-avatar';
190
+ }
191
+ return 'image';
192
+ }
193
+ const HOST_USER_ID_PATHS = ['userId', 'user.id'];
194
+ /**
195
+ * Paths the list query must request so a user-avatar card can open the user card.
196
+ * Does not include `id` — that is always queried. `id` is only treated as a user id
197
+ * when the avatar path is the User entity's own `avatar`.
198
+ */
199
+ function collectEntityCardUserIdQueryFields(entity, avatarPath) {
200
+ if (resolveEntityCardIdentityKind(entity, avatarPath) !== 'user-avatar') {
201
+ return [];
202
+ }
203
+ const fields = [...HOST_USER_ID_PATHS];
204
+ const relatedPrefix = (avatarPath === null || avatarPath === void 0 ? void 0 : avatarPath.includes('.')) ? avatarPath.split('.')[0] : undefined;
205
+ if (relatedPrefix) {
206
+ fields.push(`${relatedPrefix}.userId`);
207
+ return fields;
208
+ }
209
+ for (const prefix of resolveRelatedDataPrefixes(entity)) {
210
+ fields.push(`${prefix}.userId`);
211
+ }
212
+ return fields;
213
+ }
214
+ /** Assigned platform user id on a card row. Never treats a non-User entity id as a user id. */
215
+ function resolveEntityCardUserId(row, avatarPath) {
216
+ for (const path of collectEntityCardUserIdLookupPaths(avatarPath)) {
217
+ const value = readTrimmedStringPath(row, path);
218
+ if (value) {
219
+ return value;
220
+ }
221
+ }
222
+ if (avatarPath === 'avatar') {
223
+ return readTrimmedStringPath(row, 'id');
224
+ }
225
+ return '';
226
+ }
227
+ function collectEntityCardUserIdLookupPaths(avatarPath) {
228
+ const paths = [...HOST_USER_ID_PATHS];
229
+ const relatedPrefix = (avatarPath === null || avatarPath === void 0 ? void 0 : avatarPath.includes('.')) ? avatarPath.split('.')[0] : undefined;
230
+ if (relatedPrefix) {
231
+ paths.push(`${relatedPrefix}.userId`);
232
+ }
233
+ return paths;
234
+ }
235
+ function readTrimmedStringPath(row, path) {
236
+ let current = row;
237
+ for (const segment of path.split('.')) {
238
+ if (current == null || typeof current !== 'object') {
239
+ return '';
240
+ }
241
+ current = current[segment];
242
+ }
243
+ return typeof current === 'string' ? current.trim() : '';
244
+ }
245
+ /**
246
+ * Remaining visible list columns that are not already on the card, for the More section.
247
+ */
248
+ function collectLeftoverCardMoreFieldNames(entity, occupiedNames) {
249
+ var _a, _b, _c, _d;
250
+ const occupied = new Set(occupiedNames);
251
+ const leftover = [];
252
+ const add = (name) => {
253
+ if (!name || occupied.has(name) || shouldSkipBodyField(name, undefined)) {
254
+ return;
255
+ }
256
+ occupied.add(name);
257
+ leftover.push(name);
258
+ };
259
+ for (const prefix of resolveRelatedDataPrefixes(entity)) {
260
+ add(`${prefix}.emails`);
261
+ add(`${prefix}.phones`);
262
+ }
263
+ const columnNames = resolveIdentityColumnNames(entity.columns);
264
+ for (const name of columnNames) {
265
+ const column = (_a = entity.columns) === null || _a === void 0 ? void 0 : _a.find((item) => item.name === name);
266
+ if (((_b = column === null || column === void 0 ? void 0 : column.options) === null || _b === void 0 ? void 0 : _b.visible) === false) {
267
+ continue;
268
+ }
269
+ add(name);
270
+ }
271
+ for (const property of (_c = entity.properties) !== null && _c !== void 0 ? _c : []) {
272
+ if (((_d = property.schema) === null || _d === void 0 ? void 0 : _d.visible) === false || isIgnoredCardProperty(property)) {
273
+ continue;
274
+ }
275
+ add(property.name);
276
+ }
277
+ return leftover;
278
+ }
279
+ function resolveAvatarField(entity, properties, columnNames, relatedPrefixes) {
280
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
281
+ const relatedVisualPaths = relatedPrefixes.flatMap((prefix) => VISUAL_NAME_CANDIDATES.map((name) => `${prefix}.${name}`));
282
+ const candidates = [...VISUAL_NAME_CANDIDATES, ...relatedVisualPaths];
283
+ return ((_l = (_k = (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = (_a = findPropertyByAvatarInterface(properties)) !== null && _a !== void 0 ? _a : findPropertyName(properties, VISUAL_NAME_CANDIDATES)) !== null && _b !== void 0 ? _b : findColumnName(columnNames, candidates)) !== null && _c !== void 0 ? _c : findNestedColumnName(columnNames, 'logo')) !== null && _d !== void 0 ? _d : findNestedColumnName(columnNames, 'avatar')) !== null && _e !== void 0 ? _e : findNestedColumnName(columnNames, 'image')) !== null && _f !== void 0 ? _f : resolveRelatedVisualPath(entity, relatedPrefixes, columnNames)) !== null && _g !== void 0 ? _g : findPropertyByType(properties, 'qrcode')) !== null && _h !== void 0 ? _h : findPropertyName(properties, QR_NAME_CANDIDATES)) !== null && _j !== void 0 ? _j : findColumnName(columnNames, QR_NAME_CANDIDATES)) !== null && _k !== void 0 ? _k : findNestedColumnName(columnNames, 'qrcode')) !== null && _l !== void 0 ? _l : findNestedColumnName(columnNames, 'qr'));
284
+ }
285
+ function resolveStatusField(properties, columnNames) {
286
+ var _a, _b, _c;
287
+ return ((_c = (_b = (_a = findPropertyName(properties, ['status', 'statusId'])) !== null && _a !== void 0 ? _a : findColumnName(columnNames, ['status', 'statusId'])) !== null && _b !== void 0 ? _b : findNestedColumnName(columnNames, 'status')) !== null && _c !== void 0 ? _c : findNestedColumnName(columnNames, 'statusId'));
288
+ }
289
+ function resolveIdentifierPluginField(entity) {
290
+ var _a, _b;
291
+ const identifierPlugin = (_a = entity.plugins) === null || _a === void 0 ? void 0 : _a.find((plugin) => plugin.name === 'identifier');
292
+ const field = (_b = identifierPlugin === null || identifierPlugin === void 0 ? void 0 : identifierPlugin.options) === null || _b === void 0 ? void 0 : _b['field'];
293
+ return typeof field === 'string' && field.trim() ? field.trim() : undefined;
294
+ }
295
+ function resolveCardIdentifierField(entity, columnNames) {
296
+ var _a, _b;
297
+ return ((_b = (_a = resolveIdentifierPluginField(entity)) !== null && _a !== void 0 ? _a : columnNames.find((name) => IDENTIFIER_NAME_PATTERN.test(name))) !== null && _b !== void 0 ? _b : findNestedColumnName(columnNames, 'code'));
298
+ }
299
+ function collectCardFactNames(entity, headerOccupied, statusField) {
300
+ const names = [];
301
+ const seen = new Set(headerOccupied);
302
+ const add = (name) => {
303
+ if (!name || seen.has(name) || name === statusField) {
304
+ return;
305
+ }
306
+ if (shouldSkipBodyField(name, statusField)) {
307
+ return;
308
+ }
309
+ seen.add(name);
310
+ names.push(name);
311
+ };
312
+ for (const name of collectLeftoverCardMoreFieldNames(entity, seen)) {
313
+ add(name);
314
+ }
315
+ return names;
316
+ }
317
+ function pickHeaderExtra(factNames, identifierField, descriptionField) {
318
+ if (factNames.length <= LEAN_CARD_FACT_MAX) {
319
+ return {};
320
+ }
321
+ const identifier = identifierField && factNames.includes(identifierField)
322
+ ? identifierField
323
+ : factNames.find((name) => IDENTIFIER_NAME_PATTERN.test(name));
324
+ if (identifier) {
325
+ return { identifier };
326
+ }
327
+ const contact = factNames.find((name) => isEntityCardUnlabeledHeaderField(name));
328
+ if (contact) {
329
+ return { contact };
330
+ }
331
+ if (descriptionField && factNames.includes(descriptionField) && factNames.length - 1 >= 2) {
332
+ return { description: descriptionField };
333
+ }
334
+ return {};
335
+ }
336
+ function buildCardFields(input) {
337
+ const { entity, headerOccupied, statusField, identifierField, descriptionField, headerMetaNames } = input;
338
+ const headerMeta = new Set(headerMetaNames);
339
+ const ranked = [];
340
+ const seen = new Set();
341
+ const tryAdd = (name, force = false) => {
342
+ if (!name || seen.has(name) || headerOccupied.has(name)) {
343
+ return;
344
+ }
345
+ if (!force && shouldSkipBodyField(name, statusField)) {
346
+ return;
347
+ }
348
+ seen.add(name);
349
+ ranked.push(name);
350
+ };
351
+ tryAdd(statusField, true);
352
+ const leftover = collectLeftoverCardMoreFieldNames(entity, [...seen, ...headerOccupied]);
353
+ const identifierName = identifierField && leftover.includes(identifierField)
354
+ ? identifierField
355
+ : leftover.find((name) => IDENTIFIER_NAME_PATTERN.test(name));
356
+ tryAdd(identifierName);
357
+ for (const name of leftover) {
358
+ if (isEntityCardUnlabeledHeaderField(name) || isEntityCardDescriptionField(name)) {
359
+ continue;
360
+ }
361
+ tryAdd(name);
362
+ }
363
+ tryAdd(descriptionField);
364
+ for (const name of leftover) {
365
+ if (isEntityCardUnlabeledHeaderField(name)) {
366
+ tryAdd(name);
367
+ }
368
+ }
369
+ const fields = [];
370
+ let labeledPreviewCount = 0;
371
+ for (const name of ranked) {
372
+ if (statusField && name === statusField) {
373
+ fields.push({ name, display: 'badge' });
374
+ continue;
375
+ }
376
+ if (headerMeta.has(name)) {
377
+ fields.push({ name, display: 'meta' });
378
+ continue;
379
+ }
380
+ if (labeledPreviewCount < exports.ENTITY_CARD_LABELED_PREVIEW_MAX) {
381
+ fields.push({ name, display: 'simple' });
382
+ labeledPreviewCount += 1;
383
+ continue;
384
+ }
385
+ fields.push({ name, display: 'more' });
386
+ }
387
+ return fields;
388
+ }
389
+ /** Contact-like field names. Card rendering should follow `display`, not this name heuristic. */
390
+ function isEntityCardUnlabeledHeaderField(name) {
391
+ return CONTACT_NAME_PATTERN.test(name);
392
+ }
393
+ function isEntityCardDescriptionField(name) {
394
+ var _a, _b;
395
+ const leaf = (_b = (_a = name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
396
+ return leaf === 'description';
397
+ }
398
+ function isEntityCardQrField(name, widgetType) {
399
+ var _a, _b;
400
+ if (widgetType === 'qrcode') {
401
+ return true;
402
+ }
403
+ const leaf = (_b = (_a = name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
404
+ return leaf === 'qrcode' || leaf === 'qr';
405
+ }
406
+ function isEntityCardImportantPreviewField(name, identifierField) {
407
+ return (!!identifierField && name === identifierField) || IMPORTANT_PREVIEW_NAME_PATTERN.test(name);
408
+ }
409
+ function isEntityCardTypePreviewField(name) {
410
+ return TYPE_NAME_PATTERN.test(name);
411
+ }
412
+ function isIgnoredCardProperty(property) {
413
+ var _a, _b;
414
+ const name = property.name.toLowerCase();
415
+ if (name === 'password' || name === 'pincode' || name === 'token' || name === 'secret') {
416
+ return true;
417
+ }
418
+ const type = (_b = (_a = property.schema) === null || _a === void 0 ? void 0 : _a.interface) === null || _b === void 0 ? void 0 : _b.type;
419
+ return type === 'image' || type === 'avatar' || type === 'signature' || type === 'qrcode';
420
+ }
421
+ function shouldSkipBodyField(name, statusField) {
422
+ var _a, _b;
423
+ if (name === statusField) {
424
+ return false;
425
+ }
426
+ const leaf = (_b = (_a = name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : name.toLowerCase();
427
+ return SKIP_BODY_LEAF_NAMES.has(leaf);
428
+ }
429
+ //#endregion
430
+ //#region ---- Lookups ----
431
+ function resolveIdentityColumnNames(entityColumns) {
432
+ const names = new Set();
433
+ const ordered = [];
434
+ for (const column of entityColumns !== null && entityColumns !== void 0 ? entityColumns : []) {
435
+ if (!column.name || names.has(column.name)) {
436
+ continue;
437
+ }
438
+ names.add(column.name);
439
+ ordered.push(column.name);
440
+ }
441
+ return ordered;
442
+ }
443
+ function resolveRelatedDataPrefixes(entity) {
444
+ var _a, _b, _c;
445
+ const prefixes = [];
446
+ for (const related of (_a = entity.relatedEntities) !== null && _a !== void 0 ? _a : []) {
447
+ const path = (_c = (_b = related.persistence) === null || _b === void 0 ? void 0 : _b.dataPath) === null || _c === void 0 ? void 0 : _c.trim();
448
+ if (path && !prefixes.includes(path)) {
449
+ prefixes.push(path);
450
+ }
451
+ }
452
+ return prefixes;
453
+ }
454
+ function findPropertyName(properties, candidates) {
455
+ const names = new Set(properties.map((property) => property.name));
456
+ return candidates.find((candidate) => names.has(candidate));
457
+ }
458
+ function findPropertyByAvatarInterface(properties) {
459
+ return findPropertyByType(properties, ['avatar', 'image']);
460
+ }
461
+ function findPropertyByType(properties, types) {
462
+ var _a;
463
+ const wanted = typeof types === 'string' ? [types] : types;
464
+ return (_a = properties.find((property) => { var _a, _b, _c; return wanted.includes((_c = (_b = (_a = property.schema) === null || _a === void 0 ? void 0 : _a.interface) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : ''); })) === null || _a === void 0 ? void 0 : _a.name;
465
+ }
466
+ function findColumnName(columnNames, candidates) {
467
+ return candidates.find((candidate) => columnNames.includes(candidate));
468
+ }
469
+ function findNestedColumnName(columnNames, suffix) {
470
+ return columnNames.find((name) => name === suffix || name.endsWith(`.${suffix}`));
471
+ }
472
+ function resolveRelatedVisualPath(entity, relatedPrefixes, columnNames) {
473
+ var _a, _b;
474
+ for (const prefix of relatedPrefixes) {
475
+ const fromColumn = VISUAL_NAME_CANDIDATES.map((name) => `${prefix}.${name}`).find((path) => columnNames.includes(path));
476
+ if (fromColumn) {
477
+ return fromColumn;
478
+ }
479
+ const related = (_a = entity.relatedEntities) === null || _a === void 0 ? void 0 : _a.find((item) => { var _a; return ((_a = item.persistence) === null || _a === void 0 ? void 0 : _a.dataPath) === prefix; });
480
+ if (/(^|\.)(Person|Party)$/i.test(String((_b = related === null || related === void 0 ? void 0 : related.entity) !== null && _b !== void 0 ? _b : ''))) {
481
+ return `${prefix}.image`;
482
+ }
483
+ if (columnNames.includes(`${prefix}.fullName`) ||
484
+ columnNames.includes(`${prefix}.firstName`) ||
485
+ columnNames.includes(`${prefix}.displayName`) ||
486
+ columnNames.includes(`${prefix}.emails`) ||
487
+ columnNames.includes(`${prefix}.phones`)) {
488
+ return `${prefix}.image`;
489
+ }
490
+ }
491
+ return undefined;
492
+ }
493
+ function toHeaderOccupiedName(title) {
494
+ if (!title || title.includes('{{')) {
495
+ return undefined;
496
+ }
497
+ return title;
498
+ }
499
+ //#endregion
500
+ //# sourceMappingURL=entity-default-card-layout.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-default-card-layout.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/entity-default-card-layout.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { AXPExpression, AXPExpressionEvaluatorScope } from '@acorex-platform/framework-shared/core';
2
+ import type { AXPEntity } from '../types/entity-definition.types';
3
+ import type { AXPEntityMasterStyling } from '../types/entity-master-styling.types';
4
+ /** In-memory compile of `interfaces.master.styling`. Not persisted. */
5
+ export interface AXPEntityMasterStylingPlan {
6
+ record?: AXPExpression;
7
+ fieldByName: Record<string, AXPExpression>;
8
+ fieldWildcard?: AXPExpression;
9
+ }
10
+ /** Normalizes a styling expression result to a CSS class string. */
11
+ export declare function normalizeEntityMasterStylingClass(value: unknown): string | undefined;
12
+ /** Expression scope for `interfaces.master.styling` (`field.name` plus legacy `table.getColumn`). */
13
+ export declare function createEntityMasterStylingScope(data: unknown, fieldName?: string): AXPExpressionEvaluatorScope;
14
+ /** Compiles `rules[]` (and the `class` shortcut) into one expression per record / field name. */
15
+ export declare function compileEntityMasterStyling(styling?: AXPEntityMasterStyling): AXPEntityMasterStylingPlan;
16
+ /** Cached compile of `entity.interfaces.master.styling`. */
17
+ export declare function resolveEntityMasterStyling(entity: AXPEntity): AXPEntityMasterStylingPlan;
18
+ export declare function resolveEntityMasterFieldExpression(plan: AXPEntityMasterStylingPlan, fieldName: string): AXPExpression | undefined;
19
+ //# sourceMappingURL=entity-master-styling.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-master-styling.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/entity-master-styling.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAEzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,sCAAsC,CAAC;AAM9C,uEAAuE;AACvE,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAkBD,oEAAoE;AACpE,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOpF;AAED,qGAAqG;AACrG,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,2BAA2B,CAmB7G;AAED,iGAAiG;AACjG,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,0BAA0B,CAWvG;AAED,4DAA4D;AAC5D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B,CASxF;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,0BAA0B,EAChC,SAAS,EAAE,MAAM,GAChB,aAAa,GAAG,SAAS,CAE3B"}