@acorex-platform/framework-shared 0.0.30 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/background-job/src/index.d.ts +1 -0
- package/background-job/src/index.d.ts.map +1 -1
- package/background-job/src/index.js +1 -0
- package/background-job/src/index.js.map +1 -1
- package/background-job/src/lib/background-job-notification.port.d.ts +9 -0
- package/background-job/src/lib/background-job-notification.port.d.ts.map +1 -0
- package/background-job/src/lib/background-job-notification.port.js +5 -0
- package/background-job/src/lib/background-job-notification.port.js.map +1 -0
- package/background-job/src/lib/background-job.constants.d.ts +6 -0
- package/background-job/src/lib/background-job.constants.d.ts.map +1 -1
- package/background-job/src/lib/background-job.constants.js +6 -0
- package/background-job/src/lib/background-job.constants.js.map +1 -1
- package/background-job/src/lib/background-job.types.d.ts +25 -0
- package/background-job/src/lib/background-job.types.d.ts.map +1 -1
- package/background-job/src/lib/background-job.types.js.map +1 -1
- package/core/src/lib/color-surface/index.d.ts +3 -0
- package/core/src/lib/color-surface/index.d.ts.map +1 -0
- package/core/src/lib/color-surface/index.js +6 -0
- package/core/src/lib/color-surface/index.js.map +1 -0
- package/core/src/lib/color-surface/runtime-surface.types.d.ts +17 -0
- package/core/src/lib/color-surface/runtime-surface.types.d.ts.map +1 -0
- package/core/src/lib/color-surface/runtime-surface.types.js +26 -0
- package/core/src/lib/color-surface/runtime-surface.types.js.map +1 -0
- package/core/src/lib/color-surface/runtime-surface.util.d.ts +15 -0
- package/core/src/lib/color-surface/runtime-surface.util.d.ts.map +1 -0
- package/core/src/lib/color-surface/runtime-surface.util.js +195 -0
- package/core/src/lib/color-surface/runtime-surface.util.js.map +1 -0
- package/core/src/lib/errors/platform-error-codes.d.ts +2 -0
- package/core/src/lib/errors/platform-error-codes.d.ts.map +1 -1
- package/core/src/lib/errors/platform-error-codes.js +2 -0
- package/core/src/lib/errors/platform-error-codes.js.map +1 -1
- package/core/src/lib/index.d.ts +3 -0
- package/core/src/lib/index.d.ts.map +1 -1
- package/core/src/lib/index.js +3 -0
- package/core/src/lib/index.js.map +1 -1
- package/core/src/lib/registry/index.d.ts +2 -0
- package/core/src/lib/registry/index.d.ts.map +1 -0
- package/core/src/lib/registry/index.js +7 -0
- package/core/src/lib/registry/index.js.map +1 -0
- package/core/src/lib/registry/registry.d.ts +23 -0
- package/core/src/lib/registry/registry.d.ts.map +1 -0
- package/core/src/lib/registry/registry.js +57 -0
- package/core/src/lib/registry/registry.js.map +1 -0
- package/core/src/lib/user-notification/index.d.ts +3 -0
- package/core/src/lib/user-notification/index.d.ts.map +1 -0
- package/core/src/lib/user-notification/index.js +6 -0
- package/core/src/lib/user-notification/index.js.map +1 -0
- package/core/src/lib/user-notification/user-notification-delivery.util.d.ts +10 -0
- package/core/src/lib/user-notification/user-notification-delivery.util.d.ts.map +1 -0
- package/core/src/lib/user-notification/user-notification-delivery.util.js +45 -0
- package/core/src/lib/user-notification/user-notification-delivery.util.js.map +1 -0
- package/core/src/lib/user-notification/user-notification.types.d.ts +56 -0
- package/core/src/lib/user-notification/user-notification.types.d.ts.map +1 -0
- package/core/src/lib/user-notification/user-notification.types.js +5 -0
- package/core/src/lib/user-notification/user-notification.types.js.map +1 -0
- package/core/src/lib/utils/index.d.ts +1 -0
- package/core/src/lib/utils/index.d.ts.map +1 -1
- package/core/src/lib/utils/index.js +1 -0
- package/core/src/lib/utils/index.js.map +1 -1
- package/core/src/lib/utils/random-uuid.util.d.ts +14 -0
- package/core/src/lib/utils/random-uuid.util.d.ts.map +1 -0
- package/core/src/lib/utils/random-uuid.util.js +54 -0
- package/core/src/lib/utils/random-uuid.util.js.map +1 -0
- package/core/src/lib/widgets/widgets-list.d.ts +1 -0
- package/core/src/lib/widgets/widgets-list.d.ts.map +1 -1
- package/core/src/lib/widgets/widgets-list.js +1 -0
- package/core/src/lib/widgets/widgets-list.js.map +1 -1
- package/entity/src/lib/types/entity-card-field.types.d.ts +31 -5
- package/entity/src/lib/types/entity-card-field.types.d.ts.map +1 -1
- package/entity/src/lib/types/entity-card-field.types.js +10 -0
- package/entity/src/lib/types/entity-card-field.types.js.map +1 -1
- package/entity/src/lib/types/entity-definition.types.d.ts +15 -12
- package/entity/src/lib/types/entity-definition.types.d.ts.map +1 -1
- package/entity/src/lib/types/entity-definition.types.js.map +1 -1
- package/entity/src/lib/types/entity-list-filter.types.d.ts +2 -0
- package/entity/src/lib/types/entity-list-filter.types.d.ts.map +1 -1
- package/entity/src/lib/types/entity-list-filter.types.js +18 -4
- package/entity/src/lib/types/entity-list-filter.types.js.map +1 -1
- package/entity/src/lib/types/entity-local-catalog.types.d.ts +12 -0
- package/entity/src/lib/types/entity-local-catalog.types.d.ts.map +1 -0
- package/entity/src/lib/types/entity-local-catalog.types.js +4 -0
- package/entity/src/lib/types/entity-local-catalog.types.js.map +1 -0
- package/entity/src/lib/types/entity-master-list.types.d.ts +14 -30
- package/entity/src/lib/types/entity-master-list.types.d.ts.map +1 -1
- package/entity/src/lib/types/entity-master-list.types.js +27 -15
- package/entity/src/lib/types/entity-master-list.types.js.map +1 -1
- package/entity/src/lib/types/entity-master-styling.types.d.ts +26 -0
- package/entity/src/lib/types/entity-master-styling.types.d.ts.map +1 -0
- package/entity/src/lib/types/entity-master-styling.types.js +5 -0
- package/entity/src/lib/types/entity-master-styling.types.js.map +1 -0
- package/entity/src/lib/types/index.d.ts +2 -0
- package/entity/src/lib/types/index.d.ts.map +1 -1
- package/entity/src/lib/types/index.js +2 -0
- package/entity/src/lib/types/index.js.map +1 -1
- package/entity/src/lib/utils/entity-default-card-layout.util.d.ts +43 -0
- package/entity/src/lib/utils/entity-default-card-layout.util.d.ts.map +1 -0
- package/entity/src/lib/utils/entity-default-card-layout.util.js +500 -0
- package/entity/src/lib/utils/entity-default-card-layout.util.js.map +1 -0
- package/entity/src/lib/utils/entity-master-styling.util.d.ts +19 -0
- package/entity/src/lib/utils/entity-master-styling.util.d.ts.map +1 -0
- package/entity/src/lib/utils/entity-master-styling.util.js +132 -0
- package/entity/src/lib/utils/entity-master-styling.util.js.map +1 -0
- package/entity/src/lib/utils/index.d.ts +2 -0
- package/entity/src/lib/utils/index.d.ts.map +1 -1
- package/entity/src/lib/utils/index.js +2 -0
- package/entity/src/lib/utils/index.js.map +1 -1
- package/package.json +5 -1
- package/runtime/src/lib/commands/bulk-command.types.d.ts +17 -0
- package/runtime/src/lib/commands/bulk-command.types.d.ts.map +1 -1
- package/runtime/src/lib/commands/bulk-command.types.js.map +1 -1
- package/runtime/src/lib/commands/entity-command-keys.d.ts +7 -1
- package/runtime/src/lib/commands/entity-command-keys.d.ts.map +1 -1
- package/runtime/src/lib/commands/entity-command-keys.js +29 -5
- package/runtime/src/lib/commands/entity-command-keys.js.map +1 -1
- package/runtime/src/lib/queries/presence-query-keys.d.ts +2 -0
- package/runtime/src/lib/queries/presence-query-keys.d.ts.map +1 -1
- package/runtime/src/lib/queries/presence-query-keys.js +3 -1
- package/runtime/src/lib/queries/presence-query-keys.js.map +1 -1
- package/text-template/src/index.d.ts +2 -0
- package/text-template/src/index.d.ts.map +1 -0
- package/text-template/src/index.js +5 -0
- package/text-template/src/index.js.map +1 -0
- package/text-template/src/lib/blocks.d.ts +5 -0
- package/text-template/src/lib/blocks.d.ts.map +1 -0
- package/text-template/src/lib/blocks.js +169 -0
- package/text-template/src/lib/blocks.js.map +1 -0
- package/text-template/src/lib/create-engine.d.ts +7 -0
- package/text-template/src/lib/create-engine.d.ts.map +1 -0
- package/text-template/src/lib/create-engine.js +117 -0
- package/text-template/src/lib/create-engine.js.map +1 -0
- package/text-template/src/lib/eval.util.d.ts +16 -0
- package/text-template/src/lib/eval.util.d.ts.map +1 -0
- package/text-template/src/lib/eval.util.js +244 -0
- package/text-template/src/lib/eval.util.js.map +1 -0
- package/text-template/src/lib/format.util.d.ts +11 -0
- package/text-template/src/lib/format.util.d.ts.map +1 -0
- package/text-template/src/lib/format.util.js +221 -0
- package/text-template/src/lib/format.util.js.map +1 -0
- package/text-template/src/lib/index.d.ts +10 -0
- package/text-template/src/lib/index.d.ts.map +1 -0
- package/text-template/src/lib/index.js +19 -0
- package/text-template/src/lib/index.js.map +1 -0
- package/text-template/src/lib/parse.d.ts +3 -0
- package/text-template/src/lib/parse.d.ts.map +1 -0
- package/text-template/src/lib/parse.js +356 -0
- package/text-template/src/lib/parse.js.map +1 -0
- package/text-template/src/lib/pipes.d.ts +3 -0
- package/text-template/src/lib/pipes.d.ts.map +1 -0
- package/text-template/src/lib/pipes.js +61 -0
- package/text-template/src/lib/pipes.js.map +1 -0
- package/text-template/src/lib/text-template.constants.d.ts +7 -0
- package/text-template/src/lib/text-template.constants.d.ts.map +1 -0
- package/text-template/src/lib/text-template.constants.js +35 -0
- package/text-template/src/lib/text-template.constants.js.map +1 -0
- package/text-template/src/lib/text-template.errors.d.ts +4 -0
- package/text-template/src/lib/text-template.errors.d.ts.map +1 -0
- package/text-template/src/lib/text-template.errors.js +13 -0
- package/text-template/src/lib/text-template.errors.js.map +1 -0
- package/text-template/src/lib/text-template.types.d.ts +108 -0
- package/text-template/src/lib/text-template.types.d.ts.map +1 -0
- package/text-template/src/lib/text-template.types.js +4 -0
- 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"}
|