@dappworks/kit 0.4.66 → 0.4.68
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/dist/{PromiseState-phP8daDG.d.ts → PromiseState-2a8c856c.d.ts} +2 -2
- package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
- package/dist/{chunk-AIZ7XDNV.mjs → chunk-6UHBBDKI.mjs} +14 -14
- package/dist/chunk-6UHBBDKI.mjs.map +1 -0
- package/dist/{chunk-XJMRAPHI.mjs → chunk-HRWHDF2F.mjs} +7 -7
- package/dist/{chunk-XJMRAPHI.mjs.map → chunk-HRWHDF2F.mjs.map} +1 -1
- package/dist/{chunk-ALOYXXRO.mjs → chunk-I5WU3NZO.mjs} +2 -2
- package/dist/{chunk-OCLML5CM.mjs → chunk-SXQEYWUP.mjs} +2 -2
- package/dist/{chunk-7FI42NGB.mjs → chunk-U7JFOBSQ.mjs} +2 -2
- package/dist/{chunk-CYQSSB26.mjs → chunk-VB62FUWK.mjs} +73 -35
- package/dist/chunk-VB62FUWK.mjs.map +1 -0
- package/dist/{chunk-QO5RPRUY.mjs → chunk-WAYJJYKN.mjs} +4 -4
- package/dist/{chunk-7FXVRBK4.mjs → chunk-ZPPKSMXO.mjs} +2 -2
- package/dist/dev.d.mts +1 -1
- package/dist/dev.mjs +3 -3
- package/dist/experimental.d.mts +3 -5
- package/dist/experimental.mjs +3 -3
- package/dist/form.d.mts +5 -5
- package/dist/form.mjs +5 -5
- package/dist/index.d.mts +9 -14
- package/dist/index.mjs +6 -6
- package/dist/inspector.d.mts +1 -1
- package/dist/inspector.mjs +1 -1
- package/dist/jsontable.d.mts +10 -15
- package/dist/jsontable.mjs +7 -7
- package/dist/metrics.d.mts +35 -9
- package/dist/metrics.mjs +110 -59
- package/dist/metrics.mjs.map +1 -1
- package/dist/plugins.d.mts +2 -2
- package/dist/plugins.mjs +6 -6
- package/dist/{root-C3lZnoCI.d.ts → root-766ae985.d.ts} +1 -1
- package/dist/ui.mjs +3 -3
- package/package.json +1 -1
- package/dist/chunk-AIZ7XDNV.mjs.map +0 -1
- package/dist/chunk-CYQSSB26.mjs.map +0 -1
- /package/dist/{PaginationState-Bmrrw0ky.d.ts → PaginationState-c19e621a.d.ts} +0 -0
- /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
- /package/dist/{chunk-ALOYXXRO.mjs.map → chunk-I5WU3NZO.mjs.map} +0 -0
- /package/dist/{chunk-OCLML5CM.mjs.map → chunk-SXQEYWUP.mjs.map} +0 -0
- /package/dist/{chunk-7FI42NGB.mjs.map → chunk-U7JFOBSQ.mjs.map} +0 -0
- /package/dist/{chunk-QO5RPRUY.mjs.map → chunk-WAYJJYKN.mjs.map} +0 -0
- /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-
|
|
3
|
-
import { JSONHighlight } from './chunk-
|
|
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-
|
|
6
|
-
import { __objRest, __spreadValues } from './chunk-
|
|
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
|
|
144
|
-
|
|
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
|
-
}) :
|
|
151
|
+
}) : allKeys;
|
|
148
152
|
const sortableColumns = {};
|
|
149
153
|
const columns2 = keys.map((key) => {
|
|
150
|
-
var _a, _b, _c
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 ?
|
|
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({
|
|
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-[
|
|
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:
|
|
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: "
|
|
407
|
-
}))), /* @__PURE__ */ React2__default.createElement(TableBody, null, exRow.map((exItem) => /* @__PURE__ */ React2__default.createElement(TableRow, { className: "text-
|
|
408
|
-
return /* @__PURE__ */ React2__default.createElement(TableCell, { key: exC.key, className: "max-w-[200px] overflow-auto" }, exC.render ? exC.render(exItem)
|
|
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-
|
|
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":"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","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-
|
|
2
|
-
import { cn } from './chunk-
|
|
3
|
-
import { __spreadProps, __spreadValues } from './chunk-
|
|
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-
|
|
73
|
+
//# sourceMappingURL=chunk-WAYJJYKN.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ } from './chunk-MGU3KYGC.mjs';
|
|
2
|
-
import { cn } from './chunk-
|
|
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-
|
|
90
|
+
//# sourceMappingURL=chunk-ZPPKSMXO.mjs.map
|
package/dist/dev.d.mts
CHANGED
package/dist/dev.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { JSONEditor } from './chunk-
|
|
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-
|
|
5
|
-
import { __objRest, __spreadProps, __spreadValues } from './chunk-
|
|
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';
|
package/dist/experimental.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Store, R as RootStore } from './root-
|
|
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,
|
|
122
|
+
export { AsyncStorage, DataGroup, Engine, SlotPlugin, StorageParams, StoragePlugin, jwt };
|
package/dist/experimental.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PromiseState } from './chunk-
|
|
1
|
+
import { PromiseState } from './chunk-I5WU3NZO.mjs';
|
|
2
2
|
import './chunk-N4XCPX4L.mjs';
|
|
3
|
-
import { RootStore } from './chunk-
|
|
3
|
+
import { RootStore } from './chunk-HRWHDF2F.mjs';
|
|
4
4
|
import { _ } from './chunk-MGU3KYGC.mjs';
|
|
5
|
-
import { __objRest, __spreadValues, __spreadProps } from './chunk-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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 {
|
|
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-
|
|
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-
|
|
5
|
-
import { RootStore } from './chunk-
|
|
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-
|
|
8
|
-
import { __objRest, __spreadValues, __spreadProps } from './chunk-
|
|
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-
|
|
2
|
-
export { B as BaseState, c as BooleanState, N as NumberState, a as StoreClass, b as StringState, V as ValueState } from './root-
|
|
3
|
-
export { P as PromiseState } from './PromiseState-
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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
|
|
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,
|
|
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-
|
|
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-
|
|
6
|
-
export { rootStore, useStore } from './chunk-
|
|
7
|
-
import { RootStore } from './chunk-
|
|
8
|
-
export { RootStore } from './chunk-
|
|
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-
|
|
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';
|
package/dist/inspector.d.mts
CHANGED
package/dist/inspector.mjs
CHANGED
package/dist/jsontable.d.mts
CHANGED
|
@@ -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-
|
|
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
|
|
15
|
-
|
|
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?:
|
|
50
|
+
headerKeys?: HeaderKeys<T>;
|
|
56
51
|
isServerPaging?: boolean;
|
|
57
52
|
extendedTableOptions?: {
|
|
58
|
-
key:
|
|
59
|
-
columnOptions
|
|
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
|
|
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 {
|
|
70
|
+
export { ActionButtonType, ActionsType, Column, ColumnOptions, ExtendedTable, JSONTable };
|