@plumile/backoffice-core 0.1.104 → 0.1.106
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/lib/esm/base64.d.ts.map +1 -1
- package/lib/esm/base64.js +12 -1
- package/lib/esm/billing.d.ts +25 -0
- package/lib/esm/billing.d.ts.map +1 -0
- package/lib/esm/billing.js +34 -0
- package/lib/esm/builders.d.ts +85 -3
- package/lib/esm/builders.d.ts.map +1 -1
- package/lib/esm/builders.js +206 -6
- package/lib/esm/config/columns.d.ts +15 -0
- package/lib/esm/config/columns.d.ts.map +1 -0
- package/lib/esm/config/columns.js +163 -0
- package/lib/esm/config/detail.d.ts +43 -0
- package/lib/esm/config/detail.d.ts.map +1 -0
- package/lib/esm/config/detail.js +122 -0
- package/lib/esm/config/filters.d.ts +41 -0
- package/lib/esm/config/filters.d.ts.map +1 -0
- package/lib/esm/config/filters.js +98 -0
- package/lib/esm/config/list.d.ts +2 -0
- package/lib/esm/config/list.d.ts.map +1 -0
- package/lib/esm/config/list.js +14 -0
- package/lib/esm/config/record.d.ts +10 -0
- package/lib/esm/config/record.d.ts.map +1 -0
- package/lib/esm/config/record.js +147 -0
- package/lib/esm/config/sorts.d.ts +8 -0
- package/lib/esm/config/sorts.d.ts.map +1 -0
- package/lib/esm/config/sorts.js +10 -0
- package/lib/esm/filters/schema.d.ts.map +1 -1
- package/lib/esm/filters/schema.js +5 -2
- package/lib/esm/index.d.ts +8 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +9 -1
- package/lib/esm/resolve.d.ts +4 -3
- package/lib/esm/resolve.d.ts.map +1 -1
- package/lib/esm/resolve.js +1 -1
- package/lib/esm/state/buildListHref.d.ts.map +1 -1
- package/lib/esm/state/buildListHref.js +5 -3
- package/lib/esm/taskState.d.ts +15 -0
- package/lib/esm/taskState.d.ts.map +1 -0
- package/lib/esm/taskState.js +22 -0
- package/lib/esm/type-tests/operation-bound-config.test-d.d.ts +6 -0
- package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -0
- package/lib/esm/type-tests/operation-bound-config.test-d.js +169 -0
- package/lib/esm/types.d.ts +110 -44
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/base64.d.ts.map +1 -1
- package/lib/types/billing.d.ts +25 -0
- package/lib/types/billing.d.ts.map +1 -0
- package/lib/types/builders.d.ts +85 -3
- package/lib/types/builders.d.ts.map +1 -1
- package/lib/types/config/columns.d.ts +15 -0
- package/lib/types/config/columns.d.ts.map +1 -0
- package/lib/types/config/detail.d.ts +43 -0
- package/lib/types/config/detail.d.ts.map +1 -0
- package/lib/types/config/filters.d.ts +41 -0
- package/lib/types/config/filters.d.ts.map +1 -0
- package/lib/types/config/list.d.ts +2 -0
- package/lib/types/config/list.d.ts.map +1 -0
- package/lib/types/config/record.d.ts +10 -0
- package/lib/types/config/record.d.ts.map +1 -0
- package/lib/types/config/sorts.d.ts +8 -0
- package/lib/types/config/sorts.d.ts.map +1 -0
- package/lib/types/filters/schema.d.ts.map +1 -1
- package/lib/types/index.d.ts +8 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/resolve.d.ts +4 -3
- package/lib/types/resolve.d.ts.map +1 -1
- package/lib/types/state/buildListHref.d.ts.map +1 -1
- package/lib/types/taskState.d.ts +15 -0
- package/lib/types/taskState.d.ts.map +1 -0
- package/lib/types/type-tests/operation-bound-config.test-d.d.ts +6 -0
- package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -0
- package/lib/types/types.d.ts +110 -44
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +12 -2
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
const isDateColumn = (key) => {
|
|
2
|
+
return key.endsWith('At') || key.endsWith('Date');
|
|
3
|
+
};
|
|
4
|
+
const TECHNICAL_KEY_PARTS = [
|
|
5
|
+
'id',
|
|
6
|
+
'sha',
|
|
7
|
+
'hash',
|
|
8
|
+
'token',
|
|
9
|
+
'payload',
|
|
10
|
+
'json',
|
|
11
|
+
'raw',
|
|
12
|
+
'credential',
|
|
13
|
+
'fingerprint',
|
|
14
|
+
'cloneUrl',
|
|
15
|
+
];
|
|
16
|
+
const STATUS_KEY_PARTS = [
|
|
17
|
+
'status',
|
|
18
|
+
'state',
|
|
19
|
+
'kind',
|
|
20
|
+
'level',
|
|
21
|
+
'locked',
|
|
22
|
+
'risk',
|
|
23
|
+
];
|
|
24
|
+
const RELATION_KEY_PARTS = [
|
|
25
|
+
'organization',
|
|
26
|
+
'group',
|
|
27
|
+
'project',
|
|
28
|
+
'initiative',
|
|
29
|
+
'task',
|
|
30
|
+
'user',
|
|
31
|
+
'conversation',
|
|
32
|
+
'account',
|
|
33
|
+
];
|
|
34
|
+
const METRIC_KEY_PARTS = [
|
|
35
|
+
'count',
|
|
36
|
+
'amount',
|
|
37
|
+
'total',
|
|
38
|
+
'billing',
|
|
39
|
+
'cost',
|
|
40
|
+
'quantity',
|
|
41
|
+
'category',
|
|
42
|
+
];
|
|
43
|
+
const matchesKeyPart = (key, parts) => {
|
|
44
|
+
const normalized = key.toLowerCase();
|
|
45
|
+
return parts.some((part) => {
|
|
46
|
+
return normalized.includes(part.toLowerCase());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const resolveDefaultVisibility = (key, index) => {
|
|
50
|
+
if (index === 0) {
|
|
51
|
+
return {
|
|
52
|
+
priority: 'primary',
|
|
53
|
+
mobile: 'title',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (matchesKeyPart(key, TECHNICAL_KEY_PARTS)) {
|
|
57
|
+
return {
|
|
58
|
+
priority: 'debug',
|
|
59
|
+
mobile: 'hidden',
|
|
60
|
+
minVisibleAt: 'lg',
|
|
61
|
+
debugOnly: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (matchesKeyPart(key, STATUS_KEY_PARTS)) {
|
|
65
|
+
return {
|
|
66
|
+
priority: 'important',
|
|
67
|
+
mobile: 'status',
|
|
68
|
+
minVisibleAt: 'sm',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (matchesKeyPart(key, METRIC_KEY_PARTS) || isDateColumn(key)) {
|
|
72
|
+
return {
|
|
73
|
+
priority: 'secondary',
|
|
74
|
+
align: 'right',
|
|
75
|
+
mobile: 'meta',
|
|
76
|
+
minVisibleAt: 'md',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (matchesKeyPart(key, RELATION_KEY_PARTS)) {
|
|
80
|
+
return {
|
|
81
|
+
priority: 'important',
|
|
82
|
+
mobile: 'subtitle',
|
|
83
|
+
minVisibleAt: 'md',
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
priority: 'secondary',
|
|
88
|
+
mobile: 'meta',
|
|
89
|
+
minVisibleAt: 'lg',
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
const readColumnValue = (row, columnId) => {
|
|
93
|
+
const direct = row[columnId];
|
|
94
|
+
if (typeof direct === 'string' || typeof direct === 'number') {
|
|
95
|
+
return direct;
|
|
96
|
+
}
|
|
97
|
+
if (Array.isArray(direct)) {
|
|
98
|
+
return direct.length;
|
|
99
|
+
}
|
|
100
|
+
if (columnId.endsWith('s')) {
|
|
101
|
+
const countKey = `${columnId.slice(0, -1)}Count`;
|
|
102
|
+
const countValue = row[countKey];
|
|
103
|
+
if (typeof countValue === 'number') {
|
|
104
|
+
return countValue;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
};
|
|
109
|
+
const buildDefaultCell = (columnId) => {
|
|
110
|
+
if (columnId === 'id') {
|
|
111
|
+
return {
|
|
112
|
+
type: 'text',
|
|
113
|
+
value: () => {
|
|
114
|
+
return '';
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (isDateColumn(columnId)) {
|
|
119
|
+
return {
|
|
120
|
+
type: 'dateTime',
|
|
121
|
+
value: (row) => {
|
|
122
|
+
const value = row[columnId];
|
|
123
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
type: 'text',
|
|
132
|
+
value: (row) => {
|
|
133
|
+
return readColumnValue(row, columnId);
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
export const defineColumns = () => {
|
|
138
|
+
return (columns, options) => {
|
|
139
|
+
const defaultCell = options.defaultCell ?? 'auto';
|
|
140
|
+
const filteredColumns = columns.filter((column) => {
|
|
141
|
+
return column.key !== 'id';
|
|
142
|
+
});
|
|
143
|
+
return filteredColumns.map((column, index) => {
|
|
144
|
+
const { cell: columnCell, copy, header, key, size, visibility } = column;
|
|
145
|
+
let cell = columnCell ?? null;
|
|
146
|
+
if (cell == null && defaultCell === 'auto') {
|
|
147
|
+
cell = buildDefaultCell(key);
|
|
148
|
+
}
|
|
149
|
+
if (cell == null) {
|
|
150
|
+
throw new Error(`Missing cell definition for column "${key}" in ${options.entity}.`);
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
key,
|
|
154
|
+
size,
|
|
155
|
+
header,
|
|
156
|
+
copy,
|
|
157
|
+
cell,
|
|
158
|
+
visibility: visibility ?? resolveDefaultVisibility(key, index),
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFO0lBQzVDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsSUFBSTtJQUNKLEtBQUs7SUFDTCxNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7SUFDVCxNQUFNO0lBQ04sS0FBSztJQUNMLFlBQVk7SUFDWixhQUFhO0lBQ2IsVUFBVTtDQUNGLENBQUM7QUFFWCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLFFBQVE7SUFDUixPQUFPO0lBQ1AsTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtDQUNFLENBQUM7QUFFWCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGNBQWM7SUFDZCxPQUFPO0lBQ1AsU0FBUztJQUNULFlBQVk7SUFDWixNQUFNO0lBQ04sTUFBTTtJQUNOLGNBQWM7SUFDZCxTQUFTO0NBQ0QsQ0FBQztBQUVYLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsT0FBTztJQUNQLFFBQVE7SUFDUixPQUFPO0lBQ1AsU0FBUztJQUNULE1BQU07SUFDTixVQUFVO0lBQ1YsVUFBVTtDQUNGLENBQUM7QUFFWCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF3QixFQUFXLEVBQUU7SUFDeEUsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3pCLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMs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SSxHQUFHLGdCQUFnQixDQUFvQixHQUFHLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBRUQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUNBQXVDLEdBQUcsUUFBUSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQ3BFLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztnQkFDTCxHQUFHO2dCQUNILElBQUk7Z0JBQ0osTUFBTTtnQkFDTixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osVUFBVSxFQUFFLFVBQVUsSUFBSSx3QkFBd0IsQ0FBVSxHQUFHLEVBQUUsS0FBSyxDQUFDO2FBQ3hFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VGaWVsZFNpemUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5jb25zdCBpc0RhdGVDb2x1bW4gPSAoa2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGtleS5lbmRzV2l0aCgnQXQnKSB8fCBrZXkuZW5kc1dpdGgoJ0RhdGUnKTtcbn07XG5cbmNvbnN0IFRFQ0hOSUNBTF9LRVlfUEFSVFMgPSBbXG4gICdpZCcsXG4gICdzaGEnLFxuICAnaGFzaCcsXG4gICd0b2tlbicsXG4gICdwYXlsb2FkJyxcbiAgJ2pzb24nLFxuICAncmF3JyxcbiAgJ2NyZWRlbnRpYWwnLFxuICAnZmluZ2VycHJpbnQnLFxuICAnY2xvbmVVcmwnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgU1RBVFVTX0tFWV9QQVJUUyA9IFtcbiAgJ3N0YXR1cycsXG4gICdzdGF0ZScsXG4gICdraW5kJyxcbiAgJ2xldmVsJyxcbiAgJ2xvY2tlZCcsXG4gICdyaXNrJyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFJFTEFUSU9OX0tFWV9QQVJUUyA9IFtcbiAgJ29yZ2FuaXphdGlvbicsXG4gICdncm91cCcsXG4gICdwcm9qZWN0JyxcbiAgJ2luaXRpYXRpdmUnLFxuICAndGFzaycsXG4gICd1c2VyJyxcbiAgJ2NvbnZlcnNhdGlvbicsXG4gICdhY2NvdW50Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IE1FVFJJQ19LRVlfUEFSVFMgPSBbXG4gICdjb3VudCcsXG4gICdhbW91bnQnLFxuICAndG90YWwnLFxuICAnYmlsbGluZycsXG4gICdjb3N0JyxcbiAgJ3F1YW50aXR5JyxcbiAgJ2NhdGVnb3J5Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IG1hdGNoZXNLZXlQYXJ0ID0gKGtleTogc3RyaW5nLCBwYXJ0czogcmVhZG9ubHkgc3RyaW5nW10pOiBib29sZWFuID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gcGFydHMuc29tZSgocGFydCkgPT4ge1xuICAgIHJldHVybiBub3JtYWxpemVkLmluY2x1ZGVzKHBhcnQudG9Mb3dlckNhc2UoKSk7XG4gIH0pO1xufTtcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRWaXNpYmlsaXR5ID0gPFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3Q+KFxuICBrZXk6IHN0cmluZyxcbiAgaW5kZXg6IG51bWJlcixcbik6IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+Wyd2aXNpYmlsaXR5J10gPT4ge1xuICBpZiAoaW5kZXggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgIG1vYmlsZTogJ3RpdGxlJyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1hdGNoZXNLZXlQYXJ0KGtleSwgVEVDSE5JQ0FMX0tFWV9QQVJUUykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJpb3JpdHk6ICdkZWJ1ZycsXG4gICAgICBtb2JpbGU6ICdoaWRkZW4nLFxuICAgICAgbWluVmlzaWJsZUF0OiAnbGcnLFxuICAgICAgZGVidWdPbmx5OiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBTVEFUVVNfS0VZX1BBUlRTKSkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmlvcml0eTogJ2ltcG9ydGFudCcsXG4gICAgICBtb2JpbGU6ICdzdGF0dXMnLFxuICAgICAgbWluVmlzaWJsZUF0OiAnc20nLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBNRVRSSUNfS0VZX1BBUlRTKSB8fCBpc0RhdGVDb2x1bW4oa2V5KSkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcbiAgICAgIG1vYmlsZTogJ21ldGEnLFxuICAgICAgbWluVmlzaWJsZUF0OiAnbWQnLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBSRUxBVElPTl9LRVlfUEFSVFMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByaW9yaXR5OiAnaW1wb3J0YW50JyxcbiAgICAgIG1vYmlsZTogJ3N1YnRpdGxlJyxcbiAgICAgIG1pblZpc2libGVBdDogJ21kJyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgbW9iaWxlOiAnbWV0YScsXG4gICAgbWluVmlzaWJsZUF0OiAnbGcnLFxuICB9O1xufTtcblxuY29uc3QgcmVhZENvbHVtblZhbHVlID0gPFxuICBSb3dWaWV3IGV4dGVuZHMgb2JqZWN0LFxuICBDb2x1bW5JZCBleHRlbmRzIGtleW9mIFJvd1ZpZXcgJiBzdHJpbmcsXG4+KFxuICByb3c6IFJvd1ZpZXcsXG4gIGNvbHVtbklkOiBDb2x1bW5JZCxcbik6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPT4ge1xuICBjb25zdCBkaXJlY3QgPSByb3dbY29sdW1uSWRdO1xuICBpZiAodHlwZW9mIGRpcmVjdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGRpcmVjdCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZGlyZWN0O1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRpcmVjdCkpIHtcbiAgICByZXR1cm4gZGlyZWN0Lmxlbmd0aDtcbiAgfVxuICBpZiAoY29sdW1uSWQuZW5kc1dpdGgoJ3MnKSkge1xuICAgIGNvbnN0IGNvdW50S2V5ID0gYCR7Y29sdW1uSWQuc2xpY2UoMCwgLTEpfUNvdW50YCBhcyBrZXlvZiBSb3dWaWV3ICYgc3RyaW5nO1xuICAgIGNvbnN0IGNvdW50VmFsdWUgPSByb3dbY291bnRLZXldO1xuICAgIGlmICh0eXBlb2YgY291bnRWYWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBjb3VudFZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VDb2x1bW5EZWZpbml0aW9uPFxuICBSb3dWaWV3LFxuICBDb2x1bW5JZCBleHRlbmRzIGtleW9mIFJvd1ZpZXcgJiBzdHJpbmcsXG4+ID0ge1xuICBrZXk6IENvbHVtbklkO1xuICBzaXplOiBCYWNrb2ZmaWNlRmllbGRTaXplO1xuICBoZWFkZXI6IEkxOG5MYWJlbDtcbiAgY29weT86IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+Wydjb3B5J107XG4gIGNlbGw/OiBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PlsnY2VsbCddO1xuICB2aXNpYmlsaXR5PzogQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bJ3Zpc2liaWxpdHknXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VDb2x1bW5zT3B0aW9ucyA9IHtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIGRlZmF1bHRDZWxsPzogJ2F1dG8nIHwgJ25vbmUnO1xufTtcblxuY29uc3QgYnVpbGREZWZhdWx0Q2VsbCA9IDxcbiAgUm93VmlldyBleHRlbmRzIG9iamVjdCxcbiAgQ29sdW1uSWQgZXh0ZW5kcyBrZXlvZiBSb3dWaWV3ICYgc3RyaW5nLFxuPihcbiAgY29sdW1uSWQ6IENvbHVtbklkLFxuKTogQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bJ2NlbGwnXSA9PiB7XG4gIGlmIChjb2x1bW5JZCA9PT0gJ2lkJykge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB2YWx1ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBpZiAoaXNEYXRlQ29sdW1uKGNvbHVtbklkKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZGF0ZVRpbWUnLFxuICAgICAgdmFsdWU6IChyb3cpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3dbY29sdW1uSWRdO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgdmFsdWU6IChyb3cpID0+IHtcbiAgICAgIHJldHVybiByZWFkQ29sdW1uVmFsdWUocm93LCBjb2x1bW5JZCk7XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVDb2x1bW5zID0gPFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3Q+KCkgPT4ge1xuICByZXR1cm4gPENvbHVtbklkIGV4dGVuZHMga2V5b2YgUm93VmlldyAmIHN0cmluZz4oXG4gICAgY29sdW1uczogcmVhZG9ubHkgQmFja29mZmljZUNvbHVtbkRlZmluaXRpb248Um93VmlldywgQ29sdW1uSWQ+W10sXG4gICAgb3B0aW9uczogRGVmaW5lQmFja29mZmljZUNvbHVtbnNPcHRpb25zLFxuICApOiByZWFkb25seSBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PltdID0+IHtcbiAgICBjb25zdCBkZWZhdWx0Q2VsbCA9IG9wdGlvbnMuZGVmYXVsdENlbGwgPz8gJ2F1dG8nO1xuICAgIGNvbnN0IGZpbHRlcmVkQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKChjb2x1bW4pID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW4ua2V5ICE9PSAnaWQnO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkQ29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHsgY2VsbDogY29sdW1uQ2VsbCwgY29weSwgaGVhZGVyLCBrZXksIHNpemUsIHZpc2liaWxpdHkgfSA9IGNvbHVtbjtcbiAgICAgIGxldCBjZWxsID0gY29sdW1uQ2VsbCA/PyBudWxsO1xuXG4gICAgICBpZiAoY2VsbCA9PSBudWxsICYmIGRlZmF1bHRDZWxsID09PSAnYXV0bycpIHtcbiAgICAgICAgY2VsbCA9IGJ1aWxkRGVmYXVsdENlbGw8Um93VmlldywgQ29sdW1uSWQ+KGtleSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZWxsID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBNaXNzaW5nIGNlbGwgZGVmaW5pdGlvbiBmb3IgY29sdW1uIFwiJHtrZXl9XCIgaW4gJHtvcHRpb25zLmVudGl0eX0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5LFxuICAgICAgICBzaXplLFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGNvcHksXG4gICAgICAgIGNlbGwsXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkgPz8gcmVzb2x2ZURlZmF1bHRWaXNpYmlsaXR5PFJvd1ZpZXc+KGtleSwgaW5kZXgpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { BackofficeDetailContentSpec, BackofficeDetailFieldSpec, BackofficeDetailHeaderConfig, I18nLabel } from '../types.js';
|
|
2
|
+
type DetailNodeTimestamps = {
|
|
3
|
+
createdAt?: string | number | null;
|
|
4
|
+
updatedAt?: string | number | null;
|
|
5
|
+
created?: {
|
|
6
|
+
at?: string | number | null;
|
|
7
|
+
} | null;
|
|
8
|
+
updated?: {
|
|
9
|
+
at?: string | number | null;
|
|
10
|
+
} | null;
|
|
11
|
+
};
|
|
12
|
+
export declare const resolveNodeFromQuery: <NodeRef>(data: {
|
|
13
|
+
node?: NodeRef | null;
|
|
14
|
+
}) => NodeRef | null;
|
|
15
|
+
export declare const readNodeId: <Node extends {
|
|
16
|
+
id: string;
|
|
17
|
+
}>(node: Node) => string | null;
|
|
18
|
+
export declare const readNodeTitle: <Node extends object>(node: Node) => string | null;
|
|
19
|
+
export declare const readNodeTimestamp: <Node extends DetailNodeTimestamps>(node: Node, key: "createdAt" | "updatedAt") => string | number | null;
|
|
20
|
+
export declare const buildBasicDetailFields: <Node extends {
|
|
21
|
+
id: string;
|
|
22
|
+
} & DetailNodeTimestamps>(options?: {
|
|
23
|
+
includeTimestamps?: boolean;
|
|
24
|
+
}) => readonly BackofficeDetailFieldSpec<Node>[];
|
|
25
|
+
export declare const buildBasicDetailContent: <Node extends {
|
|
26
|
+
id: string;
|
|
27
|
+
} & DetailNodeTimestamps>(title: I18nLabel, extraFields?: readonly BackofficeDetailFieldSpec<Node>[]) => readonly BackofficeDetailContentSpec<Node>[];
|
|
28
|
+
export declare const buildGenericDetailHeader: <Node extends {
|
|
29
|
+
id: string;
|
|
30
|
+
} & DetailNodeTimestamps>(options: {
|
|
31
|
+
title: I18nLabel;
|
|
32
|
+
subtitle?: I18nLabel;
|
|
33
|
+
}) => BackofficeDetailHeaderConfig<Node>;
|
|
34
|
+
export declare const resolveNodeFromConnection: <Row extends {
|
|
35
|
+
id: string;
|
|
36
|
+
}>(data: Record<string, unknown>, detailId: string | undefined, getConnection: (data: Record<string, unknown>) => {
|
|
37
|
+
edges: readonly {
|
|
38
|
+
node: Row;
|
|
39
|
+
}[];
|
|
40
|
+
}) => Row | null;
|
|
41
|
+
export declare const buildPayloadBlockLabel: () => I18nLabel;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../src/config/detail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,SAAS,EACV,MAAM,aAAa,CAAC;AAsBrB,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,EAAE,MAAM;IAClD,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvB,KAAG,OAAO,GAAG,IAUb,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpD,MAAM,IAAI,KACT,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,SAAS,MAAM,EAC/C,MAAM,IAAI,KACT,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,oBAAoB,EACjE,MAAM,IAAI,EACV,KAAK,WAAW,GAAG,WAAW,KAC7B,MAAM,GAAG,MAAM,GAAG,IAiBpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAClD,UAAU;IACV,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,KAAG,SAAS,yBAAyB,CAAC,IAAI,CAAC,EAyB3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAElD,OAAO,SAAS,EAChB,cAAa,SAAS,yBAAyB,CAAC,IAAI,CAAC,EAAO,KAC3D,SAAS,2BAA2B,CAAC,IAAI,CAAC,EAQ5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAClD,SAAS;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,KAAG,4BAA4B,CAAC,IAAI,CAWpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,GAAG,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAClE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,MAAM,GAAG,SAAS,EAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;IAChD,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACjC,KACA,GAAG,GAAG,IAWR,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,SAIzC,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import RelayRuntime from 'relay-runtime';
|
|
2
|
+
import { readRecordValueByKeys } from './record.js';
|
|
3
|
+
const { FRAGMENTS_KEY } = RelayRuntime;
|
|
4
|
+
const CREATED_AT_LABEL = (t) => {
|
|
5
|
+
return t('backoffice.columns.createdAt');
|
|
6
|
+
};
|
|
7
|
+
const UPDATED_AT_LABEL = (t) => {
|
|
8
|
+
return t('backoffice.columns.updatedAt');
|
|
9
|
+
};
|
|
10
|
+
const TITLE_KEYS = [
|
|
11
|
+
'name',
|
|
12
|
+
'title',
|
|
13
|
+
'label',
|
|
14
|
+
'slug',
|
|
15
|
+
'fullSlug',
|
|
16
|
+
'email',
|
|
17
|
+
'tokenId',
|
|
18
|
+
'key',
|
|
19
|
+
];
|
|
20
|
+
export const resolveNodeFromQuery = (data) => {
|
|
21
|
+
const { node } = data;
|
|
22
|
+
if (node == null || typeof node !== 'object') {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const { [FRAGMENTS_KEY]: fragmentMap } = node;
|
|
26
|
+
if (fragmentMap == null || typeof fragmentMap !== 'object') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return node;
|
|
30
|
+
};
|
|
31
|
+
export const readNodeId = (node) => {
|
|
32
|
+
const value = node.id;
|
|
33
|
+
if (value.trim() !== '') {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
export const readNodeTitle = (node) => {
|
|
39
|
+
const value = readRecordValueByKeys(node, TITLE_KEYS);
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return String(value);
|
|
44
|
+
};
|
|
45
|
+
export const readNodeTimestamp = (node, key) => {
|
|
46
|
+
const direct = node[key];
|
|
47
|
+
if (typeof direct === 'string' || typeof direct === 'number') {
|
|
48
|
+
return direct;
|
|
49
|
+
}
|
|
50
|
+
let nestedKey = 'updated';
|
|
51
|
+
if (key === 'createdAt') {
|
|
52
|
+
nestedKey = 'created';
|
|
53
|
+
}
|
|
54
|
+
const nested = node[nestedKey];
|
|
55
|
+
if (nested != null && typeof nested === 'object') {
|
|
56
|
+
const { at } = nested;
|
|
57
|
+
if (typeof at === 'string' || typeof at === 'number') {
|
|
58
|
+
return at;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
};
|
|
63
|
+
export const buildBasicDetailFields = (options) => {
|
|
64
|
+
const fields = [];
|
|
65
|
+
if (options?.includeTimestamps ?? true) {
|
|
66
|
+
fields.push({
|
|
67
|
+
type: 'dateTime',
|
|
68
|
+
size: 'm',
|
|
69
|
+
label: CREATED_AT_LABEL,
|
|
70
|
+
value: (node) => {
|
|
71
|
+
return readNodeTimestamp(node, 'createdAt');
|
|
72
|
+
},
|
|
73
|
+
}, {
|
|
74
|
+
type: 'dateTime',
|
|
75
|
+
size: 'm',
|
|
76
|
+
label: UPDATED_AT_LABEL,
|
|
77
|
+
value: (node) => {
|
|
78
|
+
return readNodeTimestamp(node, 'updatedAt');
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return fields;
|
|
83
|
+
};
|
|
84
|
+
export const buildBasicDetailContent = (title, extraFields = []) => {
|
|
85
|
+
return [
|
|
86
|
+
{
|
|
87
|
+
kind: 'section',
|
|
88
|
+
title,
|
|
89
|
+
fields: [...extraFields, ...buildBasicDetailFields()],
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
};
|
|
93
|
+
export const buildGenericDetailHeader = (options) => {
|
|
94
|
+
return {
|
|
95
|
+
title: options.title,
|
|
96
|
+
subtitle: options.subtitle ?? options.title,
|
|
97
|
+
titleValue: (node) => {
|
|
98
|
+
return readNodeTitle(node);
|
|
99
|
+
},
|
|
100
|
+
id: (node) => {
|
|
101
|
+
return readNodeId(node);
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export const resolveNodeFromConnection = (data, detailId, getConnection) => {
|
|
106
|
+
const connection = getConnection(data);
|
|
107
|
+
const { edges } = connection;
|
|
108
|
+
if (detailId == null || detailId.trim() === '') {
|
|
109
|
+
return edges[0]?.node ?? null;
|
|
110
|
+
}
|
|
111
|
+
const match = edges.find((edge) => {
|
|
112
|
+
const id = readNodeId(edge.node);
|
|
113
|
+
return id === detailId;
|
|
114
|
+
});
|
|
115
|
+
return match?.node ?? null;
|
|
116
|
+
};
|
|
117
|
+
export const buildPayloadBlockLabel = () => {
|
|
118
|
+
return (t) => {
|
|
119
|
+
return t('backoffice.tools.output');
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9kZXRhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBUXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFFeEUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQztBQUV2QyxNQUFNLGdCQUFnQixHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDeEMsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFDRixNQUFNLGdCQUFnQixHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDeEMsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFDRixNQUFNLFVBQVUsR0FBRztJQUNqQixNQUFNO0lBQ04sT0FBTztJQUNQLE9BQU87SUFDUCxNQUFNO0lBQ04sVUFBVTtJQUNWLE9BQU87SUFDUCxTQUFTO0lBQ1QsS0FBSztDQUNHLENBQUM7QUFTWCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFVLElBRTdDLEVBQWtCLEVBQUU7SUFDbkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBK0IsQ0FBQztJQUN6RSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxD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RTtJQUNwRCxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDWCxPQUFPLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWxheVJ1bnRpbWUgZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsRmllbGRTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsSGVhZGVyQ29uZmlnLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJlYWRSZWNvcmRWYWx1ZUJ5S2V5cywgdHlwZSBVbmtub3duUmVjb3JkIH0gZnJvbSAnLi9yZWNvcmQuanMnO1xuXG5jb25zdCB7IEZSQUdNRU5UU19LRVkgfSA9IFJlbGF5UnVudGltZTtcblxuY29uc3QgQ1JFQVRFRF9BVF9MQUJFTDogSTE4bkxhYmVsID0gKHQpID0+IHtcbiAgcmV0dXJuIHQoJ2JhY2tvZmZpY2UuY29sdW1ucy5jcmVhdGVkQXQnKTtcbn07XG5jb25zdCBVUERBVEVEX0FUX0xBQkVMOiBJMThuTGFiZWwgPSAodCkgPT4ge1xuICByZXR1cm4gdCgnYmFja29mZmljZS5jb2x1bW5zLnVwZGF0ZWRBdCcpO1xufTtcbmNvbnN0IFRJVExFX0tFWVMgPSBbXG4gICduYW1lJyxcbiAgJ3RpdGxlJyxcbiAgJ2xhYmVsJyxcbiAgJ3NsdWcnLFxuICAnZnVsbFNsdWcnLFxuICAnZW1haWwnLFxuICAndG9rZW5JZCcsXG4gICdrZXknLFxuXSBhcyBjb25zdDtcblxudHlwZSBEZXRhaWxOb2RlVGltZXN0YW1wcyA9IHtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgdXBkYXRlZEF0Pzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgY3JlYXRlZD86IHsgYXQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIH0gfCBudWxsO1xuICB1cGRhdGVkPzogeyBhdD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfSB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU5vZGVGcm9tUXVlcnkgPSA8Tm9kZVJlZj4oZGF0YToge1xuICBub2RlPzogTm9kZVJlZiB8IG51bGw7XG59KTogTm9kZVJlZiB8IG51bGwgPT4ge1xuICBjb25zdCB7IG5vZGUgfSA9IGRhdGE7XG4gIGlmIChub2RlID09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgeyBbRlJBR01FTlRTX0tFWV06IGZyYWdtZW50TWFwIH0gPSBub2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoZnJhZ21lbnRNYXAgPT0gbnVsbCB8fCB0eXBlb2YgZnJhZ21lbnRNYXAgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZE5vZGVJZCA9IDxOb2RlIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0+KFxuICBub2RlOiBOb2RlLFxuKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHZhbHVlID0gbm9kZS5pZDtcbiAgaWYgKHZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZE5vZGVUaXRsZSA9IDxOb2RlIGV4dGVuZHMgb2JqZWN0PihcbiAgbm9kZTogTm9kZSxcbik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHJlYWRSZWNvcmRWYWx1ZUJ5S2V5cyhub2RlIGFzIFVua25vd25SZWNvcmQsIFRJVExFX0tFWVMpO1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlYWROb2RlVGltZXN0YW1wID0gPE5vZGUgZXh0ZW5kcyBEZXRhaWxOb2RlVGltZXN0YW1wcz4oXG4gIG5vZGU6IE5vZGUsXG4gIGtleTogJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jyxcbik6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPT4ge1xuICBjb25zdCBkaXJlY3QgPSBub2RlW2tleV07XG4gIGlmICh0eXBlb2YgZGlyZWN0ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgZGlyZWN0ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBkaXJlY3Q7XG4gIH1cbiAgbGV0IG5lc3RlZEtleTogJ2NyZWF0ZWQnIHwgJ3VwZGF0ZWQnID0gJ3VwZGF0ZWQnO1xuICBpZiAoa2V5ID09PSAnY3JlYXRlZEF0Jykge1xuICAgIG5lc3RlZEtleSA9ICdjcmVhdGVkJztcbiAgfVxuICBjb25zdCBuZXN0ZWQgPSBub2RlW25lc3RlZEtleV07XG4gIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHsgYXQgfSA9IG5lc3RlZCBhcyBVbmtub3duUmVjb3JkO1xuICAgIGlmICh0eXBlb2YgYXQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBhdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYXNpY0RldGFpbEZpZWxkcyA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KG9wdGlvbnM/OiB7XG4gIGluY2x1ZGVUaW1lc3RhbXBzPzogYm9vbGVhbjtcbn0pOiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsRmllbGRTcGVjPE5vZGU+W10gPT4ge1xuICBjb25zdCBmaWVsZHM6IEJhY2tvZmZpY2VEZXRhaWxGaWVsZFNwZWM8Tm9kZT5bXSA9IFtdO1xuXG4gIGlmIChvcHRpb25zPy5pbmNsdWRlVGltZXN0YW1wcyA/PyB0cnVlKSB7XG4gICAgZmllbGRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdkYXRlVGltZScsXG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgbGFiZWw6IENSRUFURURfQVRfTEFCRUwsXG4gICAgICAgIHZhbHVlOiAobm9kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZWFkTm9kZVRpbWVzdGFtcChub2RlLCAnY3JlYXRlZEF0Jyk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZGF0ZVRpbWUnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIGxhYmVsOiBVUERBVEVEX0FUX0xBQkVMLFxuICAgICAgICB2YWx1ZTogKG5vZGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVhZE5vZGVUaW1lc3RhbXAobm9kZSwgJ3VwZGF0ZWRBdCcpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhc2ljRGV0YWlsQ29udGVudCA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KFxuICB0aXRsZTogSTE4bkxhYmVsLFxuICBleHRyYUZpZWxkczogcmVhZG9ubHkgQmFja29mZmljZURldGFpbEZpZWxkU3BlYzxOb2RlPltdID0gW10sXG4pOiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8Tm9kZT5bXSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAga2luZDogJ3NlY3Rpb24nLFxuICAgICAgdGl0bGUsXG4gICAgICBmaWVsZHM6IFsuLi5leHRyYUZpZWxkcywgLi4uYnVpbGRCYXNpY0RldGFpbEZpZWxkczxOb2RlPigpXSxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgc3VidGl0bGU/OiBJMThuTGFiZWw7XG59KTogQmFja29mZmljZURldGFpbEhlYWRlckNvbmZpZzxOb2RlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgc3VidGl0bGU6IG9wdGlvbnMuc3VidGl0bGUgPz8gb3B0aW9ucy50aXRsZSxcbiAgICB0aXRsZVZhbHVlOiAobm9kZSkgPT4ge1xuICAgICAgcmV0dXJuIHJlYWROb2RlVGl0bGUobm9kZSk7XG4gICAgfSxcbiAgICBpZDogKG5vZGUpID0+IHtcbiAgICAgIHJldHVybiByZWFkTm9kZUlkKG5vZGUpO1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU5vZGVGcm9tQ29ubmVjdGlvbiA9IDxSb3cgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4oXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBkZXRhaWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICBlZGdlczogcmVhZG9ubHkgeyBub2RlOiBSb3cgfVtdO1xuICB9LFxuKTogUm93IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBnZXRDb25uZWN0aW9uKGRhdGEpO1xuICBjb25zdCB7IGVkZ2VzIH0gPSBjb25uZWN0aW9uO1xuICBpZiAoZGV0YWlsSWQgPT0gbnVsbCB8fCBkZXRhaWxJZC50cmltKCkgPT09ICcnKSB7XG4gICAgcmV0dXJuIGVkZ2VzWzBdPy5ub2RlID8/IG51bGw7XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSBlZGdlcy5maW5kKChlZGdlKSA9PiB7XG4gICAgY29uc3QgaWQgPSByZWFkTm9kZUlkKGVkZ2Uubm9kZSk7XG4gICAgcmV0dXJuIGlkID09PSBkZXRhaWxJZDtcbiAgfSk7XG4gIHJldHVybiBtYXRjaD8ubm9kZSA/PyBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUGF5bG9hZEJsb2NrTGFiZWwgPSAoKTogSTE4bkxhYmVsID0+IHtcbiAgcmV0dXJuICh0KSA9PiB7XG4gICAgcmV0dXJuIHQoJ2JhY2tvZmZpY2UudG9vbHMub3V0cHV0Jyk7XG4gIH07XG59O1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BackofficeFilterSpec, I18nLabel } from '../types.js';
|
|
2
|
+
export type BackofficeLegacyFilterOption = {
|
|
3
|
+
id: string;
|
|
4
|
+
value: string;
|
|
5
|
+
label: I18nLabel;
|
|
6
|
+
};
|
|
7
|
+
type BackofficeLegacyFilterBase<Where> = {
|
|
8
|
+
id: string;
|
|
9
|
+
label: I18nLabel;
|
|
10
|
+
whereKey?: Extract<keyof Where, string>;
|
|
11
|
+
path?: readonly string[];
|
|
12
|
+
placement?: 'quick' | 'drawer' | 'both';
|
|
13
|
+
};
|
|
14
|
+
export type BackofficeLegacyFilterSpec<Where> = (BackofficeLegacyFilterBase<Where> & {
|
|
15
|
+
kind: 'textContains';
|
|
16
|
+
placeholderLabel?: I18nLabel;
|
|
17
|
+
placeholderText?: I18nLabel;
|
|
18
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
19
|
+
kind: 'datetime';
|
|
20
|
+
mode?: 'from' | 'to' | 'exact';
|
|
21
|
+
placeholderLabel?: I18nLabel;
|
|
22
|
+
placeholderText?: I18nLabel;
|
|
23
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
24
|
+
kind: 'number';
|
|
25
|
+
placeholderLabel?: I18nLabel;
|
|
26
|
+
placeholderText?: I18nLabel;
|
|
27
|
+
inputMode?: 'numeric' | 'decimal';
|
|
28
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
29
|
+
kind: 'select';
|
|
30
|
+
options: readonly BackofficeLegacyFilterOption[];
|
|
31
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
32
|
+
kind: 'boolean';
|
|
33
|
+
trueLabel?: I18nLabel;
|
|
34
|
+
falseLabel?: I18nLabel;
|
|
35
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
36
|
+
kind: 'entityId';
|
|
37
|
+
entity: string;
|
|
38
|
+
});
|
|
39
|
+
export declare function mapFilters<Where extends Record<string, unknown>>(filters: readonly BackofficeLegacyFilterSpec<Where>[]): readonly BackofficeFilterSpec<Where>[];
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/config/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,IAAI;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,KAAK,IACxC,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAClD,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAwCP,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,SAAS,0BAA0B,CAAC,KAAK,CAAC,EAAE,GACpD,SAAS,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAwExC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { readWhereValue, setWhereValue } from '../filters/where.js';
|
|
2
|
+
const buildWhere = (key, value, path) => {
|
|
3
|
+
const next = setWhereValue(null, key, value, path);
|
|
4
|
+
if (next == null) {
|
|
5
|
+
return {};
|
|
6
|
+
}
|
|
7
|
+
return next;
|
|
8
|
+
};
|
|
9
|
+
const buildPickerScope = (where) => {
|
|
10
|
+
const scope = {};
|
|
11
|
+
const keys = [
|
|
12
|
+
'organizationId',
|
|
13
|
+
'groupId',
|
|
14
|
+
'projectId',
|
|
15
|
+
'initiativeId',
|
|
16
|
+
];
|
|
17
|
+
keys.forEach((key) => {
|
|
18
|
+
const whereKey = key;
|
|
19
|
+
const value = readWhereValue(where, whereKey);
|
|
20
|
+
if (typeof value === 'string') {
|
|
21
|
+
scope[whereKey] = value;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return scope;
|
|
25
|
+
};
|
|
26
|
+
export function mapFilters(filters) {
|
|
27
|
+
return filters.map((filter) => {
|
|
28
|
+
const key = (filter.whereKey ?? filter.id);
|
|
29
|
+
const base = {
|
|
30
|
+
id: filter.id,
|
|
31
|
+
label: filter.label,
|
|
32
|
+
placement: filter.placement,
|
|
33
|
+
whereKey: filter.whereKey,
|
|
34
|
+
path: filter.path,
|
|
35
|
+
toGraphQL: (value) => {
|
|
36
|
+
return buildWhere(key, value, filter.path);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
switch (filter.kind) {
|
|
40
|
+
case 'textContains':
|
|
41
|
+
return {
|
|
42
|
+
...base,
|
|
43
|
+
kind: 'text',
|
|
44
|
+
placeholderLabel: filter.placeholderLabel,
|
|
45
|
+
placeholderText: filter.placeholderText,
|
|
46
|
+
};
|
|
47
|
+
case 'datetime':
|
|
48
|
+
return {
|
|
49
|
+
...base,
|
|
50
|
+
kind: 'datetime',
|
|
51
|
+
mode: filter.mode,
|
|
52
|
+
placeholderLabel: filter.placeholderLabel,
|
|
53
|
+
placeholderText: filter.placeholderText,
|
|
54
|
+
};
|
|
55
|
+
case 'number':
|
|
56
|
+
return {
|
|
57
|
+
...base,
|
|
58
|
+
kind: 'number',
|
|
59
|
+
placeholderLabel: filter.placeholderLabel,
|
|
60
|
+
placeholderText: filter.placeholderText,
|
|
61
|
+
inputMode: filter.inputMode,
|
|
62
|
+
};
|
|
63
|
+
case 'select':
|
|
64
|
+
return {
|
|
65
|
+
...base,
|
|
66
|
+
kind: 'enum',
|
|
67
|
+
options: filter.options.map((option) => {
|
|
68
|
+
return {
|
|
69
|
+
value: option.value,
|
|
70
|
+
label: option.label,
|
|
71
|
+
};
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
case 'boolean':
|
|
75
|
+
return {
|
|
76
|
+
...base,
|
|
77
|
+
kind: 'boolean',
|
|
78
|
+
trueLabel: filter.trueLabel,
|
|
79
|
+
falseLabel: filter.falseLabel,
|
|
80
|
+
};
|
|
81
|
+
case 'entityId':
|
|
82
|
+
return {
|
|
83
|
+
...base,
|
|
84
|
+
kind: 'entityId',
|
|
85
|
+
entity: filter.entity,
|
|
86
|
+
pickerScope: (where) => {
|
|
87
|
+
return buildPickerScope(where);
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
default:
|
|
91
|
+
return {
|
|
92
|
+
...base,
|
|
93
|
+
kind: 'text',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBZ0RwRSxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFpQyxFQUNqQyxLQUFjLEVBQ2QsSUFBd0IsRUFDUixFQUFFO0lBQ2xCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLElBQXNCLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFtQixFQUNXLEVBQUU7SUFDaEMsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztJQUMvQyxNQUFNLElBQUksR0FBRztRQUNYLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsV0FBVztRQUNYLGNBQWM7S0FDTixDQUFDO0lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLEdBQW1DLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUdqQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFLRixNQUFNLFVBQVUsVUFBVSxDQUN4QixPQUFxRDtJQUVyRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUM1QixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBaUMsQ0FBQztRQUMzRSxNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsQ0FBQztTQUNGLENBQUM7UUFFRixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU87b0JBQ0wsR0FBRyxJQUFJO29CQUNQLElBQUksRUFBRSxNQUFNO29CQUNaLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7b0JBQ3pDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtpQkFDeEMsQ0FBQztZQUNKLEtBQUssVUFBVTtnQkFDYixPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO29CQUN6QyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7aUJBQ3hDLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtvQkFDekMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO29CQUN2QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQzVCLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLE1BQU07b0JBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ3JDLE9BQU87NEJBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLOzRCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7eUJBQ3BCLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNILENBQUM7WUFDSixLQUFLLFNBQVM7Z0JBQ1osT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUMzQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7aUJBQzlCLENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ3JCLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pDLENBQUM7aUJBQ0YsQ0FBQztZQUNKO2dCQUNFLE9BQU87b0JBQ0wsR0FBRyxJQUFJO29CQUNQLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVBpY2tlclNjb3BlLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJlYWRXaGVyZVZhbHVlLCBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJPcHRpb24gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBJMThuTGFiZWw7XG59O1xuXG50eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgd2hlcmVLZXk/OiBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHBsYWNlbWVudD86ICdxdWljaycgfCAnZHJhd2VyJyB8ICdib3RoJztcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlPiA9XG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICd0ZXh0Q29udGFpbnMnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZGF0ZXRpbWUnO1xuICAgICAgbW9kZT86ICdmcm9tJyB8ICd0bycgfCAnZXhhY3QnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnbnVtYmVyJztcbiAgICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gICAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ3NlbGVjdCc7XG4gICAgICBvcHRpb25zOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyT3B0aW9uW107XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ2Jvb2xlYW4nO1xuICAgICAgdHJ1ZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgZmFsc2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZW50aXR5SWQnO1xuICAgICAgZW50aXR5OiBzdHJpbmc7XG4gICAgfSk7XG5cbmNvbnN0IGJ1aWxkV2hlcmUgPSA8V2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIGtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPixcbiAgdmFsdWU6IHVua25vd24sXG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXSxcbik6IFBhcnRpYWw8V2hlcmU+ID0+IHtcbiAgY29uc3QgbmV4dCA9IHNldFdoZXJlVmFsdWUobnVsbCwga2V5LCB2YWx1ZSwgcGF0aCk7XG4gIGlmIChuZXh0ID09IG51bGwpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgcmV0dXJuIG5leHQgYXMgUGFydGlhbDxXaGVyZT47XG59O1xuXG5jb25zdCBidWlsZFBpY2tlclNjb3BlID0gPFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICB3aGVyZTogV2hlcmUgfCBudWxsLFxuKTogQmFja29mZmljZVBpY2tlclNjb3BlPFdoZXJlPiA9PiB7XG4gIGNvbnN0IHNjb3BlOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGU8V2hlcmU+ID0ge307XG4gIGNvbnN0IGtleXMgPSBbXG4gICAgJ29yZ2FuaXphdGlvbklkJyxcbiAgICAnZ3JvdXBJZCcsXG4gICAgJ3Byb2plY3RJZCcsXG4gICAgJ2luaXRpYXRpdmVJZCcsXG4gIF0gYXMgY29uc3Q7XG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3Qgd2hlcmVLZXkgPSBrZXkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgICBjb25zdCB2YWx1ZSA9IHJlYWRXaGVyZVZhbHVlKHdoZXJlLCB3aGVyZUtleSk7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNjb3BlW3doZXJlS2V5XSA9IHZhbHVlIGFzIEV4dHJhY3Q8XG4gICAgICAgIE5vbk51bGxhYmxlPFdoZXJlW3R5cGVvZiB3aGVyZUtleV0+LFxuICAgICAgICBzdHJpbmdcbiAgICAgID47XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHNjb3BlO1xufTtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwRmlsdGVyczxXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8V2hlcmU+W10sXG4pOiByZWFkb25seSBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT5bXSB7XG4gIHJldHVybiBmaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpIGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gICAgY29uc3QgYmFzZSA9IHtcbiAgICAgIGlkOiBmaWx0ZXIuaWQsXG4gICAgICBsYWJlbDogZmlsdGVyLmxhYmVsLFxuICAgICAgcGxhY2VtZW50OiBmaWx0ZXIucGxhY2VtZW50LFxuICAgICAgd2hlcmVLZXk6IGZpbHRlci53aGVyZUtleSxcbiAgICAgIHBhdGg6IGZpbHRlci5wYXRoLFxuICAgICAgdG9HcmFwaFFMOiAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkV2hlcmUoa2V5LCB2YWx1ZSwgZmlsdGVyLnBhdGgpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgICAgY2FzZSAndGV4dENvbnRhaW5zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdkYXRldGltZSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZGF0ZXRpbWUnLFxuICAgICAgICAgIG1vZGU6IGZpbHRlci5tb2RlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6IGZpbHRlci5wbGFjZWhvbGRlckxhYmVsLFxuICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogZmlsdGVyLnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnbnVtYmVyJyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgICAgaW5wdXRNb2RlOiBmaWx0ZXIuaW5wdXRNb2RlLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdlbnVtJyxcbiAgICAgICAgICBvcHRpb25zOiBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICAgICAgICB0cnVlTGFiZWw6IGZpbHRlci50cnVlTGFiZWwsXG4gICAgICAgICAgZmFsc2VMYWJlbDogZmlsdGVyLmZhbHNlTGFiZWwsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgICAgICAgIGVudGl0eTogZmlsdGVyLmVudGl0eSxcbiAgICAgICAgICBwaWNrZXJTY29wZTogKHdoZXJlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRQaWNrZXJTY29wZSh3aGVyZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAndGV4dCcsXG4gICAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/config/list.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,GAAG,SAAS,MAAM,EAAE,KAAK,GAAG,KAAG,MAYvD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const getRowId = (row) => {
|
|
2
|
+
const { id } = row;
|
|
3
|
+
if (typeof id === 'string') {
|
|
4
|
+
if (id.trim() === '') {
|
|
5
|
+
return '';
|
|
6
|
+
}
|
|
7
|
+
return id;
|
|
8
|
+
}
|
|
9
|
+
if (typeof id === 'number') {
|
|
10
|
+
return String(id);
|
|
11
|
+
}
|
|
12
|
+
return '';
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBcUIsR0FBUSxFQUFVLEVBQUU7SUFDL0QsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQThCLENBQUM7SUFDOUMsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBnZXRSb3dJZCA9IDxSb3cgZXh0ZW5kcyBvYmplY3Q+KHJvdzogUm93KTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBpZCB9ID0gcm93IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAodHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpZC50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuICBpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBTdHJpbmcoaWQpO1xuICB9XG4gIHJldHVybiAnJztcbn07XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type UnknownRecord = Record<string, unknown>;
|
|
2
|
+
export declare const readRecordValueByKeys: (record: UnknownRecord, keys: readonly string[]) => string | number | null;
|
|
3
|
+
export declare const readRecordValue: <T extends object, K extends keyof T & string>(record: T, key: K) => string | number | null;
|
|
4
|
+
export declare const readRecordRaw: <T extends object, K extends keyof T & string>(record: T, key: K) => T[K];
|
|
5
|
+
export declare const readStringField: <T extends object, K extends keyof T & string>(record: T, key: K) => string | null;
|
|
6
|
+
export declare const readNumberField: <T extends object, K extends keyof T & string>(record: T, key: K) => number | null;
|
|
7
|
+
export declare const readBooleanField: <T extends object, K extends keyof T & string>(record: T, key: K) => boolean | null;
|
|
8
|
+
export declare const readArrayLength: <T extends object, K extends keyof T & string>(record: T, key: K) => number | null;
|
|
9
|
+
export declare const formatJsonValue: (value: unknown) => string | null;
|
|
10
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/config/record.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAsCpD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,aAAa,EACrB,MAAM,SAAS,MAAM,EAAE,KACtB,MAAM,GAAG,MAAM,GAAG,IAQpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1E,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,MAAM,GAAG,MAAM,GAAG,IAqDpB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACxE,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,CAAC,CAAC,CAAC,CAEL,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1E,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1E,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC3E,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,OAAO,GAAG,IAMZ,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1E,QAAQ,CAAC,EACT,KAAK,CAAC,KACL,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,IAezD,CAAC"}
|