@dappworks/kit 0.4.66 → 0.4.67

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 (41) hide show
  1. package/dist/{PromiseState-phP8daDG.d.ts → PromiseState-2a8c856c.d.ts} +2 -2
  2. package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
  3. package/dist/{chunk-AIZ7XDNV.mjs → chunk-6UHBBDKI.mjs} +14 -14
  4. package/dist/chunk-6UHBBDKI.mjs.map +1 -0
  5. package/dist/{chunk-XJMRAPHI.mjs → chunk-HRWHDF2F.mjs} +7 -7
  6. package/dist/{chunk-XJMRAPHI.mjs.map → chunk-HRWHDF2F.mjs.map} +1 -1
  7. package/dist/{chunk-ALOYXXRO.mjs → chunk-I5WU3NZO.mjs} +2 -2
  8. package/dist/{chunk-OCLML5CM.mjs → chunk-SXQEYWUP.mjs} +2 -2
  9. package/dist/{chunk-7FI42NGB.mjs → chunk-U7JFOBSQ.mjs} +2 -2
  10. package/dist/{chunk-CYQSSB26.mjs → chunk-VB62FUWK.mjs} +73 -35
  11. package/dist/chunk-VB62FUWK.mjs.map +1 -0
  12. package/dist/{chunk-QO5RPRUY.mjs → chunk-WAYJJYKN.mjs} +4 -4
  13. package/dist/{chunk-7FXVRBK4.mjs → chunk-ZPPKSMXO.mjs} +2 -2
  14. package/dist/dev.d.mts +1 -1
  15. package/dist/dev.mjs +3 -3
  16. package/dist/experimental.d.mts +3 -5
  17. package/dist/experimental.mjs +3 -3
  18. package/dist/form.d.mts +5 -5
  19. package/dist/form.mjs +5 -5
  20. package/dist/index.d.mts +9 -14
  21. package/dist/index.mjs +6 -6
  22. package/dist/inspector.d.mts +1 -1
  23. package/dist/inspector.mjs +1 -1
  24. package/dist/jsontable.d.mts +10 -15
  25. package/dist/jsontable.mjs +7 -7
  26. package/dist/metrics.d.mts +1 -1
  27. package/dist/metrics.mjs +7 -7
  28. package/dist/plugins.d.mts +2 -2
  29. package/dist/plugins.mjs +6 -6
  30. package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
  31. package/dist/ui.mjs +3 -3
  32. package/package.json +1 -1
  33. package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
  34. package/dist/chunk-CYQSSB26.mjs.map +0 -1
  35. /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
  36. /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
  37. /package/dist/{chunk-ALOYXXRO.mjs.map → chunk-I5WU3NZO.mjs.map} +0 -0
  38. /package/dist/{chunk-OCLML5CM.mjs.map → chunk-SXQEYWUP.mjs.map} +0 -0
  39. /package/dist/{chunk-7FI42NGB.mjs.map → chunk-U7JFOBSQ.mjs.map} +0 -0
  40. /package/dist/{chunk-QO5RPRUY.mjs.map → chunk-WAYJJYKN.mjs.map} +0 -0
  41. /package/dist/{chunk-7FXVRBK4.mjs.map → chunk-ZPPKSMXO.mjs.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { PaginationState } from './chunk-ONVPCAMQ.mjs';
2
- import { DialogStore } from './chunk-QO5RPRUY.mjs';
3
- import { JSONHighlight } from './chunk-7FI42NGB.mjs';
2
+ import { DialogStore } from './chunk-WAYJJYKN.mjs';
3
+ import { JSONHighlight } from './chunk-U7JFOBSQ.mjs';
4
4
  import { _ } from './chunk-MGU3KYGC.mjs';
5
- import { cn } from './chunk-AIZ7XDNV.mjs';
6
- import { __objRest, __spreadValues } from './chunk-R4SQKVDQ.mjs';
5
+ import { cn } from './chunk-6UHBBDKI.mjs';
6
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
7
7
  import * as React2 from 'react';
8
8
  import React2__default, { useEffect, useMemo, useState } from 'react';
9
9
  import { observer, useLocalObservable } from 'mobx-react-lite';
@@ -61,16 +61,16 @@ function rng() {
61
61
  return rnds8Pool.slice(poolPtr, poolPtr += 16);
62
62
  }
63
63
 
64
- // node_modules/uuid/dist/esm-node/regex.js
64
+ // ../../node_modules/uuid/dist/esm-node/regex.js
65
65
  var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
66
66
 
67
- // node_modules/uuid/dist/esm-node/validate.js
67
+ // ../../node_modules/uuid/dist/esm-node/validate.js
68
68
  function validate(uuid) {
69
69
  return typeof uuid === "string" && regex_default.test(uuid);
70
70
  }
71
71
  var validate_default = validate;
72
72
 
73
- // node_modules/uuid/dist/esm-node/stringify.js
73
+ // ../../node_modules/uuid/dist/esm-node/stringify.js
74
74
  var byteToHex = [];
75
75
  for (let i = 0; i < 256; ++i) {
76
76
  byteToHex.push((i + 256).toString(16).substr(1));
@@ -84,7 +84,7 @@ function stringify(arr, offset = 0) {
84
84
  }
85
85
  var stringify_default = stringify;
86
86
 
87
- // node_modules/uuid/dist/esm-node/v4.js
87
+ // ../../node_modules/uuid/dist/esm-node/v4.js
88
88
  function v4(options, buf, offset) {
89
89
  options = options || {};
90
90
  const rnds = options.random || (options.rng || rng)();
@@ -140,14 +140,18 @@ var JSONTable = observer((props) => {
140
140
  }
141
141
  }));
142
142
  useEffect(() => {
143
- const _keys = dataSource.length > 0 ? Object.keys(dataSource[0]) : [];
144
- const keys = headerKeys ? headerKeys : columnOptions ? _keys.filter((key) => {
143
+ const firstData = dataSource[0];
144
+ if (!firstData) {
145
+ return;
146
+ }
147
+ const allKeys = Object.keys(firstData);
148
+ const keys = headerKeys ? headerKeys : columnOptions ? allKeys.filter((key) => {
145
149
  var _a;
146
150
  return !((_a = columnOptions[key]) == null ? void 0 : _a.hidden);
147
- }) : _keys;
151
+ }) : allKeys;
148
152
  const sortableColumns = {};
149
153
  const columns2 = keys.map((key) => {
150
- var _a, _b, _c, _d;
154
+ var _a, _b, _c;
151
155
  const sortable = (_a = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _a.sortable;
152
156
  if (sortable) {
153
157
  sortableColumns[key] = "none";
@@ -155,18 +159,41 @@ var JSONTable = observer((props) => {
155
159
  return {
156
160
  key,
157
161
  label: ((_b = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _b.label) || key,
158
- render: (_c = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _c.render,
159
- className: (_d = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _d.className
162
+ render: (_c = columnOptions == null ? void 0 : columnOptions[key]) == null ? void 0 : _c.render
163
+ };
164
+ });
165
+ if (!headerKeys && columnOptions) {
166
+ columns2.sort((a, b) => {
167
+ var _a, _b;
168
+ const aOrder = ((_a = columnOptions[a.key]) == null ? void 0 : _a.order) || 0;
169
+ const bOrder = ((_b = columnOptions[b.key]) == null ? void 0 : _b.order) || 0;
170
+ return bOrder - aOrder;
171
+ });
172
+ }
173
+ const extendedTables2 = extendedTableOptions.filter((item) => {
174
+ return Array.isArray(firstData[item.key]);
175
+ }).map((item) => {
176
+ const index = columns2.findIndex((c) => c.key === item.key);
177
+ if (index > -1) {
178
+ columns2.splice(index, 1);
179
+ }
180
+ const keys2 = Object.keys(item.columnOptions);
181
+ return {
182
+ key: item.key,
183
+ columns: keys2.map((k) => {
184
+ const option = item.columnOptions[k];
185
+ return {
186
+ key: k,
187
+ label: (option == null ? void 0 : option.label) || k,
188
+ render: option == null ? void 0 : option.render
189
+ };
190
+ })
160
191
  };
161
- }).sort((a, b) => {
162
- var _a, _b;
163
- const aOrder = ((_a = columnOptions == null ? void 0 : columnOptions[a.key]) == null ? void 0 : _a.order) || 0;
164
- const bOrder = ((_b = columnOptions == null ? void 0 : columnOptions[b.key]) == null ? void 0 : _b.order) || 0;
165
- return bOrder - aOrder;
166
192
  });
167
193
  store.setData({
168
194
  sortableColumns,
169
195
  columns: columns2,
196
+ extendedTables: extendedTables2,
170
197
  sortedData: dataSource
171
198
  });
172
199
  if (!isServerPaging) {
@@ -180,7 +207,7 @@ var JSONTable = observer((props) => {
180
207
  Object.keys(store.sortableColumns).map((k) => {
181
208
  sortableColumns[k] = k === key ? type : "none";
182
209
  });
183
- let sortedData = dataSource;
210
+ let sortedData2 = dataSource;
184
211
  if (type !== "none") {
185
212
  const result = _.orderBy(
186
213
  dataSource,
@@ -201,16 +228,16 @@ var JSONTable = observer((props) => {
201
228
  },
202
229
  type
203
230
  );
204
- sortedData = result;
231
+ sortedData2 = result;
205
232
  }
206
233
  store.setData({
207
234
  sortableColumns,
208
- sortedData
235
+ sortedData: sortedData2
209
236
  });
210
237
  };
211
- const { columns, extendedTables } = store;
238
+ const { columns, extendedTables, sortedData } = store;
212
239
  const needExtendedTable = !!extendedTables.length;
213
- const data = isServerPaging ? store.sortedData : store.sortedData.slice(pagination.offset, pagination.offset + pagination.limit);
240
+ const data = isServerPaging ? sortedData : sortedData.slice(pagination.offset, pagination.offset + pagination.limit);
214
241
  const tableBoxElementId = useMemo(() => {
215
242
  return autoScrollToTop ? `table-card-${v4_default().slice(0, 8)}` : void 0;
216
243
  }, []);
@@ -286,17 +313,17 @@ var JSONTable = observer((props) => {
286
313
  ))
287
314
  )));
288
315
  }), actionsPlacement === "right" && /* @__PURE__ */ React2__default.createElement(TableHead, { className: "font-meidum text-[0.8125rem] text-[#64748B] dark:text-gray-300" }, actionsHeadLabel))), /* @__PURE__ */ React2__default.createElement(TableBody, null, data.map(
289
- (item, index) => needExtendedTable ? /* @__PURE__ */ React2__default.createElement(CollapseBody, { key: item[rowKey] || index, item, columns, extendedTables }) : /* @__PURE__ */ React2__default.createElement(
316
+ (item, index) => needExtendedTable ? /* @__PURE__ */ React2__default.createElement(CollapseBody, { key: item[rowKey] || index, item, columns, extendedTables, rowCss, actions, actionsPlacement }) : /* @__PURE__ */ React2__default.createElement(
290
317
  Body,
291
318
  {
292
319
  key: item[rowKey] || index,
293
320
  item,
294
321
  columns,
322
+ columnOptions,
295
323
  onRowClick,
296
324
  rowCss,
297
325
  actions,
298
- actionsPlacement,
299
- columnOptions
326
+ actionsPlacement
300
327
  }
301
328
  )
302
329
  )))), pagination.total > pagination.limit && /* @__PURE__ */ React2__default.createElement("div", { className: "flex justify-center h-[30px] mt-4" }, /* @__PURE__ */ React2__default.createElement(
@@ -382,12 +409,19 @@ function Body({
382
409
  actionsPlacement === "right" && /* @__PURE__ */ React2__default.createElement(Actions, { item, actions })
383
410
  );
384
411
  }
385
- function CollapseBody({ item, columns, extendedTables }) {
412
+ function CollapseBody({
413
+ item,
414
+ columns,
415
+ extendedTables,
416
+ rowCss,
417
+ actions,
418
+ actionsPlacement
419
+ }) {
386
420
  const [isOpen, setIsOpen] = useState(false);
387
421
  return /* @__PURE__ */ React2__default.createElement(React2__default.Fragment, null, /* @__PURE__ */ React2__default.createElement(
388
422
  TableRow,
389
423
  {
390
- className: "text-[13px] cursor-pointer",
424
+ className: cn("text-[0.8125rem] cursor-pointer hover:bg-[#f6f6f9] dark:hover:bg-[#19191c]", typeof rowCss === "function" ? rowCss(item) : rowCss),
391
425
  onClick: (e) => {
392
426
  const { nodeName } = e.target;
393
427
  if (nodeName === "TD" || nodeName === "svg") {
@@ -395,17 +429,21 @@ function CollapseBody({ item, columns, extendedTables }) {
395
429
  }
396
430
  }
397
431
  },
398
- /* @__PURE__ */ React2__default.createElement(TableCell, { className: "w-10" }, isOpen ? /* @__PURE__ */ React2__default.createElement(ChevronDown, { size: 30 }) : /* @__PURE__ */ React2__default.createElement(ChevronRight, { size: 30 })),
432
+ /* @__PURE__ */ React2__default.createElement(TableCell, { className: "w-10" }, isOpen ? /* @__PURE__ */ React2__default.createElement(ChevronDown, { size: 18 }) : /* @__PURE__ */ React2__default.createElement(ChevronRight, { size: 18 })),
433
+ actionsPlacement === "left" && /* @__PURE__ */ React2__default.createElement(Actions, { item, actions }),
399
434
  columns.map((column) => {
400
435
  return /* @__PURE__ */ React2__default.createElement(TableCell, { key: column.key, className: "max-w-[200px] overflow-auto" }, column.render ? column.render(item) : renderFieldValue(item[column.key]));
401
- })
436
+ }),
437
+ actionsPlacement === "right" && /* @__PURE__ */ React2__default.createElement(Actions, { item, actions })
402
438
  ), /* @__PURE__ */ React2__default.createElement(TableRow, { className: cn(isOpen ? "table-row" : "hidden") }, /* @__PURE__ */ React2__default.createElement(TableCell, null), /* @__PURE__ */ React2__default.createElement(TableCell, { colSpan: columns.length }, extendedTables.map((ex) => {
403
439
  const exColumns = ex.columns;
404
440
  const exRow = item[ex.key];
405
441
  return /* @__PURE__ */ React2__default.createElement(Table, { className: "mt-[10px]", key: ex.key }, /* @__PURE__ */ React2__default.createElement(TableHeader, null, /* @__PURE__ */ React2__default.createElement(TableRow, { className: "bg-[#F4F4F5] dark:bg-[#3F3F45]" }, exColumns.map((exC) => {
406
- return /* @__PURE__ */ React2__default.createElement(TableHead, { key: exC.key, className: "font-bold text-sm dark:text-gray-300" }, exC.label);
407
- }))), /* @__PURE__ */ React2__default.createElement(TableBody, null, exRow.map((exItem) => /* @__PURE__ */ React2__default.createElement(TableRow, { className: "text-sm", key: exItem.key }, exColumns.map((exC) => {
408
- return /* @__PURE__ */ React2__default.createElement(TableCell, { key: exC.key, className: "max-w-[200px] overflow-auto" }, exC.render ? exC.render(exItem) : renderFieldValue(exItem[exC.key]));
442
+ return /* @__PURE__ */ React2__default.createElement(TableHead, { key: exC.key, className: "text-[0.8125rem] text-[#64748B] dark:text-gray-300" }, exC.label);
443
+ }))), /* @__PURE__ */ React2__default.createElement(TableBody, null, exRow.map((exItem) => /* @__PURE__ */ React2__default.createElement(TableRow, { className: "text-[0.8125rem] hover:bg-[#f6f6f9] dark:hover:bg-[#19191c]", key: exItem.key }, exColumns.map((exC) => {
444
+ return /* @__PURE__ */ React2__default.createElement(TableCell, { key: exC.key, className: "max-w-[200px] overflow-auto" }, exC.render ? exC.render(__spreadProps(__spreadValues({}, exItem), {
445
+ $parent: item
446
+ })) : renderFieldValue(exItem[exC.key]));
409
447
  })))));
410
448
  }))));
411
449
  }
@@ -474,4 +512,4 @@ function CardOnMobile({
474
512
 
475
513
  export { JSONTable, JSONTable_default };
476
514
  //# sourceMappingURL=out.js.map
477
- //# sourceMappingURL=chunk-CYQSSB26.mjs.map
515
+ //# sourceMappingURL=chunk-VB62FUWK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/JSONTable/index.tsx","../components/ui/table.tsx","../../../node_modules/uuid/dist/esm-node/rng.js","../../../node_modules/uuid/dist/esm-node/regex.js","../../../node_modules/uuid/dist/esm-node/validate.js","../../../node_modules/uuid/dist/esm-node/stringify.js","../../../node_modules/uuid/dist/esm-node/v4.js"],"names":["React","data","columns","extendedTables","keys","sortedData","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOA,UAAS,WAAW,SAAS,gBAAgB;AACpD,SAAS,UAAU,0BAA0B;;;ACH7C,YAAY,WAAW;AAGvB,IAAM,QAAc,iBAAqE,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAH5F,IAG0F,IAAgB,kBAAhB,IAAgB,CAAd;AACxF,6CAAC,0BAAM,KAAU,WAAW,GAAG,iCAAiC,SAAS,KAAO,MAAO;AAAA,CAC1F;AACD,MAAM,cAAc;AAEpB,IAAM,cAAoB,iBAAmF,CAAC,IAAyB,QAAK;AAA9B,eAAE,YARhH,IAQ8G,IAAgB,kBAAhB,IAAgB,CAAd;AAC5G,6CAAC,0BAAM,KAAU,WAAW,GAAG,IAAI,SAAS,KAAO,MAAO;AAAA,CAC7D;AACD,YAAY,cAAc;AAE1B,IAAM,YAAkB,iBAAmF,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAb9G,IAa4G,IAAgB,kBAAhB,IAAgB,CAAd;AAC1G,6CAAC,0BAAM,KAAU,WAAW,GAAG,8BAA8B,SAAS,KAAO,MAAO;AAAA,CACvF;AACD,UAAU,cAAc;AAExB,IAAM,cAAoB,iBAAmF,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAlBhH,IAkB8G,IAAgB,kBAAhB,IAAgB,CAAd;AAC5G,6CAAC,0BAAM,KAAU,WAAW,GAAG,kDAAkD,SAAS,KAAO,MAAO;AAAA,CAC3G;AACD,YAAY,cAAc;AAE1B,IAAM,WAAiB,iBAA2E,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAvBrG,IAuBmG,IAAgB,kBAAhB,IAAgB,CAAd;AACjG,6CAAC,uBAAG,KAAU,WAAW,GAAG,IAAI,SAAS,KAAO,MAAO;AAAA,CAC1D;AACD,SAAS,cAAc;AAEvB,IAAM,YAAkB,iBAA+E,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA5B1G,IA4BwG,IAAgB,kBAAhB,IAAgB,CAAd;AACtG,6CAAC,uBAAG,KAAU,WAAW,GAAG,mGAAmG,SAAS,KAAO,MAAO;AAAA,CACzJ;AACD,UAAU,cAAc;AAExB,IAAM,YAAkB,iBAA+E,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAjC1G,IAiCwG,IAAgB,kBAAhB,IAAgB,CAAd;AACtG,6CAAC,uBAAG,KAAU,WAAW,GAAG,kDAAkD,SAAS,KAAO,MAAO;AAAA,CACxG;AACD,UAAU,cAAc;AAExB,IAAM,eAAqB,iBAAmF,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAtCjH,IAsC+G,IAAgB,kBAAhB,IAAgB,CAAd;AAC7G,6CAAC,4BAAQ,KAAU,WAAW,GAAG,sCAAsC,SAAS,KAAO,MAAO;AAAA,CACjG;AACD,aAAa,cAAc;;;ADnC3B,SAAS,QAAqB,MAAM,SAAS,UAAU,cAAc,cAAc,iBAAiB,cAAc,wBAAwB;AAC1I,SAAS,aAAa,cAAc,WAAW,sBAAsB;;;AEPrE,OAAO,YAAY;AACnB,IAAM,YAAY,IAAI,WAAW,GAAG;AAEpC,IAAI,UAAU,UAAU;AACT,SAAR,MAAuB;AAC5B,MAAI,UAAU,UAAU,SAAS,IAAI;AACnC,WAAO,eAAe,SAAS;AAC/B,cAAU;AAAA,EACZ;AAEA,SAAO,UAAU,MAAM,SAAS,WAAW,EAAE;AAC/C;;;ACXA,IAAO,gBAAQ;;;ACEf,SAAS,SAAS,MAAM;AACtB,SAAO,OAAO,SAAS,YAAY,cAAM,KAAK,IAAI;AACpD;AAEA,IAAO,mBAAQ;;;ACAf,IAAM,YAAY,CAAC;AAEnB,SAAS,IAAI,GAAG,IAAI,KAAK,EAAE,GAAG;AAC5B,YAAU,MAAM,IAAI,KAAO,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;AACnD;AAEA,SAAS,UAAU,KAAK,SAAS,GAAG;AAGlC,QAAM,QAAQ,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,MAAM,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,MAAM,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,MAAM,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,IAAI,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,GAAG,YAAY;AAMvgB,MAAI,CAAC,iBAAS,IAAI,GAAG;AACnB,UAAM,UAAU,6BAA6B;AAAA,EAC/C;AAEA,SAAO;AACT;AAEA,IAAO,oBAAQ;;;ACzBf,SAAS,GAAG,SAAS,KAAK,QAAQ;AAChC,YAAU,WAAW,CAAC;AACtB,QAAM,OAAO,QAAQ,WAAW,QAAQ,OAAO,KAAK;AAEpD,OAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAO;AAC3B,OAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAO;AAE3B,MAAI,KAAK;AACP,aAAS,UAAU;AAEnB,aAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,UAAI,SAAS,CAAC,IAAI,KAAK,CAAC;AAAA,IAC1B;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,kBAAU,IAAI;AACvB;AAEA,IAAO,aAAQ;;;AN6Df,IAAM,YAAY,SAAS,CAAgC,UAA6B;AACtF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,IAAI,gBAAgB;AAAA,MAC/B,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAAA,IACD,uBAAuB,CAAC;AAAA,IACxB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,cAAc;AAAA,MACZ,cAAc;AAAA,MACd,eAAe;AAAA,MACf,eAAe;AAAA,MACf,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB;AAAA,EACpB,IAAI;AAEJ,QAAM,oBAAmB,iDAAgB,cAAa;AACtD,QAAM,mBAAmB,WAAU,iDAAgB,cAAa,UAAU;AAE1E,QAAM,QAAQ,mBAMX,OAAO;AAAA,IACR,SAAS,CAAC;AAAA,IACV,iBAAiB,CAAC;AAAA,IAClB,YAAY,CAAC;AAAA,IACb,gBAAgB,CAAC;AAAA,IACjB,QAAQC,OAA6B;AACnC,aAAO,OAAO,OAAOA,KAAI;AAAA,IAC3B;AAAA,EACF,EAAE;AAEF,YAAU,MAAM;AACd,UAAM,YAAY,WAAW,CAAC;AAC9B,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEA,UAAM,UAAU,OAAO,KAAK,SAAS;AACrC,UAAM,OAAO,aAAa,aAAa,gBAAgB,QAAQ,OAAO,CAAC,QAAK;AAzIhF;AAyImF,gBAAC,mBAAc,GAAG,MAAjB,mBAAoB;AAAA,KAAM,IAAI;AAE9G,UAAM,kBAA4D,CAAC;AAEnE,UAAMC,WAAuB,KAC1B,IAAI,CAAC,QAAgB;AA9I5B;AA+IQ,YAAM,YAAW,oDAAgB,SAAhB,mBAAsB;AACvC,UAAI,UAAU;AACZ,wBAAgB,GAAG,IAAI;AAAA,MACzB;AACA,aAAO;AAAA,QACL;AAAA,QACA,SAAO,oDAAgB,SAAhB,mBAAsB,UAAS;AAAA,QACtC,SAAQ,oDAAgB,SAAhB,mBAAsB;AAAA,MAChC;AAAA,IACF,CAAC;AAEH,QAAI,CAAC,cAAc,eAAe;AAChC,MAAAA,SAAQ,KAAK,CAAC,GAAG,MAAM;AA3J7B;AA4JQ,cAAM,WAAS,mBAAc,EAAE,GAAG,MAAnB,mBAAsB,UAAS;AAC9C,cAAM,WAAS,mBAAc,EAAE,GAAG,MAAnB,mBAAsB,UAAS;AAC9C,eAAO,SAAS;AAAA,MAClB,CAAC;AAAA,IACH;AAEA,UAAMC,kBAAiB,qBACpB,OAAO,CAAC,SAAS;AAChB,aAAO,MAAM,QAAQ,UAAU,KAAK,GAAG,CAAC;AAAA,IAC1C,CAAC,EACA,IAAI,CAAC,SAAS;AACb,YAAM,QAAQD,SAAQ,UAAU,CAAC,MAAM,EAAE,QAAQ,KAAK,GAAG;AACzD,UAAI,QAAQ,IAAI;AACd,QAAAA,SAAQ,OAAO,OAAO,CAAC;AAAA,MACzB;AAEA,YAAME,QAAO,OAAO,KAAK,KAAK,aAAa;AAC3C,aAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,SAASA,MAAK,IAAI,CAAC,MAAM;AACvB,gBAAM,SAAS,KAAK,cAAc,CAAC;AACnC,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,QAAO,iCAAQ,UAAS;AAAA,YACxB,QAAQ,iCAAQ;AAAA,UAClB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAEH,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA,SAAAF;AAAA,MACA,gBAAAC;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAED,QAAI,CAAC,gBAAgB;AACnB,iBAAW,QAAQ;AAAA,QACjB,OAAO,WAAW;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,YAAY,aAAa,CAAC;AAE9B,QAAM,SAAS,CAAC,EAAE,SAAS,KAAK,KAAK,MAAuE;AAC1G,UAAM,kBAA4D,CAAC;AACnE,WAAO,KAAK,MAAM,eAAe,EAAE,IAAI,CAAC,MAAM;AAC5C,sBAAgB,CAAC,IAAI,MAAM,MAAM,OAAO;AAAA,IAC1C,CAAC;AAED,QAAIE,cAAa;AACjB,QAAI,SAAS,QAAQ;AACnB,YAAM,SAAS,EAAE;AAAA,QACf;AAAA,QACA,CAAC,MAAM;AACL,gBAAM,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG;AACjC,cAAI,KAAK,MAAM;AACb,mBAAO,SAAS,SAAS,KAAK;AAAA,UAChC;AACA,cAAI,OAAO,MAAM,UAAU;AACzB,kBAAM,KAAK,OAAO,CAAC;AACnB,gBAAI,MAAM,EAAE,GAAG;AACb,qBAAO,EAAE,YAAY;AAAA,YACvB,OAAO;AACL,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,QACA;AAAA,MACF;AACA,MAAAA,cAAa;AAAA,IACf;AAEA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA,YAAAA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,SAAS,gBAAgB,WAAW,IAAI;AAChD,QAAM,oBAAoB,CAAC,CAAC,eAAe;AAC3C,QAAM,OAAO,iBAAiB,aAAa,WAAW,MAAM,WAAW,QAAQ,WAAW,SAAS,WAAW,KAAK;AAEnH,QAAM,oBAAoB,QAAQ,MAAM;AACtC,WAAO,kBAAkB,cAAc,WAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK;AAAA,EAChE,GAAG,CAAC,CAAC;AAEL,MAAI,QAAQ;AACV,WACE,gBAAAL,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,MAAM;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,SACE,gBAAAA,OAAA,cAAAA,OAAA,gBACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,2CAA2C,MAAM,SAAS,GAAG,IAAI,qBAClF,gBAAAA,OAAA,cAAC,aACC,gBAAAA,OAAA,cAAC,eAAY,WAAU,kBACrB,gBAAAA,OAAA,cAAC,YAAS,WAAU,8CACjB,qBAAqB,gBAAAA,OAAA,cAAC,eAAU,GAChC,qBAAqB,UAAU,gBAAAA,OAAA,cAAC,aAAU,WAAU,oEAAkE,gBAAiB,GACvI,QAAQ,IAAI,CAAC,MAAM,UAAO;AA7QzC;AA8QgB,2BAAAA,OAAA,cAAC,aAAU,WAAW,GAAG,mEAAkE,oDAAgB,KAAK,SAArB,mBAA2B,WAAW,GAAG,KAAK,KAAK,OAC5I,gBAAAA,OAAA,cAAC,SAAI,WAAU,uBACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,aAAW,KAAK,KAAM,GACpC,CAAC,CAAC,MAAM,gBAAgB,KAAK,GAAG,KAC/B,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAS;AAAA,QACT,UAAS;AAAA,QACT,WAAU;AAAA;AAAA,MAEV,gBAAAA,OAAA,cAAC,uBACC,gBAAAA,OAAA,cAAC,SAAI,WAAU,oBACZ,MAAM,gBAAgB,KAAK,GAAG,MAAM,UAAU,gBAAAA,OAAA,cAAC,eAAY,MAAM,IAAI,GACrE,MAAM,gBAAgB,KAAK,GAAG,MAAM,SAAS,gBAAAA,OAAA,cAAC,aAAU,MAAM,IAAI,GAClE,MAAM,gBAAgB,KAAK,GAAG,MAAM,UAAU,gBAAAA,OAAA,cAAC,kBAAe,MAAM,IAAI,CAC3E,CACF;AAAA,MACA,gBAAAA,OAAA,cAAC,gBAAa,eAAc,UAAS,cAAc,CAAC,MAAM,gBAAgB,KAAK,GAAG,CAAC,KACjF,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,SAAS,MAAM;AAjS3C,gBAAAM;AAkS8B,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,KAAK,KAAK;AAAA,cACV,UAASA,MAAA,+CAAgB,KAAK,SAArB,gBAAAA,IAA2B;AAAA,YACtC,CAAC;AAAA,UACH;AAAA;AAAA,QAEA,gBAAAN,OAAA,cAAC,UAAK,WAAU,uBAAoB,gBAAc;AAAA,MACpD,GACA,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,SAAS,MAAM;AA7S3C,gBAAAM;AA8S8B,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,KAAK,KAAK;AAAA,cACV,UAASA,MAAA,+CAAgB,KAAK,SAArB,gBAAAA,IAA2B;AAAA,YACtC,CAAC;AAAA,UACH;AAAA;AAAA,QAEA,gBAAAN,OAAA,cAAC,UAAK,WAAU,uBAAoB,iBAAe;AAAA,MACrD,GACA,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,SAAS,MAAM;AAzT3C,gBAAAM;AA0T8B,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,KAAK,KAAK;AAAA,cACV,UAASA,MAAA,+CAAgB,KAAK,SAArB,gBAAAA,IAA2B;AAAA,YACtC,CAAC;AAAA,UACH;AAAA;AAAA,QAEA,gBAAAN,OAAA,cAAC,UAAK,WAAU,uBAAoB,WAAS;AAAA,MAC/C,CACF;AAAA,IACF,CAEJ,CACF;AAAA,GACD,GACA,qBAAqB,WAAW,gBAAAA,OAAA,cAAC,aAAU,WAAU,oEAAkE,gBAAiB,CAC3I,CACF,GACA,gBAAAA,OAAA,cAAC,iBACE,KAAK;AAAA,IAAI,CAAC,MAAM,UACf,oBACE,gBAAAA,OAAA,cAAC,gBAAa,KAAK,KAAK,MAAM,KAAK,OAAO,MAAY,SAAkB,gBAAgC,QAAgB,SAAkB,kBAAoC,IAE9K,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,KAAK,MAAM,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ,CACF,CACF,CACF,GACC,WAAW,QAAQ,WAAW,SAC7B,gBAAAA,OAAA,cAAC,SAAI,WAAU,uCACb,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,MAAK;AAAA,MACL,QAAO;AAAA,MACP,OAAO,KAAK,KAAK,WAAW,QAAQ,WAAW,KAAK;AAAA,MACpD,MAAM,WAAW;AAAA,MACjB,aAAa;AAAA,MACb,UAAU,CAAC,gBAAgB;AACzB,mBAAW,QAAQ;AAAA,UACjB,MAAM;AAAA,QACR,CAAC;AACD,sBAAc,iBAAiB;AAAA,MACjC;AAAA;AAAA,EACF,CACF,CAEJ;AAEJ,CAAC;AAED,SAAS,aAAa,EAAE,OAAO,SAAS,GAAqB;AAC3D,SAAO,gBAAAA,OAAA,cAAC,2BAAW,QAAQ,QAAS;AACtC;AAEA,SAAS,iBAAiB,GAAQ;AAChC,MAAI,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU;AAChD,WAAO;AAAA,EACT;AACA,MAAI,KAAK,MAAM;AACb,WAAO;AAAA,EACT;AACA,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS,CAAC,MAAM;AACd,UAAE,gBAAgB;AAClB,oBAAY,KAAK;AAAA,UACf,SAAS,gBAAAA,OAAA,cAAC,iBAAc,WAAU,uBAAsB,SAAS,KAAK,UAAU,GAAG,MAAM,CAAC,GAAG;AAAA,QAC/F,CAAC;AAAA,MACH;AAAA;AAAA,IAEC,KAAK,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI;AAAA,EACpC;AAEJ;AAEA,SAAS,QAAW,EAAE,SAAS,gBAAgB,MAAM,OAAO,GAA6F;AACvJ,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,QAAI,QAAQ;AACV,aACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,sCAAsC,iDAAgB,SAAS,KAC/E,IAAI,IAAI,CAAC,KAAK,UACb,gBAAAA,OAAA,cAAC,gBAAa,KAAK,OAAO,OAAO,IAAI,OAAO,UAAU,IAAI,UAAU,CACrE,CACH;AAAA,IAEJ;AACA,WACE,gBAAAA,OAAA,cAAC,aAAU,WAAU,2CAClB,IAAI,IAAI,CAAC,KAAK,UACb,gBAAAA,OAAA,cAAC,gBAAa,KAAK,OAAO,OAAO,IAAI,OAAO,UAAU,IAAI,UAAU,CACrE,CACH;AAAA,EAEJ;AAEA,MAAI,QAAQ;AACV,WAAO,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,sCAAsC,iDAAgB,SAAS,KAAI,GAAI;AAAA,EACnG;AACA,SAAO,gBAAAA,OAAA,cAAC,aAAU,WAAU,2CAAyC,GAAI;AAC3E;AAEA,SAAS,KAAQ;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,+DAA+D,OAAO,WAAW,aAAa,OAAO,IAAI,IAAI,MAAM;AAAA,MACjI,SAAS,MAAM;AACb,iDAAa;AAAA,MACf;AAAA;AAAA,IAEC,qBAAqB,UAAU,gBAAAA,OAAA,cAAC,WAAQ,MAAY,SAAkB;AAAA,IACtE,QAAQ,IAAI,CAAC,WAAW;AAxc/B;AAycQ,aACE,gBAAAA,OAAA,cAAC,aAAU,KAAK,OAAO,KAAK,WAAW,GAAG,gCAA+B,oDAAgB,OAAO,SAAvB,mBAA6B,WAAW,KAC9G,OAAO,SACJ,OAAO,OAAO,IAAI,IAClB,iBAAiB,KAAK,OAAO,GAAG,CAAC,CACvC;AAAA,IAEJ,CAAC;AAAA,IACA,qBAAqB,WAAW,gBAAAA,OAAA,cAAC,WAAQ,MAAY,SAAkB;AAAA,EAC1E;AAEJ;AAEA,SAAS,aAAgB;AAAA,EAAE;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAiB,GAOd;AACH,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,SACE,gBAAAA,OAAA,cAAAA,OAAA,gBACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,8EAA8E,OAAO,WAAW,aAAa,OAAO,IAAI,IAAI,MAAM;AAAA,MAChJ,SAAS,CAAC,MAAW;AACnB,cAAM,EAAE,SAAS,IAAI,EAAE;AACvB,YAAI,aAAa,QAAQ,aAAa,OAAO;AAC3C,oBAAU,CAAC,MAAM,CAAC,CAAC;AAAA,QACrB;AAAA,MACF;AAAA;AAAA,IAEA,gBAAAA,OAAA,cAAC,aAAU,WAAU,UAAQ,SAAS,gBAAAA,OAAA,cAAC,eAAY,MAAM,IAAI,IAAK,gBAAAA,OAAA,cAAC,gBAAa,MAAM,IAAI,CAAG;AAAA,IAC5F,qBAAqB,UAAU,gBAAAA,OAAA,cAAC,WAAQ,MAAY,SAAkB;AAAA,IACtE,QAAQ,IAAI,CAAC,WAAW;AACvB,aACE,gBAAAA,OAAA,cAAC,aAAU,KAAK,OAAO,KAAK,WAAU,iCACnC,OAAO,SACJ,OAAO,OAAO,IAAI,IAClB,iBAAiB,KAAK,OAAO,GAAG,CAAC,CACvC;AAAA,IAEJ,CAAC;AAAA,IACA,qBAAqB,WAAW,gBAAAA,OAAA,cAAC,WAAQ,MAAY,SAAkB;AAAA,EAC1E,GACA,gBAAAA,OAAA,cAAC,YAAS,WAAW,GAAG,SAAS,cAAc,QAAQ,KACrD,gBAAAA,OAAA,cAAC,eAAU,GACX,gBAAAA,OAAA,cAAC,aAAU,SAAS,QAAQ,UACzB,eAAe,IAAI,CAAC,OAAO;AAC1B,UAAM,YAAY,GAAG;AACrB,UAAM,QAAQ,KAAK,GAAG,GAAG;AACzB,WACE,gBAAAA,OAAA,cAAC,SAAM,WAAU,aAAY,KAAK,GAAG,OACnC,gBAAAA,OAAA,cAAC,mBACC,gBAAAA,OAAA,cAAC,YAAS,WAAU,oCACjB,UAAU,IAAI,CAAC,QAAQ;AACtB,aACE,gBAAAA,OAAA,cAAC,aAAU,KAAK,IAAI,KAAK,WAAU,wDAChC,IAAI,KACP;AAAA,IAEJ,CAAC,CACH,CACF,GACA,gBAAAA,OAAA,cAAC,iBACE,MAAM,IAAI,CAAC,WACV,gBAAAA,OAAA,cAAC,YAAS,WAAU,+DAA8D,KAAK,OAAO,OAC3F,UAAU,IAAI,CAAC,QAAQ;AACtB,aACE,gBAAAA,OAAA,cAAC,aAAU,KAAK,IAAI,KAAK,WAAU,iCAChC,IAAI,SACD,IAAI,OAAO,iCACR,SADQ;AAAA,QAEX,SAAS;AAAA,MACX,EAAC,IACC,iBAAiB,OAAO,IAAI,GAAG,CAAC,CACtC;AAAA,IAEJ,CAAC,CACH,CACD,CACH,CACF;AAAA,EAEJ,CAAC,CACH,CACF,CACF;AAEJ;AAEA,eAAe,cAAc,mBAA4B;AACvD,QAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AACvD,MAAI,mBAAmB;AACrB,UAAM,KAAK,SAAS,eAAe,iBAAiB;AACpD,QAAI,IAAI;AACN,YAAM,EAAE,IAAI,IAAI,GAAG,sBAAsB;AACzC,aAAO,SAAS;AAAA,QACd,KAAK,MAAM,OAAO,UAAU;AAAA,QAC5B,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEA,IAAO,oBAAQ;AAGf,SAAS,aAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAYG;AACD,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAsB,IAAI,qBAC7B,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,aAAa,2CAAa,YAAY,KACtD,KAAK,IAAI,CAAC,MAAM,UAAU;AACzB,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,KAAK,MAAM,KAAK;AAAA,QACrB,WAAW,GAAG,0BAA0B,2CAAa,aAAa;AAAA,QAClE,aAAa,CAAC,CAAC;AAAA,QACf,SAAS,MAAM;AACb,mDAAa;AAAA,QACf;AAAA;AAAA,MAEC,QAAQ,IAAI,CAAC,QAAQ,MAAM;AAC1B,cAAM,SAAS,+CAAgB,OAAO;AACtC,eACE,gBAAAA,OAAA,cAAC,SAAI,WAAU,UAAS,KAAK,OAAO,OAClC,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,UAAU,2CAAa,aAAa,KACrD,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,kEAAkE,iCAAQ,cAAc,KAAI,OAAO,KAAM,GAC5H,gBAAAA,OAAA,cAAC,SAAI,WAAW,GAAG,oBAAoB,iCAAQ,cAAc,KAAI,OAAO,SAAS,OAAO,OAAO,IAAI,IAAI,iBAAiB,KAAK,OAAO,GAAG,CAAC,CAAE,CAC5I,IACC,2CAAa,gBAAe,MAAM,QAAQ,SAAS,KAAK,gBAAAA,OAAA,cAAC,WAAQ,WAAW,GAAG,QAAQ,2CAAa,gBAAgB,GAAG,CAC1H;AAAA,MAEJ,CAAC;AAAA,MACD,gBAAAA,OAAA,cAAC,WAAQ,QAAM,MAAC,MAAY,SAAkB,gBAAgC;AAAA,IAChF;AAAA,EAEJ,CAAC,CACH,GACC,WAAW,QAAQ,WAAW,SAC7B,gBAAAA,OAAA,cAAC,SAAI,WAAU,uCACb,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,MAAK;AAAA,MACL,QAAO;AAAA,MACP,OAAO,KAAK,KAAK,WAAW,QAAQ,WAAW,KAAK;AAAA,MACpD,MAAM,WAAW;AAAA,MACjB,aAAa;AAAA,MACb,UAAU,CAAC,gBAAgB;AACzB,mBAAW,QAAQ;AAAA,UACjB,MAAM;AAAA,QACR,CAAC;AACD,sBAAc,iBAAiB;AAAA,MACjC;AAAA;AAAA,EACF,CACF,CAEJ;AAEJ","sourcesContent":["\"use client\";\n\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { observer, useLocalObservable } from \"mobx-react-lite\";\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"../ui/table\";\nimport JSONHighlight from \"../Common/JSONHighlight\";\nimport { Button, ButtonProps, Card, Divider, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Pagination as NextuiPagination } from '@nextui-org/react';\nimport { ChevronDown, ChevronRight, ChevronUp, ChevronsUpDown } from \"lucide-react\";\nimport { _ } from \"../../lib/lodash\";\nimport { DialogStore } from \"../../module/Dialog\";\nimport { cn } from \"../../lib/utils\";\nimport { PaginationState } from \"../../store/standard/PaginationState\";\nimport { v4 as uuid } from 'uuid';\n\nexport type ActionButtonType = {\n props?: ButtonProps;\n children: React.ReactNode;\n};\n\nexport type ActionsOptions = {\n headLabel?: string;\n placement?: 'left' | 'right';\n className?: string;\n};\n\nexport type HeaderKeys<T extends Record<string, any>> = Array<keyof T>;\n\nexport type ColumnOptions<T extends Record<string, any>> = {\n [key in keyof T]?: {\n label?: React.ReactNode;\n hidden?: boolean;\n sortable?: boolean;\n sortKey?: string;\n order?: number;\n render?: (item: T) => any;\n thClassName?: string;\n tdClassName?: string;\n labelClassName?: string;\n valueClassName?: string;\n };\n};\n\nexport type Column<T extends Record<string, any>> = {\n key: string;\n label: React.ReactNode;\n render?: (item: T) => any;\n};\n\nexport type ExtendedTable<U> = {\n key: string;\n columns: Column<U>[];\n};\n\nexport type ActionsType<T> = (item: T) => ActionButtonType[] | React.ReactNode;\n\nexport type CardOptions = {\n boxClassName?: string;\n cardClassName?: string;\n itemClassName?: string;\n showDivider?: boolean;\n dividerClassName?: string;\n};\n\nexport interface JSONTableProps<T extends Record<string, any>> {\n className?: string;\n dataSource: T[];\n columnOptions?: ColumnOptions<T>;\n headerKeys?: HeaderKeys<T>;\n isServerPaging?: boolean;\n extendedTableOptions?: {\n key: keyof T;\n columnOptions: ColumnOptions<any>;\n }[];\n rowKey?: string;\n pagination?: PaginationState;\n onRowClick?: (item: T) => void;\n rowCss?: string | ((item: T) => string | undefined);\n actions?: ActionsType<T>;\n actionsOptions?: ActionsOptions;\n asCard?: boolean;\n cardOptions?: CardOptions;\n autoScrollToTop?: boolean;\n}\n\nconst JSONTable = observer(<T extends Record<string, any>>(props: JSONTableProps<T>) => {\n const {\n dataSource,\n columnOptions,\n headerKeys,\n isServerPaging,\n pagination = new PaginationState({\n page: 1,\n limit: 8,\n }),\n extendedTableOptions = [],\n rowKey = 'id',\n onRowClick,\n rowCss,\n actions,\n actionsOptions,\n asCard = false,\n cardOptions = {\n boxClassName: '',\n cardClassName: '',\n itemClassName: '',\n showDivider: true,\n dividerClassName: '',\n },\n autoScrollToTop = false,\n } = props;\n\n const actionsHeadLabel = actionsOptions?.headLabel || '';\n const actionsPlacement = actions ? actionsOptions?.placement || 'right' : undefined;\n\n const store = useLocalObservable<{\n columns: Column<T>[],\n sortableColumns: { [k: string]: 'asc' | 'desc' | 'none' };\n sortedData: T[];\n extendedTables: ExtendedTable<any>[];\n setData: (data: Partial<typeof store>) => void;\n }>(() => ({\n columns: [],\n sortableColumns: {},\n sortedData: [],\n extendedTables: [],\n setData(data: Partial<typeof store>) {\n Object.assign(store, data);\n },\n }));\n\n useEffect(() => {\n const firstData = dataSource[0];\n if (!firstData) {\n return;\n }\n\n const allKeys = Object.keys(firstData);\n const keys = headerKeys ? headerKeys : columnOptions ? allKeys.filter((key) => !columnOptions[key]?.hidden) : allKeys;\n\n const sortableColumns: { [k: string]: 'asc' | 'desc' | 'none' } = {};\n\n const columns: Column<T>[] = keys\n .map((key: string) => {\n const sortable = columnOptions?.[key]?.sortable;\n if (sortable) {\n sortableColumns[key] = 'none';\n }\n return {\n key,\n label: columnOptions?.[key]?.label || key,\n render: columnOptions?.[key]?.render,\n };\n })\n\n if (!headerKeys && columnOptions) {\n columns.sort((a, b) => {\n const aOrder = columnOptions[a.key]?.order || 0;\n const bOrder = columnOptions[b.key]?.order || 0;\n return bOrder - aOrder;\n });\n }\n\n const extendedTables = extendedTableOptions\n .filter((item) => {\n return Array.isArray(firstData[item.key])\n })\n .map((item) => {\n const index = columns.findIndex((c) => c.key === item.key);\n if (index > -1) {\n columns.splice(index, 1);\n }\n\n const keys = Object.keys(item.columnOptions);\n return {\n key: item.key as string,\n columns: keys.map((k) => {\n const option = item.columnOptions[k];\n return {\n key: k,\n label: option?.label || k,\n render: option?.render,\n };\n }),\n };\n });\n\n store.setData({\n sortableColumns,\n columns,\n extendedTables,\n sortedData: dataSource,\n });\n\n if (!isServerPaging) {\n pagination.setData({\n total: dataSource.length,\n });\n }\n }, [dataSource, columnOptions]);\n\n const onSort = ({ sortKey, key, type }: { sortKey: string; key: string; type: 'asc' | 'desc' | 'none' }) => {\n const sortableColumns: { [k: string]: 'asc' | 'desc' | 'none' } = {};\n Object.keys(store.sortableColumns).map((k) => {\n sortableColumns[k] = k === key ? type : 'none';\n });\n\n let sortedData = dataSource;\n if (type !== 'none') {\n const result = _.orderBy(\n dataSource,\n (o) => {\n const v = _.get(o, sortKey || key);\n if (v == null) {\n return type === 'desc' ? '' : v;\n }\n if (typeof v === 'string') {\n const _v = Number(v);\n if (isNaN(_v)) {\n return v.toLowerCase();\n } else {\n return _v;\n }\n }\n return v;\n },\n type,\n );\n sortedData = result;\n }\n\n store.setData({\n sortableColumns,\n sortedData,\n });\n };\n\n const { columns, extendedTables, sortedData } = store;\n const needExtendedTable = !!extendedTables.length;\n const data = isServerPaging ? sortedData : sortedData.slice(pagination.offset, pagination.offset + pagination.limit);\n\n const tableBoxElementId = useMemo(() => {\n return autoScrollToTop ? `table-card-${uuid().slice(0, 8)}` : undefined;\n }, []);\n\n if (asCard) {\n return (\n <CardOnMobile\n className={props.className}\n data={data}\n columns={columns}\n columnOptions={columnOptions}\n actions={actions}\n actionsOptions={actionsOptions}\n cardOptions={cardOptions}\n pagination={pagination}\n onRowClick={onRowClick}\n tableBoxElementId={tableBoxElementId}\n />\n );\n }\n\n return (\n <>\n <div className={cn('relative w-full overflow-auto h-[400px]', props.className)} id={tableBoxElementId}>\n <Table>\n <TableHeader className=\"sticky top-0\">\n <TableRow className=\"bg-[#F4F4F5] dark:bg-[#3F3F45] shadow-sm\">\n {needExtendedTable && <TableHead></TableHead>}\n {actionsPlacement === 'left' && <TableHead className=\"font-meidum text-[0.8125rem] text-[#64748B] dark:text-gray-300\">{actionsHeadLabel}</TableHead>}\n {columns.map((item, index) => (\n <TableHead className={cn('font-meidum text-[0.8125rem] text-[#64748B] dark:text-gray-300', columnOptions?.[item.key]?.thClassName)} key={item.key}>\n <div className=\"flex items-center\">\n <div className=\"text-xs\">{item.label}</div>\n {!!store.sortableColumns[item.key] && (\n <Dropdown\n showArrow\n backdrop=\"opaque\"\n placement=\"bottom\"\n >\n <DropdownTrigger>\n <div className=\"cursor-pointer\">\n {store.sortableColumns[item.key] === 'desc' && <ChevronDown size={14} />}\n {store.sortableColumns[item.key] === 'asc' && <ChevronUp size={14} />}\n {store.sortableColumns[item.key] === 'none' && <ChevronsUpDown size={14} />}\n </div>\n </DropdownTrigger>\n <DropdownMenu selectionMode=\"single\" selectedKeys={[store.sortableColumns[item.key]]}>\n <DropdownItem\n key=\"asc\"\n onClick={() => {\n onSort({\n type: 'asc',\n key: item.key,\n sortKey: columnOptions?.[item.key]?.sortKey,\n });\n }}\n >\n <span className=\"text-sm font-bold\">Sort ascending</span>\n </DropdownItem>\n <DropdownItem\n key=\"desc\"\n onClick={() => {\n onSort({\n type: 'desc',\n key: item.key,\n sortKey: columnOptions?.[item.key]?.sortKey,\n });\n }}\n >\n <span className=\"text-sm font-bold\">Sort descending</span>\n </DropdownItem>\n <DropdownItem\n key=\"none\"\n onClick={() => {\n onSort({\n type: 'none',\n key: item.key,\n sortKey: columnOptions?.[item.key]?.sortKey,\n });\n }}\n >\n <span className=\"text-sm font-bold\">Sort none</span>\n </DropdownItem>\n </DropdownMenu>\n </Dropdown>\n )}\n </div>\n </TableHead>\n ))}\n {actionsPlacement === 'right' && <TableHead className=\"font-meidum text-[0.8125rem] text-[#64748B] dark:text-gray-300\">{actionsHeadLabel}</TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.map((item, index) =>\n needExtendedTable ? (\n <CollapseBody key={item[rowKey] || index} item={item} columns={columns} extendedTables={extendedTables} rowCss={rowCss} actions={actions} actionsPlacement={actionsPlacement} />\n ) : (\n <Body\n key={item[rowKey] || index}\n item={item}\n columns={columns}\n columnOptions={columnOptions}\n onRowClick={onRowClick}\n rowCss={rowCss}\n actions={actions}\n actionsPlacement={actionsPlacement}\n />\n ),\n )}\n </TableBody>\n </Table>\n </div>\n {pagination.total > pagination.limit && (\n <div className=\"flex justify-center h-[30px] mt-4\">\n <NextuiPagination\n showControls\n size=\"sm\"\n radius=\"sm\"\n total={Math.ceil(pagination.total / pagination.limit)}\n page={pagination.page}\n initialPage={1}\n onChange={(currentPage) => {\n pagination.setData({\n page: currentPage,\n });\n scrollIntoTop(tableBoxElementId);\n }}\n />\n </div>\n )}\n </>\n );\n});\n\nfunction ActionButton({ props, children }: ActionButtonType) {\n return <Button {...props}>{children}</Button>;\n}\n\nfunction renderFieldValue(v: any) {\n if (typeof v == 'string' || typeof v == 'number') {\n return v;\n }\n if (v == null) {\n return null;\n }\n return (\n <p\n className=\"cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n DialogStore.show({\n content: <JSONHighlight className=\"w-full lg:w-[900px]\" jsonStr={JSON.stringify(v, null, 2)} />,\n });\n }}\n >\n {JSON.stringify(v).slice(0, 50) + '...'}\n </p>\n );\n}\n\nfunction Actions<T>({ actions, actionsOptions, item, asCard }: { item: T; actions?: ActionsType<T>; actionsOptions?: ActionsOptions; asCard?: boolean }) {\n if (!actions) {\n return null;\n }\n\n const Com = actions(item);\n if (Array.isArray(Com)) {\n if (asCard) {\n return (\n <div className={cn('w-full flex items-center space-x-2', actionsOptions?.className)}>\n {Com.map((btn, index) => (\n <ActionButton key={index} props={btn.props} children={btn.children} />\n ))}\n </div>\n );\n }\n return (\n <TableCell className=\"max-w-[200px] overflow-auto space-x-2\">\n {Com.map((btn, index) => (\n <ActionButton key={index} props={btn.props} children={btn.children} />\n ))}\n </TableCell>\n );\n }\n\n if (asCard) {\n return <div className={cn('w-full flex items-center space-x-2', actionsOptions?.className)}>{Com}</div>;\n }\n return <TableCell className=\"max-w-[200px] overflow-auto space-x-2\">{Com}</TableCell>;\n}\n\nfunction Body<T>({\n item,\n columns,\n columnOptions,\n onRowClick,\n rowCss,\n actions,\n actionsPlacement,\n}: {\n item: T;\n columns: Column<T>[];\n columnOptions?: ColumnOptions<T>;\n onRowClick?: (item: T) => void;\n rowCss?: string | ((item: T) => string | undefined);\n actions?: ActionsType<T>;\n actionsPlacement?: 'left' | 'right';\n}) {\n return (\n <TableRow\n className={cn('text-[0.8125rem] hover:bg-[#f6f6f9] dark:hover:bg-[#19191c]', typeof rowCss === 'function' ? rowCss(item) : rowCss)}\n onClick={() => {\n onRowClick?.(item);\n }}\n >\n {actionsPlacement === 'left' && <Actions item={item} actions={actions} />}\n {columns.map((column) => {\n return (\n <TableCell key={column.key} className={cn('max-w-[200px] overflow-auto', columnOptions?.[column.key]?.tdClassName)}>\n {column.render\n ? column.render(item)\n : renderFieldValue(item[column.key])}\n </TableCell>\n );\n })}\n {actionsPlacement === 'right' && <Actions item={item} actions={actions} />}\n </TableRow>\n );\n}\n\nfunction CollapseBody<T>({ item,\n columns,\n extendedTables,\n rowCss,\n actions,\n actionsPlacement }: {\n item: T;\n columns: Column<T>[];\n extendedTables: ExtendedTable<any>[];\n rowCss?: string | ((item: T) => string | undefined);\n actions?: ActionsType<T>;\n actionsPlacement?: 'left' | 'right';\n }) {\n const [isOpen, setIsOpen] = useState(false);\n return (\n <>\n <TableRow\n className={cn('text-[0.8125rem] cursor-pointer hover:bg-[#f6f6f9] dark:hover:bg-[#19191c]', typeof rowCss === 'function' ? rowCss(item) : rowCss)}\n onClick={(e: any) => {\n const { nodeName } = e.target;\n if (nodeName === 'TD' || nodeName === 'svg') {\n setIsOpen((v) => !v);\n }\n }}\n >\n <TableCell className=\"w-10\">{isOpen ? <ChevronDown size={18} /> : <ChevronRight size={18} />}</TableCell>\n {actionsPlacement === 'left' && <Actions item={item} actions={actions} />}\n {columns.map((column) => {\n return (\n <TableCell key={column.key} className=\"max-w-[200px] overflow-auto\">\n {column.render\n ? column.render(item)\n : renderFieldValue(item[column.key])}\n </TableCell>\n );\n })}\n {actionsPlacement === 'right' && <Actions item={item} actions={actions} />}\n </TableRow>\n <TableRow className={cn(isOpen ? 'table-row' : 'hidden')}>\n <TableCell></TableCell>\n <TableCell colSpan={columns.length}>\n {extendedTables.map((ex) => {\n const exColumns = ex.columns;\n const exRow = item[ex.key];\n return (\n <Table className=\"mt-[10px]\" key={ex.key}>\n <TableHeader>\n <TableRow className=\"bg-[#F4F4F5] dark:bg-[#3F3F45]\">\n {exColumns.map((exC) => {\n return (\n <TableHead key={exC.key} className=\"text-[0.8125rem] text-[#64748B] dark:text-gray-300\">\n {exC.label}\n </TableHead>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody>\n {exRow.map((exItem) => (\n <TableRow className=\"text-[0.8125rem] hover:bg-[#f6f6f9] dark:hover:bg-[#19191c]\" key={exItem.key}>\n {exColumns.map((exC) => {\n return (\n <TableCell key={exC.key} className=\"max-w-[200px] overflow-auto\">\n {exC.render\n ? exC.render({\n ...exItem,\n $parent: item,\n })\n : renderFieldValue(exItem[exC.key])}\n </TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n })}\n </TableCell>\n </TableRow>\n </>\n );\n}\n\nasync function scrollIntoTop(tableBoxElementId?: string) {\n await new Promise((resolve) => setTimeout(resolve, 500));\n if (tableBoxElementId) {\n const el = document.getElementById(tableBoxElementId);\n if (el) {\n const { top } = el.getBoundingClientRect();\n window.scrollTo({\n top: top + window.scrollY - 100,\n behavior: 'smooth',\n });\n }\n }\n}\n\nexport default JSONTable;\nexport { JSONTable }\n\nfunction CardOnMobile<T>({\n className,\n data,\n columns,\n columnOptions,\n rowKey,\n actions,\n actionsOptions,\n cardOptions,\n pagination,\n onRowClick,\n tableBoxElementId,\n}: {\n className?: string;\n data: T[];\n columns: Column<T>[];\n columnOptions?: ColumnOptions<T>;\n rowKey?: string;\n actions?: ActionsType<T>;\n actionsOptions?: ActionsOptions;\n cardOptions?: CardOptions;\n pagination: PaginationState;\n onRowClick?: (item: T) => void;\n tableBoxElementId?: string;\n}) {\n return (\n <div className={className} id={tableBoxElementId}>\n <div className={cn('space-y-2', cardOptions?.boxClassName)}>\n {data.map((item, index) => {\n return (\n <Card\n key={item[rowKey] || index}\n className={cn('w-full shadow-none p-4', cardOptions?.cardClassName)}\n isPressable={!!onRowClick}\n onPress={() => {\n onRowClick?.(item);\n }}\n >\n {columns.map((column, i) => {\n const option = columnOptions?.[column.key];\n return (\n <div className=\"w-full\" key={column.key}>\n <div className={cn('w-full', cardOptions?.itemClassName)}>\n <div className={cn('font-meidum text-[0.8125rem] text-[#64748B] dark:text-gray-300', option?.labelClassName)}>{column.label}</div>\n <div className={cn('text-[0.8125rem]', option?.valueClassName)}>{column.render ? column.render(item) : renderFieldValue(item[column.key])}</div>\n </div>\n {cardOptions?.showDivider && i !== columns.length - 1 && <Divider className={cn('my-2', cardOptions?.dividerClassName)} />}\n </div>\n );\n })}\n <Actions asCard item={item} actions={actions} actionsOptions={actionsOptions} />\n </Card>\n );\n })}\n </div>\n {pagination.total > pagination.limit && (\n <div className=\"flex justify-center h-[30px] mt-4\">\n <NextuiPagination\n showControls\n size=\"sm\"\n radius=\"sm\"\n total={Math.ceil(pagination.total / pagination.limit)}\n page={pagination.page}\n initialPage={1}\n onChange={(currentPage) => {\n pagination.setData({\n page: currentPage,\n });\n scrollIntoTop(tableBoxElementId);\n }}\n />\n </div>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(({ className, ...props }, ref) => (\n <table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn('bg-primary font-medium text-primary-foreground', className)} {...props} />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(({ className, ...props }, ref) => (\n <tr ref={ref} className={cn('', className)} {...props} />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\n <th ref={ref} className={cn('h-8 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0', className)} {...props} />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\n <td ref={ref} className={cn('p-2 align-middle [&:has([role=checkbox])]:pr-0', className)} {...props} />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n crypto.randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;"]}
@@ -1,6 +1,6 @@
1
- import { useStore, rootStore } from './chunk-OCLML5CM.mjs';
2
- import { cn } from './chunk-AIZ7XDNV.mjs';
3
- import { __spreadProps, __spreadValues } from './chunk-R4SQKVDQ.mjs';
1
+ import { useStore, rootStore } from './chunk-SXQEYWUP.mjs';
2
+ import { cn } from './chunk-6UHBBDKI.mjs';
3
+ import { __spreadProps, __spreadValues } from './chunk-6F7H4PAA.mjs';
4
4
  import React from 'react';
5
5
  import { makeAutoObservable } from 'mobx';
6
6
  import { Modal, ModalContent, ModalHeader, ModalBody } from '@nextui-org/react';
@@ -70,4 +70,4 @@ var DialogStore = class _DialogStore {
70
70
 
71
71
  export { DialogStore };
72
72
  //# sourceMappingURL=out.js.map
73
- //# sourceMappingURL=chunk-QO5RPRUY.mjs.map
73
+ //# sourceMappingURL=chunk-WAYJJYKN.mjs.map
@@ -1,5 +1,5 @@
1
1
  import { _ } from './chunk-MGU3KYGC.mjs';
2
- import { cn } from './chunk-AIZ7XDNV.mjs';
2
+ import { cn } from './chunk-6UHBBDKI.mjs';
3
3
  import React, { useRef } from 'react';
4
4
  import MonacoEditor from '@monaco-editor/react';
5
5
  import * as jsonpatch from 'fast-json-patch';
@@ -87,4 +87,4 @@ var JSONEditor = ({ className, height = "100%", initialJson, onChange, onSubmit
87
87
 
88
88
  export { JSONEditor };
89
89
  //# sourceMappingURL=out.js.map
90
- //# sourceMappingURL=chunk-7FXVRBK4.mjs.map
90
+ //# sourceMappingURL=chunk-ZPPKSMXO.mjs.map
package/dist/dev.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { S as Store, R as RootStore } from './root-C3lZnoCI.js';
1
+ import { S as Store, R as RootStore } from './root-766ae985.js';
2
2
  import React from 'react';
3
3
  import 'typed-emitter';
4
4
 
package/dist/dev.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { JSONEditor } from './chunk-7FXVRBK4.mjs';
1
+ import { JSONEditor } from './chunk-ZPPKSMXO.mjs';
2
2
  import { helper } from './chunk-CFVG66F4.mjs';
3
3
  import './chunk-MGU3KYGC.mjs';
4
- import { cn } from './chunk-AIZ7XDNV.mjs';
5
- import { __objRest, __spreadProps, __spreadValues } from './chunk-R4SQKVDQ.mjs';
4
+ import { cn } from './chunk-6UHBBDKI.mjs';
5
+ import { __objRest, __spreadProps, __spreadValues } from './chunk-6F7H4PAA.mjs';
6
6
  import * as React2 from 'react';
7
7
  import React2__default, { useMemo } from 'react';
8
8
  import * as SheetPrimitive from '@radix-ui/react-dialog';
@@ -1,4 +1,4 @@
1
- import { S as Store, R as RootStore } from './root-C3lZnoCI.js';
1
+ import { S as Store, R as RootStore } from './root-766ae985.js';
2
2
  import React, { ReactNode } from 'react';
3
3
  import 'typed-emitter';
4
4
 
@@ -15,9 +15,7 @@ declare class SlotPlugin implements Store {
15
15
  input?: Record<string, any>;
16
16
  render: React.FC<{}>;
17
17
  }>;
18
- static Slot: ({ name, ...props }: {
19
- name;
20
- } & any) => ReactNode;
18
+ static Slot: ({ name, ...props }: any) => ReactNode;
21
19
  constructor(args?: Partial<SlotPlugin>);
22
20
  }
23
21
 
@@ -121,4 +119,4 @@ declare class AsyncStorage implements Store {
121
119
  makeAutoAsyncAble(instance: any): Promise<void>;
122
120
  }
123
121
 
124
- export { AsyncStorage, type DataGroup, type Engine, SlotPlugin, type StorageParams, StoragePlugin, jwt };
122
+ export { AsyncStorage, DataGroup, Engine, SlotPlugin, StorageParams, StoragePlugin, jwt };
@@ -1,8 +1,8 @@
1
- import { PromiseState } from './chunk-ALOYXXRO.mjs';
1
+ import { PromiseState } from './chunk-I5WU3NZO.mjs';
2
2
  import './chunk-N4XCPX4L.mjs';
3
- import { RootStore } from './chunk-XJMRAPHI.mjs';
3
+ import { RootStore } from './chunk-HRWHDF2F.mjs';
4
4
  import { _ } from './chunk-MGU3KYGC.mjs';
5
- import { __objRest, __spreadValues, __spreadProps } from './chunk-R4SQKVDQ.mjs';
5
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
6
6
  import React from 'react';
7
7
  import { makeAutoObservable, toJS, observable } from 'mobx';
8
8
  import axios from 'axios';
package/dist/form.d.mts CHANGED
@@ -4,9 +4,9 @@ import { UiSchema, RJSFSchema, WidgetProps } from '@rjsf/utils';
4
4
  import * as _rjsf_validator_ajv8_lib_validator from '@rjsf/validator-ajv8/lib/validator';
5
5
  import Form, { IChangeEvent } from '@rjsf/core';
6
6
  import { EditorProps } from '@monaco-editor/react';
7
- import { S as Store, R as RootStore } from './root-C3lZnoCI.js';
7
+ import { S as Store, R as RootStore } from './root-766ae985.js';
8
8
  import EventEmitter from 'events';
9
- export { P as PaginationState } from './PaginationState-Bmrrw0ky.js';
9
+ export { P as PaginationState } from './PaginationState-c19e621a.js';
10
10
  import 'typed-emitter';
11
11
 
12
12
  declare class JSONSchemaFormState<T, U = UiSchema> {
@@ -246,7 +246,7 @@ declare class FormPlugin<T extends FormDataType> implements Store {
246
246
  modalSize: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl';
247
247
  scrollBehavior?: 'normal' | 'inside' | 'outside';
248
248
  isDismissable: boolean;
249
- event: EventEmitter<[never]>;
249
+ event: EventEmitter;
250
250
  onBatchSubmit?: (data: T, setLoading?: Dispatch<SetStateAction<boolean>>) => void;
251
251
  onSet?: (v: FormDataOfKey<T>, form: JSONSchemaFormState<FormDataOfKey<T>, UiSchema>) => FormDataOfKey<T>;
252
252
  onChange?: (data: Partial<T>) => void;
@@ -275,7 +275,7 @@ declare class FormModalStore<T = {
275
275
  modalSize: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'xs' | '3xl' | '4xl' | '5xl';
276
276
  scrollBehavior?: 'normal' | 'inside' | 'outside';
277
277
  closeOnOverlayClick: boolean;
278
- event: EventEmitter<[never]>;
278
+ event: EventEmitter;
279
279
  onAfterSubmit?: (data: T) => void;
280
280
  constructor(args?: Partial<FormModalStore>);
281
281
  setData(v: Partial<FormModalStore>): void;
@@ -347,4 +347,4 @@ declare class JSONViewPlugin implements Store {
347
347
  static JSONView: (props: JSONViewType) => React.JSX.Element;
348
348
  }
349
349
 
350
- export { type CheckboxWidgetProps, type CheckboxWidgetUIOptions, type EditorWidgetProps, type EditorWidgetUIOptions, type FieldLayoutType, type FormConfigType, type FormDataOfKey, type FormDataType, type FormKey, type FormLayoutType, FormModalStore, FormPlugin, type IconSelectWidgetProps, type IconSelectWidgetUIOptions, type InputWidgetProps, type InputWidgetUIOptions, type JSONDataType, JSONEditor, JSONForm, type JSONFormProps, JSONSchemaForm, JSONViewPlugin, type JSONViewType, type LayoutConfigType, type LayoutType, type SelectWidgetProps, type SelectWidgetUIOptions, type TextareaWidgetProps, type TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
350
+ export { CheckboxWidgetProps, CheckboxWidgetUIOptions, EditorWidgetProps, EditorWidgetUIOptions, FieldLayoutType, FormConfigType, FormDataOfKey, FormDataType, FormKey, FormLayoutType, FormModalStore, FormPlugin, IconSelectWidgetProps, IconSelectWidgetUIOptions, InputWidgetProps, InputWidgetUIOptions, JSONDataType, JSONEditor, JSONForm, JSONFormProps, JSONSchemaForm, JSONViewPlugin, JSONViewType, LayoutConfigType, LayoutType, SelectWidgetProps, SelectWidgetUIOptions, TextareaWidgetProps, TextareaWidgetUIOptions, getComplexFormData, getFormData, getFormState, getSimpleFormData };
package/dist/form.mjs CHANGED
@@ -1,11 +1,11 @@
1
- export { JSONEditor } from './chunk-7FXVRBK4.mjs';
1
+ export { JSONEditor } from './chunk-ZPPKSMXO.mjs';
2
2
  import { helper } from './chunk-CFVG66F4.mjs';
3
3
  export { PaginationState } from './chunk-ONVPCAMQ.mjs';
4
- import { useStore } from './chunk-OCLML5CM.mjs';
5
- import { RootStore } from './chunk-XJMRAPHI.mjs';
4
+ import { useStore } from './chunk-SXQEYWUP.mjs';
5
+ import { RootStore } from './chunk-HRWHDF2F.mjs';
6
6
  import { _ } from './chunk-MGU3KYGC.mjs';
7
- import { cn } from './chunk-AIZ7XDNV.mjs';
8
- import { __objRest, __spreadValues, __spreadProps } from './chunk-R4SQKVDQ.mjs';
7
+ import { cn } from './chunk-6UHBBDKI.mjs';
8
+ import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
9
9
  import React7, { useEffect, useMemo, useState, createRef } from 'react';
10
10
  import { Modal, ModalContent, ModalHeader, ModalBody, Button, Checkbox, Input, Card, Tabs, Tab } from '@nextui-org/react';
11
11
  import { ChevronUp, ChevronDown, Check } from 'lucide-react';
package/dist/index.d.mts CHANGED
@@ -1,13 +1,14 @@
1
- import { E as EventMap, R as RootStore, S as Store } from './root-C3lZnoCI.js';
2
- export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-C3lZnoCI.js';
3
- export { P as PromiseState } from './PromiseState-phP8daDG.js';
1
+ import { E as EventMap, R as RootStore, S as Store } from './root-766ae985.js';
2
+ export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-766ae985.js';
3
+ export { P as PromiseState } from './PromiseState-2a8c856c.js';
4
4
  import * as mobx from 'mobx';
5
5
  import BigNumber from 'bignumber.js';
6
6
  import { User } from 'next-auth';
7
7
  import EventEmitter from 'events';
8
8
  import React from 'react';
9
- import DataLoader from 'dataloader';
9
+ import * as _dexie from 'dexie';
10
10
  import { Table } from 'dexie';
11
+ import DataLoader from 'dataloader';
11
12
  import 'typed-emitter';
12
13
 
13
14
  type DefaultEventMap = {
@@ -85,7 +86,7 @@ declare class UserStore implements User, Store {
85
86
  email?: string;
86
87
  image?: string;
87
88
  token: string;
88
- event: EventEmitter<[never]>;
89
+ event: EventEmitter;
89
90
  signin(): void;
90
91
  logout(): void;
91
92
  wait(): Promise<UserStore>;
@@ -108,13 +109,7 @@ declare class DexieCache {
108
109
  value: any;
109
110
  expiration: number;
110
111
  };
111
- }, any, {
112
- key: string;
113
- value: {
114
- value: any;
115
- expiration: number;
116
- };
117
- }>;
112
+ }, _dexie.IndexableType>;
118
113
  kv_get: DataLoader<string, {
119
114
  value: any;
120
115
  expiration: number;
@@ -158,7 +153,7 @@ declare const helper: {
158
153
  };
159
154
  promise: {
160
155
  sleep(ms: any): Promise<unknown>;
161
- runAsync<T, U = Error>(promise: Promise<T>): Promise<[U | null, T | null]>;
156
+ runAsync<T, U = Error>(promise: Promise<T>): Promise<[U, T]>;
162
157
  };
163
158
  object: {
164
159
  crawlObject(object: any, options: any): any;
@@ -202,4 +197,4 @@ declare const helper: {
202
197
  };
203
198
  };
204
199
 
205
- export { AppProvider, BigNumberInputState, BigNumberState, type DefaultEventMap, PromiseHook, RootStore, Store, UserStore, cache, helper, rootStore, useStore };
200
+ export { AppProvider, BigNumberInputState, BigNumberState, DefaultEventMap, PromiseHook, RootStore, Store, UserStore, cache, helper, rootStore, useStore };
package/dist/index.mjs CHANGED
@@ -1,13 +1,13 @@
1
- export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-ALOYXXRO.mjs';
1
+ export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-I5WU3NZO.mjs';
2
2
  import './chunk-N4XCPX4L.mjs';
3
3
  import { helper } from './chunk-CFVG66F4.mjs';
4
4
  export { helper } from './chunk-CFVG66F4.mjs';
5
- import { rootStore } from './chunk-OCLML5CM.mjs';
6
- export { rootStore, useStore } from './chunk-OCLML5CM.mjs';
7
- import { RootStore } from './chunk-XJMRAPHI.mjs';
8
- export { RootStore } from './chunk-XJMRAPHI.mjs';
5
+ import { rootStore } from './chunk-SXQEYWUP.mjs';
6
+ export { rootStore, useStore } from './chunk-SXQEYWUP.mjs';
7
+ import { RootStore } from './chunk-HRWHDF2F.mjs';
8
+ export { RootStore } from './chunk-HRWHDF2F.mjs';
9
9
  import './chunk-MGU3KYGC.mjs';
10
- import './chunk-R4SQKVDQ.mjs';
10
+ import './chunk-6F7H4PAA.mjs';
11
11
  import { observable, makeAutoObservable } from 'mobx';
12
12
  import BigNumber2 from 'bignumber.js';
13
13
  import EventEmitter from 'events';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { S as Store } from './root-C3lZnoCI.js';
2
+ import { S as Store } from './root-766ae985.js';
3
3
  import 'typed-emitter';
4
4
 
5
5
  declare class DevInspectorPlugin implements Store {
@@ -1,4 +1,4 @@
1
- import './chunk-R4SQKVDQ.mjs';
1
+ import './chunk-6F7H4PAA.mjs';
2
2
  import React from 'react';
3
3
  import { Inspector } from 'react-dev-inspector';
4
4
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ButtonProps } from '@nextui-org/react';
3
- import { P as PaginationState } from './PaginationState-Bmrrw0ky.js';
3
+ import { P as PaginationState } from './PaginationState-c19e621a.js';
4
4
 
5
5
  type ActionButtonType = {
6
6
  props?: ButtonProps;
@@ -11,9 +11,8 @@ type ActionsOptions = {
11
11
  placement?: 'left' | 'right';
12
12
  className?: string;
13
13
  };
14
- type ColumnOptions<T = {
15
- [x: string]: any;
16
- }> = {
14
+ type HeaderKeys<T extends Record<string, any>> = Array<keyof T>;
15
+ type ColumnOptions<T extends Record<string, any>> = {
17
16
  [key in keyof T]?: {
18
17
  label?: React.ReactNode;
19
18
  hidden?: boolean;
@@ -27,9 +26,7 @@ type ColumnOptions<T = {
27
26
  valueClassName?: string;
28
27
  };
29
28
  };
30
- type Column<T = {
31
- [x: string]: any;
32
- }> = {
29
+ type Column<T extends Record<string, any>> = {
33
30
  key: string;
34
31
  label: React.ReactNode;
35
32
  render?: (item: T) => any;
@@ -46,17 +43,15 @@ type CardOptions = {
46
43
  showDivider?: boolean;
47
44
  dividerClassName?: string;
48
45
  };
49
- interface JSONTableProps<T = {
50
- [x: string]: any;
51
- }> {
46
+ interface JSONTableProps<T extends Record<string, any>> {
52
47
  className?: string;
53
48
  dataSource: T[];
54
49
  columnOptions?: ColumnOptions<T>;
55
- headerKeys?: string[];
50
+ headerKeys?: HeaderKeys<T>;
56
51
  isServerPaging?: boolean;
57
52
  extendedTableOptions?: {
58
- key: string;
59
- columnOptions?: ColumnOptions<any>;
53
+ key: keyof T;
54
+ columnOptions: ColumnOptions<any>;
60
55
  }[];
61
56
  rowKey?: string;
62
57
  pagination?: PaginationState;
@@ -68,8 +63,8 @@ interface JSONTableProps<T = {
68
63
  cardOptions?: CardOptions;
69
64
  autoScrollToTop?: boolean;
70
65
  }
71
- declare const JSONTable: (<T extends {}>(props: JSONTableProps<T>) => React.JSX.Element) & {
66
+ declare const JSONTable: (<T extends Record<string, any>>(props: JSONTableProps<T>) => React.JSX.Element) & {
72
67
  displayName: string;
73
68
  };
74
69
 
75
- export { type ActionButtonType, type ActionsType, type Column, type ColumnOptions, type ExtendedTable, JSONTable };
70
+ export { ActionButtonType, ActionsType, Column, ColumnOptions, ExtendedTable, JSONTable };