@economic/taco 1.21.1 → 1.21.3

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 (61) hide show
  1. package/dist/components/Provider/Localization.d.ts +70 -7
  2. package/dist/components/Table2/Table2.d.ts +74 -9
  3. package/dist/components/Table2/Table2.stories.d.ts +0 -1
  4. package/dist/components/Table2/components/EditModeButton.d.ts +1 -0
  5. package/dist/components/Table2/components/filters/components/InferredControl.d.ts +1 -1
  6. package/dist/components/Table2/types.d.ts +7 -4
  7. package/dist/components/Table2/utilities/columns.d.ts +5 -4
  8. package/dist/esm/packages/taco/src/components/Provider/Localization.js +70 -7
  9. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +1 -0
  11. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -1
  13. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table2/Table2.js +17 -6
  15. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  16. package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +24 -22
  17. package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +23 -4
  19. package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js.map +1 -1
  20. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +6 -2
  21. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +1 -1
  22. package/dist/esm/packages/taco/src/components/Table2/components/Search.js +5 -0
  23. package/dist/esm/packages/taco/src/components/Table2/components/Search.js.map +1 -1
  24. package/dist/esm/packages/taco/src/components/Table2/components/ShortcutsGuideButton.js +14 -16
  25. package/dist/esm/packages/taco/src/components/Table2/components/ShortcutsGuideButton.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +14 -6
  27. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js +6 -2
  29. package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js +10 -12
  31. package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +10 -5
  33. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js +5 -5
  35. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js +20 -12
  37. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js +3 -0
  39. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +4 -3
  41. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +8 -4
  43. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
  44. package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js +1 -5
  45. package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js.map +1 -1
  46. package/dist/esm/packages/taco/src/components/Table2/types.js +2 -0
  47. package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
  48. package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js +1 -1
  49. package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js.map +1 -1
  50. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +31 -37
  51. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
  52. package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js +4 -0
  53. package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js.map +1 -1
  54. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +2 -1
  55. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
  56. package/dist/taco.cjs.development.js +274 -151
  57. package/dist/taco.cjs.development.js.map +1 -1
  58. package/dist/taco.cjs.production.min.js +1 -1
  59. package/dist/taco.cjs.production.min.js.map +1 -1
  60. package/package.json +2 -2
  61. package/types.json +316 -9
@@ -104,7 +104,15 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
104
104
  meta.setActiveRowIndex(rows.length - 1);
105
105
  virtualiser.scrollToOffset(virtualiser.totalSize + 1);
106
106
  } else {
107
- meta.moveToNextRow(rows, nextIndex => virtualiser.scrollToIndex(nextIndex + 2));
107
+ meta.moveToNextRow(rows, nextIndex => {
108
+ // the virtualiser doesn't always scroll right to the bottom for the last row
109
+ if (nextIndex === rows.length - 1) {
110
+ var _tableRef$current;
111
+ (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.scrollTo(0, tableRef.current.scrollHeight);
112
+ } else {
113
+ virtualiser.scrollToIndex(nextIndex + 2);
114
+ }
115
+ });
108
116
  }
109
117
  return;
110
118
  }
@@ -188,7 +196,6 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
188
196
  }
189
197
  };
190
198
  }
191
- // extract - infinite loading
192
199
  // TODO: this can probably be extracted into a hook
193
200
  // we only show the pinned shadow on display columns when scrolling is active
194
201
  const [scrolled, setScrolled] = React__default.useState(false);
@@ -243,7 +250,7 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
243
250
  // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy
244
251
  handleMouseLeave = () => meta.setHoveredRowIndex(undefined);
245
252
  }
246
- const className = cn('bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid overflow-auto relative rounded group', props.className);
253
+ const className = cn('bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group', props.className);
247
254
  const enableSettingsButton = table.options.enablePinning || table.options.enableHiding || meta.enableColumnReordering;
248
255
  const hasInternalToolbar = enableSettingsButton || meta.editMode.enableEditMode || table.options.enableColumnFilters || meta.enableRowDensity || table.options.enableGlobalFilter;
249
256
  const hasToolbar = !!toolbar || hasInternalToolbar;
