@vuu-ui/vuu-datatable 0.9.0 → 0.9.1
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/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/json-table/JsonCell.css.js +6 -0
- package/cjs/json-table/JsonCell.css.js.map +1 -0
- package/cjs/json-table/JsonCell.js +45 -0
- package/cjs/json-table/JsonCell.js.map +1 -0
- package/cjs/json-table/JsonTable.js +10 -3
- package/cjs/json-table/JsonTable.js.map +1 -1
- package/cjs/tree-table/TreeTable.js +52 -0
- package/cjs/tree-table/TreeTable.js.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/json-table/JsonCell.css.js +4 -0
- package/esm/json-table/JsonCell.css.js.map +1 -0
- package/esm/json-table/JsonCell.js +43 -0
- package/esm/json-table/JsonCell.js.map +1 -0
- package/esm/json-table/JsonTable.js +10 -3
- package/esm/json-table/JsonTable.js.map +1 -1
- package/esm/tree-table/TreeTable.js +50 -0
- package/esm/tree-table/TreeTable.js.map +1 -0
- package/package.json +11 -11
- package/types/index.d.ts +1 -0
- package/types/json-table/JsonCell.d.ts +3 -0
- package/types/json-table/JsonTable.d.ts +1 -1
- package/types/tree-table/TreeTable.d.ts +9 -0
- package/types/tree-table/index.d.ts +1 -0
package/cjs/index.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
var FilterTable = require('./filter-table/FilterTable.js');
|
|
4
4
|
var usePersistFilterState = require('./filter-table/usePersistFilterState.js');
|
|
5
5
|
var JsonTable = require('./json-table/JsonTable.js');
|
|
6
|
+
var TreeTable = require('./tree-table/TreeTable.js');
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
exports.FilterTable = FilterTable.FilterTable;
|
|
10
11
|
exports.usePersistFilterState = usePersistFilterState.usePersistFilterState;
|
|
11
12
|
exports.JsonTable = JsonTable.JsonTable;
|
|
13
|
+
exports.TreeTable = TreeTable.TreeTable;
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var arrayCellCss = ".vuuJsonCell {\n --group-cell-spacer-width: 20px;\n align-items: center;\n border-right-style: solid;\n border-right-width: 1px;\n cursor: pointer;\n display: inline-flex;\n height: var(--row-height);\n padding-left: 20px;\n line-height: 16px;\n position: relative;\n\n .vuuToggleIconButton {\n position: absolute;\n }\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = arrayCellCss;
|
|
6
|
+
//# sourceMappingURL=JsonCell.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonCell.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
5
|
+
var styles = require('@salt-ds/styles');
|
|
6
|
+
var window = require('@salt-ds/window');
|
|
7
|
+
var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
|
|
8
|
+
var JsonCell$1 = require('./JsonCell.css.js');
|
|
9
|
+
|
|
10
|
+
const { IS_EXPANDED, IS_LEAF } = vuuUtils.metadataKeys;
|
|
11
|
+
const JsonCell = ({ column, columnMap, row }) => {
|
|
12
|
+
const targetWindow = window.useWindow();
|
|
13
|
+
styles.useComponentCssInjection({
|
|
14
|
+
testId: "vuu-array-cell",
|
|
15
|
+
css: JsonCell$1,
|
|
16
|
+
window: targetWindow
|
|
17
|
+
});
|
|
18
|
+
const { name } = column;
|
|
19
|
+
const dataIdx = columnMap[name];
|
|
20
|
+
let { [IS_EXPANDED]: isExpanded, [IS_LEAF]: isLeaf, [dataIdx]: value } = row;
|
|
21
|
+
const getDisplayValue = () => {
|
|
22
|
+
if (isLeaf) {
|
|
23
|
+
return value;
|
|
24
|
+
} else if (typeof value === "string" && value.endsWith("{")) {
|
|
25
|
+
value = value.slice(0, -1);
|
|
26
|
+
if (!isNaN(parseInt(value))) {
|
|
27
|
+
return `${value}: {...}`;
|
|
28
|
+
} else {
|
|
29
|
+
return `value {...}`;
|
|
30
|
+
}
|
|
31
|
+
} else if (typeof value === "string" && value.endsWith("[")) {
|
|
32
|
+
value = value.slice(0, -1);
|
|
33
|
+
return `${value} [...]`;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const displayValue = getDisplayValue();
|
|
37
|
+
const isEmpty = displayValue === "" || displayValue === void 0;
|
|
38
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
39
|
+
isLeaf || isEmpty ? null : /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.ToggleIconButton, { isExpanded }),
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: displayValue })
|
|
41
|
+
] });
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.JsonCell = JsonCell;
|
|
45
|
+
//# sourceMappingURL=JsonCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonCell.js","sources":["../../src/json-table/JsonCell.tsx"],"sourcesContent":["import { TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ToggleIconButton } from \"@vuu-ui/vuu-ui-controls\";\n\n// Note the className is actually applied to containing cell\nimport arrayCellCss from \"./JsonCell.css\";\n\nconst { IS_EXPANDED, IS_LEAF } = metadataKeys;\n\nexport const JsonCell = ({ column, columnMap, row }: TableCellProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-array-cell\",\n css: arrayCellCss,\n window: targetWindow,\n });\n\n const { name } = column;\n const dataIdx = columnMap[name];\n let { [IS_EXPANDED]: isExpanded, [IS_LEAF]: isLeaf, [dataIdx]: value } = row;\n\n const getDisplayValue = () => {\n if (isLeaf) {\n return value;\n } else if (typeof value === \"string\" && value.endsWith(\"{\")) {\n value = value.slice(0, -1);\n if (!isNaN(parseInt(value))) {\n return `${value}: {...}`;\n } else {\n return `value {...}`;\n }\n } else if (typeof value === \"string\" && value.endsWith(\"[\")) {\n value = value.slice(0, -1);\n return `${value} [...]`;\n }\n };\n\n const displayValue = getDisplayValue();\n const isEmpty = displayValue === \"\" || displayValue === undefined;\n\n return (\n <>\n {isLeaf || isEmpty ? null : <ToggleIconButton isExpanded={isExpanded} />}\n <span>{displayValue}</span>\n </>\n );\n};\n"],"names":["metadataKeys","useWindow","useComponentCssInjection","arrayCellCss","jsxs","Fragment","jsx","ToggleIconButton"],"mappings":";;;;;;;;;AASA,MAAM,EAAE,WAAa,EAAA,OAAA,EAAY,GAAAA,qBAAA,CAAA;AAE1B,MAAM,WAAW,CAAC,EAAE,MAAQ,EAAA,SAAA,EAAW,KAA0B,KAAA;AACtE,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAC,UAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAS,GAAA,MAAA,CAAA;AACjB,EAAM,MAAA,OAAA,GAAU,UAAU,IAAI,CAAA,CAAA;AAC9B,EAAA,IAAI,EAAE,CAAC,WAAW,GAAG,UAAY,EAAA,CAAC,OAAO,GAAG,MAAQ,EAAA,CAAC,OAAO,GAAG,OAAU,GAAA,GAAA,CAAA;AAEzE,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,MAAQ,EAAA;AACV,MAAO,OAAA,KAAA,CAAA;AAAA,eACE,OAAO,KAAA,KAAU,YAAY,KAAM,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAC3D,MAAQ,KAAA,GAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,CAAE,CAAA,CAAA,CAAA;AACzB,MAAA,IAAI,CAAC,KAAA,CAAM,QAAS,CAAA,KAAK,CAAC,CAAG,EAAA;AAC3B,QAAA,OAAO,GAAG,KAAK,CAAA,OAAA,CAAA,CAAA;AAAA,OACV,MAAA;AACL,QAAO,OAAA,CAAA,WAAA,CAAA,CAAA;AAAA,OACT;AAAA,eACS,OAAO,KAAA,KAAU,YAAY,KAAM,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAC3D,MAAQ,KAAA,GAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,CAAE,CAAA,CAAA,CAAA;AACzB,MAAA,OAAO,GAAG,KAAK,CAAA,MAAA,CAAA,CAAA;AAAA,KACjB;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AACrC,EAAM,MAAA,OAAA,GAAU,YAAiB,KAAA,EAAA,IAAM,YAAiB,KAAA,KAAA,CAAA,CAAA;AAExD,EAAA,uBAEKC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,MAAA,IAAU,OAAU,GAAA,IAAA,mBAAQC,cAAA,CAAAC,8BAAA,EAAA,EAAiB,UAAwB,EAAA,CAAA;AAAA,oBACtED,cAAA,CAAC,UAAM,QAAa,EAAA,YAAA,EAAA,CAAA;AAAA,GACtB,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
5
|
var vuuTable = require('@vuu-ui/vuu-table');
|
|
5
6
|
var vuuDataLocal = require('@vuu-ui/vuu-data-local');
|
|
6
7
|
var react = require('react');
|
|
8
|
+
var JsonCell = require('./JsonCell.js');
|
|
7
9
|
|
|
10
|
+
vuuUtils.registerComponent("json", JsonCell.JsonCell, "cell-renderer");
|
|
8
11
|
const JsonTable = ({
|
|
9
12
|
config,
|
|
10
|
-
source: sourceProp
|
|
13
|
+
source: sourceProp,
|
|
11
14
|
...tableProps
|
|
12
15
|
}) => {
|
|
13
16
|
const sourceRef = react.useRef(sourceProp);
|
|
@@ -20,7 +23,9 @@ const JsonTable = ({
|
|
|
20
23
|
const tableConfig = react.useMemo(() => {
|
|
21
24
|
return {
|
|
22
25
|
...config,
|
|
23
|
-
columns: dataSourceRef.current?.columnDescriptors ?? []
|
|
26
|
+
columns: dataSourceRef.current?.columnDescriptors ?? [],
|
|
27
|
+
columnSeparators: true,
|
|
28
|
+
rowSeparators: true
|
|
24
29
|
};
|
|
25
30
|
}, [config]);
|
|
26
31
|
react.useEffect(() => {
|
|
@@ -36,7 +41,9 @@ const JsonTable = ({
|
|
|
36
41
|
{
|
|
37
42
|
...tableProps,
|
|
38
43
|
config: tableConfig,
|
|
39
|
-
dataSource: dataSourceRef.current
|
|
44
|
+
dataSource: dataSourceRef.current,
|
|
45
|
+
showColumnHeaderMenus: false,
|
|
46
|
+
selectionModel: "none"
|
|
40
47
|
}
|
|
41
48
|
);
|
|
42
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonTable.js","sources":["../../src/json-table/JsonTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { JsonData } from \"@vuu-ui/vuu-utils\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { JsonDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\n\nexport interface JsonTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: JsonData
|
|
1
|
+
{"version":3,"file":"JsonTable.js","sources":["../../src/json-table/JsonTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { JsonData, registerComponent } from \"@vuu-ui/vuu-utils\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { JsonDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\nimport { JsonCell } from \"./JsonCell\";\n\nregisterComponent(\"json\", JsonCell, \"cell-renderer\");\n\nexport interface JsonTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: JsonData;\n}\n\nexport const JsonTable = ({\n config,\n source: sourceProp,\n ...tableProps\n}: JsonTableProps) => {\n const sourceRef = useRef(sourceProp);\n const dataSourceRef = useRef<JsonDataSource>();\n useMemo(() => {\n dataSourceRef.current = new JsonDataSource({\n data: sourceRef.current,\n });\n }, []);\n\n const tableConfig = useMemo<TableConfig>(() => {\n return {\n ...config,\n columns: dataSourceRef.current?.columnDescriptors ?? [],\n columnSeparators: true,\n rowSeparators: true,\n };\n }, [config]);\n\n useEffect(() => {\n if (dataSourceRef.current) {\n dataSourceRef.current.data = sourceProp;\n }\n }, [sourceProp]);\n\n if (dataSourceRef.current === undefined) {\n return null;\n }\n\n return (\n <Table\n {...tableProps}\n config={tableConfig}\n dataSource={dataSourceRef.current}\n showColumnHeaderMenus={false}\n selectionModel=\"none\"\n />\n );\n};\n"],"names":["registerComponent","JsonCell","useRef","useMemo","JsonDataSource","useEffect","jsx","Table"],"mappings":";;;;;;;;;AAQAA,0BAAkB,CAAA,MAAA,EAAQC,mBAAU,eAAe,CAAA,CAAA;AAW5C,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA;AAAA,EACR,GAAG,UAAA;AACL,CAAsB,KAAA;AACpB,EAAM,MAAA,SAAA,GAAYC,aAAO,UAAU,CAAA,CAAA;AACnC,EAAA,MAAM,gBAAgBA,YAAuB,EAAA,CAAA;AAC7C,EAAAC,aAAA,CAAQ,MAAM;AACZ,IAAc,aAAA,CAAA,OAAA,GAAU,IAAIC,2BAAe,CAAA;AAAA,MACzC,MAAM,SAAU,CAAA,OAAA;AAAA,KACjB,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,WAAA,GAAcD,cAAqB,MAAM;AAC7C,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,OAAS,EAAA,aAAA,CAAc,OAAS,EAAA,iBAAA,IAAqB,EAAC;AAAA,MACtD,gBAAkB,EAAA,IAAA;AAAA,MAClB,aAAe,EAAA,IAAA;AAAA,KACjB,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAAE,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MAAA,aAAA,CAAc,QAAQ,IAAO,GAAA,UAAA,CAAA;AAAA,KAC/B;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAI,IAAA,aAAA,CAAc,YAAY,KAAW,CAAA,EAAA;AACvC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EACE,uBAAAC,cAAA;AAAA,IAACC,cAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,MAAQ,EAAA,WAAA;AAAA,MACR,YAAY,aAAc,CAAA,OAAA;AAAA,MAC1B,qBAAuB,EAAA,KAAA;AAAA,MACvB,cAAe,EAAA,MAAA;AAAA,KAAA;AAAA,GACjB,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var vuuTable = require('@vuu-ui/vuu-table');
|
|
5
|
+
var vuuDataLocal = require('@vuu-ui/vuu-data-local');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
|
|
8
|
+
const TreeTable = ({
|
|
9
|
+
config,
|
|
10
|
+
source: sourceProp,
|
|
11
|
+
...tableProps
|
|
12
|
+
}) => {
|
|
13
|
+
const sourceRef = react.useRef(sourceProp);
|
|
14
|
+
const dataSourceRef = react.useRef();
|
|
15
|
+
react.useMemo(() => {
|
|
16
|
+
dataSourceRef.current = new vuuDataLocal.TreeDataSource({
|
|
17
|
+
data: sourceRef.current
|
|
18
|
+
});
|
|
19
|
+
}, []);
|
|
20
|
+
const tableConfig = react.useMemo(() => {
|
|
21
|
+
return {
|
|
22
|
+
...config,
|
|
23
|
+
columns: dataSourceRef.current?.columnDescriptors ?? [],
|
|
24
|
+
columnSeparators: false,
|
|
25
|
+
rowSeparators: false
|
|
26
|
+
};
|
|
27
|
+
}, [config]);
|
|
28
|
+
react.useEffect(() => {
|
|
29
|
+
if (dataSourceRef.current) {
|
|
30
|
+
dataSourceRef.current.data = sourceProp;
|
|
31
|
+
}
|
|
32
|
+
}, [sourceProp]);
|
|
33
|
+
if (dataSourceRef.current === void 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
vuuTable.Table,
|
|
38
|
+
{
|
|
39
|
+
...tableProps,
|
|
40
|
+
config: tableConfig,
|
|
41
|
+
dataSource: dataSourceRef.current,
|
|
42
|
+
groupToggleTarget: "toggle-icon",
|
|
43
|
+
navigationStyle: "tree",
|
|
44
|
+
showColumnHeaderMenus: false,
|
|
45
|
+
selectionModel: "single",
|
|
46
|
+
selectionBookendWidth: 0
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports.TreeTable = TreeTable;
|
|
52
|
+
//# sourceMappingURL=TreeTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeTable.js","sources":["../../src/tree-table/TreeTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { TreeDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\nimport { TreeSourceNode } from \"@vuu-ui/vuu-utils\";\n\nexport interface TreeTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: TreeSourceNode[];\n}\n\nexport const TreeTable = ({\n config,\n source: sourceProp,\n ...tableProps\n}: TreeTableProps) => {\n const sourceRef = useRef(sourceProp);\n const dataSourceRef = useRef<TreeDataSource>();\n useMemo(() => {\n dataSourceRef.current = new TreeDataSource({\n data: sourceRef.current,\n });\n }, []);\n\n const tableConfig = useMemo<TableConfig>(() => {\n return {\n ...config,\n columns: dataSourceRef.current?.columnDescriptors ?? [],\n columnSeparators: false,\n rowSeparators: false,\n };\n }, [config]);\n\n useEffect(() => {\n if (dataSourceRef.current) {\n dataSourceRef.current.data = sourceProp;\n }\n }, [sourceProp]);\n\n if (dataSourceRef.current === undefined) {\n return null;\n }\n\n return (\n <Table\n {...tableProps}\n config={tableConfig}\n dataSource={dataSourceRef.current}\n groupToggleTarget=\"toggle-icon\"\n navigationStyle=\"tree\"\n showColumnHeaderMenus={false}\n selectionModel=\"single\"\n selectionBookendWidth={0}\n />\n );\n};\n"],"names":["useRef","useMemo","TreeDataSource","useEffect","jsx","Table"],"mappings":";;;;;;;AAgBO,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA;AAAA,EACR,GAAG,UAAA;AACL,CAAsB,KAAA;AACpB,EAAM,MAAA,SAAA,GAAYA,aAAO,UAAU,CAAA,CAAA;AACnC,EAAA,MAAM,gBAAgBA,YAAuB,EAAA,CAAA;AAC7C,EAAAC,aAAA,CAAQ,MAAM;AACZ,IAAc,aAAA,CAAA,OAAA,GAAU,IAAIC,2BAAe,CAAA;AAAA,MACzC,MAAM,SAAU,CAAA,OAAA;AAAA,KACjB,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,WAAA,GAAcD,cAAqB,MAAM;AAC7C,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,OAAS,EAAA,aAAA,CAAc,OAAS,EAAA,iBAAA,IAAqB,EAAC;AAAA,MACtD,gBAAkB,EAAA,KAAA;AAAA,MAClB,aAAe,EAAA,KAAA;AAAA,KACjB,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAAE,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MAAA,aAAA,CAAc,QAAQ,IAAO,GAAA,UAAA,CAAA;AAAA,KAC/B;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAI,IAAA,aAAA,CAAc,YAAY,KAAW,CAAA,EAAA;AACvC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EACE,uBAAAC,cAAA;AAAA,IAACC,cAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,MAAQ,EAAA,WAAA;AAAA,MACR,YAAY,aAAc,CAAA,OAAA;AAAA,MAC1B,iBAAkB,EAAA,aAAA;AAAA,MAClB,eAAgB,EAAA,MAAA;AAAA,MAChB,qBAAuB,EAAA,KAAA;AAAA,MACvB,cAAe,EAAA,QAAA;AAAA,MACf,qBAAuB,EAAA,CAAA;AAAA,KAAA;AAAA,GACzB,CAAA;AAEJ;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { FilterTable } from './filter-table/FilterTable.js';
|
|
2
2
|
export { usePersistFilterState } from './filter-table/usePersistFilterState.js';
|
|
3
3
|
export { JsonTable } from './json-table/JsonTable.js';
|
|
4
|
+
export { TreeTable } from './tree-table/TreeTable.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var arrayCellCss = ".vuuJsonCell {\n --group-cell-spacer-width: 20px;\n align-items: center;\n border-right-style: solid;\n border-right-width: 1px;\n cursor: pointer;\n display: inline-flex;\n height: var(--row-height);\n padding-left: 20px;\n line-height: 16px;\n position: relative;\n\n .vuuToggleIconButton {\n position: absolute;\n }\n}\n";
|
|
2
|
+
|
|
3
|
+
export { arrayCellCss as default };
|
|
4
|
+
//# sourceMappingURL=JsonCell.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonCell.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { metadataKeys } from '@vuu-ui/vuu-utils';
|
|
3
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
|
+
import { useWindow } from '@salt-ds/window';
|
|
5
|
+
import { ToggleIconButton } from '@vuu-ui/vuu-ui-controls';
|
|
6
|
+
import arrayCellCss from './JsonCell.css.js';
|
|
7
|
+
|
|
8
|
+
const { IS_EXPANDED, IS_LEAF } = metadataKeys;
|
|
9
|
+
const JsonCell = ({ column, columnMap, row }) => {
|
|
10
|
+
const targetWindow = useWindow();
|
|
11
|
+
useComponentCssInjection({
|
|
12
|
+
testId: "vuu-array-cell",
|
|
13
|
+
css: arrayCellCss,
|
|
14
|
+
window: targetWindow
|
|
15
|
+
});
|
|
16
|
+
const { name } = column;
|
|
17
|
+
const dataIdx = columnMap[name];
|
|
18
|
+
let { [IS_EXPANDED]: isExpanded, [IS_LEAF]: isLeaf, [dataIdx]: value } = row;
|
|
19
|
+
const getDisplayValue = () => {
|
|
20
|
+
if (isLeaf) {
|
|
21
|
+
return value;
|
|
22
|
+
} else if (typeof value === "string" && value.endsWith("{")) {
|
|
23
|
+
value = value.slice(0, -1);
|
|
24
|
+
if (!isNaN(parseInt(value))) {
|
|
25
|
+
return `${value}: {...}`;
|
|
26
|
+
} else {
|
|
27
|
+
return `value {...}`;
|
|
28
|
+
}
|
|
29
|
+
} else if (typeof value === "string" && value.endsWith("[")) {
|
|
30
|
+
value = value.slice(0, -1);
|
|
31
|
+
return `${value} [...]`;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const displayValue = getDisplayValue();
|
|
35
|
+
const isEmpty = displayValue === "" || displayValue === void 0;
|
|
36
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37
|
+
isLeaf || isEmpty ? null : /* @__PURE__ */ jsx(ToggleIconButton, { isExpanded }),
|
|
38
|
+
/* @__PURE__ */ jsx("span", { children: displayValue })
|
|
39
|
+
] });
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { JsonCell };
|
|
43
|
+
//# sourceMappingURL=JsonCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonCell.js","sources":["../../src/json-table/JsonCell.tsx"],"sourcesContent":["import { TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport { metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ToggleIconButton } from \"@vuu-ui/vuu-ui-controls\";\n\n// Note the className is actually applied to containing cell\nimport arrayCellCss from \"./JsonCell.css\";\n\nconst { IS_EXPANDED, IS_LEAF } = metadataKeys;\n\nexport const JsonCell = ({ column, columnMap, row }: TableCellProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-array-cell\",\n css: arrayCellCss,\n window: targetWindow,\n });\n\n const { name } = column;\n const dataIdx = columnMap[name];\n let { [IS_EXPANDED]: isExpanded, [IS_LEAF]: isLeaf, [dataIdx]: value } = row;\n\n const getDisplayValue = () => {\n if (isLeaf) {\n return value;\n } else if (typeof value === \"string\" && value.endsWith(\"{\")) {\n value = value.slice(0, -1);\n if (!isNaN(parseInt(value))) {\n return `${value}: {...}`;\n } else {\n return `value {...}`;\n }\n } else if (typeof value === \"string\" && value.endsWith(\"[\")) {\n value = value.slice(0, -1);\n return `${value} [...]`;\n }\n };\n\n const displayValue = getDisplayValue();\n const isEmpty = displayValue === \"\" || displayValue === undefined;\n\n return (\n <>\n {isLeaf || isEmpty ? null : <ToggleIconButton isExpanded={isExpanded} />}\n <span>{displayValue}</span>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,EAAE,WAAa,EAAA,OAAA,EAAY,GAAA,YAAA,CAAA;AAE1B,MAAM,WAAW,CAAC,EAAE,MAAQ,EAAA,SAAA,EAAW,KAA0B,KAAA;AACtE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,YAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,MAAS,GAAA,MAAA,CAAA;AACjB,EAAM,MAAA,OAAA,GAAU,UAAU,IAAI,CAAA,CAAA;AAC9B,EAAA,IAAI,EAAE,CAAC,WAAW,GAAG,UAAY,EAAA,CAAC,OAAO,GAAG,MAAQ,EAAA,CAAC,OAAO,GAAG,OAAU,GAAA,GAAA,CAAA;AAEzE,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,MAAQ,EAAA;AACV,MAAO,OAAA,KAAA,CAAA;AAAA,eACE,OAAO,KAAA,KAAU,YAAY,KAAM,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAC3D,MAAQ,KAAA,GAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,CAAE,CAAA,CAAA,CAAA;AACzB,MAAA,IAAI,CAAC,KAAA,CAAM,QAAS,CAAA,KAAK,CAAC,CAAG,EAAA;AAC3B,QAAA,OAAO,GAAG,KAAK,CAAA,OAAA,CAAA,CAAA;AAAA,OACV,MAAA;AACL,QAAO,OAAA,CAAA,WAAA,CAAA,CAAA;AAAA,OACT;AAAA,eACS,OAAO,KAAA,KAAU,YAAY,KAAM,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAC3D,MAAQ,KAAA,GAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,CAAE,CAAA,CAAA,CAAA;AACzB,MAAA,OAAO,GAAG,KAAK,CAAA,MAAA,CAAA,CAAA;AAAA,KACjB;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AACrC,EAAM,MAAA,OAAA,GAAU,YAAiB,KAAA,EAAA,IAAM,YAAiB,KAAA,KAAA,CAAA,CAAA;AAExD,EAAA,uBAEK,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,MAAA,IAAU,OAAU,GAAA,IAAA,mBAAQ,GAAA,CAAA,gBAAA,EAAA,EAAiB,UAAwB,EAAA,CAAA;AAAA,oBACtE,GAAA,CAAC,UAAM,QAAa,EAAA,YAAA,EAAA,CAAA;AAAA,GACtB,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { registerComponent } from '@vuu-ui/vuu-utils';
|
|
2
3
|
import { Table } from '@vuu-ui/vuu-table';
|
|
3
4
|
import { JsonDataSource } from '@vuu-ui/vuu-data-local';
|
|
4
5
|
import { useRef, useMemo, useEffect } from 'react';
|
|
6
|
+
import { JsonCell } from './JsonCell.js';
|
|
5
7
|
|
|
8
|
+
registerComponent("json", JsonCell, "cell-renderer");
|
|
6
9
|
const JsonTable = ({
|
|
7
10
|
config,
|
|
8
|
-
source: sourceProp
|
|
11
|
+
source: sourceProp,
|
|
9
12
|
...tableProps
|
|
10
13
|
}) => {
|
|
11
14
|
const sourceRef = useRef(sourceProp);
|
|
@@ -18,7 +21,9 @@ const JsonTable = ({
|
|
|
18
21
|
const tableConfig = useMemo(() => {
|
|
19
22
|
return {
|
|
20
23
|
...config,
|
|
21
|
-
columns: dataSourceRef.current?.columnDescriptors ?? []
|
|
24
|
+
columns: dataSourceRef.current?.columnDescriptors ?? [],
|
|
25
|
+
columnSeparators: true,
|
|
26
|
+
rowSeparators: true
|
|
22
27
|
};
|
|
23
28
|
}, [config]);
|
|
24
29
|
useEffect(() => {
|
|
@@ -34,7 +39,9 @@ const JsonTable = ({
|
|
|
34
39
|
{
|
|
35
40
|
...tableProps,
|
|
36
41
|
config: tableConfig,
|
|
37
|
-
dataSource: dataSourceRef.current
|
|
42
|
+
dataSource: dataSourceRef.current,
|
|
43
|
+
showColumnHeaderMenus: false,
|
|
44
|
+
selectionModel: "none"
|
|
38
45
|
}
|
|
39
46
|
);
|
|
40
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonTable.js","sources":["../../src/json-table/JsonTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { JsonData } from \"@vuu-ui/vuu-utils\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { JsonDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\n\nexport interface JsonTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: JsonData
|
|
1
|
+
{"version":3,"file":"JsonTable.js","sources":["../../src/json-table/JsonTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { JsonData, registerComponent } from \"@vuu-ui/vuu-utils\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { JsonDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\nimport { JsonCell } from \"./JsonCell\";\n\nregisterComponent(\"json\", JsonCell, \"cell-renderer\");\n\nexport interface JsonTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: JsonData;\n}\n\nexport const JsonTable = ({\n config,\n source: sourceProp,\n ...tableProps\n}: JsonTableProps) => {\n const sourceRef = useRef(sourceProp);\n const dataSourceRef = useRef<JsonDataSource>();\n useMemo(() => {\n dataSourceRef.current = new JsonDataSource({\n data: sourceRef.current,\n });\n }, []);\n\n const tableConfig = useMemo<TableConfig>(() => {\n return {\n ...config,\n columns: dataSourceRef.current?.columnDescriptors ?? [],\n columnSeparators: true,\n rowSeparators: true,\n };\n }, [config]);\n\n useEffect(() => {\n if (dataSourceRef.current) {\n dataSourceRef.current.data = sourceProp;\n }\n }, [sourceProp]);\n\n if (dataSourceRef.current === undefined) {\n return null;\n }\n\n return (\n <Table\n {...tableProps}\n config={tableConfig}\n dataSource={dataSourceRef.current}\n showColumnHeaderMenus={false}\n selectionModel=\"none\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQA,iBAAkB,CAAA,MAAA,EAAQ,UAAU,eAAe,CAAA,CAAA;AAW5C,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA;AAAA,EACR,GAAG,UAAA;AACL,CAAsB,KAAA;AACpB,EAAM,MAAA,SAAA,GAAY,OAAO,UAAU,CAAA,CAAA;AACnC,EAAA,MAAM,gBAAgB,MAAuB,EAAA,CAAA;AAC7C,EAAA,OAAA,CAAQ,MAAM;AACZ,IAAc,aAAA,CAAA,OAAA,GAAU,IAAI,cAAe,CAAA;AAAA,MACzC,MAAM,SAAU,CAAA,OAAA;AAAA,KACjB,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,WAAA,GAAc,QAAqB,MAAM;AAC7C,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,OAAS,EAAA,aAAA,CAAc,OAAS,EAAA,iBAAA,IAAqB,EAAC;AAAA,MACtD,gBAAkB,EAAA,IAAA;AAAA,MAClB,aAAe,EAAA,IAAA;AAAA,KACjB,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MAAA,aAAA,CAAc,QAAQ,IAAO,GAAA,UAAA,CAAA;AAAA,KAC/B;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAI,IAAA,aAAA,CAAc,YAAY,KAAW,CAAA,EAAA;AACvC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,MAAQ,EAAA,WAAA;AAAA,MACR,YAAY,aAAc,CAAA,OAAA;AAAA,MAC1B,qBAAuB,EAAA,KAAA;AAAA,MACvB,cAAe,EAAA,MAAA;AAAA,KAAA;AAAA,GACjB,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Table } from '@vuu-ui/vuu-table';
|
|
3
|
+
import { TreeDataSource } from '@vuu-ui/vuu-data-local';
|
|
4
|
+
import { useRef, useMemo, useEffect } from 'react';
|
|
5
|
+
|
|
6
|
+
const TreeTable = ({
|
|
7
|
+
config,
|
|
8
|
+
source: sourceProp,
|
|
9
|
+
...tableProps
|
|
10
|
+
}) => {
|
|
11
|
+
const sourceRef = useRef(sourceProp);
|
|
12
|
+
const dataSourceRef = useRef();
|
|
13
|
+
useMemo(() => {
|
|
14
|
+
dataSourceRef.current = new TreeDataSource({
|
|
15
|
+
data: sourceRef.current
|
|
16
|
+
});
|
|
17
|
+
}, []);
|
|
18
|
+
const tableConfig = useMemo(() => {
|
|
19
|
+
return {
|
|
20
|
+
...config,
|
|
21
|
+
columns: dataSourceRef.current?.columnDescriptors ?? [],
|
|
22
|
+
columnSeparators: false,
|
|
23
|
+
rowSeparators: false
|
|
24
|
+
};
|
|
25
|
+
}, [config]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (dataSourceRef.current) {
|
|
28
|
+
dataSourceRef.current.data = sourceProp;
|
|
29
|
+
}
|
|
30
|
+
}, [sourceProp]);
|
|
31
|
+
if (dataSourceRef.current === void 0) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
Table,
|
|
36
|
+
{
|
|
37
|
+
...tableProps,
|
|
38
|
+
config: tableConfig,
|
|
39
|
+
dataSource: dataSourceRef.current,
|
|
40
|
+
groupToggleTarget: "toggle-icon",
|
|
41
|
+
navigationStyle: "tree",
|
|
42
|
+
showColumnHeaderMenus: false,
|
|
43
|
+
selectionModel: "single",
|
|
44
|
+
selectionBookendWidth: 0
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { TreeTable };
|
|
50
|
+
//# sourceMappingURL=TreeTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeTable.js","sources":["../../src/tree-table/TreeTable.tsx"],"sourcesContent":["import { TableProps } from \"@vuu-ui/vuu-table\";\nimport { Table } from \"@vuu-ui/vuu-table\";\nimport { TreeDataSource } from \"@vuu-ui/vuu-data-local\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { TableConfig } from \"@vuu-ui/vuu-table-types\";\nimport { TreeSourceNode } from \"@vuu-ui/vuu-utils\";\n\nexport interface TreeTableProps\n extends Omit<TableProps, \"config\" | \"dataSource\"> {\n config?: Pick<\n TableConfig,\n \"columnSeparators\" | \"rowSeparators\" | \"zebraStripes\"\n >;\n source: TreeSourceNode[];\n}\n\nexport const TreeTable = ({\n config,\n source: sourceProp,\n ...tableProps\n}: TreeTableProps) => {\n const sourceRef = useRef(sourceProp);\n const dataSourceRef = useRef<TreeDataSource>();\n useMemo(() => {\n dataSourceRef.current = new TreeDataSource({\n data: sourceRef.current,\n });\n }, []);\n\n const tableConfig = useMemo<TableConfig>(() => {\n return {\n ...config,\n columns: dataSourceRef.current?.columnDescriptors ?? [],\n columnSeparators: false,\n rowSeparators: false,\n };\n }, [config]);\n\n useEffect(() => {\n if (dataSourceRef.current) {\n dataSourceRef.current.data = sourceProp;\n }\n }, [sourceProp]);\n\n if (dataSourceRef.current === undefined) {\n return null;\n }\n\n return (\n <Table\n {...tableProps}\n config={tableConfig}\n dataSource={dataSourceRef.current}\n groupToggleTarget=\"toggle-icon\"\n navigationStyle=\"tree\"\n showColumnHeaderMenus={false}\n selectionModel=\"single\"\n selectionBookendWidth={0}\n />\n );\n};\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA;AAAA,EACR,GAAG,UAAA;AACL,CAAsB,KAAA;AACpB,EAAM,MAAA,SAAA,GAAY,OAAO,UAAU,CAAA,CAAA;AACnC,EAAA,MAAM,gBAAgB,MAAuB,EAAA,CAAA;AAC7C,EAAA,OAAA,CAAQ,MAAM;AACZ,IAAc,aAAA,CAAA,OAAA,GAAU,IAAI,cAAe,CAAA;AAAA,MACzC,MAAM,SAAU,CAAA,OAAA;AAAA,KACjB,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,WAAA,GAAc,QAAqB,MAAM;AAC7C,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,OAAS,EAAA,aAAA,CAAc,OAAS,EAAA,iBAAA,IAAqB,EAAC;AAAA,MACtD,gBAAkB,EAAA,KAAA;AAAA,MAClB,aAAe,EAAA,KAAA;AAAA,KACjB,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,OAAS,EAAA;AACzB,MAAA,aAAA,CAAc,QAAQ,IAAO,GAAA,UAAA,CAAA;AAAA,KAC/B;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAI,IAAA,aAAA,CAAc,YAAY,KAAW,CAAA,EAAA;AACvC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,MAAQ,EAAA,WAAA;AAAA,MACR,YAAY,aAAc,CAAA,OAAA;AAAA,MAC1B,iBAAkB,EAAA,aAAA;AAAA,MAClB,eAAgB,EAAA,MAAA;AAAA,MAChB,qBAAuB,EAAA,KAAA;AAAA,MACvB,cAAe,EAAA,QAAA;AAAA,MACf,qBAAuB,EAAA,CAAA;AAAA,KAAA;AAAA,GACzB,CAAA;AAEJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.9.
|
|
2
|
+
"version": "0.9.1",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@salt-ds/styles": "0.2.1",
|
|
7
7
|
"@salt-ds/window": "0.1.1",
|
|
8
|
-
"@vuu-ui/vuu-data-local": "0.9.
|
|
9
|
-
"@vuu-ui/vuu-table-types": "0.9.
|
|
10
|
-
"@vuu-ui/vuu-filters": "0.9.
|
|
11
|
-
"@vuu-ui/vuu-layout": "0.9.
|
|
12
|
-
"@vuu-ui/vuu-popups": "0.9.
|
|
13
|
-
"@vuu-ui/vuu-shell": "0.9.
|
|
14
|
-
"@vuu-ui/vuu-table": "0.9.
|
|
15
|
-
"@vuu-ui/vuu-table-extras": "0.9.
|
|
16
|
-
"@vuu-ui/vuu-ui-controls": "0.9.
|
|
17
|
-
"@vuu-ui/vuu-utils": "0.9.
|
|
8
|
+
"@vuu-ui/vuu-data-local": "0.9.1",
|
|
9
|
+
"@vuu-ui/vuu-table-types": "0.9.1",
|
|
10
|
+
"@vuu-ui/vuu-filters": "0.9.1",
|
|
11
|
+
"@vuu-ui/vuu-layout": "0.9.1",
|
|
12
|
+
"@vuu-ui/vuu-popups": "0.9.1",
|
|
13
|
+
"@vuu-ui/vuu-shell": "0.9.1",
|
|
14
|
+
"@vuu-ui/vuu-table": "0.9.1",
|
|
15
|
+
"@vuu-ui/vuu-table-extras": "0.9.1",
|
|
16
|
+
"@vuu-ui/vuu-ui-controls": "0.9.1",
|
|
17
|
+
"@vuu-ui/vuu-utils": "0.9.1"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"clsx": "^2.0.0",
|
package/types/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ import { JsonData } from "@vuu-ui/vuu-utils";
|
|
|
4
4
|
import { TableConfig } from "@vuu-ui/vuu-table-types";
|
|
5
5
|
export interface JsonTableProps extends Omit<TableProps, "config" | "dataSource"> {
|
|
6
6
|
config?: Pick<TableConfig, "columnSeparators" | "rowSeparators" | "zebraStripes">;
|
|
7
|
-
source: JsonData
|
|
7
|
+
source: JsonData;
|
|
8
8
|
}
|
|
9
9
|
export declare const JsonTable: ({ config, source: sourceProp, ...tableProps }: JsonTableProps) => JSX.Element | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TableProps } from "@vuu-ui/vuu-table";
|
|
3
|
+
import { TableConfig } from "@vuu-ui/vuu-table-types";
|
|
4
|
+
import { TreeSourceNode } from "@vuu-ui/vuu-utils";
|
|
5
|
+
export interface TreeTableProps extends Omit<TableProps, "config" | "dataSource"> {
|
|
6
|
+
config?: Pick<TableConfig, "columnSeparators" | "rowSeparators" | "zebraStripes">;
|
|
7
|
+
source: TreeSourceNode[];
|
|
8
|
+
}
|
|
9
|
+
export declare const TreeTable: ({ config, source: sourceProp, ...tableProps }: TreeTableProps) => JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TreeTable";
|