@haneinfo/frontend-instances 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +117 -29
  2. package/agent-guide.md +12 -0
  3. package/dist/attachments-client.d.ts +7 -2
  4. package/dist/attachments-client.d.ts.map +1 -1
  5. package/dist/attachments-client.js +47 -11
  6. package/dist/attachments-client.js.map +1 -1
  7. package/dist/client.d.ts +10 -75
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +10 -463
  10. package/dist/client.js.map +1 -1
  11. package/dist/contracts.d.ts +94 -4
  12. package/dist/contracts.d.ts.map +1 -1
  13. package/dist/contracts.js +3 -98
  14. package/dist/contracts.js.map +1 -1
  15. package/dist/dashboard.d.ts +41 -0
  16. package/dist/dashboard.d.ts.map +1 -0
  17. package/dist/dashboard.js +72 -0
  18. package/dist/dashboard.js.map +1 -0
  19. package/dist/detail-client.d.ts +55 -0
  20. package/dist/detail-client.d.ts.map +1 -0
  21. package/dist/detail-client.js +173 -0
  22. package/dist/detail-client.js.map +1 -0
  23. package/dist/documents-client.d.ts +2 -1
  24. package/dist/documents-client.d.ts.map +1 -1
  25. package/dist/documents-client.js +13 -9
  26. package/dist/documents-client.js.map +1 -1
  27. package/dist/draft-client.d.ts +8 -2
  28. package/dist/draft-client.d.ts.map +1 -1
  29. package/dist/draft-client.js +71 -53
  30. package/dist/draft-client.js.map +1 -1
  31. package/dist/filter-editor.d.ts +18 -0
  32. package/dist/filter-editor.d.ts.map +1 -0
  33. package/dist/filter-editor.js +145 -0
  34. package/dist/filter-editor.js.map +1 -0
  35. package/dist/format.d.ts +152 -0
  36. package/dist/format.d.ts.map +1 -0
  37. package/dist/format.js +402 -0
  38. package/dist/format.js.map +1 -0
  39. package/dist/import-client.d.ts +31 -0
  40. package/dist/import-client.d.ts.map +1 -0
  41. package/dist/import-client.js +179 -0
  42. package/dist/import-client.js.map +1 -0
  43. package/dist/instance-management-client.d.ts +20 -6
  44. package/dist/instance-management-client.d.ts.map +1 -1
  45. package/dist/instance-management-client.js +90 -67
  46. package/dist/instance-management-client.js.map +1 -1
  47. package/dist/labels.d.ts +10 -0
  48. package/dist/labels.d.ts.map +1 -0
  49. package/dist/labels.js +40 -0
  50. package/dist/labels.js.map +1 -0
  51. package/dist/list-client.d.ts +39 -0
  52. package/dist/list-client.d.ts.map +1 -0
  53. package/dist/list-client.js +402 -0
  54. package/dist/list-client.js.map +1 -0
  55. package/dist/list-query.d.ts +41 -0
  56. package/dist/list-query.d.ts.map +1 -0
  57. package/dist/list-query.js +171 -0
  58. package/dist/list-query.js.map +1 -0
  59. package/dist/management-client.d.ts +6 -2
  60. package/dist/management-client.d.ts.map +1 -1
  61. package/dist/management-client.js +113 -84
  62. package/dist/management-client.js.map +1 -1
  63. package/dist/messages.d.ts +4 -4
  64. package/dist/messages.js +4 -4
  65. package/dist/messages.js.map +1 -1
  66. package/dist/server.d.ts +29 -1
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +265 -50
  69. package/dist/server.js.map +1 -1
  70. package/dist/timeline.d.ts +24 -0
  71. package/dist/timeline.d.ts.map +1 -0
  72. package/dist/timeline.js +189 -0
  73. package/dist/timeline.js.map +1 -0
  74. package/dist/ui-messages.d.ts +284 -0
  75. package/dist/ui-messages.d.ts.map +1 -0
  76. package/dist/ui-messages.js +372 -0
  77. package/dist/ui-messages.js.map +1 -0
  78. package/dist/ui.d.ts +100 -0
  79. package/dist/ui.d.ts.map +1 -0
  80. package/dist/ui.js +169 -0
  81. package/dist/ui.js.map +1 -0
  82. package/package.json +4 -2
