@economic/taco 2.41.2 → 2.41.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.
Files changed (19) hide show
  1. package/dist/esm/index.css +2 -2
  2. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js +3 -3
  3. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js.map +1 -1
  4. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +1 -2
  5. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  6. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +1 -3
  7. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
  8. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js +1 -1
  9. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -1
  10. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js +1 -2
  11. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
  12. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  13. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  14. package/dist/index.css +2 -2
  15. package/dist/taco.cjs.development.js +8 -12
  16. package/dist/taco.cjs.development.js.map +1 -1
  17. package/dist/taco.cjs.production.min.js +1 -1
  18. package/dist/taco.cjs.production.min.js.map +1 -1
  19. package/package.json +2 -2
@@ -591,7 +591,7 @@ table[data-taco^='table'] thead tr:not(:last-child) th:before {
591
591
 
592
592
  table[data-taco^='table'] tfoot {
593
593
  /* z-indexes & layout */
594
- @apply sticky bottom-0 isolate z-20 print:!static;
594
+ @apply sticky bottom-0 isolate z-20;
595
595
  /* grid */
596
596
  @apply col-span-full grid grid-cols-[subgrid];
597
597
  }
@@ -665,7 +665,7 @@ table[data-taco^='table'] th {
665
665
  }
666
666
 
667
667
  table[data-taco^='table'] th:not([data-cell-placeholder='true']):hover {
668
- @apply bg-grey-100 print:bg-white;
668
+ @apply bg-grey-100;
669
669
  }
670
670
 
671
671
  table[data-taco^='table'] th[aria-sort]:hover {
@@ -13,7 +13,7 @@ function CreateNewRowButton(props) {
13
13
  const {
14
14
  texts
15
15
  } = useLocalization();
16
- const rows = table.getCoreRowModel().rows;
16
+ const rows = table.getCoreRowModel().rows.filter(row => row.original !== undefined);
17
17
  const [rowCreated, setRowCreated] = React__default.useState({
18
18
  rowFinder: undefined
19
19
  });
@@ -60,7 +60,7 @@ function CreateNewRowButton(props) {
60
60
  return rowCreated === null || rowCreated === void 0 ? void 0 : (_rowCreated$rowFinder2 = rowCreated.rowFinder) === null || _rowCreated$rowFinder2 === void 0 ? void 0 : _rowCreated$rowFinder2.call(rowCreated, row.original);
61
61
  });
62
62
  if (createdRow) {
63
- const rowInTable = table.getRowModel().rows.find(row => {
63
+ const rowInTable = table.getRowModel().rows.filter(row => row.original !== undefined).find(row => {
64
64
  var _rowCreated$rowFinder3;
65
65
  return rowCreated === null || rowCreated === void 0 ? void 0 : (_rowCreated$rowFinder3 = rowCreated.rowFinder) === null || _rowCreated$rowFinder3 === void 0 ? void 0 : _rowCreated$rowFinder3.call(rowCreated, row.original);
66
66
  });
@@ -76,7 +76,7 @@ function CreateNewRowButton(props) {
76
76
  }, [rowCreated]);
77
77
  return /*#__PURE__*/React__default.createElement("tr", {
78
78
  onClick: handleCreate,
79
- className: "border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t print:!hidden"
79
+ className: "border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t"
80
80
  }, /*#__PURE__*/React__default.createElement("td", {
81
81
  className: "!border-t-0 !bg-transparent"
82
82
  }, /*#__PURE__*/React__default.createElement(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRowButton.js","sources":["../../../../../../../../../../src/components/Table3/components/Row/Editing/CreateRowButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions } from '@tanstack/react-virtual';\nimport { Button } from '../../../../Button/Button';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { animateCreateRow } from '../../../util/editing';\n\ntype Props<TType = unknown> = {\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n onEditingCreate: (() => (row: Partial<TType>) => boolean) | undefined;\n scrollToIndex: (index: number, options?: ScrollToOptions) => void;\n};\n\nexport default function CreateNewRowButton<TType = unknown>(props: Props<TType>) {\n const { onEditingCreate, scrollToIndex, table, tableMeta } = props;\n const { texts } = useLocalization();\n const rows = table.getCoreRowModel().rows;\n const [rowCreated, setRowCreated] = React.useState<{ rowFinder: ((row: Partial<TType>) => boolean) | undefined }>({\n rowFinder: undefined,\n });\n\n const handleKeyDown = event => {\n if (!tableMeta.editing.hasChanges() && event.key === 'Tab') {\n !tableMeta.editing.saveChanges();\n }\n };\n\n const handleCreate = async () => {\n if (!onEditingCreate) {\n return;\n }\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n await tableMeta.editing.saveChanges();\n\n if (!tableMeta.editing.hasRowErrors(createdRow.id)) {\n const rowFinder = onEditingCreate();\n\n setRowCreated({ rowFinder });\n }\n } else {\n const rowFinder = onEditingCreate();\n setRowCreated({ rowFinder });\n }\n };\n\n React.useEffect(() => {\n if (typeof rowCreated?.rowFinder === 'function') {\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n const rowInTable = table.getRowModel().rows.find(row => rowCreated?.rowFinder?.(row.original));\n if (rowInTable) {\n tableMeta.editing.toggleEditing(true);\n tableMeta.rowActive.setRowActiveIndex(createdRow.index);\n scrollToIndex(createdRow.index);\n requestAnimationFrame(() => animateCreateRow(createdRow.id));\n }\n requestAnimationFrame(() => tableMeta.editing.addCreatedRowChangeset(createdRow));\n }\n }\n }, [rowCreated]);\n\n return (\n <tr\n onClick={handleCreate}\n className=\"border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t print:!hidden\">\n <td className=\"!border-t-0 !bg-transparent\">\n <Button onKeyDown={handleKeyDown} className=\"group-hover:bg-grey-200 sticky left-0\" appearance=\"transparent\">\n + {texts.table3.editing.buttons.create.label}\n </Button>\n </td>\n </tr>\n );\n}\n"],"names":["CreateNewRowButton","props","onEditingCreate","scrollToIndex","table","tableMeta","texts","useLocalization","rows","getCoreRowModel","rowCreated","setRowCreated","React","useState","rowFinder","undefined","handleKeyDown","event","editing","hasChanges","key","saveChanges","handleCreate","Promise","resolve","createdRow","find","row","_rowCreated$rowFinder","call","original","_temp","then","hasRowErrors","id","e","reject","useEffect","_rowCreated$rowFinder2","rowInTable","getRowModel","_rowCreated$rowFinder3","toggleEditing","rowActive","setRowActiveIndex","index","requestAnimationFrame","animateCreateRow","addCreatedRowChangeset","onClick","className","Button","onKeyDown","appearance","table3","buttons","create","label"],"mappings":"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"}
1
+ {"version":3,"file":"CreateRowButton.js","sources":["../../../../../../../../../../src/components/Table3/components/Row/Editing/CreateRowButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { ScrollToOptions } from '@tanstack/react-virtual';\nimport { Button } from '../../../../Button/Button';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { animateCreateRow } from '../../../util/editing';\n\ntype Props<TType = unknown> = {\n table: ReactTable<TType>;\n tableMeta: ReactTableMeta<TType>;\n onEditingCreate: (() => (row: Partial<TType>) => boolean) | undefined;\n scrollToIndex: (index: number, options?: ScrollToOptions) => void;\n};\n\nexport default function CreateNewRowButton<TType = unknown>(props: Props<TType>) {\n const { onEditingCreate, scrollToIndex, table, tableMeta } = props;\n const { texts } = useLocalization();\n const rows = table.getCoreRowModel().rows.filter(row => row.original !== undefined);\n\n const [rowCreated, setRowCreated] = React.useState<{ rowFinder: ((row: Partial<TType>) => boolean) | undefined }>({\n rowFinder: undefined,\n });\n\n const handleKeyDown = event => {\n if (!tableMeta.editing.hasChanges() && event.key === 'Tab') {\n !tableMeta.editing.saveChanges();\n }\n };\n\n const handleCreate = async () => {\n if (!onEditingCreate) {\n return;\n }\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n await tableMeta.editing.saveChanges();\n\n if (!tableMeta.editing.hasRowErrors(createdRow.id)) {\n const rowFinder = onEditingCreate();\n\n setRowCreated({ rowFinder });\n }\n } else {\n const rowFinder = onEditingCreate();\n setRowCreated({ rowFinder });\n }\n };\n\n React.useEffect(() => {\n if (typeof rowCreated?.rowFinder === 'function') {\n const createdRow = rows.find(row => rowCreated?.rowFinder?.(row.original));\n\n if (createdRow) {\n const rowInTable = table\n .getRowModel()\n .rows.filter(row => row.original !== undefined)\n .find(row => rowCreated?.rowFinder?.(row.original));\n if (rowInTable) {\n tableMeta.editing.toggleEditing(true);\n tableMeta.rowActive.setRowActiveIndex(createdRow.index);\n scrollToIndex(createdRow.index);\n requestAnimationFrame(() => animateCreateRow(createdRow.id));\n }\n requestAnimationFrame(() => tableMeta.editing.addCreatedRowChangeset(createdRow));\n }\n }\n }, [rowCreated]);\n\n return (\n <tr\n onClick={handleCreate}\n className=\"border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t\">\n <td className=\"!border-t-0 !bg-transparent\">\n <Button onKeyDown={handleKeyDown} className=\"group-hover:bg-grey-200 sticky left-0\" appearance=\"transparent\">\n + {texts.table3.editing.buttons.create.label}\n </Button>\n </td>\n </tr>\n );\n}\n"],"names":["CreateNewRowButton","props","onEditingCreate","scrollToIndex","table","tableMeta","texts","useLocalization","rows","getCoreRowModel","filter","row","original","undefined","rowCreated","setRowCreated","React","useState","rowFinder","handleKeyDown","event","editing","hasChanges","key","saveChanges","handleCreate","Promise","resolve","createdRow","find","_rowCreated$rowFinder","call","_temp","then","hasRowErrors","id","e","reject","useEffect","_rowCreated$rowFinder2","rowInTable","getRowModel","_rowCreated$rowFinder3","toggleEditing","rowActive","setRowActiveIndex","index","requestAnimationFrame","animateCreateRow","addCreatedRowChangeset","onClick","className","Button","onKeyDown","appearance","table3","buttons","create","label"],"mappings":"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"}
@@ -30,8 +30,7 @@ function Summary(props) {
30
30
  count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
31
31
  }
32
32
  return /*#__PURE__*/React__default.createElement("div", {
33
- // translate-y-1 is used to prevent the summary cell's box shadow from clipping the border
34
- className: "sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white] print:!translate-y-1",
33
+ className: "sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]",
35
34
  "data-taco": "table-footer-summary"
36
35
  }, label, "\u00A0", count);
37
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Summary.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Summary.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../components/Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { table } = props;\n const { locale, texts } = useLocalization();\n const length = (table.options.meta as ReactTableMeta<TType>).length;\n const currentLength = table.getRowModel().rows.length;\n\n let label;\n let count;\n\n // row selection\n const rowsSelectedLength = table.getSelectedRowModel().rows.length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else if (\n table.getState().columnFilters?.length || // filtered data\n (!!table.getState().globalFilter && table.options.enableGlobalFilter) // search with hide enabled\n ) {\n label = texts.table.footer.summary.records;\n count = (\n <>\n <strong>{currentLength}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else {\n label = texts.table.footer.summary.records;\n count = <strong>{new Intl.NumberFormat(locale).format(length)}</strong>;\n }\n\n return (\n <div\n // translate-y-1 is used to prevent the summary cell's box shadow from clipping the border\n className=\"sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white] print:!translate-y-1\"\n data-taco=\"table-footer-summary\">\n {label}&nbsp;{count}\n </div>\n );\n}\n"],"names":["Summary","props","table","locale","texts","useLocalization","length","options","meta","currentLength","getRowModel","rows","label","count","rowsSelectedLength","getSelectedRowModel","footer","summary","selected","React","Intl","NumberFormat","format","_table$getState$colum","getState","columnFilters","globalFilter","enableGlobalFilter","records","className"],"mappings":";;;SAQgBA,OAAOA,CAAkBC,KAAgC;;EACrE,MAAM;IAAEC;GAAO,GAAGD,KAAK;EACvB,MAAM;IAAEE,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EAC3C,MAAMC,MAAM,GAAIJ,KAAK,CAACK,OAAO,CAACC,IAA8B,CAACF,MAAM;EACnE,MAAMG,aAAa,GAAGP,KAAK,CAACQ,WAAW,EAAE,CAACC,IAAI,CAACL,MAAM;EAErD,IAAIM,KAAK;EACT,IAAIC,KAAK;;EAGT,MAAMC,kBAAkB,GAAGZ,KAAK,CAACa,mBAAmB,EAAE,CAACJ,IAAI,CAACL,MAAM;EAElE,IAAIQ,kBAAkB,GAAG,CAAC,EAAE;IACxBF,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACC,QAAQ;IAC3CL,KAAK,gBACDM,yEACIA,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAACR,kBAAkB,CAAC,CAAU,YAC1EV,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACJ,KAAK,yBACjCM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM,IACH,CAAAiB,qBAAA,GAAArB,KAAK,CAACsB,QAAQ,EAAE,CAACC,aAAa,cAAAF,qBAAA,eAA9BA,qBAAA,CAAgCjB,MAAM;;EACrC,CAAC,CAACJ,KAAK,CAACsB,QAAQ,EAAE,CAACE,YAAY,IAAIxB,KAAK,CAACK,OAAO,CAACoB,kBAAmB;IACvE;IACEf,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACW,OAAO;IAC1Cf,KAAK,gBACDM,yEACIA,6CAASV,aAAa,CAAU,YAC/BL,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACJ,KAAK,yBACjCM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM;IACHM,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACW,OAAO;IAC1Cf,KAAK,gBAAGM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU;;EAG3E,oBACIa;;IAEIU,SAAS,EAAC,oIAAoI;iBACpI;KACTjB,KAAK,YAAQC,KAAK,CACjB;AAEd;;;;"}
1
+ {"version":3,"file":"Summary.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Summary.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../components/Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { table } = props;\n const { locale, texts } = useLocalization();\n const length = (table.options.meta as ReactTableMeta<TType>).length;\n const currentLength = table.getRowModel().rows.length;\n\n let label;\n let count;\n\n // row selection\n const rowsSelectedLength = table.getSelectedRowModel().rows.length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else if (\n table.getState().columnFilters?.length || // filtered data\n (!!table.getState().globalFilter && table.options.enableGlobalFilter) // search with hide enabled\n ) {\n label = texts.table.footer.summary.records;\n count = (\n <>\n <strong>{currentLength}</strong>&nbsp;\n {texts.table.footer.summary.count}&nbsp;\n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else {\n label = texts.table.footer.summary.records;\n count = <strong>{new Intl.NumberFormat(locale).format(length)}</strong>;\n }\n\n return (\n <div\n className=\"sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]\"\n data-taco=\"table-footer-summary\">\n {label}&nbsp;{count}\n </div>\n );\n}\n"],"names":["Summary","props","table","locale","texts","useLocalization","length","options","meta","currentLength","getRowModel","rows","label","count","rowsSelectedLength","getSelectedRowModel","footer","summary","selected","React","Intl","NumberFormat","format","_table$getState$colum","getState","columnFilters","globalFilter","enableGlobalFilter","records","className"],"mappings":";;;SAQgBA,OAAOA,CAAkBC,KAAgC;;EACrE,MAAM;IAAEC;GAAO,GAAGD,KAAK;EACvB,MAAM;IAAEE,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EAC3C,MAAMC,MAAM,GAAIJ,KAAK,CAACK,OAAO,CAACC,IAA8B,CAACF,MAAM;EACnE,MAAMG,aAAa,GAAGP,KAAK,CAACQ,WAAW,EAAE,CAACC,IAAI,CAACL,MAAM;EAErD,IAAIM,KAAK;EACT,IAAIC,KAAK;;EAGT,MAAMC,kBAAkB,GAAGZ,KAAK,CAACa,mBAAmB,EAAE,CAACJ,IAAI,CAACL,MAAM;EAElE,IAAIQ,kBAAkB,GAAG,CAAC,EAAE;IACxBF,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACC,QAAQ;IAC3CL,KAAK,gBACDM,yEACIA,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAACR,kBAAkB,CAAC,CAAU,YAC1EV,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACJ,KAAK,yBACjCM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM,IACH,CAAAiB,qBAAA,GAAArB,KAAK,CAACsB,QAAQ,EAAE,CAACC,aAAa,cAAAF,qBAAA,eAA9BA,qBAAA,CAAgCjB,MAAM;;EACrC,CAAC,CAACJ,KAAK,CAACsB,QAAQ,EAAE,CAACE,YAAY,IAAIxB,KAAK,CAACK,OAAO,CAACoB,kBAAmB;IACvE;IACEf,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACW,OAAO;IAC1Cf,KAAK,gBACDM,yEACIA,6CAASV,aAAa,CAAU,YAC/BL,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACJ,KAAK,yBACjCM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM;IACHM,KAAK,GAAGR,KAAK,CAACF,KAAK,CAACc,MAAM,CAACC,OAAO,CAACW,OAAO;IAC1Cf,KAAK,gBAAGM,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAAClB,MAAM,CAAC,CAACmB,MAAM,CAAChB,MAAM,CAAC,CAAU;;EAG3E,oBACIa;IACIU,SAAS,EAAC,+GAA+G;iBAC/G;KACTjB,KAAK,YAAQC,KAAK,CACjB;AAEd;;;;"}
@@ -140,9 +140,7 @@ function HeaderMenu(props) {
140
140
  // visible - expanded
141
141
  'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',
142
142
  // visible - focus
143
- 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',
144
- // print styles
145
- 'print:!hidden', {
143
+ 'focus:!w-6 focus:!min-w-[theme(spacing.6)]', {
146
144
  '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement
147
145
  }, props.className);
148
146
  return /*#__PURE__*/React__default.createElement(IconButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { IconButton } from '../../../../../../components/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { GotoPopover } from './Goto';\nimport { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nexport type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n console.error(e);\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n 'justify-end overflow-hidden',\n // sizing\n '!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)] group-hover/header:-mr-1',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n // print styles\n 'print:!hidden',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["HeaderMenu","props","canFilter","canGoto","canHide","canPin","canSort","columnId","customMenu","index","isFiltered","onFilter","handleFilter","onGoto","handleGoto","onHide","handleHide","onPin","handlePin","onSortToggle","handleSortToggle","scrollToIndex","setRowActiveIndex","sortDirection","texts","useLocalization","popover","setPopover","React","useState","undefined","popoverElement","handleClosePopover","goto","query","Promise","resolve","then","e","console","error","_wasThrown","_result","_temp","reject","GotoPopover","open","onChange","memoedMenuItems","useMemo","menuItems","handleClick","event","setTimeout","push","MenuPrimitive","Item","icon","onClick","table","columns","menu","hideColumn","subMenu","SubMenu","RadioGroup","value","sortingOrder","ascending","descending","unsorted","sorting","shortcut","gotoRow","freezeFirstColumn","freezeUptoColumn","replace","String","unfreezeColumns","editFilter","filter","customItems","map","menuItem","action","length","Separator","item","key","cloneElement","className","cn","IconButton","menuProps","Content","onClickCapture","preventDefault","onKeyDown","_event$currentTarget","currentTarget","blur"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Header/components/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { IconButton } from '../../../../../../components/IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../../../components/Menu/Menu';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { GotoPopover } from './Goto';\nimport { TableColumnMenu, TableColumnSortDirection } from '../../../../types';\n\nexport type HeaderMenuProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFilter: boolean;\n canGoto: boolean;\n canHide: boolean;\n canPin: boolean;\n canSort: boolean;\n columnId: string;\n customMenu?: TableColumnMenu;\n index: number;\n isFiltered: boolean;\n onFilter?: () => void;\n onGoto?: (query: string) => Promise<number>;\n onHide?: (event: unknown) => void;\n onPin?: (index: number | undefined) => void;\n onSortToggle?: (sortDirection: TableColumnSortDirection | false) => void;\n scrollToIndex: (index: number) => void;\n setRowActiveIndex: (index: number) => void;\n sortDirection?: TableColumnSortDirection | false;\n};\n\nexport function HeaderMenu(props: HeaderMenuProps) {\n const {\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n columnId,\n customMenu,\n index,\n isFiltered,\n onFilter: handleFilter,\n onGoto: handleGoto,\n onHide: handleHide,\n onPin: handlePin,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n setRowActiveIndex,\n sortDirection,\n } = props;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n setRowActiveIndex(index);\n scrollToIndex(index);\n } catch (e) {\n console.error(e);\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide && handleHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortToggle as any} value={sortDirection}>\n <MenuPrimitive.RadioGroup.Item value=\"asc\">\n {texts.table.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value=\"desc\">\n {texts.table.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (canGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canPin && handlePin) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={() => handlePin(index)}>\n {index === 0\n ? texts.table.columns.menu.freezeFirstColumn\n : texts.table.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(index + 1))}\n </MenuPrimitive.Item>\n );\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={() => handlePin(undefined)}>\n {texts.table.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n if (canFilter && handleFilter) {\n menuItems.push(\n <MenuPrimitive.Item icon={isFiltered ? 'filter-solid' : 'filter'} onClick={() => handleFilter()}>\n {isFiltered ? texts.table.columns.menu.editFilter : texts.table.columns.menu.filter}\n </MenuPrimitive.Item>\n );\n }\n\n if (customMenu) {\n const customItems = customMenu.map(menuItem => menuItem(columnId)).filter(action => !!action) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n canFilter,\n canGoto,\n canHide,\n canPin,\n canSort,\n customMenu,\n handleGoto,\n handleSortToggle,\n index,\n isFiltered,\n sortDirection,\n ]);\n\n // can't use display: none because the button needs to be focusable\n const className = cn(\n // positioning\n 'justify-end overflow-hidden',\n // sizing\n '!h-6 !w-0 !min-h-[theme(spacing.6)] !min-w-0',\n // visible - hover\n 'group-hover/header:!w-6 group-hover/header:!min-w-[theme(spacing.6)] group-hover/header:-mr-1',\n // visible - expanded\n 'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',\n // visible - focus\n 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',\n {\n '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement,\n },\n props.className\n );\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n onKeyDown={event => {\n // Removes focus from the column header menu button so that active row shortcuts execute when Tab,\n // Shift+Tab, or any other keydown event occurs.\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.currentTarget?.blur();\n }\n }}\n />\n );\n}\n"],"names":["HeaderMenu","props","canFilter","canGoto","canHide","canPin","canSort","columnId","customMenu","index","isFiltered","onFilter","handleFilter","onGoto","handleGoto","onHide","handleHide","onPin","handlePin","onSortToggle","handleSortToggle","scrollToIndex","setRowActiveIndex","sortDirection","texts","useLocalization","popover","setPopover","React","useState","undefined","popoverElement","handleClosePopover","goto","query","Promise","resolve","then","e","console","error","_wasThrown","_result","_temp","reject","GotoPopover","open","onChange","memoedMenuItems","useMemo","menuItems","handleClick","event","setTimeout","push","MenuPrimitive","Item","icon","onClick","table","columns","menu","hideColumn","subMenu","SubMenu","RadioGroup","value","sortingOrder","ascending","descending","unsorted","sorting","shortcut","gotoRow","freezeFirstColumn","freezeUptoColumn","replace","String","unfreezeColumns","editFilter","filter","customItems","map","menuItem","action","length","Separator","item","key","cloneElement","className","cn","IconButton","menuProps","Content","onClickCapture","preventDefault","onKeyDown","_event$currentTarget","currentTarget","blur"],"mappings":"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"}
@@ -41,7 +41,7 @@ function Resizer(props) {
41
41
  }
42
42
  };
43
43
  const handle = /*#__PURE__*/React__default.createElement("div", {
44
- className: cn('invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5', 'group-hover/header:visible print:hidden', '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2', {
44
+ className: cn('invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5', 'group-hover/header:visible', '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2', {
45
45
  '!visible': isResizing
46
46
  }),
47
47
  onClick: handleClick,
@@ -1 +1 @@
1
- {"version":3,"file":"Resizer.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Header/components/Resizer.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { TableColumnWidth } from '../../../../types';\n\ntype ResizerProps = {\n headerRef: HTMLTableCellElement | null;\n id: string;\n isResizing: boolean;\n onResize: (event: unknown) => void;\n onResetSize: () => void;\n setColumnSizing: any;\n width?: TableColumnWidth;\n};\n\nexport function Resizer(props: ResizerProps) {\n const { headerRef, id, isResizing, onResetSize, onResize, setColumnSizing, width } = props;\n const { texts } = useLocalization();\n\n // this prevents sort handlers being activated\n const handleClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n // columns set to \"grow\" don't set a width, so if resize is being triggered on a grow column make sure to set a size first\n const handleResize = event => {\n // event.detail >= 2 means a user has clicked more than once quickly.\n if (event.detail >= 2) {\n onResetSize();\n } else {\n if (!Number.isInteger(width) && headerRef) {\n setColumnSizing(sizes => ({\n ...sizes,\n [id]: headerRef.getBoundingClientRect().width,\n }));\n setTimeout(() => {\n onResize?.(event);\n }, 1);\n } else {\n onResize?.(event);\n }\n }\n };\n\n const handle = (\n <div\n className={cn(\n 'invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5',\n 'group-hover/header:visible print:hidden',\n '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2',\n {\n '!visible': isResizing,\n }\n )}\n onClick={handleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': isResizing,\n 'bg-grey-500 hover:bg-grey-700': !isResizing,\n })}\n />\n </div>\n );\n\n if (isResizing) {\n return handle;\n }\n\n return (\n <Tooltip placement=\"top\" title={texts.table.columns.resize.tooltip}>\n {handle}\n </Tooltip>\n );\n}\n"],"names":["Resizer","props","headerRef","id","isResizing","onResetSize","onResize","setColumnSizing","width","texts","useLocalization","handleClick","event","stopPropagation","preventDefault","handleResize","detail","Number","isInteger","sizes","getBoundingClientRect","setTimeout","handle","React","className","cn","onClick","onMouseDown","onTouchStart","Tooltip","placement","title","table","columns","resize","tooltip"],"mappings":";;;;;SAgBgBA,OAAOA,CAACC,KAAmB;EACvC,MAAM;IAAEC,SAAS;IAAEC,EAAE;IAAEC,UAAU;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,eAAe;IAAEC;GAAO,GAAGP,KAAK;EAC1F,MAAM;IAAEQ;GAAO,GAAGC,eAAe,EAAE;;EAGnC,MAAMC,WAAW,GAAGC,KAAK;IACrBA,KAAK,CAACC,eAAe,EAAE;IACvBD,KAAK,CAACE,cAAc,EAAE;GACzB;;EAGD,MAAMC,YAAY,GAAGH,KAAK;;IAEtB,IAAIA,KAAK,CAACI,MAAM,IAAI,CAAC,EAAE;MACnBX,WAAW,EAAE;KAChB,MAAM;MACH,IAAI,CAACY,MAAM,CAACC,SAAS,CAACV,KAAK,CAAC,IAAIN,SAAS,EAAE;QACvCK,eAAe,CAACY,KAAK,KAAK;UACtB,GAAGA,KAAK;UACR,CAAChB,EAAE,GAAGD,SAAS,CAACkB,qBAAqB,EAAE,CAACZ;SAC3C,CAAC,CAAC;QACHa,UAAU,CAAC;UACPf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGM,KAAK,CAAC;SACpB,EAAE,CAAC,CAAC;OACR,MAAM;QACHN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGM,KAAK,CAAC;;;GAG5B;EAED,MAAMU,MAAM,gBACRC;IACIC,SAAS,EAAEC,EAAE,CACT,oIAAoI,EACpI,yCAAyC,EACzC,+CAA+C,EAC/C;MACI,UAAU,EAAErB;KACf,CACJ;IACDsB,OAAO,EAAEf,WAAW;IACpBgB,WAAW,EAAEZ,YAAY;IACzBa,YAAY,EAAEb;kBACdQ;IACIC,SAAS,EAAEC,EAAE,CAAC,oBAAoB,EAAE;MAChC,cAAc,EAAErB,UAAU;MAC1B,+BAA+B,EAAE,CAACA;KACrC;IACH,CAET;EAED,IAAIA,UAAU,EAAE;IACZ,OAAOkB,MAAM;;EAGjB,oBACIC,6BAACM,OAAO;IAACC,SAAS,EAAC,KAAK;IAACC,KAAK,EAAEtB,KAAK,CAACuB,KAAK,CAACC,OAAO,CAACC,MAAM,CAACC;KACtDb,MAAM,CACD;AAElB;;;;"}
1
+ {"version":3,"file":"Resizer.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Header/components/Resizer.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { TableColumnWidth } from '../../../../types';\n\ntype ResizerProps = {\n headerRef: HTMLTableCellElement | null;\n id: string;\n isResizing: boolean;\n onResize: (event: unknown) => void;\n onResetSize: () => void;\n setColumnSizing: any;\n width?: TableColumnWidth;\n};\n\nexport function Resizer(props: ResizerProps) {\n const { headerRef, id, isResizing, onResetSize, onResize, setColumnSizing, width } = props;\n const { texts } = useLocalization();\n\n // this prevents sort handlers being activated\n const handleClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n // columns set to \"grow\" don't set a width, so if resize is being triggered on a grow column make sure to set a size first\n const handleResize = event => {\n // event.detail >= 2 means a user has clicked more than once quickly.\n if (event.detail >= 2) {\n onResetSize();\n } else {\n if (!Number.isInteger(width) && headerRef) {\n setColumnSizing(sizes => ({\n ...sizes,\n [id]: headerRef.getBoundingClientRect().width,\n }));\n setTimeout(() => {\n onResize?.(event);\n }, 1);\n } else {\n onResize?.(event);\n }\n }\n };\n\n const handle = (\n <div\n className={cn(\n 'invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5',\n 'group-hover/header:visible',\n '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2',\n {\n '!visible': isResizing,\n }\n )}\n onClick={handleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': isResizing,\n 'bg-grey-500 hover:bg-grey-700': !isResizing,\n })}\n />\n </div>\n );\n\n if (isResizing) {\n return handle;\n }\n\n return (\n <Tooltip placement=\"top\" title={texts.table.columns.resize.tooltip}>\n {handle}\n </Tooltip>\n );\n}\n"],"names":["Resizer","props","headerRef","id","isResizing","onResetSize","onResize","setColumnSizing","width","texts","useLocalization","handleClick","event","stopPropagation","preventDefault","handleResize","detail","Number","isInteger","sizes","getBoundingClientRect","setTimeout","handle","React","className","cn","onClick","onMouseDown","onTouchStart","Tooltip","placement","title","table","columns","resize","tooltip"],"mappings":";;;;;SAgBgBA,OAAOA,CAACC,KAAmB;EACvC,MAAM;IAAEC,SAAS;IAAEC,EAAE;IAAEC,UAAU;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,eAAe;IAAEC;GAAO,GAAGP,KAAK;EAC1F,MAAM;IAAEQ;GAAO,GAAGC,eAAe,EAAE;;EAGnC,MAAMC,WAAW,GAAGC,KAAK;IACrBA,KAAK,CAACC,eAAe,EAAE;IACvBD,KAAK,CAACE,cAAc,EAAE;GACzB;;EAGD,MAAMC,YAAY,GAAGH,KAAK;;IAEtB,IAAIA,KAAK,CAACI,MAAM,IAAI,CAAC,EAAE;MACnBX,WAAW,EAAE;KAChB,MAAM;MACH,IAAI,CAACY,MAAM,CAACC,SAAS,CAACV,KAAK,CAAC,IAAIN,SAAS,EAAE;QACvCK,eAAe,CAACY,KAAK,KAAK;UACtB,GAAGA,KAAK;UACR,CAAChB,EAAE,GAAGD,SAAS,CAACkB,qBAAqB,EAAE,CAACZ;SAC3C,CAAC,CAAC;QACHa,UAAU,CAAC;UACPf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGM,KAAK,CAAC;SACpB,EAAE,CAAC,CAAC;OACR,MAAM;QACHN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGM,KAAK,CAAC;;;GAG5B;EAED,MAAMU,MAAM,gBACRC;IACIC,SAAS,EAAEC,EAAE,CACT,oIAAoI,EACpI,4BAA4B,EAC5B,+CAA+C,EAC/C;MACI,UAAU,EAAErB;KACf,CACJ;IACDsB,OAAO,EAAEf,WAAW;IACpBgB,WAAW,EAAEZ,YAAY;IACzBa,YAAY,EAAEb;kBACdQ;IACIC,SAAS,EAAEC,EAAE,CAAC,oBAAoB,EAAE;MAChC,cAAc,EAAErB,UAAU;MAC1B,+BAA+B,EAAE,CAACA;KACrC;IACH,CAET;EAED,IAAIA,UAAU,EAAE;IACZ,OAAOkB,MAAM;;EAGjB,oBACIC,6BAACM,OAAO;IAACC,SAAS,EAAC,KAAK;IAACC,KAAK,EAAEtB,KAAK,CAACuB,KAAK,CAACC,OAAO,CAACC,MAAM,CAACC;KACtDb,MAAM,CACD;AAElB;;;;"}
@@ -58,9 +58,8 @@ function useTableStyleGrid(tableId, table, fontSize) {
58
58
  // printing grid
59
59
  // we have to be specific so that nested tables don't inherit the same css
60
60
  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(',');
61
- // Ensure that tfoot cells are not hidden so that the summary and footer cells appear in the printed document
62
61
  const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }
63
- table[data-taco^='table']#${tableId} &:not(tfoot) [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; } table[data-taco^='table']#${tableId} tr { page-break-inside: avoid; break-inside: avoid;}}`;
62
+ table[data-taco^='table']#${tableId} [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; }}`;
64
63
  return {
65
64
  style,
66
65
  stylesheet
@@ -1 +1 @@
1
- {"version":3,"file":"useTableStyleGrid.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleGrid.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../types';\nimport { getCellMinWidth, isInternalColumn } from '../../useTableManager/util/columns';\n\nexport function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = 0;\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n\n if (isInternalColumn(column.id)) {\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else {\n // getSize method is used instead of columnSizing state because internal columns have defined widths\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(max-content, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(max-content, auto)`;\n }\n\n // printing\n if (column.columnDef.meta?.enablePrinting === false) {\n printHiddenColumns.push(column.id);\n } else {\n printGridTemplateColumns++;\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // normal grid\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n // printing grid\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `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`\n )\n .join(',');\n\n // Ensure that tfoot cells are not hidden so that the summary and footer cells appear in the printed document\n const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }\n table[data-taco^='table']#${tableId} &:not(tfoot) [data-cell-id^='__']${\n hiddenColumns ? `, ${hiddenColumns}` : ''\n } { display: none; } table[data-taco^='table']#${tableId} tr { page-break-inside: avoid; break-inside: avoid;}}`;\n\n return { style, stylesheet };\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n"],"names":["useTableStyleGrid","tableId","table","fontSize","tableMeta","options","meta","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","globalMinSize","getCellMinWidth","gridTemplateRows","getRowModel","rows","length","React","useMemo","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","reduce","accum","column","index","enableGrouping","getIsGrouped","minSize","_column$columnDef$min","columnDef","width","id","size","isInternalColumn","minWidth","rowActions","rowActionsLength","getSize","undefined","isLastColumn","Number","isNaN","_column$columnDef$met","enablePrinting","push","trim","style","hiddenColumns","map","join","stylesheet"],"mappings":"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"}
1
+ {"version":3,"file":"useTableStyleGrid.js","sources":["../../../../../../../../../src/primitives/Table/Core/features/useTableStyleGrid.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableFontSize } from '../../types';\nimport { getCellMinWidth, isInternalColumn } from '../../useTableManager/util/columns';\n\nexport function useTableStyleGrid<TType = unknown>(tableId: string, table: ReactTable<TType>, fontSize: TableFontSize) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const columnSizing = table.getState().columnSizing;\n const globalMinSize = getCellMinWidth(fontSize);\n\n // header body ?footer\n const gridTemplateRows = table.getRowModel().rows.length ? 'min-content 1fr min-content' : 'min-content 1fr';\n\n return React.useMemo(() => {\n let printGridTemplateColumns = 0;\n const printHiddenColumns: string[] = [];\n\n const gridTemplateColumns = allVisibleColumns.reduce((accum, column, index) => {\n if (table.options.enableGrouping && column.getIsGrouped()) {\n return accum;\n }\n\n const minSize = column.columnDef.minSize ?? globalMinSize;\n const width = columnSizing[column.id] as number | 'grow';\n\n let size;\n\n if (isInternalColumn(column.id)) {\n if (column.id === '__actions') {\n const minWidth = tableMeta.rowActions.rowActionsLength * 32 + 8; /* button margins l+r */\n size = `minmax(${minWidth}px, auto)`;\n } else {\n // getSize method is used instead of columnSizing state because internal columns have defined widths\n size = `${column.getSize()}px`;\n }\n } else if (width !== undefined) {\n const isLastColumn = index === allVisibleColumns.length - 1;\n\n if (width === 'grow' || (Number.isNaN(width) && !isLastColumn)) {\n size = `minmax(max-content, 1fr)`;\n } else {\n const minWidth = width < minSize ? minSize : width;\n\n if (isLastColumn) {\n size = `minmax(${minWidth}px, auto)`;\n } else {\n size = `${minWidth}px`;\n }\n }\n } else {\n size = `minmax(max-content, auto)`;\n }\n\n // printing\n if (column.columnDef.meta?.enablePrinting === false) {\n printHiddenColumns.push(column.id);\n } else {\n printGridTemplateColumns++;\n }\n\n return `${accum} ${size}`.trim();\n }, '');\n\n // normal grid\n const style: React.CSSProperties = {\n gridTemplateColumns,\n gridTemplateRows,\n };\n\n // printing grid\n // we have to be specific so that nested tables don't inherit the same css\n const hiddenColumns = printHiddenColumns\n .map(\n id =>\n `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`\n )\n .join(',');\n const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }\n table[data-taco^='table']#${tableId} [data-cell-id^='__']${\n hiddenColumns ? `, ${hiddenColumns}` : ''\n } { display: none; }}`;\n\n return { style, stylesheet };\n }, [allVisibleColumns, columnSizing, globalMinSize, tableMeta.rowActions.rowActionsLength]);\n}\n"],"names":["useTableStyleGrid","tableId","table","fontSize","tableMeta","options","meta","allVisibleColumns","getVisibleLeafColumns","columnSizing","getState","globalMinSize","getCellMinWidth","gridTemplateRows","getRowModel","rows","length","React","useMemo","printGridTemplateColumns","printHiddenColumns","gridTemplateColumns","reduce","accum","column","index","enableGrouping","getIsGrouped","minSize","_column$columnDef$min","columnDef","width","id","size","isInternalColumn","minWidth","rowActions","rowActionsLength","getSize","undefined","isLastColumn","Number","isNaN","_column$columnDef$met","enablePrinting","push","trim","style","hiddenColumns","map","join","stylesheet"],"mappings":"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"}
@@ -12,7 +12,7 @@ function useTableSearchListener(table, onChangeSearch) {
12
12
  onChangeSearch(query);
13
13
  }
14
14
  }
15
- }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows, table.getState().globalFilter, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility), onChangeSearch]);
15
+ }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, table.getState().globalFilter, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility), onChangeSearch]);
16
16
  }
