@vuu-ui/vuu-datatable 0.9.0 → 0.9.2

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var filterTableCss = ".vuuFilterTable {\n /* --vuuFilterBar-flex: 0 0 33px;\n --vuuMeasuredContainer-flex: 1 1 auto;\n --vuuMeasuredContainer-height: auto;\n display: flex;\n flex-direction: column; */\n\n .vuuFilterBar {\n flex: 0 0 auto;\n }\n}\n";
3
+ var filterTableCss = ".vuuFilterTable {\n --vuuMeasuredContainer-flex: 1 1 auto;\n --vuuMeasuredContainer-height: auto;\n display: flex;\n flex-direction: column;\n\n .vuuFilterBar {\n flex: 0 0 auto;\n }\n}\n";
4
4
 
5
5
  module.exports = filterTableCss;
6
6
  //# sourceMappingURL=FilterTable.css.js.map
@@ -10,12 +10,6 @@ var useFilterTable = require('./useFilterTable.js');
10
10
  var FilterTable$1 = require('./FilterTable.css.js');
11
11
 
12
12
  const classBase = "vuuFilterTable";
13
- const style = {
14
- "--vuuMeasuredContainer-flex": "1 1 auto",
15
- "--vuuMeasuredContainer-height": "auto",
16
- display: "flex",
17
- flexDirection: "column"
18
- };
19
13
  const FilterTable = ({
20
14
  FilterBarProps: FilterBarProps2,
21
15
  TableProps: TableProps2,
@@ -28,6 +22,7 @@ const FilterTable = ({
28
22
  css: FilterTable$1,
29
23
  window: targetWindow
30
24
  });
25
+ console.log({ TableProps: TableProps2 });
31
26
  const { filterBarProps } = useFilterTable.useFilterTable({
32
27
  TableProps: TableProps2,
33
28
  FilterBarProps: FilterBarProps2
@@ -37,10 +32,10 @@ const FilterTable = ({
37
32
  {
38
33
  ...htmlAttributes,
39
34
  className: cx(classBase),
40
- style: { ...styleProps, ...style },
35
+ style: { ...styleProps },
41
36
  children: [
42
- /* @__PURE__ */ jsxRuntime.jsx(vuuFilters.FilterBar, { ...filterBarProps, style: { flex: "0 0 33px" } }),
43
- /* @__PURE__ */ jsxRuntime.jsx(vuuTable.Table, { ...TableProps2 })
37
+ /* @__PURE__ */ jsxRuntime.jsx(vuuFilters.FilterBar, { ...filterBarProps }),
38
+ /* @__PURE__ */ jsxRuntime.jsx(vuuTable.Table, { ...TableProps2, height: "auto", width: "auto" })
44
39
  ]
45
40
  }
46
41
  );
@@ -1 +1 @@
1
- {"version":3,"file":"FilterTable.js","sources":["../../src/filter-table/FilterTable.tsx"],"sourcesContent":["import { FilterBar, FilterBarProps } from \"@vuu-ui/vuu-filters\";\nimport { Table, TableProps } from \"@vuu-ui/vuu-table\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { CSSProperties, HTMLAttributes } from \"react\";\nimport { useFilterTable } from \"./useFilterTable\";\n\nimport filterTableCss from \"./FilterTable.css\";\n\nconst classBase = \"vuuFilterTable\";\n\nexport interface FilterTableProps extends HTMLAttributes<HTMLDivElement> {\n FilterBarProps?: Partial<FilterBarProps>;\n TableProps: TableProps;\n}\n\n// Using inline styles here as Salt style injection happens too late for the\n// measurements that we have to take on first render\nconst style = {\n \"--vuuMeasuredContainer-flex\": \"1 1 auto\",\n \"--vuuMeasuredContainer-height\": \"auto\",\n display: \"flex\",\n flexDirection: \"column\",\n} as CSSProperties;\n\nexport const FilterTable = ({\n FilterBarProps,\n TableProps,\n style: styleProps,\n ...htmlAttributes\n}: FilterTableProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-filter-table\",\n css: filterTableCss,\n window: targetWindow,\n });\n\n const { filterBarProps } = useFilterTable({\n TableProps,\n FilterBarProps,\n });\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase)}\n style={{ ...styleProps, ...style }}\n >\n <FilterBar {...filterBarProps} style={{ flex: \"0 0 33px\" }} />\n <Table {...TableProps} />\n </div>\n );\n};\n"],"names":["FilterBarProps","TableProps","useWindow","useComponentCssInjection","filterTableCss","useFilterTable","jsxs","jsx","FilterBar","Table"],"mappings":";;;;;;;;;;;AAUA,MAAM,SAAY,GAAA,gBAAA,CAAA;AASlB,MAAM,KAAQ,GAAA;AAAA,EACZ,6BAA+B,EAAA,UAAA;AAAA,EAC/B,+BAAiC,EAAA,MAAA;AAAA,EACjC,OAAS,EAAA,MAAA;AAAA,EACT,aAAe,EAAA,QAAA;AACjB,CAAA,CAAA;AAEO,MAAM,cAAc,CAAC;AAAA,EAC1B,cAAAA,EAAAA,eAAAA;AAAA,EACA,UAAAC,EAAAA,WAAAA;AAAA,EACA,KAAO,EAAA,UAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAAC,aAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,cAAe,EAAA,GAAIC,6BAAe,CAAA;AAAA,IACxC,UAAAJ,EAAAA,WAAAA;AAAA,IACA,cAAAD,EAAAA,eAAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAAM,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MACvB,KAAO,EAAA,EAAE,GAAG,UAAA,EAAY,GAAG,KAAM,EAAA;AAAA,MAEjC,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,wBAAW,GAAG,cAAA,EAAgB,OAAO,EAAE,IAAA,EAAM,YAAc,EAAA,CAAA;AAAA,wBAC5DD,cAAA,CAACE,cAAO,EAAA,EAAA,GAAGR,WAAY,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACzB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterTable.js","sources":["../../src/filter-table/FilterTable.tsx"],"sourcesContent":["import { FilterBar, FilterBarProps } from \"@vuu-ui/vuu-filters\";\nimport { Table, TableProps } from \"@vuu-ui/vuu-table\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes } from \"react\";\nimport { useFilterTable } from \"./useFilterTable\";\n\nimport filterTableCss from \"./FilterTable.css\";\n\nconst classBase = \"vuuFilterTable\";\n\nexport interface FilterTableProps extends HTMLAttributes<HTMLDivElement> {\n FilterBarProps?: Partial<FilterBarProps>;\n TableProps: Omit<TableProps, \"height\" | \"width\">;\n}\n\nexport const FilterTable = ({\n FilterBarProps,\n TableProps,\n style: styleProps,\n ...htmlAttributes\n}: FilterTableProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-filter-table\",\n css: filterTableCss,\n window: targetWindow,\n });\n\n console.log({ TableProps });\n\n const { filterBarProps } = useFilterTable({\n TableProps,\n FilterBarProps,\n });\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase)}\n style={{ ...styleProps }}\n >\n <FilterBar {...filterBarProps} />\n <Table {...TableProps} height=\"auto\" width=\"auto\" />\n </div>\n );\n};\n"],"names":["FilterBarProps","TableProps","useWindow","useComponentCssInjection","filterTableCss","useFilterTable","jsxs","jsx","FilterBar","Table"],"mappings":";;;;;;;;;;;AAUA,MAAM,SAAY,GAAA,gBAAA,CAAA;AAOX,MAAM,cAAc,CAAC;AAAA,EAC1B,cAAAA,EAAAA,eAAAA;AAAA,EACA,UAAAC,EAAAA,WAAAA;AAAA,EACA,KAAO,EAAA,UAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAAC,aAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,OAAA,CAAQ,GAAI,CAAA,EAAE,UAAAH,EAAAA,WAAAA,EAAY,CAAA,CAAA;AAE1B,EAAM,MAAA,EAAE,cAAe,EAAA,GAAII,6BAAe,CAAA;AAAA,IACxC,UAAAJ,EAAAA,WAAAA;AAAA,IACA,cAAAD,EAAAA,eAAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAAM,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MACvB,KAAA,EAAO,EAAE,GAAG,UAAW,EAAA;AAAA,MAEvB,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAAC,oBAAA,EAAA,EAAW,GAAG,cAAgB,EAAA,CAAA;AAAA,uCAC9BC,cAAO,EAAA,EAAA,GAAGR,aAAY,MAAO,EAAA,MAAA,EAAO,OAAM,MAAO,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACpD,CAAA;AAEJ;;;;"}
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 | undefined;\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 };\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 />\n );\n};\n"],"names":["useRef","useMemo","JsonDataSource","useEffect","jsx","Table"],"mappings":";;;;;;;AAgBO,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA,GAAa,EAAE,EAAA,EAAI,EAAG,EAAA;AAAA,EAC9B,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,KACxD,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,KAAA;AAAA,GAC5B,CAAA;AAEJ;;;;"}
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;;;;"}
@@ -1,4 +1,4 @@
1
- var filterTableCss = ".vuuFilterTable {\n /* --vuuFilterBar-flex: 0 0 33px;\n --vuuMeasuredContainer-flex: 1 1 auto;\n --vuuMeasuredContainer-height: auto;\n display: flex;\n flex-direction: column; */\n\n .vuuFilterBar {\n flex: 0 0 auto;\n }\n}\n";
1
+ var filterTableCss = ".vuuFilterTable {\n --vuuMeasuredContainer-flex: 1 1 auto;\n --vuuMeasuredContainer-height: auto;\n display: flex;\n flex-direction: column;\n\n .vuuFilterBar {\n flex: 0 0 auto;\n }\n}\n";
2
2
 
3
3
  export { filterTableCss as default };
4
4
  //# sourceMappingURL=FilterTable.css.js.map
@@ -8,12 +8,6 @@ import { useFilterTable } from './useFilterTable.js';
8
8
  import filterTableCss from './FilterTable.css.js';
9
9
 
10
10
  const classBase = "vuuFilterTable";
11
- const style = {
12
- "--vuuMeasuredContainer-flex": "1 1 auto",
13
- "--vuuMeasuredContainer-height": "auto",
14
- display: "flex",
15
- flexDirection: "column"
16
- };
17
11
  const FilterTable = ({
18
12
  FilterBarProps: FilterBarProps2,
19
13
  TableProps: TableProps2,
@@ -26,6 +20,7 @@ const FilterTable = ({
26
20
  css: filterTableCss,
27
21
  window: targetWindow
28
22
  });
23
+ console.log({ TableProps: TableProps2 });
29
24
  const { filterBarProps } = useFilterTable({
30
25
  TableProps: TableProps2,
31
26
  FilterBarProps: FilterBarProps2
@@ -35,10 +30,10 @@ const FilterTable = ({
35
30
  {
36
31
  ...htmlAttributes,
37
32
  className: cx(classBase),
38
- style: { ...styleProps, ...style },
33
+ style: { ...styleProps },
39
34
  children: [
40
- /* @__PURE__ */ jsx(FilterBar, { ...filterBarProps, style: { flex: "0 0 33px" } }),
41
- /* @__PURE__ */ jsx(Table, { ...TableProps2 })
35
+ /* @__PURE__ */ jsx(FilterBar, { ...filterBarProps }),
36
+ /* @__PURE__ */ jsx(Table, { ...TableProps2, height: "auto", width: "auto" })
42
37
  ]
43
38
  }
44
39
  );
@@ -1 +1 @@
1
- {"version":3,"file":"FilterTable.js","sources":["../../src/filter-table/FilterTable.tsx"],"sourcesContent":["import { FilterBar, FilterBarProps } from \"@vuu-ui/vuu-filters\";\nimport { Table, TableProps } from \"@vuu-ui/vuu-table\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { CSSProperties, HTMLAttributes } from \"react\";\nimport { useFilterTable } from \"./useFilterTable\";\n\nimport filterTableCss from \"./FilterTable.css\";\n\nconst classBase = \"vuuFilterTable\";\n\nexport interface FilterTableProps extends HTMLAttributes<HTMLDivElement> {\n FilterBarProps?: Partial<FilterBarProps>;\n TableProps: TableProps;\n}\n\n// Using inline styles here as Salt style injection happens too late for the\n// measurements that we have to take on first render\nconst style = {\n \"--vuuMeasuredContainer-flex\": \"1 1 auto\",\n \"--vuuMeasuredContainer-height\": \"auto\",\n display: \"flex\",\n flexDirection: \"column\",\n} as CSSProperties;\n\nexport const FilterTable = ({\n FilterBarProps,\n TableProps,\n style: styleProps,\n ...htmlAttributes\n}: FilterTableProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-filter-table\",\n css: filterTableCss,\n window: targetWindow,\n });\n\n const { filterBarProps } = useFilterTable({\n TableProps,\n FilterBarProps,\n });\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase)}\n style={{ ...styleProps, ...style }}\n >\n <FilterBar {...filterBarProps} style={{ flex: \"0 0 33px\" }} />\n <Table {...TableProps} />\n </div>\n );\n};\n"],"names":["FilterBarProps","TableProps"],"mappings":";;;;;;;;;AAUA,MAAM,SAAY,GAAA,gBAAA,CAAA;AASlB,MAAM,KAAQ,GAAA;AAAA,EACZ,6BAA+B,EAAA,UAAA;AAAA,EAC/B,+BAAiC,EAAA,MAAA;AAAA,EACjC,OAAS,EAAA,MAAA;AAAA,EACT,aAAe,EAAA,QAAA;AACjB,CAAA,CAAA;AAEO,MAAM,cAAc,CAAC;AAAA,EAC1B,cAAAA,EAAAA,eAAAA;AAAA,EACA,UAAAC,EAAAA,WAAAA;AAAA,EACA,KAAO,EAAA,UAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,cAAe,EAAA,GAAI,cAAe,CAAA;AAAA,IACxC,UAAAA,EAAAA,WAAAA;AAAA,IACA,cAAAD,EAAAA,eAAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MACvB,KAAO,EAAA,EAAE,GAAG,UAAA,EAAY,GAAG,KAAM,EAAA;AAAA,MAEjC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAW,GAAG,cAAA,EAAgB,OAAO,EAAE,IAAA,EAAM,YAAc,EAAA,CAAA;AAAA,wBAC5D,GAAA,CAAC,KAAO,EAAA,EAAA,GAAGC,WAAY,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACzB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterTable.js","sources":["../../src/filter-table/FilterTable.tsx"],"sourcesContent":["import { FilterBar, FilterBarProps } from \"@vuu-ui/vuu-filters\";\nimport { Table, TableProps } from \"@vuu-ui/vuu-table\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { HTMLAttributes } from \"react\";\nimport { useFilterTable } from \"./useFilterTable\";\n\nimport filterTableCss from \"./FilterTable.css\";\n\nconst classBase = \"vuuFilterTable\";\n\nexport interface FilterTableProps extends HTMLAttributes<HTMLDivElement> {\n FilterBarProps?: Partial<FilterBarProps>;\n TableProps: Omit<TableProps, \"height\" | \"width\">;\n}\n\nexport const FilterTable = ({\n FilterBarProps,\n TableProps,\n style: styleProps,\n ...htmlAttributes\n}: FilterTableProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-filter-table\",\n css: filterTableCss,\n window: targetWindow,\n });\n\n console.log({ TableProps });\n\n const { filterBarProps } = useFilterTable({\n TableProps,\n FilterBarProps,\n });\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase)}\n style={{ ...styleProps }}\n >\n <FilterBar {...filterBarProps} />\n <Table {...TableProps} height=\"auto\" width=\"auto\" />\n </div>\n );\n};\n"],"names":["FilterBarProps","TableProps"],"mappings":";;;;;;;;;AAUA,MAAM,SAAY,GAAA,gBAAA,CAAA;AAOX,MAAM,cAAc,CAAC;AAAA,EAC1B,cAAAA,EAAAA,eAAAA;AAAA,EACA,UAAAC,EAAAA,WAAAA;AAAA,EACA,KAAO,EAAA,UAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,OAAA,CAAQ,GAAI,CAAA,EAAE,UAAAA,EAAAA,WAAAA,EAAY,CAAA,CAAA;AAE1B,EAAM,MAAA,EAAE,cAAe,EAAA,GAAI,cAAe,CAAA;AAAA,IACxC,UAAAA,EAAAA,WAAAA;AAAA,IACA,cAAAD,EAAAA,eAAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MACvB,KAAA,EAAO,EAAE,GAAG,UAAW,EAAA;AAAA,MAEvB,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,SAAA,EAAA,EAAW,GAAG,cAAgB,EAAA,CAAA;AAAA,4BAC9B,KAAO,EAAA,EAAA,GAAGC,aAAY,MAAO,EAAA,MAAA,EAAO,OAAM,MAAO,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACpD,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 | undefined;\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 };\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 />\n );\n};\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,MAAQ,EAAA,UAAA,GAAa,EAAE,EAAA,EAAI,EAAG,EAAA;AAAA,EAC9B,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,KACxD,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,KAAA;AAAA,GAC5B,CAAA;AAEJ;;;;"}
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.0",
2
+ "version": "0.9.2",
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.0",
9
- "@vuu-ui/vuu-table-types": "0.9.0",
10
- "@vuu-ui/vuu-filters": "0.9.0",
11
- "@vuu-ui/vuu-layout": "0.9.0",
12
- "@vuu-ui/vuu-popups": "0.9.0",
13
- "@vuu-ui/vuu-shell": "0.9.0",
14
- "@vuu-ui/vuu-table": "0.9.0",
15
- "@vuu-ui/vuu-table-extras": "0.9.0",
16
- "@vuu-ui/vuu-ui-controls": "0.9.0",
17
- "@vuu-ui/vuu-utils": "0.9.0"
8
+ "@vuu-ui/vuu-data-local": "0.9.2",
9
+ "@vuu-ui/vuu-table-types": "0.9.2",
10
+ "@vuu-ui/vuu-filters": "0.9.2",
11
+ "@vuu-ui/vuu-layout": "0.9.2",
12
+ "@vuu-ui/vuu-popups": "0.9.2",
13
+ "@vuu-ui/vuu-shell": "0.9.2",
14
+ "@vuu-ui/vuu-table": "0.9.2",
15
+ "@vuu-ui/vuu-table-extras": "0.9.2",
16
+ "@vuu-ui/vuu-ui-controls": "0.9.2",
17
+ "@vuu-ui/vuu-utils": "0.9.2"
18
18
  },
19
19
  "peerDependencies": {
20
20
  "clsx": "^2.0.0",
@@ -3,6 +3,6 @@ import { TableProps } from "@vuu-ui/vuu-table";
3
3
  import { HTMLAttributes } from "react";
4
4
  export interface FilterTableProps extends HTMLAttributes<HTMLDivElement> {
5
5
  FilterBarProps?: Partial<FilterBarProps>;
6
- TableProps: TableProps;
6
+ TableProps: Omit<TableProps, "height" | "width">;
7
7
  }
8
8
  export declare const FilterTable: ({ FilterBarProps, TableProps, style: styleProps, ...htmlAttributes }: FilterTableProps) => JSX.Element;
package/types/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./filter-table";
2
2
  export * from "./json-table";
3
+ export * from "./tree-table";
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { TableCellProps } from "@vuu-ui/vuu-table-types";
3
+ export declare const JsonCell: ({ column, columnMap, row }: TableCellProps) => JSX.Element;
@@ -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 | undefined;
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";