package/dist/format.js ADDED
@@ -0,0 +1,402 @@
1
+ export const DEFAULT_TIME_ZONE = 'Asia/Taipei';
2
+ /** The few words the renderer itself needs; everything else comes from the host catalog. */
3
+ export const FORMAT_WORDS = {
4
+ 'zh-TW': {
5
+ yes: '是',
6
+ no: '否',
7
+ empty: '未填寫',
8
+ unknownOption: '不在選項中',
9
+ computed: '自動計算',
10
+ unknownUser: '未知的使用者',
11
+ invalid: '無法顯示此值',
12
+ rows: '{count} 筆',
13
+ },
14
+ en: {
15
+ yes: 'Yes',
16
+ no: 'No',
17
+ empty: 'Not filled in',
18
+ unknownOption: 'Not one of the options',
19
+ computed: 'Calculated',
20
+ unknownUser: 'Unknown person',
21
+ invalid: 'This value cannot be shown',
22
+ rows: '{count} rows',
23
+ },
24
+ };
25
+ export function displayLocale(locale) {
26
+ return typeof locale === 'string' && /^en\b/i.test(locale) ? 'en' : 'zh-TW';
27
+ }
28
+ export function formatWords(locale) {
29
+ return FORMAT_WORDS[displayLocale(locale)];
30
+ }
31
+ /** A long text is collapsed behind "Show all" in the UI. */
32
+ export const LONG_TEXT_LENGTH = 280;
33
+ const LONG_TEXT_LINES = 6;
34
+ const isEmpty = (value) => value === null ||
35
+ value === undefined ||
36
+ (typeof value === 'string' && value.trim() === '') ||
37
+ (Array.isArray(value) && value.length === 0);
38
+ const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/;
39
+ function validZone(timeZone) {
40
+ try {
41
+ new Intl.DateTimeFormat('en', { timeZone }).format(0);
42
+ return timeZone;
43
+ }
44
+ catch {
45
+ return DEFAULT_TIME_ZONE;
46
+ }
47
+ }
48
+ const pad = (value) => String(value).padStart(2, '0');
49
+ const WEEKDAYS = {
50
+ 'zh-TW': ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
51
+ en: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
52
+ };
53
+ const MONTHS = [
54
+ 'January',
55
+ 'February',
56
+ 'March',
57
+ 'April',
58
+ 'May',
59
+ 'June',
60
+ 'July',
61
+ 'August',
62
+ 'September',
63
+ 'October',
64
+ 'November',
65
+ 'December',
66
+ ];
67
+ /** Wall-clock fields of an instant; only ASCII digits are read, so ICU versions cannot differ. */
68
+ function wallOf(time, timeZone) {
69
+ const parts = new Intl.DateTimeFormat('en-US', {
70
+ timeZone: validZone(timeZone),
71
+ hourCycle: 'h23',
72
+ year: 'numeric',
73
+ month: 'numeric',
74
+ day: 'numeric',
75
+ hour: 'numeric',
76
+ minute: 'numeric',
77
+ second: 'numeric',
78
+ }).formatToParts(time);
79
+ const get = (type) => Number(parts.find((part) => part.type === type)?.value);
80
+ return {
81
+ y: get('year'),
82
+ m: get('month'),
83
+ d: get('day'),
84
+ h: get('hour') % 24,
85
+ mi: get('minute'),
86
+ s: get('second'),
87
+ };
88
+ }
89
+ /**
90
+ * Dates are composed from numeric fields with fixed separators instead of locale patterns, so the
91
+ * server (Node ICU) and the browser always produce identical text and hydration never differs.
92
+ */
93
+ function dateText(wall, locale, full) {
94
+ const weekday = WEEKDAYS[locale][new Date(Date.UTC(wall.y, wall.m - 1, wall.d)).getUTCDay()];
95
+ if (locale === 'en')
96
+ return full
97
+ ? `${weekday}, ${MONTHS[wall.m - 1]} ${wall.d}, ${wall.y}`
98
+ : `${MONTHS[wall.m - 1].slice(0, 3)} ${wall.d}, ${wall.y}`;
99
+ return full
100
+ ? `${wall.y}年${wall.m}月${wall.d}日 ${weekday}`
101
+ : `${wall.y}/${pad(wall.m)}/${pad(wall.d)}`;
102
+ }
103
+ /** A calendar date (YYYY-MM-DD) without any time zone conversion. */
104
+ export function formatDate(value, options) {
105
+ const match = dateOnly.exec(value);
106
+ if (!match)
107
+ return undefined;
108
+ const [y, m, d] = match.slice(1).map(Number);
109
+ if (new Date(Date.UTC(y, m - 1, d)).getUTCDate() !== d)
110
+ return undefined;
111
+ return dateText({ y, m, d }, displayLocale(options.locale), !!options.full);
112
+ }
113
+ /** An instant in the display time zone: short ("2026/10/23 13:14") or full with the zone name. */
114
+ export function formatDateTime(value, options) {
115
+ const time = value instanceof Date ? value.getTime() : new Date(value).getTime();
116
+ if (!Number.isFinite(time))
117
+ return undefined;
118
+ const locale = displayLocale(options.locale);
119
+ const wall = wallOf(time, options.timeZone);
120
+ const date = dateText(wall, locale, !!options.full);
121
+ if (options.dateOnly)
122
+ return date;
123
+ if (options.full) {
124
+ const zone = timeZoneName(options.timeZone, locale);
125
+ const clock = `${pad(wall.h)}:${pad(wall.mi)}:${pad(wall.s)}`;
126
+ return locale === 'en' ? `${date}, ${clock} (${zone})` : `${date} ${clock}(${zone})`;
127
+ }
128
+ return `${date}${locale === 'en' ? ',' : ''} ${pad(wall.h)}:${pad(wall.mi)}`;
129
+ }
130
+ /** The clock time of an instant in the display time zone (HH:mm). */
131
+ export function formatTime(value, options) {
132
+ const time = value instanceof Date ? value.getTime() : new Date(value).getTime();
133
+ if (!Number.isFinite(time))
134
+ return undefined;
135
+ const wall = wallOf(time, options.timeZone);
136
+ return `${pad(wall.h)}:${pad(wall.mi)}`;
137
+ }
138
+ /** The calendar day of an instant in the display time zone, as YYYY-MM-DD (for grouping). */
139
+ export function dayKey(value, timeZone) {
140
+ const time = value instanceof Date ? value.getTime() : new Date(value).getTime();
141
+ if (!Number.isFinite(time))
142
+ return '';
143
+ const parts = new Intl.DateTimeFormat('en-CA', {
144
+ timeZone: validZone(timeZone),
145
+ year: 'numeric',
146
+ month: '2-digit',
147
+ day: '2-digit',
148
+ }).formatToParts(time);
149
+ const get = (type) => parts.find((part) => part.type === type)?.value ?? '';
150
+ return `${get('year')}-${get('month')}-${get('day')}`;
151
+ }
152
+ /** "3 minutes ago"; only rendered in the browser, never on the server. */
153
+ export function formatRelative(value, now, locale) {
154
+ const time = value instanceof Date ? value.getTime() : new Date(value).getTime();
155
+ if (!Number.isFinite(time) || !Number.isFinite(now))
156
+ return undefined;
157
+ const seconds = Math.round((time - now) / 1000);
158
+ const format = new Intl.RelativeTimeFormat(displayLocale(locale), { numeric: 'auto' });
159
+ const abs = Math.abs(seconds);
160
+ if (abs < 45)
161
+ return format.format(0, 'second');
162
+ if (abs < 3600)
163
+ return format.format(Math.round(seconds / 60), 'minute');
164
+ if (abs < 86400)
165
+ return format.format(Math.round(seconds / 3600), 'hour');
166
+ if (abs < 86400 * 30)
167
+ return format.format(Math.round(seconds / 86400), 'day');
168
+ if (abs < 86400 * 365)
169
+ return format.format(Math.round(seconds / (86400 * 30)), 'month');
170
+ return format.format(Math.round(seconds / (86400 * 365)), 'year');
171
+ }
172
+ /** Wall-clock offset (ms) of `timeZone` at an instant. */
173
+ function zoneOffset(time, timeZone) {
174
+ const parts = new Intl.DateTimeFormat('en-US', {
175
+ timeZone: validZone(timeZone),
176
+ hourCycle: 'h23',
177
+ year: 'numeric',
178
+ month: '2-digit',
179
+ day: '2-digit',
180
+ hour: '2-digit',
181
+ minute: '2-digit',
182
+ second: '2-digit',
183
+ }).formatToParts(time);
184
+ const get = (type) => Number(parts.find((part) => part.type === type)?.value);
185
+ const wall = Date.UTC(get('year'), get('month') - 1, get('day'), get('hour') % 24, get('minute'), get('second'));
186
+ return wall - Math.floor(time / 1000) * 1000;
187
+ }
188
+ /** An instant as a `datetime-local` value (YYYY-MM-DDTHH:mm) in the display time zone. */
189
+ export function toZonedInput(value, timeZone) {
190
+ if (typeof value !== 'string')
191
+ return '';
192
+ const time = new Date(value).getTime();
193
+ if (!Number.isFinite(time))
194
+ return '';
195
+ return new Date(time + zoneOffset(time, timeZone)).toISOString().slice(0, 16);
196
+ }
197
+ /** A `datetime-local` value entered in the display time zone, as an ISO instant. */
198
+ export function fromZonedInput(value, timeZone) {
199
+ const match = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(value);
200
+ if (!match)
201
+ return undefined;
202
+ const [y, mo, d, h, mi, s = 0] = match.slice(1).map((part) => Number(part ?? 0));
203
+ const wall = Date.UTC(y, mo - 1, d, h, mi, s);
204
+ // Two passes settle the offset across daylight-saving changes.
205
+ let guess = wall - zoneOffset(wall, timeZone);
206
+ guess = wall - zoneOffset(guess, timeZone);
207
+ return Number.isFinite(guess) ? new Date(guess).toISOString() : undefined;
208
+ }
209
+ const ZONE_NAMES = {
210
+ 'Asia/Taipei': ['Taipei time', '台北時間'],
211
+ 'Asia/Tokyo': ['Tokyo time', '東京時間'],
212
+ 'Asia/Shanghai': ['China time', '中國時間'],
213
+ 'Asia/Hong_Kong': ['Hong Kong time', '香港時間'],
214
+ 'Asia/Singapore': ['Singapore time', '新加坡時間'],
215
+ UTC: ['Coordinated Universal Time', '世界協調時間'],
216
+ };
217
+ /**
218
+ * A readable name of the display time zone (台北時間 / Taipei time). Built from a fixed table and
219
+ * the zone's city, never from ICU names, so the server and the browser agree.
220
+ */
221
+ export function timeZoneName(timeZone, locale) {
222
+ const zone = validZone(timeZone);
223
+ const index = displayLocale(locale) === 'en' ? 0 : 1;
224
+ const known = ZONE_NAMES[zone];
225
+ if (known)
226
+ return known[index];
227
+ const city = zone.split('/').pop()?.replaceAll('_', ' ') ?? zone;
228
+ return index === 0 ? `${city} time` : `${city}時間`;
229
+ }
230
+ export function formatNumber(value, locale) {
231
+ return new Intl.NumberFormat(displayLocale(locale), { maximumFractionDigits: 6 }).format(value);
232
+ }
233
+ const fill = (template, values) => template.replace(/\{(\w+)\}/g, (_, key) => String(values[key] ?? ''));
234
+ function scalarText(value) {
235
+ if (typeof value === 'string')
236
+ return value;
237
+ if (typeof value === 'number' && Number.isFinite(value))
238
+ return String(value);
239
+ if (typeof value === 'boolean')
240
+ return String(value);
241
+ return undefined;
242
+ }
243
+ function invalid(value, locale) {
244
+ const text = scalarText(value);
245
+ return { kind: 'invalid', text: text ?? formatWords(locale).invalid };
246
+ }
247
+ function option(field, value) {
248
+ const found = field.options?.find((candidate) => candidate.value === value);
249
+ if (found)
250
+ return { text: found.label, known: true };
251
+ return { text: scalarText(value) ?? '', known: false };
252
+ }
253
+ /**
254
+ * The display value of one stored field value. Never throws: missing, malformed or unexpected data
255
+ * becomes `empty` or `invalid` instead of raw JSON.
256
+ */
257
+ export function formatFieldValue(field, value, options) {
258
+ const locale = displayLocale(options.locale);
259
+ const words = formatWords(locale);
260
+ const computed = field.formula ? { computed: true } : {};
261
+ const type = field.type ?? 'text';
262
+ if (isEmpty(value) && type !== 'switch' && !(type === 'checkbox' && !field.options?.length))
263
+ return { kind: 'empty', text: '—', ...computed };
264
+ const result = (() => {
265
+ switch (type) {
266
+ case 'number': {
267
+ const number = typeof value === 'number'
268
+ ? value
269
+ : typeof value === 'string' && value.trim() && Number.isFinite(Number(value))
270
+ ? Number(value)
271
+ : Number.NaN;
272
+ return Number.isFinite(number)
273
+ ? { kind: 'number', text: formatNumber(number, locale), value: number }
274
+ : invalid(value, locale);
275
+ }
276
+ case 'date': {
277
+ if (typeof value !== 'string')
278
+ return invalid(value, locale);
279
+ const text = formatDate(value, { locale });
280
+ if (text)
281
+ return {
282
+ kind: 'date',
283
+ text,
284
+ iso: value,
285
+ full: formatDate(value, { locale, full: true }) ?? text,
286
+ };
287
+ if (dateOnly.test(value))
288
+ return invalid(value, locale);
289
+ const instant = formatDateTime(value, { ...options, dateOnly: true });
290
+ return instant
291
+ ? {
292
+ kind: 'date',
293
+ text: instant,
294
+ iso: value,
295
+ full: formatDateTime(value, { ...options, full: true }) ?? instant,
296
+ }
297
+ : invalid(value, locale);
298
+ }
299
+ case 'datetime': {
300
+ if (typeof value !== 'string' && typeof value !== 'number')
301
+ return invalid(value, locale);
302
+ const text = formatDateTime(value, options);
303
+ return text
304
+ ? {
305
+ kind: 'datetime',
306
+ text,
307
+ iso: new Date(value).toISOString(),
308
+ full: formatDateTime(value, { ...options, full: true }) ?? text,
309
+ }
310
+ : invalid(value, locale);
311
+ }
312
+ case 'time':
313
+ return typeof value === 'string' && /^\d{2}:\d{2}(:\d{2})?$/.test(value)
314
+ ? { kind: 'time', text: value.slice(0, 5) }
315
+ : invalid(value, locale);
316
+ case 'switch':
317
+ if (value === null || value === undefined)
318
+ return { kind: 'boolean', text: words.no, value: false };
319
+ return typeof value === 'boolean'
320
+ ? { kind: 'boolean', text: value ? words.yes : words.no, value }
321
+ : invalid(value, locale);
322
+ case 'checkbox': {
323
+ if (!field.options?.length) {
324
+ if (value === null || value === undefined)
325
+ return { kind: 'boolean', text: words.no, value: false };
326
+ return typeof value === 'boolean'
327
+ ? { kind: 'boolean', text: value ? words.yes : words.no, value }
328
+ : invalid(value, locale);
329
+ }
330
+ const values = Array.isArray(value) ? value : [value];
331
+ const items = values.map((entry) => option(field, entry));
332
+ return {
333
+ kind: 'options',
334
+ text: items.map((item) => item.text).join(locale === 'en' ? ', ' : '、'),
335
+ items,
336
+ };
337
+ }
338
+ case 'select':
339
+ case 'radio': {
340
+ if (Array.isArray(value)) {
341
+ const items = value.map((entry) => option(field, entry));
342
+ return {
343
+ kind: 'options',
344
+ text: items.map((item) => item.text).join(locale === 'en' ? ', ' : '、'),
345
+ items,
346
+ };
347
+ }
348
+ if (scalarText(value) === undefined)
349
+ return invalid(value, locale);
350
+ return { kind: 'option', ...option(field, value) };
351
+ }
352
+ case 'user_select': {
353
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
354
+ const person = value;
355
+ const name = scalarText(person.name) ?? scalarText(person.displayName);
356
+ return name
357
+ ? { kind: 'user', text: name, known: true }
358
+ : { kind: 'user', text: words.unknownUser, known: false };
359
+ }
360
+ if (typeof value === 'string') {
361
+ const name = options.people?.[value];
362
+ return name
363
+ ? { kind: 'user', text: name, known: true }
364
+ : { kind: 'user', text: words.unknownUser, known: false };
365
+ }
366
+ return invalid(value, locale);
367
+ }
368
+ case 'subform': {
369
+ if (!Array.isArray(value))
370
+ return invalid(value, locale);
371
+ const columns = (field.columns ?? field.children ?? []).filter((column) => column.type !== 'divider');
372
+ const rows = value.map((row) => columns.map((column) => row && typeof row === 'object' && !Array.isArray(row)
373
+ ? formatFieldValue(column, row[column.id ?? column.key], options)
374
+ : invalid(row, locale)));
375
+ return {
376
+ kind: 'table',
377
+ text: fill(words.rows, { count: formatNumber(rows.length, locale) }),
378
+ columns: columns.map((column) => ({ id: column.id ?? column.key, label: column.label })),
379
+ rows,
380
+ };
381
+ }
382
+ default: {
383
+ const text = scalarText(value);
384
+ if (text === undefined)
385
+ return invalid(value, locale);
386
+ const multiline = type === 'textarea' || text.includes('\n');
387
+ return {
388
+ kind: 'text',
389
+ text,
390
+ multiline,
391
+ long: text.length > LONG_TEXT_LENGTH || text.split('\n').length > LONG_TEXT_LINES,
392
+ };
393
+ }
394
+ }
395
+ })();
396
+ return { ...result, ...computed };
397
+ }
398
+ /** One line of plain text for compact places (list cells, conflict choices, previews). */
399
+ export function formatFieldText(field, value, options) {
400
+ return formatFieldValue(field, value, options).text;
401
+ }
402
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { ImportField, InstanceAction, Job, JobResult, Labels, UploadAction } from './contracts.js';
2
+ export declare function JobStatus({ initial, labels: t, action, downloadBase, onComplete, }: {
3
+ initial: Job;
4
+ labels: Labels;
5
+ action: InstanceAction;
6
+ downloadBase: string;
7
+ onComplete?: (job: Job) => void;
8
+ }): import("react").JSX.Element;
9
+ export declare function JobReport({ result, labels: t, downloadBase, }: {
10
+ result: JobResult;
11
+ labels: Labels;
12
+ downloadBase: string;
13
+ }): import("react").JSX.Element;
14
+ export declare function ImportClient({ machines, fields: initialFields, labels: t, action, uploadAction, downloadBase, }: {
15
+ machines: {
16
+ code: string;
17
+ label: string;
18
+ }[];
19
+ fields: ImportField[];
20
+ labels: Labels;
21
+ action: InstanceAction;
22
+ uploadAction: UploadAction;
23
+ downloadBase: string;
24
+ }): import("react").JSX.Element;
25
+ export declare function ImportConfirmation({ job, labels: t, pending, onConfirm, }: {
26
+ job: Job;
27
+ labels: Labels;
28
+ pending: boolean;
29
+ onConfirm: () => void;
30
+ }): import("react").JSX.Element | null;
31
+ //# sourceMappingURL=import-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-client.d.ts","sourceRoot":"","sources":["../src/import-client.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EACd,GAAG,EACH,SAAS,EACT,MAAM,EACN,YAAY,EACb,MAAM,gBAAgB,CAAC;AA2BxB,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EAAE,CAAC,EACT,MAAM,EACN,YAAY,EACZ,UAAU,GACX,EAAE;IACD,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC,+BAoFA;AAED,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,MAAM,EAAE,CAAC,EACT,YAAY,GACb,EAAE;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,+BAuFA;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,EACT,MAAM,EACN,YAAY,EACZ,YAAY,GACb,EAAE;IACD,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB,+BA6PA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,MAAM,EAAE,CAAC,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,sCAeA"}