@@ -261,7 +268,8 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
261
268
  }, meta.editMode.enableEditMode ? /*#__PURE__*/React__default.createElement(EditModeButton, {
262
269
  ref: editButtonRef,
263
270
  table: table,
264
- tableRef: tableRef
271
+ tableRef: tableRef,
272
+ scrollToIndex: virtualiser.scrollToIndex
265
273
  }) : null, table.options.enableColumnFilters ? /*#__PURE__*/React__default.createElement(FiltersButton, {
266
274
  length: length,
267
275
  table: table
@@ -272,12 +280,12 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
272
280
  }) : null, table.options.enableGlobalFilter ? /*#__PURE__*/React__default.createElement(Search, {
273
281
  disabled: meta.shouldDisableTableActions,
274
282
  onSearch: table.setGlobalFilter,
275
- placeholder: "Search...",
276
283
  value: globalFilter
277
284
  }) : null) : null, /*#__PURE__*/React__default.createElement(ShortcutsGuideButton, {
278
285
  table: table
279
286
  })) : null, /*#__PURE__*/React__default.createElement("div", {
280
287
  className: className,
288
+ "data-taco": "table2",
281
289
  onBlur: handleBlur,
282
290
  onKeyDown: handleKeyDown,
283
291
  onMouseLeave: handleMouseLeave,
@@ -294,6 +302,7 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
294
302
  tabIndex: 0
295
303
  }, /*#__PURE__*/React__default.createElement("div", {
296
304
  className: "contents",
305
+ "data-taco": "table2-header",
297
306
  role: "rowgroup"
298
307
  }, table.getHeaderGroups().map(headerGroup => /*#__PURE__*/React__default.createElement("div", {
299
308
  className: "contents",
@@ -309,6 +318,7 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
309
318
  tableRef: tableRef
310
319
  }))))), rows.length ? /*#__PURE__*/React__default.createElement("div", {
311
320
  className: "contents",
321
+ "data-taco": "table2-body",
312
322
  role: "rowgroup"
313
323
  }, virtualiserOffsets.top ? /*#__PURE__*/React__default.createElement("div", {
314
324
  style: {
@@ -349,7 +359,8 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
349
359
  className: "col-span-full min-h-[theme(spacing.8)]"
350
360
  }, EmptyState ? /*#__PURE__*/React__default.createElement(EmptyState, null) : null), hasFooters ? /*#__PURE__*/React__default.createElement("div", {
351
361
  role: "rowgroup",
352
- className: "contents"
362
+ className: "contents",
363
+ "data-taco": "table2-footer"
353
364
  }, table.getFooterGroups().map(footerGroup => /*#__PURE__*/React__default.createElement("div", {
354
365
  key: footerGroup.id,
355
366
  role: "row",
@@ -1 +1 @@
1
- {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps, Table2ToolbarProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { useSeparatedChildren } from './hooks/useSeparatedChildren';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { ShortcutsGuideButton } from './components/ShortcutsGuideButton';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n shortcuts: {\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n rowIndicator: {\n rowWillMove: string;\n rowWillBeFiltered: string;\n searchFilterMovementReason: string;\n tableFilterMovementReason: string;\n sortingMovementReason: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nfunction Toolbar(props: Table2ToolbarProps) {\n const className = cn('flex-grow', props.className);\n return <div {...props} className={className} />;\n}\nToolbar.displayName = 'Table2Toolbar';\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: React.FunctionComponent<Table2ColumnProps<any>>;\n Toolbar: React.FunctionComponent<Table2ToolbarProps>;\n};\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<HTMLDivElement>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n\n // react-table\n const [columns, toolbar] = useSeparatedChildren(props.children);\n const { rows, table, footers } = useTable(columns, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => virtualiser.scrollToIndex(nextIndex - 1));\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => virtualiser.scrollToIndex(nextIndex + 2));\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n\n if (event.key === 'a') {\n if (table.options.enableRowSelection) {\n table.toggleAllRowsSelected();\n }\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // extract - infinite loading\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n if (\n event.currentTarget.scrollHeight - event.currentTarget.scrollTop - event.currentTarget.clientHeight < 600 &&\n !loadingRef.current\n ) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.hoveredRowIndex !== undefined) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setHoveredRowIndex(undefined);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enablePinning || table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = !!toolbar || hasInternalToolbar;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"flex h-full w-full flex-col gap-4\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbar}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton ref={editButtonRef} table={table} tableRef={tableRef} />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n placeholder=\"Search...\"\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n <ShortcutsGuideButton table={table} />\n </div>\n ) : null}\n <div\n className={className}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row className=\"group/row contents\" row={row} rowIndex={virtualRow.index} table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\nTable2.Toolbar = Toolbar;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionProps, Table2Settings, Table2ToolbarProps } from './types';\n"],"names":["Column","_","displayName","Toolbar","props","className","cn","React","Table2","forwardRef","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","columns","toolbar","useSeparatedChildren","children","rows","table","footers","useTable","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","current","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","scrollToIndex","totalSize","moveToNextRow","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollHeight","scrollTop","clientHeight","isAllRowsSelected","getIsAllRowsSelected","handleMouseLeave","hoveredRowIndex","setHoveredRowIndex","enableSettingsButton","enablePinning","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","placeholder","value","ShortcutsGuideButton","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary"],"mappings":"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"}
1
+ {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps, Table2ToolbarProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { useSeparatedChildren } from './hooks/useSeparatedChildren';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { ShortcutsGuideButton } from './components/ShortcutsGuideButton';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n columnsOther: string;\n columnsOtherDrop: string;\n columnsPinned: string;\n columnsPinnedDrop: string;\n search: string;\n tooltip: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n tooltip: string;\n total: string;\n };\n rowDensity: {\n tooltip: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nfunction Toolbar(props: Table2ToolbarProps) {\n const className = cn('flex-grow', props.className);\n return <div {...props} className={className} />;\n}\nToolbar.displayName = 'Table2Toolbar';\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n Toolbar: React.FunctionComponent<Table2ToolbarProps>;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<HTMLDivElement> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<HTMLDivElement>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n\n // react-table\n const [columns, toolbar] = useSeparatedChildren(props.children);\n const { rows, table, footers } = useTable(columns, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => virtualiser.scrollToIndex(nextIndex - 1));\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n\n if (event.key === 'a') {\n if (table.options.enableRowSelection) {\n table.toggleAllRowsSelected();\n }\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n if (\n event.currentTarget.scrollHeight - event.currentTarget.scrollTop - event.currentTarget.clientHeight < 600 &&\n !loadingRef.current\n ) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.hoveredRowIndex !== undefined) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setHoveredRowIndex(undefined);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enablePinning || table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = !!toolbar || hasInternalToolbar;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"flex h-full w-full flex-col gap-4\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbar}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n <ShortcutsGuideButton table={table} />\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row className=\"group/row contents\" row={row} rowIndex={virtualRow.index} table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\" data-taco=\"table2-footer\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\nTable2.Toolbar = Toolbar;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionProps, Table2Settings, Table2ToolbarProps } from './types';\n"],"names":["Column","_","displayName","Toolbar","props","className","cn","React","Table2","forwardRef","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","columns","toolbar","useSeparatedChildren","children","rows","table","footers","useTable","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","current","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollTop","clientHeight","isAllRowsSelected","getIsAllRowsSelected","handleMouseLeave","hoveredRowIndex","setHoveredRowIndex","enableSettingsButton","enablePinning","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","ShortcutsGuideButton","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { Icon } from '../../Icon/Icon.js';
3
3
  import { IconButton } from '../../IconButton/IconButton.js';
4
+ import { useLocalization } from '../../Provider/Localization.js';
4
5
  import { Checkbox } from '../../Checkbox/Checkbox.js';
5
6
  import { Input } from '../../Input/Input.js';
6
7
  import { Popover } from '../../Popover/Popover.js';
@@ -54,6 +55,9 @@ const SortableColumnContainer = ({
54
55
  table
55
56
  }) => {
56
57
  var _ref;
58
+ const {
59
+ texts
60
+ } = useLocalization();
57
61
  const meta = table.options.meta;
58
62
  const reorder = (activeId, overId, listId) => {
59
63
  const draggedColumn = state[listId].find(c => c.id === activeId);
@@ -68,6 +72,10 @@ const SortableColumnContainer = ({
68
72
  moveColumn(column);
69
73
  }
70
74
  };
75
+ const handleDoubleClick = (id, status) => table.options.enablePinning ? event => {
76
+ event.stopPropagation();
77
+ move(id, status);
78
+ } : undefined;
71
79
  const isReorderingAllowed = (_ref = meta.enableColumnReordering || table.options.enablePinning) !== null && _ref !== void 0 ? _ref : false;
72
80
  if (!table.options.enablePinning) {
73
81
  return /*#__PURE__*/React__default.createElement(Container, {
@@ -75,7 +83,7 @@ const SortableColumnContainer = ({
75
83
  move: move
76
84
  }, /*#__PURE__*/React__default.createElement(List, {
77
85
  id: "other",
78
- className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2"
86
+ className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2"
79
87
  }, state.other.map(column => {
80
88
  var _column$columnDef$met2;
81
89
  const canBeReordered = isOrderingAllowed(table, column);
@@ -88,10 +96,7 @@ const SortableColumnContainer = ({
88
96
  canBeReordered: canBeReordered,
89
97
  column: column,
90
98
  isReorderingAllowed: isReorderingAllowed,
91
- onDoubleClick: event => {
92
- event.stopPropagation();
93
- move(column.id, 'other');
94
- }
99
+ onDoubleClick: handleDoubleClick(column.id, 'other')
95
100
  }));
96
101
  })));
97
102
  }
@@ -100,9 +105,9 @@ const SortableColumnContainer = ({
100
105
  move: move
101
106
  }, /*#__PURE__*/React__default.createElement("h5", {
102
107
  className: "mx-4"
103
- }, "Pinned columns"), /*#__PURE__*/React__default.createElement(List, {
108
+ }, texts.table2.columnSettings.columnsPinned), /*#__PURE__*/React__default.createElement(List, {
104
109
  id: "pinned",
105
- className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2"
110
+ className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2"
106
111
  }, state.pinned.length ? state.pinned.map(column => {
107
112
  var _column$columnDef$met3;
108
113
  const canBeReordered = isOrderingAllowed(table, column);
@@ -115,18 +120,15 @@ const SortableColumnContainer = ({
115
120
  canBeReordered: canBeReordered,
116
121
  column: column,
117
122
  isReorderingAllowed: isReorderingAllowed,
118
- onDoubleClick: event => {
119
- event.stopPropagation();
120
- move(column.id, 'pinned');
121
- }
123
+ onDoubleClick: handleDoubleClick(column.id, 'pinned')
122
124
  }));
123
125
  }) : /*#__PURE__*/React__default.createElement("p", {
124
126
  className: "text-grey-500 mb-0 flex h-8 items-center px-2"
125
- }, "Drop column here to pin")), /*#__PURE__*/React__default.createElement("h5", {
127
+ }, texts.table2.columnSettings.columnsPinnedDrop)), /*#__PURE__*/React__default.createElement("h5", {
126
128
  className: "mx-4"
127
- }, "Other columns"), /*#__PURE__*/React__default.createElement(List, {
129
+ }, texts.table2.columnSettings.columnsOther), /*#__PURE__*/React__default.createElement(List, {
128
130
  id: "other",
129
- className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2"
131
+ className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2"
130
132
  }, state.other.length ? state.other.map(column => {
131
133
  var _column$columnDef$met4;
132
134
  const canBeReordered = isOrderingAllowed(table, column);
@@ -139,14 +141,11 @@ const SortableColumnContainer = ({
139
141
  canBeReordered: canBeReordered,
140
142
  column: column,
141
143
  isReorderingAllowed: isReorderingAllowed,
142
- onDoubleClick: event => {
143
- event.stopPropagation();
144
- move(column.id, 'other');
145
- }
144
+ onDoubleClick: handleDoubleClick(column.id, 'other')
146
145
  }));
147
146
  }) : /*#__PURE__*/React__default.createElement("p", {
148
147
  className: "text-grey-500 mb-0 flex h-8 items-center px-2"
149
- }, "Drop column here to unpin")));
148
+ }, texts.table2.columnSettings.columnsOtherDrop)));
150
149
  };
151
150
  const reorder = (draggedColumnId, targetColumnId, list = []) => {
152
151
  const nextColumnOrder = [...list];
@@ -156,6 +155,9 @@ const reorder = (draggedColumnId, targetColumnId, list = []) => {
156
155
  const ColumnSettingsButton = ({
157
156
  table
158
157
  }) => {
158
+ const {
159
+ texts
160
+ } = useLocalization();
159
161
  const [query, setQuery] = React__default.useState('');
160
162
  const columns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));
161
163
  const [state, setState] = React__default.useState({
@@ -204,7 +206,7 @@ const ColumnSettingsButton = ({
204
206
  table.setColumnOrder(internals.concat([...state.pinned, ...state.other].map(c => c.id)));
205
207
  }, [state]);
206
208
  return /*#__PURE__*/React__default.createElement(IconButton, {
207
- "aria-label": "Change column settings",
209
+ "aria-label": texts.table2.columnSettings.tooltip,
208
210
  icon: "columns",
209
211
  popover: popoverProps => /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps), /*#__PURE__*/React__default.createElement(Popover.Content, {
210
212
  align: "end"
@@ -212,7 +214,7 @@ const ColumnSettingsButton = ({
212
214
  className: "flex w-60 flex-col gap-2"
213
215
  }, /*#__PURE__*/React__default.createElement(Input, {
214
216
  onChange: event => setQuery(event.target.value),
215
- placeholder: "Search column...",
217
+ placeholder: texts.table2.columnSettings.search,
216
218
  value: query
217
219
  }), /*#__PURE__*/React__default.createElement("div", {
218
220
  className: "-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto"
@@ -230,7 +232,7 @@ const ColumnSettingsButton = ({
230
232
  reorderColumn: reorderColumn,
231
233
  table: table
232
234
  }))))),
233
- tooltip: "Column settings"
235
+ tooltip: texts.table2.columnSettings.tooltip
234
236
  });
235
237
  };
236
238
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Icon } from '../../Icon/Icon';\nimport { Input } from '../../Input/Input';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport * as Sortable from '../../../primitives/Sortable/Sortable';\nimport { COLUMN_ID_FOR_EXPANSION, COLUMN_ID_FOR_SELECTION, isInternalColumn } from '../utilities/columns';\nimport { SortableItemId } from '../../../primitives/Sortable/Sortable';\n\ntype OrderableColumnProps = React.HTMLAttributes<HTMLDivElement> & {\n canBeReordered: boolean;\n column: RTColumn<any, any>;\n isReorderingAllowed: boolean;\n};\n\nconst OrderableColumn = React.forwardRef<HTMLDivElement, OrderableColumnProps>((props, ref) => {\n const { canBeReordered, column, isReorderingAllowed, ...attributes } = props;\n\n let icon;\n\n if (canBeReordered) {\n icon = <Icon name=\"drag\" className=\"text-grey-500 hover:text-grey-700 mr-0.5 -ml-2 -mt-px cursor-move\" />;\n } else if (isReorderingAllowed) {\n icon = <span className=\"mr-0.5 inline-flex w-4\" />;\n }\n\n return (\n <div\n {...attributes}\n className=\"hover:bg-grey-100 aria-pressed:bg-grey-200 flex w-full items-center justify-between gap-x-2 rounded py-1 px-2 aria-pressed:z-10\"\n ref={ref}>\n <span className=\"pointer-events-none\">\n {icon}\n {column.columnDef.header ?? column.columnDef.id}\n </span>\n {column.getCanHide() ? <Checkbox checked={column.getIsVisible()} onChange={column.toggleVisibility} /> : null}\n </div>\n );\n});\n\nconst isOrderingAllowed = (table, column) => {\n const meta = table.options.meta as TableMeta<any>;\n\n if (table.options.enablePinning) {\n return true;\n }\n\n return meta.enableColumnReordering ? !column.columnDef.meta?.disableReordering : false;\n};\n\ntype SortableColumnContainerProps = {\n state: PinnedState;\n moveColumn: (column: RTColumn<any, any>) => void;\n reorderColumn: (draggedColumnId: string, targetColumnId: string, pinned: boolean) => void;\n table: RTTable<any>;\n};\n\nconst SortableColumnContainer = ({ state, moveColumn, reorderColumn, table }: SortableColumnContainerProps) => {\n const meta = table.options.meta as TableMeta<any>;\n\n const reorder = (activeId: SortableItemId, overId: SortableItemId, listId: string) => {\n const draggedColumn: RTColumn<any, any> = state[listId].find(c => c.id === activeId);\n const targetColumn: RTColumn<any, any> = state[listId].find(c => c.id === overId);\n\n if (draggedColumn && targetColumn) {\n reorderColumn(draggedColumn.id, targetColumn.id, listId === 'pinned');\n }\n };\n\n const move = (activeId: SortableItemId, oldListId: string) => {\n const column = state[oldListId].find(c => c.id === activeId);\n\n if (column) {\n moveColumn(column);\n }\n };\n\n const isReorderingAllowed = (meta.enableColumnReordering || table.options.enablePinning) ?? false;\n\n if (!table.options.enablePinning) {\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2\">\n {state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={event => {\n event.stopPropagation();\n move(column.id, 'other');\n }}\n />\n </Sortable.Item>\n );\n })}\n </Sortable.List>\n </Sortable.Container>\n );\n }\n\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <h5 className=\"mx-4\">Pinned columns</h5>\n <Sortable.List id=\"pinned\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2\">\n {state.pinned.length ? (\n state.pinned.map(column => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={event => {\n event.stopPropagation();\n move(column.id, 'pinned');\n }}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">Drop column here to pin</p>\n )}\n </Sortable.List>\n <h5 className=\"mx-4\">Other columns</h5>\n\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px px-2\">\n {state.other.length ? (\n state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={event => {\n event.stopPropagation();\n move(column.id, 'other');\n }}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">Drop column here to unpin</p>\n )}\n </Sortable.List>\n </Sortable.Container>\n );\n};\n\nconst reorder = (draggedColumnId: string, targetColumnId: string, list: RTColumn<any>[] = []): RTColumn<any>[] => {\n const nextColumnOrder = [...list];\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === targetColumnId),\n 0,\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === draggedColumnId),\n 1\n )[0]\n );\n return nextColumnOrder;\n};\n\ntype PinnedState = {\n pinned: RTColumn<any>[];\n other: RTColumn<any>[];\n};\ntype ColumnSettingsButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ColumnSettingsButton = ({ table }: ColumnSettingsButtonProps) => {\n const [query, setQuery] = React.useState('');\n const columns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));\n\n const [state, setState] = React.useState<PinnedState>({\n pinned: columns.filter(column => column.getIsPinned()),\n other: columns.filter(column => !column.getIsPinned()),\n });\n\n const pinColumn = (column: RTColumn<any, any>) => {\n if (state.pinned.find(c => c.id === column.id)) {\n setState(currentState => ({\n pinned: currentState.pinned.filter(c => c.id !== column.id),\n other: [column].concat(...currentState.other),\n }));\n } else {\n setState(currentState => ({\n pinned: currentState.pinned.concat(column),\n other: currentState.other.filter(c => c.id !== column.id),\n }));\n }\n };\n\n const reorderColumn = (draggedColumnId: string, targetColumnId: string, pinned: boolean) => {\n if (pinned) {\n setState(currentState => ({\n ...currentState,\n pinned: reorder(draggedColumnId, targetColumnId, currentState.pinned),\n }));\n } else {\n setState(currentState => ({\n ...currentState,\n other: reorder(draggedColumnId, targetColumnId, currentState.other),\n }));\n }\n };\n\n // probably a more elegant way to do this without local state but had\n // a range of issues using the native apis directly\n React.useEffect(() => {\n const internals: string[] = [];\n\n if (table.options.enableRowSelection) {\n internals.push(COLUMN_ID_FOR_SELECTION);\n }\n\n if (table.options.enableExpanding) {\n internals.push(COLUMN_ID_FOR_EXPANSION);\n }\n\n table.setColumnPinning({ left: internals.concat(...state.pinned.map(c => c.id)) });\n table.setColumnOrder(internals.concat([...state.pinned, ...state.other].map(c => c.id)));\n }, [state]);\n\n return (\n <IconButton\n aria-label=\"Change column settings\"\n icon=\"columns\"\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder=\"Search column...\"\n value={query}\n />\n <div className=\"-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto\">\n {query ? (\n columns\n .filter(column => column.columnDef.header?.toString().includes(query))\n .map(column => (\n <OrderableColumn\n key={column.id}\n canBeReordered={false}\n column={column}\n isReorderingAllowed={false}\n />\n ))\n ) : (\n <SortableColumnContainer\n state={state}\n moveColumn={pinColumn}\n reorderColumn={reorderColumn}\n table={table}\n />\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover>\n )}\n tooltip=\"Column settings\"\n />\n );\n};\n"],"names":["OrderableColumn","React","forwardRef","props","ref","canBeReordered","column","isReorderingAllowed","attributes","icon","Icon","name","className","columnDef","header","id","getCanHide","Checkbox","checked","getIsVisible","onChange","toggleVisibility","isOrderingAllowed","table","meta","options","enablePinning","enableColumnReordering","disableReordering","SortableColumnContainer","state","moveColumn","reorderColumn","reorder","activeId","overId","listId","draggedColumn","find","c","targetColumn","move","oldListId","Sortable","other","map","key","disabled","asChild","onDoubleClick","event","stopPropagation","pinned","length","draggedColumnId","targetColumnId","list","nextColumnOrder","splice","findIndex","ColumnSettingsButton","query","setQuery","useState","columns","getAllLeafColumns","filter","isInternalColumn","setState","getIsPinned","pinColumn","currentState","concat","useEffect","internals","enableRowSelection","push","COLUMN_ID_FOR_SELECTION","enableExpanding","COLUMN_ID_FOR_EXPANSION","setColumnPinning","left","setColumnOrder","IconButton","popover","popoverProps","Popover","Content","align","Input","target","value","placeholder","toString","includes","tooltip"],"mappings":";;;;;;;;;;;;AAiBA,MAAMA,eAAe,gBAAGC,cAAK,CAACC,UAAU,CAAuC,CAACC,KAAK,EAAEC,GAAG;;EACtF,MAAM;IAAEC,cAAc;IAAEC,MAAM;IAAEC,mBAAmB;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAE5E,IAAIM,IAAI;EAER,IAAIJ,cAAc,EAAE;IAChBI,IAAI,gBAAGR,6BAACS,IAAI;MAACC,IAAI,EAAC,MAAM;MAACC,SAAS,EAAC;MAAsE;GAC5G,MAAM,IAAIL,mBAAmB,EAAE;IAC5BE,IAAI,gBAAGR;MAAMW,SAAS,EAAC;MAA2B;;EAGtD,oBACIX,sDACQO,UAAU;IACdI,SAAS,EAAC,iIAAiI;IAC3IR,GAAG,EAAEA;mBACLH;IAAMW,SAAS,EAAC;KACXH,IAAI,2BACJH,MAAM,CAACO,SAAS,CAACC,MAAM,yEAAIR,MAAM,CAACO,SAAS,CAACE,EAAE,CAC5C,EACNT,MAAM,CAACU,UAAU,EAAE,gBAAGf,6BAACgB,QAAQ;IAACC,OAAO,EAAEZ,MAAM,CAACa,YAAY,EAAE;IAAEC,QAAQ,EAAEd,MAAM,CAACe;IAAoB,GAAG,IAAI,CAC3G;AAEd,CAAC,CAAC;AAEF,MAAMC,iBAAiB,GAAG,CAACC,KAAK,EAAEjB,MAAM;;EACpC,MAAMkB,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAAsB;EAEjD,IAAID,KAAK,CAACE,OAAO,CAACC,aAAa,EAAE;IAC7B,OAAO,IAAI;;EAGf,OAAOF,IAAI,CAACG,sBAAsB,GAAG,2BAACrB,MAAM,CAACO,SAAS,CAACW,IAAI,kDAArB,sBAAuBI,iBAAiB,IAAG,KAAK;AAC1F,CAAC;AASD,MAAMC,uBAAuB,GAAG,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC,aAAa;EAAET;CAAqC;;EACtG,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAAsB;EAEjD,MAAMS,OAAO,GAAG,CAACC,QAAwB,EAAEC,MAAsB,EAAEC,MAAc;IAC7E,MAAMC,aAAa,GAAuBP,KAAK,CAACM,MAAM,CAAC,CAACE,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKmB,QAAQ,CAAC;IACpF,MAAMM,YAAY,GAAuBV,KAAK,CAACM,MAAM,CAAC,CAACE,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKoB,MAAM,CAAC;IAEjF,IAAIE,aAAa,IAAIG,YAAY,EAAE;MAC/BR,aAAa,CAACK,aAAa,CAACtB,EAAE,EAAEyB,YAAY,CAACzB,EAAE,EAAEqB,MAAM,KAAK,QAAQ,CAAC;;GAE5E;EAED,MAAMK,IAAI,GAAG,CAACP,QAAwB,EAAEQ,SAAiB;IACrD,MAAMpC,MAAM,GAAGwB,KAAK,CAACY,SAAS,CAAC,CAACJ,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKmB,QAAQ,CAAC;IAE5D,IAAI5B,MAAM,EAAE;MACRyB,UAAU,CAACzB,MAAM,CAAC;;GAEzB;EAED,MAAMC,mBAAmB,WAAIiB,IAAI,CAACG,sBAAsB,IAAIJ,KAAK,CAACE,OAAO,CAACC,aAAa,uCAAK,KAAK;EAEjG,IAAI,CAACH,KAAK,CAACE,OAAO,CAACC,aAAa,EAAE;IAC9B,oBACIzB,6BAAC0C,SAAkB;MAACV,OAAO,EAAEA,OAAO;MAAEQ,IAAI,EAAEA;oBACxCxC,6BAAC0C,IAAa;MAAC5B,EAAE,EAAC,OAAO;MAACH,SAAS,EAAC;OAC/BkB,KAAK,CAACc,KAAK,CAACC,GAAG,CAAEvC,MAA0B;;MACxC,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;MAEvD,oBACIL,6BAAC0C,IAAa;QACVG,GAAG,EAAExC,MAAM,CAACS,EAAE;QACdgC,QAAQ,4BAAEzC,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;QAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;QACbiC,OAAO;sBACP/C,6BAACD,eAAe;QACZK,cAAc,EAAEA,cAAc;QAC9BC,MAAM,EAAEA,MAAM;QACdC,mBAAmB,EAAEA,mBAAmB;QACxC0C,aAAa,EAAEC,KAAK;UAChBA,KAAK,CAACC,eAAe,EAAE;UACvBV,IAAI,CAACnC,MAAM,CAACS,EAAE,EAAE,OAAO,CAAC;;QAE9B,CACU;KAEvB,CAAC,CACU,CACC;;EAI7B,oBACId,6BAAC0C,SAAkB;IAACV,OAAO,EAAEA,OAAO;IAAEQ,IAAI,EAAEA;kBACxCxC;IAAIW,SAAS,EAAC;sBAA0B,eACxCX,6BAAC0C,IAAa;IAAC5B,EAAE,EAAC,QAAQ;IAACH,SAAS,EAAC;KAChCkB,KAAK,CAACsB,MAAM,CAACC,MAAM,GAChBvB,KAAK,CAACsB,MAAM,CAACP,GAAG,CAACvC,MAAM;;IACnB,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;IAEvD,oBACIL,6BAAC0C,IAAa;MACVG,GAAG,EAAExC,MAAM,CAACS,EAAE;MACdgC,QAAQ,4BAAEzC,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;MAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;MACbiC,OAAO;oBACP/C,6BAACD,eAAe;MACZK,cAAc,EAAEA,cAAc;MAC9BC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAEA,mBAAmB;MACxC0C,aAAa,EAAEC,KAAK;QAChBA,KAAK,CAACC,eAAe,EAAE;QACvBV,IAAI,CAACnC,MAAM,CAACS,EAAE,EAAE,QAAQ,CAAC;;MAE/B,CACU;GAEvB,CAAC,gBAEFd;IAAGW,SAAS,EAAC;+BAChB,CACW,eAChBX;IAAIW,SAAS,EAAC;qBAAyB,eAEvCX,6BAAC0C,IAAa;IAAC5B,EAAE,EAAC,OAAO;IAACH,SAAS,EAAC;KAC/BkB,KAAK,CAACc,KAAK,CAACS,MAAM,GACfvB,KAAK,CAACc,KAAK,CAACC,GAAG,CAAEvC,MAA0B;;IACvC,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;IAEvD,oBACIL,6BAAC0C,IAAa;MACVG,GAAG,EAAExC,MAAM,CAACS,EAAE;MACdgC,QAAQ,4BAAEzC,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;MAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;MACbiC,OAAO;oBACP/C,6BAACD,eAAe;MACZK,cAAc,EAAEA,cAAc;MAC9BC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAEA,mBAAmB;MACxC0C,aAAa,EAAEC,KAAK;QAChBA,KAAK,CAACC,eAAe,EAAE;QACvBV,IAAI,CAACnC,MAAM,CAACS,EAAE,EAAE,OAAO,CAAC;;MAE9B,CACU;GAEvB,CAAC,gBAEFd;IAAGW,SAAS,EAAC;iCAChB,CACW,CACC;AAE7B,CAAC;AAED,MAAMqB,OAAO,GAAG,CAACqB,eAAuB,EAAEC,cAAsB,EAAEC,OAAwB,EAAE;EACxF,MAAMC,eAAe,GAAG,CAAC,GAAGD,IAAI,CAAC;EACjCC,eAAe,CAACC,MAAM,CAClBD,eAAe,CAACE,SAAS,CAACpB,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKwC,cAAc,CAAC,EACvD,CAAC,EACDE,eAAe,CAACC,MAAM,CAClBD,eAAe,CAACE,SAAS,CAACpB,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKuC,eAAe,CAAC,EACxD,CAAC,CACJ,CAAC,CAAC,CAAC,CACP;EACD,OAAOG,eAAe;AAC1B,CAAC;MAUYG,oBAAoB,GAAG,CAAC;EAAErC;CAAkC;EACrE,MAAM,CAACsC,KAAK,EAAEC,QAAQ,CAAC,GAAG7D,cAAK,CAAC8D,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAMC,OAAO,GAAGzC,KAAK,CAAC0C,iBAAiB,EAAE,CAACC,MAAM,CAAC5D,MAAM,IAAI,CAAC6D,gBAAgB,CAAC7D,MAAM,CAACS,EAAE,CAAC,CAAC;EAExF,MAAM,CAACe,KAAK,EAAEsC,QAAQ,CAAC,GAAGnE,cAAK,CAAC8D,QAAQ,CAAc;IAClDX,MAAM,EAAEY,OAAO,CAACE,MAAM,CAAC5D,MAAM,IAAIA,MAAM,CAAC+D,WAAW,EAAE,CAAC;IACtDzB,KAAK,EAAEoB,OAAO,CAACE,MAAM,CAAC5D,MAAM,IAAI,CAACA,MAAM,CAAC+D,WAAW,EAAE;GACxD,CAAC;EAEF,MAAMC,SAAS,GAAIhE,MAA0B;IACzC,IAAIwB,KAAK,CAACsB,MAAM,CAACd,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKT,MAAM,CAACS,EAAE,CAAC,EAAE;MAC5CqD,QAAQ,CAACG,YAAY,KAAK;QACtBnB,MAAM,EAAEmB,YAAY,CAACnB,MAAM,CAACc,MAAM,CAAC3B,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKT,MAAM,CAACS,EAAE,CAAC;QAC3D6B,KAAK,EAAE,CAACtC,MAAM,CAAC,CAACkE,MAAM,CAAC,GAAGD,YAAY,CAAC3B,KAAK;OAC/C,CAAC,CAAC;KACN,MAAM;MACHwB,QAAQ,CAACG,YAAY,KAAK;QACtBnB,MAAM,EAAEmB,YAAY,CAACnB,MAAM,CAACoB,MAAM,CAAClE,MAAM,CAAC;QAC1CsC,KAAK,EAAE2B,YAAY,CAAC3B,KAAK,CAACsB,MAAM,CAAC3B,CAAC,IAAIA,CAAC,CAACxB,EAAE,KAAKT,MAAM,CAACS,EAAE;OAC3D,CAAC,CAAC;;GAEV;EAED,MAAMiB,aAAa,GAAG,CAACsB,eAAuB,EAAEC,cAAsB,EAAEH,MAAe;IACnF,IAAIA,MAAM,EAAE;MACRgB,QAAQ,CAACG,YAAY,KAAK;QACtB,GAAGA,YAAY;QACfnB,MAAM,EAAEnB,OAAO,CAACqB,eAAe,EAAEC,cAAc,EAAEgB,YAAY,CAACnB,MAAM;OACvE,CAAC,CAAC;KACN,MAAM;MACHgB,QAAQ,CAACG,YAAY,KAAK;QACtB,GAAGA,YAAY;QACf3B,KAAK,EAAEX,OAAO,CAACqB,eAAe,EAAEC,cAAc,EAAEgB,YAAY,CAAC3B,KAAK;OACrE,CAAC,CAAC;;GAEV;;;EAID3C,cAAK,CAACwE,SAAS,CAAC;IACZ,MAAMC,SAAS,GAAa,EAAE;IAE9B,IAAInD,KAAK,CAACE,OAAO,CAACkD,kBAAkB,EAAE;MAClCD,SAAS,CAACE,IAAI,CAACC,uBAAuB,CAAC;;IAG3C,IAAItD,KAAK,CAACE,OAAO,CAACqD,eAAe,EAAE;MAC/BJ,SAAS,CAACE,IAAI,CAACG,uBAAuB,CAAC;;IAG3CxD,KAAK,CAACyD,gBAAgB,CAAC;MAAEC,IAAI,EAAEP,SAAS,CAACF,MAAM,CAAC,GAAG1C,KAAK,CAACsB,MAAM,CAACP,GAAG,CAACN,CAAC,IAAIA,CAAC,CAACxB,EAAE,CAAC;KAAG,CAAC;IAClFQ,KAAK,CAAC2D,cAAc,CAACR,SAAS,CAACF,MAAM,CAAC,CAAC,GAAG1C,KAAK,CAACsB,MAAM,EAAE,GAAGtB,KAAK,CAACc,KAAK,CAAC,CAACC,GAAG,CAACN,CAAC,IAAIA,CAAC,CAACxB,EAAE,CAAC,CAAC,CAAC;GAC3F,EAAE,CAACe,KAAK,CAAC,CAAC;EAEX,oBACI7B,6BAACkF,UAAU;kBACI,wBAAwB;IACnC1E,IAAI,EAAC,SAAS;IACd2E,OAAO,EAAEC,YAAY,iBACjBpF,6BAACqF,OAAO,oBAAKD,YAAY,gBACrBpF,6BAACqF,OAAO,CAACC,OAAO;MAACC,KAAK,EAAC;oBACnBvF;MAAKW,SAAS,EAAC;oBACXX,6BAACwF,KAAK;MACFrE,QAAQ,EAAE8B,KAAK,IAAIY,QAAQ,CAACZ,KAAK,CAACwC,MAAM,CAACC,KAAK,CAAC;MAC/CC,WAAW,EAAC,kBAAkB;MAC9BD,KAAK,EAAE9B;MACT,eACF5D;MAAKW,SAAS,EAAC;OACViD,KAAK,GACFG,OAAO,CACFE,MAAM,CAAC5D,MAAM;MAAA;MAAA,iCAAIA,MAAM,CAACO,SAAS,CAACC,MAAM,2DAAvB,uBAAyB+E,QAAQ,EAAE,CAACC,QAAQ,CAACjC,KAAK,CAAC;MAAC,CACrEhB,GAAG,CAACvC,MAAM,iBACPL,6BAACD,eAAe;MACZ8C,GAAG,EAAExC,MAAM,CAACS,EAAE;MACdV,cAAc,EAAE,KAAK;MACrBC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAE;MAE5B,CAAC,gBAENN,6BAAC4B,uBAAuB;MACpBC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEuC,SAAS;MACrBtC,aAAa,EAAEA,aAAa;MAC5BT,KAAK,EAAEA;MAEd,CACC,CACJ,CACQ,CAEzB;IACDwE,OAAO,EAAC;IACV;AAEV;;;;"}
1
+ {"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Icon } from '../../Icon/Icon';\nimport { Input } from '../../Input/Input';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport * as Sortable from '../../../primitives/Sortable/Sortable';\nimport { COLUMN_ID_FOR_EXPANSION, COLUMN_ID_FOR_SELECTION, isInternalColumn } from '../utilities/columns';\nimport { SortableItemId } from '../../../primitives/Sortable/Sortable';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype OrderableColumnProps = React.HTMLAttributes<HTMLDivElement> & {\n canBeReordered: boolean;\n column: RTColumn<any, any>;\n isReorderingAllowed: boolean;\n};\n\nconst OrderableColumn = React.forwardRef<HTMLDivElement, OrderableColumnProps>((props, ref) => {\n const { canBeReordered, column, isReorderingAllowed, ...attributes } = props;\n\n let icon;\n\n if (canBeReordered) {\n icon = <Icon name=\"drag\" className=\"text-grey-500 hover:text-grey-700 mr-0.5 -ml-2 -mt-px cursor-move\" />;\n } else if (isReorderingAllowed) {\n icon = <span className=\"mr-0.5 inline-flex w-4\" />;\n }\n\n return (\n <div\n {...attributes}\n className=\"hover:bg-grey-100 aria-pressed:bg-grey-200 flex w-full items-center justify-between gap-x-2 rounded py-1 px-2 aria-pressed:z-10\"\n ref={ref}>\n <span className=\"pointer-events-none\">\n {icon}\n {column.columnDef.header ?? column.columnDef.id}\n </span>\n {column.getCanHide() ? <Checkbox checked={column.getIsVisible()} onChange={column.toggleVisibility} /> : null}\n </div>\n );\n});\n\nconst isOrderingAllowed = (table, column) => {\n const meta = table.options.meta as TableMeta<any>;\n\n if (table.options.enablePinning) {\n return true;\n }\n\n return meta.enableColumnReordering ? !column.columnDef.meta?.disableReordering : false;\n};\n\ntype SortableColumnContainerProps = {\n state: PinnedState;\n moveColumn: (column: RTColumn<any, any>) => void;\n reorderColumn: (draggedColumnId: string, targetColumnId: string, pinned: boolean) => void;\n table: RTTable<any>;\n};\n\nconst SortableColumnContainer = ({ state, moveColumn, reorderColumn, table }: SortableColumnContainerProps) => {\n const { texts } = useLocalization();\n const meta = table.options.meta as TableMeta<any>;\n\n const reorder = (activeId: SortableItemId, overId: SortableItemId, listId: string) => {\n const draggedColumn: RTColumn<any, any> = state[listId].find(c => c.id === activeId);\n const targetColumn: RTColumn<any, any> = state[listId].find(c => c.id === overId);\n\n if (draggedColumn && targetColumn) {\n reorderColumn(draggedColumn.id, targetColumn.id, listId === 'pinned');\n }\n };\n\n const move = (activeId: SortableItemId, oldListId: string) => {\n const column = state[oldListId].find(c => c.id === activeId);\n\n if (column) {\n moveColumn(column);\n }\n };\n\n const handleDoubleClick = (id, status) =>\n table.options.enablePinning\n ? event => {\n event.stopPropagation();\n move(id, status);\n }\n : undefined;\n\n const isReorderingAllowed = (meta.enableColumnReordering || table.options.enablePinning) ?? false;\n\n if (!table.options.enablePinning) {\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })}\n </Sortable.List>\n </Sortable.Container>\n );\n }\n\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsPinned}</h5>\n <Sortable.List id=\"pinned\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.pinned.length ? (\n state.pinned.map(column => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'pinned')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsPinnedDrop}\n </p>\n )}\n </Sortable.List>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsOther}</h5>\n\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.length ? (\n state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsOtherDrop}\n </p>\n )}\n </Sortable.List>\n </Sortable.Container>\n );\n};\n\nconst reorder = (draggedColumnId: string, targetColumnId: string, list: RTColumn<any>[] = []): RTColumn<any>[] => {\n const nextColumnOrder = [...list];\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === targetColumnId),\n 0,\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === draggedColumnId),\n 1\n )[0]\n );\n return nextColumnOrder;\n};\n\ntype PinnedState = {\n pinned: RTColumn<any>[];\n other: RTColumn<any>[];\n};\ntype ColumnSettingsButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ColumnSettingsButton = ({ table }: ColumnSettingsButtonProps) => {\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const columns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));\n\n const [state, setState] = React.useState<PinnedState>({\n pinned: columns.filter(column => column.getIsPinned()),\n other: columns.filter(column => !column.getIsPinned()),\n });\n\n const pinColumn = (column: RTColumn<any, any>) => {\n if (state.pinned.find(c => c.id === column.id)) {\n setState(currentState => ({\n pinned: currentState.pinned.filter(c => c.id !== column.id),\n other: [column].concat(...currentState.other),\n }));\n } else {\n setState(currentState => ({\n pinned: currentState.pinned.concat(column),\n other: currentState.other.filter(c => c.id !== column.id),\n }));\n }\n };\n\n const reorderColumn = (draggedColumnId: string, targetColumnId: string, pinned: boolean) => {\n if (pinned) {\n setState(currentState => ({\n ...currentState,\n pinned: reorder(draggedColumnId, targetColumnId, currentState.pinned),\n }));\n } else {\n setState(currentState => ({\n ...currentState,\n other: reorder(draggedColumnId, targetColumnId, currentState.other),\n }));\n }\n };\n\n // probably a more elegant way to do this without local state but had\n // a range of issues using the native apis directly\n React.useEffect(() => {\n const internals: string[] = [];\n\n if (table.options.enableRowSelection) {\n internals.push(COLUMN_ID_FOR_SELECTION);\n }\n\n if (table.options.enableExpanding) {\n internals.push(COLUMN_ID_FOR_EXPANSION);\n }\n\n table.setColumnPinning({ left: internals.concat(...state.pinned.map(c => c.id)) });\n table.setColumnOrder(internals.concat([...state.pinned, ...state.other].map(c => c.id)));\n }, [state]);\n\n return (\n <IconButton\n aria-label={texts.table2.columnSettings.tooltip}\n icon=\"columns\"\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table2.columnSettings.search}\n value={query}\n />\n <div className=\"-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto\">\n {query ? (\n columns\n .filter(column => column.columnDef.header?.toString().includes(query))\n .map(column => (\n <OrderableColumn\n key={column.id}\n canBeReordered={false}\n column={column}\n isReorderingAllowed={false}\n />\n ))\n ) : (\n <SortableColumnContainer\n state={state}\n moveColumn={pinColumn}\n reorderColumn={reorderColumn}\n table={table}\n />\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover>\n )}\n tooltip={texts.table2.columnSettings.tooltip}\n />\n );\n};\n"],"names":["OrderableColumn","React","forwardRef","props","ref","canBeReordered","column","isReorderingAllowed","attributes","icon","Icon","name","className","columnDef","header","id","getCanHide","Checkbox","checked","getIsVisible","onChange","toggleVisibility","isOrderingAllowed","table","meta","options","enablePinning","enableColumnReordering","disableReordering","SortableColumnContainer","state","moveColumn","reorderColumn","texts","useLocalization","reorder","activeId","overId","listId","draggedColumn","find","c","targetColumn","move","oldListId","handleDoubleClick","status","event","stopPropagation","undefined","Sortable","other","map","key","disabled","asChild","onDoubleClick","table2","columnSettings","columnsPinned","pinned","length","columnsPinnedDrop","columnsOther","columnsOtherDrop","draggedColumnId","targetColumnId","list","nextColumnOrder","splice","findIndex","ColumnSettingsButton","query","setQuery","useState","columns","getAllLeafColumns","filter","isInternalColumn","setState","getIsPinned","pinColumn","currentState","concat","useEffect","internals","enableRowSelection","push","COLUMN_ID_FOR_SELECTION","enableExpanding","COLUMN_ID_FOR_EXPANSION","setColumnPinning","left","setColumnOrder","IconButton","tooltip","popover","popoverProps","Popover","Content","align","Input","target","value","placeholder","search","toString","includes"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import cn from 'classnames';
3
3
  import { Icon } from '../../Icon/Icon.js';
4
+ import { useLocalization } from '../../Provider/Localization.js';
4
5
  import { Button } from '../../Button/Button.js';
5
6
  import { useMergedRef } from '../../../hooks/useMergedRef.js';
6
7
  import { Shortcut } from '../../Shortcut/Shortcut.js';
@@ -8,9 +9,13 @@ import { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShort
8
9
 
9
10
  const EditModeButton = /*#__PURE__*/React__default.forwardRef(function EditModeButton(props, ref) {
10
11
  const {
12
+ scrollToIndex,
11
13
  table,
12
14
  tableRef
13
15
  } = props;
16
+ const {
17
+ texts
18
+ } = useLocalization();
14
19
  const internalRef = useMergedRef(ref);
15
20
  const meta = table.options.meta;
16
21
  const {
@@ -32,26 +37,40 @@ const EditModeButton = /*#__PURE__*/React__default.forwardRef(function EditModeB
32
37
  });
33
38
  React__default.useEffect(() => {
34
39
  window.addEventListener('beforeunload', showWarning);
35
- return () => window.removeEventListener('beforeunload', showWarning);
40
+ return () => {
41
+ window.removeEventListener('beforeunload', showWarning);
42
+ };
36
43
  }, [showWarning]);
37
44
  const handleClick = () => {
38
45
  var _tableRef$current;
39
46
  meta.editMode.toggleEditing();
40
47
  (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.focus();
48
+ scrollToIndex(meta.activeRowIndex + 1);
41
49
  };
50
+ const hasVisibleEditableColumns = React__default.useMemo(() => {
51
+ const hasColumns = table.getVisibleFlatColumns().some(column => {
52
+ var _column$columnDef$met;
53
+ return ((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.control) !== undefined;
54
+ });
55
+ if (!hasColumns && isEditing) {
56
+ handleClick();
57
+ }
58
+ return hasColumns;
59
+ }, [table.getState().columnVisibility]);
42
60
  return /*#__PURE__*/React__default.createElement(Button, {
43
61
  onClick: handleClick,
44
62
  className: cn({
45
63
  '!wcag-blue-100': meta.editMode.isEditing
46
64
  }),
65
+ disabled: !hasVisibleEditableColumns,
47
66
  ref: internalRef,
48
- tooltip: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, "Edit", /*#__PURE__*/React__default.createElement(Shortcut, {
67
+ tooltip: hasVisibleEditableColumns ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table2.editing.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
49
68
  className: "ml-2",
50
69
  keys: ['Ctrl', 'E']
51
- }))
70
+ })) : texts.table2.editing.tooltipDisabled
52
71
  }, /*#__PURE__*/React__default.createElement(Icon, {
53
72
  name: "edit"
54
- }), "Edit");
73
+ }), texts.table2.editing.button);
55
74
  });
