@economic/taco 2.26.3 → 2.26.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheet.js → useTableStyle.js} +24 -15
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyle.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetColumnFreezing.js → useTableStyleColumnFreezing.js} +6 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetColumnFreezing.js.map → useTableStyleColumnFreezing.js.map} +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/{useStylesheetCssGrid.js → useTableStyleGrid.js} +12 -5
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +6 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableStyle.d.ts +797 -0
- package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.d.ts +4 -0
- package/dist/primitives/Table/Core/features/useTableStyleGrid.d.ts +7 -0
- package/dist/primitives/Table/Core/useTable.d.ts +2 -1
- package/dist/taco.cjs.development.js +43 -19
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheet.js.map +0 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useStylesheetCssGrid.js.map +0 -1
- package/dist/primitives/Table/Core/features/useStylesheet.d.ts +0 -3
- package/dist/primitives/Table/Core/features/useStylesheetColumnFreezing.d.ts +0 -2
- package/dist/primitives/Table/Core/features/useStylesheetCssGrid.d.ts +0 -3
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { Table as ReactTable } from '@tanstack/react-table';
|
3
|
+
import { TableFontSize } from '../../types';
|
4
|
+
export declare function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize): {
|
5
|
+
style: React.CSSProperties;
|
6
|
+
stylesheet: string;
|
7
|
+
};
|
@@ -21,7 +21,8 @@ export declare type useTableReturnValue<TType = unknown> = {
|
|
21
21
|
style: React.CSSProperties;
|
22
22
|
scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;
|
23
23
|
};
|
24
|
-
|
24
|
+
style: React.CSSProperties;
|
25
|
+
stylesheet: string;
|
25
26
|
state: ReactTableState;
|
26
27
|
};
|
27
28
|
export declare function useTable<TType = unknown, TMeta = {}>(props: TableProps<TType>, externalRef: React.Ref<TableRef>, renderers: useTableRenderers<TType>, meta?: Partial<ReactTableMeta<TType>> & TMeta): useTableReturnValue<TType>;
|
@@ -10896,7 +10896,7 @@ function useTableManager(props, meta, internalColumns) {
|
|
10896
10896
|
};
|
10897
10897
|
}
|
10898
10898
|
|
10899
|
-
function
|
10899
|
+
function useTableStyleGrid(tableId, table, fontSize) {
|
10900
10900
|
const tableMeta = table.options.meta;
|
10901
10901
|
const allVisibleColumns = table.getVisibleLeafColumns();
|
10902
10902
|
const columnSizing = table.getState().columnSizing;
|
@@ -10944,12 +10944,19 @@ function useStylesheetCssGrid(tableId, table, fontSize) {
|
|
10944
10944
|
}, '');
|
10945
10945
|
// we have to be specific so that nested tables don't inherit the same css
|
10946
10946
|
const hiddenColumns = printHiddenColumns.map(id => `table[data-taco^='table']#${tableId} > thead > tr > th[data-cell-id='${id}']\n,table[data-taco^='table']#${tableId} > tbody > tr > td[data-cell-id='${id}']\n`).join(',');
|
10947
|
-
|
10948
|
-
|
10947
|
+
const style = {
|
10948
|
+
gridTemplateColumns,
|
10949
|
+
gridTemplateRows
|
10950
|
+
};
|
10951
|
+
const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: ${printGridTemplateColumns}; } ${hiddenColumns ? `${hiddenColumns} { display: none; }` : ''}}`;
|
10952
|
+
return {
|
10953
|
+
style,
|
10954
|
+
stylesheet
|
10955
|
+
};
|
10949
10956
|
}, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);
|
10950
10957
|
}
|
10951
10958
|
|
10952
|
-
function
|
10959
|
+
function useTableStyleColumnFreezing(tableId, table) {
|
10953
10960
|
const {
|
10954
10961
|
columnPinning
|
10955
10962
|
} = table.getState();
|
@@ -10986,20 +10993,32 @@ function useStylesheetColumnFreezing(tableId, table) {
|
|
10986
10993
|
}
|
10987
10994
|
return styles.join('\n');
|
10988
10995
|
}, [columnPinning]);
|
10989
|
-
return
|
10996
|
+
return {
|
10997
|
+
stylesheet
|
10998
|
+
};
|
10990
10999
|
}
|
10991
11000
|
|
10992
|
-
function
|
11001
|
+
function useTableStyle(tableId, table) {
|
10993
11002
|
const tableMeta = table.options.meta;
|
10994
|
-
const
|
10995
|
-
|
10996
|
-
|
10997
|
-
|
10998
|
-
|
10999
|
-
|
11000
|
-
|
11001
|
-
const
|
11002
|
-
|
11003
|
+
const {
|
11004
|
+
style: cssGridStyle,
|
11005
|
+
stylesheet: cssGridStylesheet
|
11006
|
+
} = useTableStyleGrid(tableId, table, tableMeta.fontSize.size);
|
11007
|
+
const {
|
11008
|
+
stylesheet: columnFreezingStylesheet
|
11009
|
+
} = useTableStyleColumnFreezing(tableId, table);
|
11010
|
+
const style = {
|
11011
|
+
// css vars required by children of table
|
11012
|
+
'--table-header-group-depth': table.getHeaderGroups().length,
|
11013
|
+
'--table-cell-padding-x': getCellWidthPadding(tableMeta.fontSize.size),
|
11014
|
+
'--table-cell-padding-y': getCellHeightPadding(tableMeta.rowHeight.height, tableMeta.fontSize.size),
|
11015
|
+
...cssGridStyle
|
11016
|
+
};
|
11017
|
+
const stylesheet = [cssGridStylesheet, columnFreezingStylesheet].filter(s => !!s).join('\n');
|
11018
|
+
return {
|
11019
|
+
style,
|
11020
|
+
stylesheet
|
11021
|
+
};
|
11003
11022
|
}
|
11004
11023
|
// we cannot just use a fixed height because our rows need to grow in height (images, edit mode validation etc)
|
11005
11024
|
function getCellHeightPadding(height, fontSize) {
|
@@ -11758,7 +11777,10 @@ function useTable(props, externalRef, renderers, meta) {
|
|
11758
11777
|
// configure the virtualised renderer
|
11759
11778
|
const renderer = useTableRenderer(renderers, manager.instance, ref, props.defaultRowActiveIndex);
|
11760
11779
|
// configure dynamic styling
|
11761
|
-
const
|
11780
|
+
const {
|
11781
|
+
style,
|
11782
|
+
stylesheet
|
11783
|
+
} = useTableStyle(manager.id, manager.instance);
|
11762
11784
|
// configure global keyboard shortcuts
|
11763
11785
|
useTableGlobalShortcuts(manager.instance, ref, renderer.scrollToIndex);
|
11764
11786
|
// augment the ref with some helper functions
|
@@ -11775,6 +11797,7 @@ function useTable(props, externalRef, renderers, meta) {
|
|
11775
11797
|
toolbarRight: props.toolbarRight
|
11776
11798
|
},
|
11777
11799
|
renderer,
|
11800
|
+
style,
|
11778
11801
|
stylesheet,
|
11779
11802
|
ref
|
11780
11803
|
};
|
@@ -12361,11 +12384,11 @@ function HeaderMenu(props) {
|
|
12361
12384
|
// can't use display: none because the button needs to be focusable
|
12362
12385
|
const className = cn(
|
12363
12386
|
// positioning
|
12364
|
-
'justify-end
|
12387
|
+
'justify-end overflow-hidden',
|
12365
12388
|
// sizing
|
12366
12389
|
'!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',
|
12367
12390
|
// visible - hover
|
12368
|
-
'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)]',
|
12391
|
+
'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)] group-hover/header:-mr-1',
|
12369
12392
|
// visible - expanded
|
12370
12393
|
'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',
|
12371
12394
|
// visible - focus
|
@@ -15709,7 +15732,7 @@ function TableGrid(props) {
|
|
15709
15732
|
const handleFocus = table.meta.rowActive.rowActiveIndex === undefined ? event => {
|
15710
15733
|
table.meta.rowActive.handleFocus(event, table.meta.length, table.renderer.scrollToIndex);
|
15711
15734
|
} : undefined;
|
15712
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, table.stylesheet, /*#__PURE__*/React__default.createElement(focus.FocusScope, null, /*#__PURE__*/React__default.createElement("table", Object.assign({}, attributes, {
|
15735
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("style", null, table.stylesheet), /*#__PURE__*/React__default.createElement(focus.FocusScope, null, /*#__PURE__*/React__default.createElement("table", Object.assign({}, attributes, {
|
15713
15736
|
id: table.id,
|
15714
15737
|
"data-table-font-size": table.meta.fontSize.size,
|
15715
15738
|
"data-table-horizontally-scrolled": table.meta.columnFreezing.isHorizontallyScrolled ? true : undefined,
|
@@ -15720,6 +15743,7 @@ function TableGrid(props) {
|
|
15720
15743
|
onFocus: handleFocus,
|
15721
15744
|
onScroll: table.meta.columnFreezing.handleScroll,
|
15722
15745
|
ref: table.ref,
|
15746
|
+
style: table.style,
|
15723
15747
|
tabIndex: -1
|
15724
15748
|
}), /*#__PURE__*/React__default.createElement("thead", null, table.instance.getHeaderGroups().map(headerGroup => ( /*#__PURE__*/React__default.createElement("tr", {
|
15725
15749
|
key: headerGroup.id
|