@tint-ui/data-table 0.3.7 → 0.3.9

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/data-table.js CHANGED
@@ -13,7 +13,7 @@ var _context = require("./context");
13
13
  var _dataTableToolbar = require("./data-table-toolbar");
14
14
  var _dataTableContent = require("./data-table-content");
15
15
  var _dataTablePagination = require("./data-table-pagination");
16
- const _excluded = ["themePropsType", "header", "table", "data", "navbar", "initialData", "limit", "offset", "lexicon", "total", "onRowClick", "filter", "filterText", "sortBy", "sortDir", "toolbar", "cacheable"];
16
+ const _excluded = ["themePropsType", "header", "table", "data", "navbar", "initialData", "limit", "offset", "lexicon", "total", "onRowClick", "filter", "filterText", "sortBy", "sortDir", "toolbar", "cacheable", "options"];
17
17
  const DataTable = exports.DataTable = /*#__PURE__*/React.forwardRef((_ref, ref) => {
18
18
  let {
19
19
  themePropsType = "data-table",
@@ -32,7 +32,8 @@ const DataTable = exports.DataTable = /*#__PURE__*/React.forwardRef((_ref, ref)
32
32
  sortBy,
33
33
  sortDir,
34
34
  toolbar,
35
- cacheable
35
+ cacheable,
36
+ options
36
37
  } = _ref,
37
38
  props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
38
39
  const context = (0, _useDataTable.useDataTable)({
@@ -51,7 +52,8 @@ const DataTable = exports.DataTable = /*#__PURE__*/React.forwardRef((_ref, ref)
51
52
  sortDir,
52
53
  header,
53
54
  onRowClick,
54
- cacheable
55
+ cacheable,
56
+ options
55
57
  });
56
58
  return /*#__PURE__*/React.createElement(_context.DataTableContext.Provider, {
57
59
  value: context
package/cjs/index.js CHANGED
@@ -91,6 +91,12 @@ Object.keys(_paginationSizeOptions).forEach(function (key) {
91
91
  if (key in exports && exports[key] === _paginationSizeOptions[key]) return;
92
92
  exports[key] = _paginationSizeOptions[key];
93
93
  });
94
+ var _useDataTable = require("./use-data-table");
95
+ Object.keys(_useDataTable).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _useDataTable[key]) return;
98
+ exports[key] = _useDataTable[key];
99
+ });
94
100
  var _types = require("./types");
95
101
  Object.keys(_types).forEach(function (key) {
96
102
  if (key === "default" || key === "__esModule") return;
@@ -199,7 +199,8 @@ const useDataTable = function (props) {
199
199
  cacheable = true,
200
200
  onRowClick,
201
201
  toolbar: toolbarProp,
202
- navbar: navbarProp
202
+ navbar: navbarProp,
203
+ options = null
203
204
  } = props;
204
205
  const {
205
206
  name,
@@ -705,17 +706,8 @@ const useDataTable = function (props) {
705
706
  const {
706
707
  pagination
707
708
  } = state;
708
- const tableCtx = (0, _reactTable.useReactTable)({
709
- data,
710
- columns,
709
+ const tableCtx = (0, _reactTable.useReactTable)(Object.assign({}, options, {
711
710
  pageCount: manual ? state.pageCount : undefined,
712
- state: {
713
- columnVisibility,
714
- sorting: state.sorting,
715
- globalFilter: state.globalFilter,
716
- columnFilters: state.columnFilters,
717
- pagination
718
- },
719
711
  getCoreRowModel: (0, _reactTable.getCoreRowModel)(),
720
712
  getPaginationRowModel: (0, _reactTable.getPaginationRowModel)(),
721
713
  getFilteredRowModel: (0, _reactTable.getFilteredRowModel)(),
@@ -728,8 +720,17 @@ const useDataTable = function (props) {
728
720
  onPaginationChange,
729
721
  manualFiltering: manual,
730
722
  manualSorting: manual,
731
- manualPagination: manual
732
- });
723
+ manualPagination: manual,
724
+ state: Object.assign({}, options?.state || null, {
725
+ columnVisibility,
726
+ sorting: state.sorting,
727
+ globalFilter: state.globalFilter,
728
+ columnFilters: state.columnFilters,
729
+ pagination
730
+ }),
731
+ data,
732
+ columns
733
+ }));
733
734
 
734
735
  // lexicon page config
735
736
  const limit = pagination.pageSize;
package/data-table.js CHANGED
@@ -25,6 +25,7 @@ const DataTable = /*#__PURE__*/React.forwardRef(({
25
25
  sortDir,
26
26
  toolbar,
27
27
  cacheable,
28
+ options,
28
29
  ...props
29
30
  }, ref) => {
30
31
  const context = useDataTable({
@@ -43,7 +44,8 @@ const DataTable = /*#__PURE__*/React.forwardRef(({
43
44
  sortDir,
44
45
  header,
45
46
  onRowClick,
46
- cacheable
47
+ cacheable,
48
+ options
47
49
  });
48
50
  return /*#__PURE__*/React.createElement(DataTableContext.Provider, {
49
51
  value: context
package/index.d.ts CHANGED
@@ -13,4 +13,5 @@ export * from "./data-table";
13
13
  export * from "./pagination-arrow";
14
14
  export * from "./pagination-number";
15
15
  export * from "./pagination-size-options";
16
+ export * from "./use-data-table";
16
17
  export * from "./types";
package/index.js CHANGED
@@ -13,4 +13,5 @@ export * from "./data-table.js";
13
13
  export * from "./pagination-arrow.js";
14
14
  export * from "./pagination-number.js";
15
15
  export * from "./pagination-size-options.js";
16
+ export * from "./use-data-table.js";
16
17
  export * from "./types.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tint-ui/data-table",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "author": "phragon@websoftlab.com",
5
5
  "license": "MIT",
6
6
  "dependencies": {
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import type { Table } from "@tanstack/react-table";
2
+ import type { Table, TableOptions, TableState } from "@tanstack/react-table";
3
3
  import type { InputSelectOption } from "@tint-ui/tools";
4
4
  import type { TriggerProp } from "@tint-ui/trigger";
5
5
  interface FilterRangeType {
@@ -32,6 +32,9 @@ export type SelectedOption<TData> = OptionTrigger<TData> & {
32
32
  };
33
33
  export type DataTableToolbarSize = "sm" | "md" | "lg";
34
34
  export type DataTableNavbarSize = "sm" | "md" | "lg";
35
+ export interface DataTableOptions<TData> extends Partial<Omit<TableOptions<TData>, "pageCount" | "getCoreRowModel" | "getPaginationRowModel" | "getFilteredRowModel" | "getSortedRowModel" | "globalFilterFn" | "onColumnFiltersChange" | "onGlobalFilterChange" | "onColumnVisibilityChange" | "onSortingChange" | "onPaginationChange" | "manualFiltering" | "manualSorting" | "manualPagination" | "data" | "columns" | "state">> {
36
+ state?: Partial<Omit<TableState, "columnVisibility" | "sorting" | "globalFilter" | "columnFilters" | "pagination">>;
37
+ }
35
38
  export interface DataTableCoreProps<TData> extends FilterType<TData> {
36
39
  table: DataTableType<TData>;
37
40
  data: TData[] | DataTableCallbackType<TData>;
@@ -47,6 +50,7 @@ export interface DataTableCoreProps<TData> extends FilterType<TData> {
47
50
  navbar?: Partial<Omit<NavbarConfig, "onPageSizeChange">> | null;
48
51
  compact?: boolean;
49
52
  cacheable?: boolean;
53
+ options?: DataTableOptions<TData>;
50
54
  }
51
55
  export type StringOrFn = string | (() => string);
52
56
  export interface DataTableLexicon {
package/use-data-table.js CHANGED
@@ -189,7 +189,8 @@ const useDataTable = function (props) {
189
189
  cacheable = true,
190
190
  onRowClick,
191
191
  toolbar: toolbarProp,
192
- navbar: navbarProp
192
+ navbar: navbarProp,
193
+ options = null
193
194
  } = props;
194
195
  const {
195
196
  name,
@@ -704,16 +705,8 @@ const useDataTable = function (props) {
704
705
  pagination
705
706
  } = state;
706
707
  const tableCtx = useReactTable({
707
- data,
708
- columns,
708
+ ...options,
709
709
  pageCount: manual ? state.pageCount : undefined,
710
- state: {
711
- columnVisibility,
712
- sorting: state.sorting,
713
- globalFilter: state.globalFilter,
714
- columnFilters: state.columnFilters,
715
- pagination
716
- },
717
710
  getCoreRowModel: getCoreRowModel(),
718
711
  getPaginationRowModel: getPaginationRowModel(),
719
712
  getFilteredRowModel: getFilteredRowModel(),
@@ -726,7 +719,17 @@ const useDataTable = function (props) {
726
719
  onPaginationChange,
727
720
  manualFiltering: manual,
728
721
  manualSorting: manual,
729
- manualPagination: manual
722
+ manualPagination: manual,
723
+ state: {
724
+ ...(options?.state || null),
725
+ columnVisibility,
726
+ sorting: state.sorting,
727
+ globalFilter: state.globalFilter,
728
+ columnFilters: state.columnFilters,
729
+ pagination
730
+ },
731
+ data,
732
+ columns
730
733
  });
731
734
 
732
735
  // lexicon page config