17
17
 
18
18
  export { useTableSearchListener };
@@ -1 +1 @@
1
- {"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { TableSearchHandler } from '../../types';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>, onChangeSearch?: TableSearchHandler) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n\n // recalculates highlighted indexes whenever something important changes\n React.useEffect(() => {\n if (meta.search.isEnabled) {\n const query = table.getState().globalFilter;\n resetHighlightedColumnIndexes(query, table);\n\n if (typeof onChangeSearch === 'function') {\n onChangeSearch(query);\n }\n }\n }, [\n meta.server.loadAllStatus,\n meta.search.isEnabled,\n meta.search.enableGlobalFilter,\n table.getRowModel().rows,\n table.getState().globalFilter,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n onChangeSearch,\n ]);\n}\n"],"names":["useTableSearchListener","table","onChangeSearch","meta","options","React","useEffect","search","isEnabled","query","getState","globalFilter","resetHighlightedColumnIndexes","server","loadAllStatus","enableGlobalFilter","getRowModel","rows","JSON","stringify","sorting","columnVisibility"],"mappings":";;;SAKgBA,sBAAsBA,CAAkBC,KAAwB,EAAEC,cAAmC;EACjH,MAAMC,IAAI,GAAGF,KAAK,CAACG,OAAO,CAACD,IAA6B;;EAGxDE,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIH,IAAI,CAACI,MAAM,CAACC,SAAS,EAAE;MACvB,MAAMC,KAAK,GAAGR,KAAK,CAACS,QAAQ,EAAE,CAACC,YAAY;MAC3CC,6BAA6B,CAACH,KAAK,EAAER,KAAK,CAAC;MAE3C,IAAI,OAAOC,cAAc,KAAK,UAAU,EAAE;QACtCA,cAAc,CAACO,KAAK,CAAC;;;GAGhC,EAAE,CACCN,IAAI,CAACU,MAAM,CAACC,aAAa,EACzBX,IAAI,CAACI,MAAM,CAACC,SAAS,EACrBL,IAAI,CAACI,MAAM,CAACQ,kBAAkB,EAC9Bd,KAAK,CAACe,WAAW,EAAE,CAACC,IAAI,EACxBhB,KAAK,CAACS,QAAQ,EAAE,CAACC,YAAY,EAC7BO,IAAI,CAACC,SAAS,CAAClB,KAAK,CAACS,QAAQ,EAAE,CAACU,OAAO,CAAC,EACxCF,IAAI,CAACC,SAAS,CAAClB,KAAK,CAACS,QAAQ,EAAE,CAACW,gBAAgB,CAAC,EACjDnB,cAAc,CACjB,CAAC;AACN;;;;"}
1
+ {"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { TableSearchHandler } from '../../types';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>, onChangeSearch?: TableSearchHandler) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n\n // recalculates highlighted indexes whenever something important changes\n React.useEffect(() => {\n if (meta.search.isEnabled) {\n const query = table.getState().globalFilter;\n resetHighlightedColumnIndexes(query, table);\n\n if (typeof onChangeSearch === 'function') {\n onChangeSearch(query);\n }\n }\n }, [\n meta.server.loadAllStatus,\n meta.search.isEnabled,\n meta.search.enableGlobalFilter,\n table.getRowModel().rows.length,\n table.getState().globalFilter,\n JSON.stringify(table.getState().sorting),\n JSON.stringify(table.getState().columnVisibility),\n onChangeSearch,\n ]);\n}\n"],"names":["useTableSearchListener","table","onChangeSearch","meta","options","React","useEffect","search","isEnabled","query","getState","globalFilter","resetHighlightedColumnIndexes","server","loadAllStatus","enableGlobalFilter","getRowModel","rows","length","JSON","stringify","sorting","columnVisibility"],"mappings":";;;SAKgBA,sBAAsBA,CAAkBC,KAAwB,EAAEC,cAAmC;EACjH,MAAMC,IAAI,GAAGF,KAAK,CAACG,OAAO,CAACD,IAA6B;;EAGxDE,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIH,IAAI,CAACI,MAAM,CAACC,SAAS,EAAE;MACvB,MAAMC,KAAK,GAAGR,KAAK,CAACS,QAAQ,EAAE,CAACC,YAAY;MAC3CC,6BAA6B,CAACH,KAAK,EAAER,KAAK,CAAC;MAE3C,IAAI,OAAOC,cAAc,KAAK,UAAU,EAAE;QACtCA,cAAc,CAACO,KAAK,CAAC;;;GAGhC,EAAE,CACCN,IAAI,CAACU,MAAM,CAACC,aAAa,EACzBX,IAAI,CAACI,MAAM,CAACC,SAAS,EACrBL,IAAI,CAACI,MAAM,CAACQ,kBAAkB,EAC9Bd,KAAK,CAACe,WAAW,EAAE,CAACC,IAAI,CAACC,MAAM,EAC/BjB,KAAK,CAACS,QAAQ,EAAE,CAACC,YAAY,EAC7BQ,IAAI,CAACC,SAAS,CAACnB,KAAK,CAACS,QAAQ,EAAE,CAACW,OAAO,CAAC,EACxCF,IAAI,CAACC,SAAS,CAACnB,KAAK,CAACS,QAAQ,EAAE,CAACY,gBAAgB,CAAC,EACjDpB,cAAc,CACjB,CAAC;AACN;;;;"}
package/dist/index.css CHANGED
@@ -591,7 +591,7 @@ table[data-taco^='table'] thead tr:not(:last-child) th:before {
591
591
 
592
592
  table[data-taco^='table'] tfoot {
593
593
  /* z-indexes & layout */
594
- @apply sticky bottom-0 isolate z-20 print:!static;
594
+ @apply sticky bottom-0 isolate z-20;
595
595
  /* grid */
596
596
  @apply col-span-full grid grid-cols-[subgrid];
597
597
  }
@@ -665,7 +665,7 @@ table[data-taco^='table'] th {
665
665
  }
666
666
 
667
667
  table[data-taco^='table'] th:not([data-cell-placeholder='true']):hover {
668
- @apply bg-grey-100 print:bg-white;
668
+ @apply bg-grey-100;
669
669
  }
670
670
 
671
671
  table[data-taco^='table'] th[aria-sort]:hover {
@@ -11456,7 +11456,7 @@ function useTableSearchListener(table, onChangeSearch) {
11456
11456
  onChangeSearch(query);
11457
11457
  }
11458
11458
  }
11459
- }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows, table.getState().globalFilter, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility), onChangeSearch]);
11459
+ }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, table.getState().globalFilter, JSON.stringify(table.getState().sorting), JSON.stringify(table.getState().columnVisibility), onChangeSearch]);
11460
11460
  }