56
75
 
57
76
  export { EditModeButton };
@@ -1 +1 @@
1
- {"version":3,"file":"EditModeButton.js","sources":["../../../../../../../../src/components/Table2/components/EditModeButton.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Button } from '../../Button/Button';\nimport { Icon } from '../../Icon/Icon';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShortcut';\n\nexport type EditModeButtonProps = {\n table: RTTable<any>;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const EditModeButton = React.forwardRef<HTMLButtonElement, EditModeButtonProps>(function EditModeButton(props, ref) {\n const { table, tableRef } = props;\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const meta = table.options.meta as TableMeta<any>;\n const { isEditing } = meta.editMode;\n\n const showWarning = React.useCallback(\n event => {\n if (isEditing) {\n event.returnValue = true;\n return true;\n }\n\n return false;\n },\n [isEditing]\n );\n\n useGlobalKeyboardShortcut((event: KeyboardEvent) => {\n if (event.key === 'e' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n internalRef.current?.click();\n }\n });\n\n React.useEffect(() => {\n window.addEventListener('beforeunload', showWarning);\n\n return () => window.removeEventListener('beforeunload', showWarning);\n }, [showWarning]);\n\n const handleClick = () => {\n meta.editMode.toggleEditing();\n tableRef.current?.focus();\n };\n\n return (\n <Button\n onClick={handleClick}\n className={cn({\n '!wcag-blue-100': meta.editMode.isEditing,\n })}\n ref={internalRef}\n tooltip={\n <>\n Edit\n <Shortcut className=\"ml-2\" keys={['Ctrl', 'E']} />\n </>\n }>\n <Icon name=\"edit\" />\n Edit\n </Button>\n );\n});\n"],"names":["EditModeButton","React","forwardRef","props","ref","table","tableRef","internalRef","useMergedRef","meta","options","isEditing","editMode","showWarning","useCallback","event","returnValue","useGlobalKeyboardShortcut","key","ctrlKey","metaKey","preventDefault","current","click","useEffect","window","addEventListener","removeEventListener","handleClick","toggleEditing","focus","Button","onClick","className","cn","tooltip","Shortcut","keys","Icon","name"],"mappings":";;;;;;;;MAcaA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CAAyC,SAASF,cAAc,CAACG,KAAK,EAAEC,GAAG;EACrH,MAAM;IAAEC,KAAK;IAAEC;GAAU,GAAGH,KAAK;EACjC,MAAMI,WAAW,GAAGC,YAAY,CAAoBJ,GAAG,CAAC;EACxD,MAAMK,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAACD,IAAsB;EACjD,MAAM;IAAEE;GAAW,GAAGF,IAAI,CAACG,QAAQ;EAEnC,MAAMC,WAAW,GAAGZ,cAAK,CAACa,WAAW,CACjCC,KAAK;IACD,IAAIJ,SAAS,EAAE;MACXI,KAAK,CAACC,WAAW,GAAG,IAAI;MACxB,OAAO,IAAI;;IAGf,OAAO,KAAK;GACf,EACD,CAACL,SAAS,CAAC,CACd;EAEDM,yBAAyB,CAAEF,KAAoB;IAC3C,IAAIA,KAAK,CAACG,GAAG,KAAK,GAAG,KAAKH,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACK,OAAO,CAAC,EAAE;MAAA;MACvDL,KAAK,CAACM,cAAc,EAAE;MACtB,wBAAAd,WAAW,CAACe,OAAO,yDAAnB,qBAAqBC,KAAK,EAAE;;GAEnC,CAAC;EAEFtB,cAAK,CAACuB,SAAS,CAAC;IACZC,MAAM,CAACC,gBAAgB,CAAC,cAAc,EAAEb,WAAW,CAAC;IAEpD,OAAO,MAAMY,MAAM,CAACE,mBAAmB,CAAC,cAAc,EAAEd,WAAW,CAAC;GACvE,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMe,WAAW,GAAG;;IAChBnB,IAAI,CAACG,QAAQ,CAACiB,aAAa,EAAE;IAC7B,qBAAAvB,QAAQ,CAACgB,OAAO,sDAAhB,kBAAkBQ,KAAK,EAAE;GAC5B;EAED,oBACI7B,6BAAC8B,MAAM;IACHC,OAAO,EAAEJ,WAAW;IACpBK,SAAS,EAAEC,EAAE,CAAC;MACV,gBAAgB,EAAEzB,IAAI,CAACG,QAAQ,CAACD;KACnC,CAAC;IACFP,GAAG,EAAEG,WAAW;IAChB4B,OAAO,eACHlC,iFAEIA,6BAACmC,QAAQ;MAACH,SAAS,EAAC,MAAM;MAACI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG;MAAK;kBAG1DpC,6BAACqC,IAAI;IAACC,IAAI,EAAC;IAAS,SAEf;AAEjB,CAAC;;;;"}
1
+ {"version":3,"file":"EditModeButton.js","sources":["../../../../../../../../src/components/Table2/components/EditModeButton.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Button } from '../../Button/Button';\nimport { Icon } from '../../Icon/Icon';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShortcut';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type EditModeButtonProps = {\n scrollToIndex: (index: number) => void;\n table: RTTable<any>;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const EditModeButton = React.forwardRef<HTMLButtonElement, EditModeButtonProps>(function EditModeButton(props, ref) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const internalRef = useMergedRef<HTMLButtonElement>(ref);\n const meta = table.options.meta as TableMeta<any>;\n const { isEditing } = meta.editMode;\n\n const showWarning = React.useCallback(\n event => {\n if (isEditing) {\n event.returnValue = true;\n return true;\n }\n\n return false;\n },\n [isEditing]\n );\n\n useGlobalKeyboardShortcut((event: KeyboardEvent) => {\n if (event.key === 'e' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n internalRef.current?.click();\n }\n });\n\n React.useEffect(() => {\n window.addEventListener('beforeunload', showWarning);\n\n return () => {\n window.removeEventListener('beforeunload', showWarning);\n };\n }, [showWarning]);\n\n const handleClick = () => {\n meta.editMode.toggleEditing();\n tableRef.current?.focus();\n scrollToIndex(meta.activeRowIndex + 1);\n };\n\n const hasVisibleEditableColumns = React.useMemo(() => {\n const hasColumns = table.getVisibleFlatColumns().some(column => column.columnDef.meta?.control !== undefined);\n\n if (!hasColumns && isEditing) {\n handleClick();\n }\n\n return hasColumns;\n }, [table.getState().columnVisibility]);\n\n return (\n <Button\n onClick={handleClick}\n className={cn({\n '!wcag-blue-100': meta.editMode.isEditing,\n })}\n disabled={!hasVisibleEditableColumns}\n ref={internalRef}\n tooltip={\n hasVisibleEditableColumns ? (\n <>\n {texts.table2.editing.tooltip}\n <Shortcut className=\"ml-2\" keys={['Ctrl', 'E']} />\n </>\n ) : (\n texts.table2.editing.tooltipDisabled\n )\n }>\n <Icon name=\"edit\" />\n {texts.table2.editing.button}\n </Button>\n );\n});\n"],"names":["EditModeButton","React","forwardRef","props","ref","scrollToIndex","table","tableRef","texts","useLocalization","internalRef","useMergedRef","meta","options","isEditing","editMode","showWarning","useCallback","event","returnValue","useGlobalKeyboardShortcut","key","ctrlKey","metaKey","preventDefault","current","click","useEffect","window","addEventListener","removeEventListener","handleClick","toggleEditing","focus","activeRowIndex","hasVisibleEditableColumns","useMemo","hasColumns","getVisibleFlatColumns","some","column","columnDef","control","undefined","getState","columnVisibility","Button","onClick","className","cn","disabled","tooltip","table2","editing","Shortcut","keys","tooltipDisabled","Icon","name","button"],"mappings":";;;;;;;;;MAgBaA,cAAc,gBAAGC,cAAK,CAACC,UAAU,CAAyC,SAASF,cAAc,CAACG,KAAK,EAAEC,GAAG;EACrH,MAAM;IAAEC,aAAa;IAAEC,KAAK;IAAEC;GAAU,GAAGJ,KAAK;EAChD,MAAM;IAAEK;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,WAAW,GAAGC,YAAY,CAAoBP,GAAG,CAAC;EACxD,MAAMQ,IAAI,GAAGN,KAAK,CAACO,OAAO,CAACD,IAAsB;EACjD,MAAM;IAAEE;GAAW,GAAGF,IAAI,CAACG,QAAQ;EAEnC,MAAMC,WAAW,GAAGf,cAAK,CAACgB,WAAW,CACjCC,KAAK;IACD,IAAIJ,SAAS,EAAE;MACXI,KAAK,CAACC,WAAW,GAAG,IAAI;MACxB,OAAO,IAAI;;IAGf,OAAO,KAAK;GACf,EACD,CAACL,SAAS,CAAC,CACd;EAEDM,yBAAyB,CAAEF,KAAoB;IAC3C,IAAIA,KAAK,CAACG,GAAG,KAAK,GAAG,KAAKH,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACK,OAAO,CAAC,EAAE;MAAA;MACvDL,KAAK,CAACM,cAAc,EAAE;MACtB,wBAAAd,WAAW,CAACe,OAAO,yDAAnB,qBAAqBC,KAAK,EAAE;;GAEnC,CAAC;EAEFzB,cAAK,CAAC0B,SAAS,CAAC;IACZC,MAAM,CAACC,gBAAgB,CAAC,cAAc,EAAEb,WAAW,CAAC;IAEpD,OAAO;MACHY,MAAM,CAACE,mBAAmB,CAAC,cAAc,EAAEd,WAAW,CAAC;KAC1D;GACJ,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMe,WAAW,GAAG;;IAChBnB,IAAI,CAACG,QAAQ,CAACiB,aAAa,EAAE;IAC7B,qBAAAzB,QAAQ,CAACkB,OAAO,sDAAhB,kBAAkBQ,KAAK,EAAE;IACzB5B,aAAa,CAACO,IAAI,CAACsB,cAAc,GAAG,CAAC,CAAC;GACzC;EAED,MAAMC,yBAAyB,GAAGlC,cAAK,CAACmC,OAAO,CAAC;IAC5C,MAAMC,UAAU,GAAG/B,KAAK,CAACgC,qBAAqB,EAAE,CAACC,IAAI,CAACC,MAAM;MAAA;MAAA,OAAI,0BAAAA,MAAM,CAACC,SAAS,CAAC7B,IAAI,0DAArB,sBAAuB8B,OAAO,MAAKC,SAAS;MAAC;IAE7G,IAAI,CAACN,UAAU,IAAIvB,SAAS,EAAE;MAC1BiB,WAAW,EAAE;;IAGjB,OAAOM,UAAU;GACpB,EAAE,CAAC/B,KAAK,CAACsC,QAAQ,EAAE,CAACC,gBAAgB,CAAC,CAAC;EAEvC,oBACI5C,6BAAC6C,MAAM;IACHC,OAAO,EAAEhB,WAAW;IACpBiB,SAAS,EAAEC,EAAE,CAAC;MACV,gBAAgB,EAAErC,IAAI,CAACG,QAAQ,CAACD;KACnC,CAAC;IACFoC,QAAQ,EAAE,CAACf,yBAAyB;IACpC/B,GAAG,EAAEM,WAAW;IAChByC,OAAO,EACHhB,yBAAyB,gBACrBlC,4DACKO,KAAK,CAAC4C,MAAM,CAACC,OAAO,CAACF,OAAO,eAC7BlD,6BAACqD,QAAQ;MAACN,SAAS,EAAC,MAAM;MAACO,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG;MAAK,CACnD,GAEH/C,KAAK,CAAC4C,MAAM,CAACC,OAAO,CAACG;kBAG7BvD,6BAACwD,IAAI;IAACC,IAAI,EAAC;IAAS,EACnBlD,KAAK,CAAC4C,MAAM,CAACC,OAAO,CAACM,MAAM,CACvB;AAEjB,CAAC;;;;"}