11461
11461
 
11462
11462
  function useTableSettingsListener(table, onChangeSettings) {
@@ -11718,9 +11718,8 @@ function useTableStyleGrid(tableId, table, fontSize) {
11718
11718
  // printing grid
11719
11719
  // we have to be specific so that nested tables don't inherit the same css
11720
11720
  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(',');
11721
- // Ensure that tfoot cells are not hidden so that the summary and footer cells appear in the printed document
11722
11721
  const stylesheet = `@media print { table[data-taco^='table']#${tableId} { grid-template-columns: repeat(${printGridTemplateColumns}, auto) !important; }
11723
- table[data-taco^='table']#${tableId} &:not(tfoot) [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; } table[data-taco^='table']#${tableId} tr { page-break-inside: avoid; break-inside: avoid;}}`;
11722
+ table[data-taco^='table']#${tableId} [data-cell-id^='__']${hiddenColumns ? `, ${hiddenColumns}` : ''} { display: none; }}`;
11724
11723
  return {
11725
11724
  style,
11726
11725
  stylesheet
@@ -12965,7 +12964,7 @@ function Resizer(props) {
12965
12964
  }
12966
12965
  };
12967
12966
  const handle = /*#__PURE__*/React__default.createElement("div", {
12968
- className: cn('invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5', 'group-hover/header:visible print:hidden', '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2', {
12967
+ className: cn('invisible absolute right-0 top-0 z-10 -mr-2 flex h-full w-4 cursor-col-resize touch-none select-none justify-center rounded py-0.5', 'group-hover/header:visible', '[th:last-child>&]:!mr-0 [th:last-child>&]:w-2', {
12969
12968
  '!visible': isResizing
12970
12969
  }),
12971
12970
  onClick: handleClick,
@@ -13200,9 +13199,7 @@ function HeaderMenu(props) {
13200
13199
  // visible - expanded
13201
13200
  'aria-expanded:!w-6 aria-expanded:!min-w-[theme(spacing.6)]',
13202
13201
  // visible - focus
13203
- 'focus:!w-6 focus:!min-w-[theme(spacing.6)]',
13204
- // print styles
13205
- 'print:!hidden', {
13202
+ 'focus:!w-6 focus:!min-w-[theme(spacing.6)]', {
13206
13203
  '!w-6 !min-w-[theme(spacing.6)]': !!popoverElement
13207
13204
  }, props.className);
13208
13205
  return /*#__PURE__*/React__default.createElement(IconButton, {
@@ -13602,8 +13599,7 @@ function Summary(props) {
13602
13599
  count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
13603
13600
  }
13604
13601
  return /*#__PURE__*/React__default.createElement("div", {
13605
- // translate-y-1 is used to prevent the summary cell's box shadow from clipping the border
13606
- className: "sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white] print:!translate-y-1",
13602
+ className: "sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]",
13607
13603
  "data-taco": "table-footer-summary"
13608
13604
  }, label, "\u00A0", count);
13609
13605
  }
@@ -19550,7 +19546,7 @@ function CreateNewRowButton(props) {
19550
19546
  const {
19551
19547
  texts
19552
19548
  } = useLocalization();
19553
- const rows = table.getCoreRowModel().rows;
19549
+ const rows = table.getCoreRowModel().rows.filter(row => row.original !== undefined);
19554
19550
  const [rowCreated, setRowCreated] = React__default.useState({
19555
19551
  rowFinder: undefined
19556
19552
  });
@@ -19597,7 +19593,7 @@ function CreateNewRowButton(props) {
19597
19593
  return rowCreated === null || rowCreated === void 0 ? void 0 : (_rowCreated$rowFinder2 = rowCreated.rowFinder) === null || _rowCreated$rowFinder2 === void 0 ? void 0 : _rowCreated$rowFinder2.call(rowCreated, row.original);
19598
19594
  });
19599
19595
  if (createdRow) {
19600
- const rowInTable = table.getRowModel().rows.find(row => {
19596
+ const rowInTable = table.getRowModel().rows.filter(row => row.original !== undefined).find(row => {
19601
19597
  var _rowCreated$rowFinder3;
19602
19598
  return rowCreated === null || rowCreated === void 0 ? void 0 : (_rowCreated$rowFinder3 = rowCreated.rowFinder) === null || _rowCreated$rowFinder3 === void 0 ? void 0 : _rowCreated$rowFinder3.call(rowCreated, row.original);
19603
19599
  });
@@ -19613,7 +19609,7 @@ function CreateNewRowButton(props) {
19613
19609
  }, [rowCreated]);
19614
19610
  return /*#__PURE__*/React__default.createElement("tr", {
19615
19611
  onClick: handleCreate,
19616
- className: "border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t print:!hidden"
19612
+ className: "border-grey-300 hover:bg-grey-100 group !sticky bottom-10 left-0 z-[21] !block cursor-pointer border-t"
19617
19613
  }, /*#__PURE__*/React__default.createElement("td", {
19618
19614
  className: "!border-t-0 !bg-transparent"
19619
19615
  }, /*#__PURE__*/React__default.createElement(Button$1, {