@economic/taco 1.35.3 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (22) hide show
  1. package/dist/components/Provider/Localization.d.ts +4 -0
  2. package/dist/components/Table2/Table2.d.ts +4 -0
  3. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +3 -2
  4. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  5. package/dist/esm/packages/taco/src/components/Provider/Localization.js +5 -1
  6. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  7. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +2 -1
  8. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Table2/Table2.js +1 -1
  10. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  11. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +4 -4
  12. package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +1 -1
  13. package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js +1 -1
  14. package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +17 -24
  16. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
  17. package/dist/taco.cjs.development.js +32 -34
  18. package/dist/taco.cjs.development.js.map +1 -1
  19. package/dist/taco.cjs.production.min.js +1 -1
  20. package/dist/taco.cjs.production.min.js.map +1 -1
  21. package/package.json +2 -2
  22. package/types.json +20 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../../../../../src/components/Table2/components/column/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, Header as RTHeader, TableMeta, Table as RTTable } from '@tanstack/react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { isInternalColumn, isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns';\nimport { isOverflowing } from '../../../../utils/dom';\nimport { getCellAlignmentClasses, getCellSizingClasses } from '../../utilities/cell';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { Table2ColumnHeaderMenu } from '../../types';\nimport { useLocalization } from '../../../Provider/Localization';\n\ntype HeaderProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n header: RTHeader<TType, unknown>;\n index: number;\n isLastColumn: boolean;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Header = function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, index, isLastColumn, table, tableRef, ...columnProps } = props;\n const textRef = React.useRef<HTMLDivElement>(null);\n const frozen = !!header.column.getIsPinned();\n const isOtherColumnBeingResized =\n table.getState().columnSizingInfo.isResizingColumn && table.getState().columnSizingInfo.isResizingColumn !== header.id;\n\n const { enableColumnFreezing } = table.options.meta as TableMeta<TType>;\n\n const className = cn(\n 'group/header sticky top-0 bg-white border-b-2 relative font-bold z-[5] hover:z-[6]',\n {\n 'z-[6]': header.column.getIsResizing(),\n 'z-[7]': frozen, // frozen headers should show above cells and other headers, so we assign a higher z-index\n 'cursor-pointer select-none': header.column.getCanSort(),\n 'hover:bg-grey-100': header.column.getCanSort() || header.column.getCanResize() || header.column.columnDef.meta?.menu,\n 'pointer-events-none': isOtherColumnBeingResized,\n },\n getCellSizingClasses('normal'),\n header.column.columnDef.meta?.headerClassName,\n props.className\n );\n\n // set the column size after the first render (after auto layout with 'max-content') has run\n // this way columns default to fit their content, then we save that size for resizing\n const refCallback = (node: HTMLDivElement) => {\n if (node && !table.getState().columnSizing[header.id]) {\n const size = Math.ceil(node.getBoundingClientRect().width);\n table.setColumnSizing(sizes => ({\n ...sizes,\n [header.id]: !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size,\n }));\n }\n };\n\n // we use mousedown because clicking and dragging resize and then letting go over the\n // column, results in sorting being applied\n const handleMouseDown = header.column.getCanSort()\n ? (event: React.MouseEvent) => {\n // only detect left clicks\n if (event.button === 0) {\n event.preventDefault();\n table.resetRowSelection();\n header.column.toggleSorting();\n tableRef.current?.focus();\n }\n }\n : undefined;\n\n const handleResizerDoubleClick = () => {\n const size = header.column.columnDef.meta?.defaultWidth;\n table.setColumnSizing(sizes => {\n const nextSizes = { ...sizes };\n\n if (size) {\n nextSizes[header.id] = !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size;\n } else {\n delete nextSizes[header.id];\n }\n\n return nextSizes;\n });\n };\n\n const handleResizerClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const handleResize = event => {\n // prevent the parent onMouseDown propagating\n event.stopPropagation();\n header.getResizeHandler()(event);\n };\n\n const content = (\n <div className=\"truncate\" ref={textRef}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n );\n\n const { texts } = useLocalization();\n\n return (\n <ColumnBase\n {...columnProps}\n // base props\n column={header.column}\n table={table}\n // other props\n aria-sort={\n {\n asc: 'ascending',\n desc: 'descending',\n }[header.column.getIsSorted() as any] ?? 'none'\n }\n className={className}\n onMouseDown={handleMouseDown}\n ref={refCallback}\n role=\"columnheader\"\n // helper props\n data-column-index={index}>\n {isInternalFrozenColumn(header.id) ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n <>\n <div\n className={cn(\n 'flex flex-grow overflow-hidden',\n {\n 'group-hover/header:-ml-2': !!header.column.getIsSorted() && !!header.column.columnDef.meta?.menu,\n },\n getCellAlignmentClasses(header.column.columnDef.meta?.align)\n )}>\n {isOverflowing(textRef.current) ? (\n <Tooltip title={header.column.columnDef.meta?.tooltip ?? content} placement=\"top\">\n {content}\n </Tooltip>\n ) : (\n content\n )}\n {{\n asc: <Icon name=\"chevron-up-solid\" className=\"pointer-events-none -my-0.5\" />,\n desc: <Icon name=\"chevron-down-solid\" className=\"pointer-events-none -my-0.5\" />,\n }[header.column.getIsSorted() as string] ?? null}\n </div>\n {!isInternalColumn(header.column.id) && (header.column.columnDef.meta?.menu || enableColumnFreezing) ? (\n <HeaderMenu\n menu={header.column.columnDef.meta?.menu}\n enableColumnFreezing={enableColumnFreezing}\n table={table}\n columnIndex={index}\n />\n ) : null}\n </>\n )}\n {header.column.getCanResize() ? (\n <Tooltip placement=\"top\" title={texts.table2.columns.resize.tooltip}>\n <div\n className={cn(\n 'invisible absolute right-0 top-0 flex h-full cursor-col-resize touch-none select-none rounded py-0.5 group-hover/header:visible',\n {\n '-mr-2.5 w-5 justify-center': !isLastColumn,\n 'w-2': isLastColumn,\n '!visible': header.column.getIsResizing(),\n }\n )}\n onDoubleClick={handleResizerDoubleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}\n // this prevents sort handlers being activated\n onClick={handleResizerClick}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': header.column.getIsResizing(),\n 'bg-grey-500 hover:bg-grey-700': !header.column.getIsResizing(),\n })}\n />\n </div>\n </Tooltip>\n ) : null}\n </ColumnBase>\n );\n};\n\ntype HeaderMenuProps = {\n enableColumnFreezing: boolean;\n menu?: Table2ColumnHeaderMenu;\n table: RTTable<any>;\n columnIndex: number;\n};\n\nconst HeaderMenu = ({ menu, enableColumnFreezing, table, columnIndex }: HeaderMenuProps) => {\n const [open, setOpen] = React.useState(false);\n const { texts } = useLocalization();\n const { frozenColumnsCount, setFrozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n const columns = table.getAllLeafColumns();\n const { columnVisibility, columnOrder } = table.getState();\n const visibleInternalColumnsCount = React.useMemo(\n () => columns.filter(column => isInternalFrozenColumn(column.id)).length,\n [columns]\n );\n const columnPosition = columnIndex + 1;\n const externalFrozenColumnsCount = columnPosition - visibleInternalColumnsCount;\n const isSomeExternalColumnFrozen = frozenColumnsCount !== 0;\n const freeAllColumns = () => {\n setFrozenColumnsCount(0);\n };\n const freezeColumns = () => {\n setFrozenColumnsCount(externalFrozenColumnsCount);\n };\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 hidden !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end group-hover/header:flex',\n {\n '!flex': open,\n }\n );\n const freezeMenuItems = [\n <Menu.Item icon=\"column-freeze\" onClick={freezeColumns} key=\"_freeze-columns_\">\n {texts.table2.columns.menu.freezeColumns(externalFrozenColumnsCount)}\n </Menu.Item>,\n ...(isSomeExternalColumnFrozen\n ? [\n <Menu.Item icon=\"column-unfreeze\" onClick={freeAllColumns} key=\"_unfreeze-columns_\">\n {texts.table2.columns.menu.unfreezeColumns}\n </Menu.Item>,\n ]\n : []),\n ];\n\n React.useEffect(() => {\n // Update column pinning/freezing whenever frozen columns count changes, or column order or visiblity changes\n const totalFrozenColumnsCount = visibleInternalColumnsCount + frozenColumnsCount;\n\n table.setColumnPinning({ left: columns.slice(0, totalFrozenColumnsCount).map(column => column.id), right: [] });\n }, [frozenColumnsCount, columnVisibility, columnOrder, visibleInternalColumnsCount]);\n\n const menuProps = {\n trigger: <IconButton className={className} icon=\"more\" />,\n open: open,\n onChange: setOpen,\n };\n let menuComponent: JSX.Element | null = null;\n\n if (menu) {\n menuComponent = menu(menuProps);\n\n if (enableColumnFreezing) {\n const menuContent = React.Children.only(menuComponent.props.children);\n const menuContentChildren = React.Children.toArray(menuContent.props.children);\n const menuItemsWithFreezingItems = [...menuContentChildren, <Menu.Separator />, ...freezeMenuItems];\n const menuContentWithFreezingItems = (\n <Menu.Content>\n {menuItemsWithFreezingItems.map((item, key) => React.cloneElement(item as any, { key }))}\n </Menu.Content>\n );\n\n menuComponent = React.cloneElement(menuComponent, { children: menuContentWithFreezingItems });\n }\n } else if (enableColumnFreezing) {\n menuComponent = (\n <Menu {...menuProps}>\n <Menu.Content>{freezeMenuItems}</Menu.Content>\n </Menu>\n );\n }\n\n // This div catches the mousedown events from menu item and menu trigger and prevents\n // mousedown event from bubbling up to the Header component to prevent toggling sorting\n return menuComponent ? <div onMouseDown={event => event.stopPropagation()}>{menuComponent}</div> : null;\n};\n"],"names":["Header","props","header","index","isLastColumn","table","tableRef","columnProps","textRef","React","useRef","frozen","column","getIsPinned","isOtherColumnBeingResized","getState","columnSizingInfo","isResizingColumn","id","enableColumnFreezing","options","meta","className","cn","getIsResizing","getCanSort","getCanResize","columnDef","menu","getCellSizingClasses","headerClassName","refCallback","node","columnSizing","size","Math","ceil","getBoundingClientRect","width","setColumnSizing","sizes","isInternalFrozenColumn","MIN_COLUMN_SIZE","handleMouseDown","event","button","preventDefault","resetRowSelection","toggleSorting","current","focus","undefined","handleResizerDoubleClick","defaultWidth","nextSizes","handleResizerClick","stopPropagation","handleResize","getResizeHandler","content","ref","flexRender","getContext","texts","useLocalization","ColumnBase","asc","desc","getIsSorted","onMouseDown","role","getCellAlignmentClasses","align","isOverflowing","Tooltip","title","tooltip","placement","Icon","name","isInternalColumn","HeaderMenu","columnIndex","table2","columns","resize","onDoubleClick","onTouchStart","onClick","open","setOpen","useState","frozenColumnsCount","setFrozenColumnsCount","getAllLeafColumns","columnVisibility","columnOrder","visibleInternalColumnsCount","useMemo","filter","length","columnPosition","externalFrozenColumnsCount","isSomeExternalColumnFrozen","freeAllColumns","freezeColumns","freezeMenuItems","Menu","Item","icon","key","unfreezeColumns","useEffect","totalFrozenColumnsCount","setColumnPinning","left","slice","map","right","menuProps","trigger","IconButton","onChange","menuComponent","menuContent","Children","only","children","menuContentChildren","toArray","menuItemsWithFreezingItems","Separator","menuContentWithFreezingItems","Content","item","cloneElement"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../../../../../src/components/Table2/components/column/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, Header as RTHeader, TableMeta, Table as RTTable } from '@tanstack/react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { isInternalColumn, isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns';\nimport { isOverflowing } from '../../../../utils/dom';\nimport { getCellAlignmentClasses, getCellSizingClasses } from '../../utilities/cell';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { Table2ColumnHeaderMenu } from '../../types';\nimport { useLocalization } from '../../../Provider/Localization';\n\ntype HeaderProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n header: RTHeader<TType, unknown>;\n index: number;\n isLastColumn: boolean;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Header = function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, index, isLastColumn, table, tableRef, ...columnProps } = props;\n const textRef = React.useRef<HTMLDivElement>(null);\n const frozen = !!header.column.getIsPinned();\n const isOtherColumnBeingResized =\n table.getState().columnSizingInfo.isResizingColumn && table.getState().columnSizingInfo.isResizingColumn !== header.id;\n\n const { enableColumnFreezing } = table.options.meta as TableMeta<TType>;\n\n const className = cn(\n 'group/header sticky top-0 bg-white border-b-2 relative font-bold z-[5] hover:z-[6]',\n {\n 'z-[6]': header.column.getIsResizing(),\n 'z-[7]': frozen, // frozen headers should show above cells and other headers, so we assign a higher z-index\n 'cursor-pointer select-none': header.column.getCanSort(),\n 'hover:bg-grey-100': header.column.getCanSort() || header.column.getCanResize() || header.column.columnDef.meta?.menu,\n 'pointer-events-none': isOtherColumnBeingResized,\n },\n getCellSizingClasses('normal'),\n header.column.columnDef.meta?.headerClassName,\n props.className\n );\n\n // set the column size after the first render (after auto layout with 'max-content') has run\n // this way columns default to fit their content, then we save that size for resizing\n const refCallback = (node: HTMLDivElement) => {\n if (node && !table.getState().columnSizing[header.id]) {\n const size = Math.ceil(node.getBoundingClientRect().width);\n table.setColumnSizing(sizes => ({\n ...sizes,\n [header.id]: !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size,\n }));\n }\n };\n\n // we use mousedown because clicking and dragging resize and then letting go over the\n // column, results in sorting being applied\n const handleMouseDown = header.column.getCanSort()\n ? (event: React.MouseEvent) => {\n // only detect left clicks\n if (event.button === 0) {\n event.preventDefault();\n table.resetRowSelection();\n header.column.toggleSorting();\n tableRef.current?.focus();\n }\n }\n : undefined;\n\n const handleResizerDoubleClick = () => {\n const size = header.column.columnDef.meta?.defaultWidth;\n table.setColumnSizing(sizes => {\n const nextSizes = { ...sizes };\n\n if (size) {\n nextSizes[header.id] = !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size;\n } else {\n delete nextSizes[header.id];\n }\n\n return nextSizes;\n });\n };\n\n const handleResizerClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const handleResize = event => {\n // prevent the parent onMouseDown propagating\n event.stopPropagation();\n header.getResizeHandler()(event);\n };\n\n const content = (\n <div className=\"truncate\" ref={textRef}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n );\n\n const { texts } = useLocalization();\n\n return (\n <ColumnBase\n {...columnProps}\n // base props\n column={header.column}\n table={table}\n // other props\n aria-sort={\n {\n asc: 'ascending',\n desc: 'descending',\n }[header.column.getIsSorted() as any] ?? 'none'\n }\n className={className}\n onMouseDown={handleMouseDown}\n ref={refCallback}\n role=\"columnheader\"\n // helper props\n data-column-index={index}>\n {isInternalFrozenColumn(header.id) ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n <>\n <div\n className={cn(\n 'flex flex-grow overflow-hidden',\n {\n 'group-hover/header:-ml-2': !!header.column.getIsSorted() && !!header.column.columnDef.meta?.menu,\n },\n getCellAlignmentClasses(header.column.columnDef.meta?.align)\n )}>\n {isOverflowing(textRef.current) ? (\n <Tooltip title={header.column.columnDef.meta?.tooltip ?? content} placement=\"top\">\n {content}\n </Tooltip>\n ) : (\n content\n )}\n {{\n asc: <Icon name=\"chevron-up-solid\" className=\"pointer-events-none -my-0.5\" />,\n desc: <Icon name=\"chevron-down-solid\" className=\"pointer-events-none -my-0.5\" />,\n }[header.column.getIsSorted() as string] ?? null}\n </div>\n {!isInternalColumn(header.column.id) && (header.column.columnDef.meta?.menu || enableColumnFreezing) ? (\n <HeaderMenu\n menu={header.column.columnDef.meta?.menu}\n enableColumnFreezing={enableColumnFreezing}\n table={table}\n columnIndex={index}\n />\n ) : null}\n </>\n )}\n {header.column.getCanResize() ? (\n <Tooltip placement=\"top\" title={texts.table2.columns.resize.tooltip}>\n <div\n className={cn(\n 'invisible absolute right-0 top-0 flex h-full cursor-col-resize touch-none select-none rounded py-0.5 group-hover/header:visible',\n {\n '-mr-2.5 w-5 justify-center': !isLastColumn,\n 'w-2': isLastColumn,\n '!visible': header.column.getIsResizing(),\n }\n )}\n onDoubleClick={handleResizerDoubleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}\n // this prevents sort handlers being activated\n onClick={handleResizerClick}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': header.column.getIsResizing(),\n 'bg-grey-500 hover:bg-grey-700': !header.column.getIsResizing(),\n })}\n />\n </div>\n </Tooltip>\n ) : null}\n </ColumnBase>\n );\n};\n\ntype HeaderMenuProps = {\n enableColumnFreezing: boolean;\n menu?: Table2ColumnHeaderMenu;\n table: RTTable<any>;\n columnIndex: number;\n};\n\nconst HeaderMenu = ({ menu, enableColumnFreezing, table, columnIndex }: HeaderMenuProps) => {\n const [open, setOpen] = React.useState(false);\n const { texts } = useLocalization();\n const { frozenColumnsCount, setFrozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n const columns = table.getVisibleLeafColumns();\n const { columnVisibility, columnOrder } = table.getState();\n const visibleInternalColumnsCount = React.useMemo(\n () => columns.filter(column => isInternalFrozenColumn(column.id)).length,\n [columns]\n );\n const columnPosition = columnIndex + 1;\n const externalFrozenColumnsCount = columnPosition - visibleInternalColumnsCount;\n const isSomeExternalColumnFrozen = frozenColumnsCount !== 0;\n const freeAllColumns = () => {\n setFrozenColumnsCount(0);\n };\n const freezeColumns = () => {\n setFrozenColumnsCount(externalFrozenColumnsCount);\n };\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 hidden !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end group-hover/header:flex',\n {\n '!flex': open,\n }\n );\n const freezeMenuItems = [\n <Menu.Item icon=\"column-freeze\" onClick={freezeColumns} key=\"_freeze-columns_\">\n {texts.table2.columns.menu.freezeColumns(externalFrozenColumnsCount)}\n </Menu.Item>,\n ...(isSomeExternalColumnFrozen\n ? [\n <Menu.Item icon=\"column-unfreeze\" onClick={freeAllColumns} key=\"_unfreeze-columns_\">\n {texts.table2.columns.menu.unfreezeColumns}\n </Menu.Item>,\n ]\n : []),\n ];\n\n React.useEffect(() => {\n // Update column pinning/freezing whenever frozen columns count changes, or column order or visiblity changes\n const totalFrozenColumnsCount = visibleInternalColumnsCount + frozenColumnsCount;\n\n table.setColumnPinning({ left: columns.slice(0, totalFrozenColumnsCount).map(column => column.id), right: [] });\n }, [frozenColumnsCount, columnVisibility, columnOrder, visibleInternalColumnsCount]);\n\n const menuProps = {\n trigger: <IconButton className={className} icon=\"more\" />,\n open: open,\n onChange: setOpen,\n };\n let menuComponent: JSX.Element | null = null;\n\n if (menu) {\n menuComponent = menu(menuProps);\n\n if (enableColumnFreezing) {\n const menuContent = React.Children.only(menuComponent.props.children);\n const menuContentChildren = React.Children.toArray(menuContent.props.children);\n const menuItemsWithFreezingItems = [...menuContentChildren, <Menu.Separator />, ...freezeMenuItems];\n const menuContentWithFreezingItems = (\n <Menu.Content>\n {menuItemsWithFreezingItems.map((item, key) => React.cloneElement(item as any, { key }))}\n </Menu.Content>\n );\n\n menuComponent = React.cloneElement(menuComponent, { children: menuContentWithFreezingItems });\n }\n } else if (enableColumnFreezing) {\n menuComponent = (\n <Menu {...menuProps}>\n <Menu.Content>{freezeMenuItems}</Menu.Content>\n </Menu>\n );\n }\n\n // This div catches the mousedown events from menu item and menu trigger and prevents\n // mousedown event from bubbling up to the Header component to prevent toggling sorting\n return menuComponent ? <div onMouseDown={event => event.stopPropagation()}>{menuComponent}</div> : null;\n};\n"],"names":["Header","props","header","index","isLastColumn","table","tableRef","columnProps","textRef","React","useRef","frozen","column","getIsPinned","isOtherColumnBeingResized","getState","columnSizingInfo","isResizingColumn","id","enableColumnFreezing","options","meta","className","cn","getIsResizing","getCanSort","getCanResize","columnDef","menu","getCellSizingClasses","headerClassName","refCallback","node","columnSizing","size","Math","ceil","getBoundingClientRect","width","setColumnSizing","sizes","isInternalFrozenColumn","MIN_COLUMN_SIZE","handleMouseDown","event","button","preventDefault","resetRowSelection","toggleSorting","current","focus","undefined","handleResizerDoubleClick","defaultWidth","nextSizes","handleResizerClick","stopPropagation","handleResize","getResizeHandler","content","ref","flexRender","getContext","texts","useLocalization","ColumnBase","asc","desc","getIsSorted","onMouseDown","role","getCellAlignmentClasses","align","isOverflowing","Tooltip","title","tooltip","placement","Icon","name","isInternalColumn","HeaderMenu","columnIndex","table2","columns","resize","onDoubleClick","onTouchStart","onClick","open","setOpen","useState","frozenColumnsCount","setFrozenColumnsCount","getVisibleLeafColumns","columnVisibility","columnOrder","visibleInternalColumnsCount","useMemo","filter","length","columnPosition","externalFrozenColumnsCount","isSomeExternalColumnFrozen","freeAllColumns","freezeColumns","freezeMenuItems","Menu","Item","icon","key","unfreezeColumns","useEffect","totalFrozenColumnsCount","setColumnPinning","left","slice","map","right","menuProps","trigger","IconButton","onChange","menuComponent","menuContent","Children","only","children","menuContentChildren","toArray","menuItemsWithFreezingItems","Separator","menuContentWithFreezingItems","Content","item","cloneElement"],"mappings":"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"}
@@ -98,7 +98,7 @@ const SelectCell = /*#__PURE__*/React__default.memo(({
98
98
  (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.focus();
99
99
  };
100
100
  return /*#__PURE__*/React__default.createElement(Tooltip, {
101
- title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect, /*#__PURE__*/React__default.createElement(Shortcut, {
101
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isSelected ? texts.table2.columns.select.deselect : texts.table2.columns.select.select, /*#__PURE__*/React__default.createElement(Shortcut, {
102
102
  className: "ml-2",
103
103
  keys: "Space"
104
104
  }))
@@ -355,31 +355,24 @@ function ensureOrdering(columns, settingsOrder) {
355
355
  // columns with ordering disabled should be moved to the front
356
356
  const orderingDisabled = [];
357
357
  const orderingEnabled = [];
358
+ let orderedColumns = columns;
359
+ // if settings is defined, make sure the columns that are actual children are sorted by it
358
360
  if (Array.isArray(settingsOrder)) {
359
- settingsOrder.forEach(id => {
360
- var _columns$find, _columns$find$meta;
361
- if (id.startsWith('__')) {
362
- return;
363
- }
364
- if ((_columns$find = columns.find(column => column.id === id)) !== null && _columns$find !== void 0 && (_columns$find$meta = _columns$find.meta) !== null && _columns$find$meta !== void 0 && _columns$find$meta.disableReordering) {
365
- orderingDisabled.unshift(id);
366
- } else {
367
- orderingEnabled.push(id);
368
- }
369
- });
370
- } else {
371
- columns.forEach(column => {
372
- var _column$id2, _column$meta;
373
- if ((_column$id2 = column.id) !== null && _column$id2 !== void 0 && _column$id2.startsWith('__')) {
374
- return;
375
- }
376
- if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.disableReordering) {
377
- orderingDisabled.push(column.id);
378
- } else {
379
- orderingEnabled.push(column.id);
380
- }
381
- });
361
+ orderedColumns = columns.slice().sort(
362
+ // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end
363
+ (a, b) => (settingsOrder.indexOf(a.id) >>> 0) - (settingsOrder.indexOf(b.id) >>> 0));
382
364
  }
365
+ orderedColumns.forEach(column => {
366
+ var _column$id2, _column$meta;
367
+ if ((_column$id2 = column.id) !== null && _column$id2 !== void 0 && _column$id2.startsWith('__')) {
368
+ return;
369
+ }
370
+ if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.disableReordering) {
371
+ orderingDisabled.push(column.id);
372
+ } else {
373
+ orderingEnabled.push(column.id);
374
+ }
375
+ });
383
376
  const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];
384
377
  // actions should always be last, enforce that
385
378
  if (columns.findIndex(column => column.id === COLUMN_ID_FOR_ACTIONS) > -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table2/utilities/columns.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { CellContext, ColumnDef, DisplayColumnDef, Row, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { RowDragHandler, RowExpansionRenderer } from '../types';\nimport { Menu } from '../../Menu/Menu';\nimport { Icon } from '../../Icon/Icon';\nimport { LocalizationTexts } from '../../Provider/Localization';\nimport { useRowContext } from '../components/row/Context';\n\nexport const COLUMN_ID_FOR_DRAGGABLE = '__draggable';\nexport const COLUMN_ID_FOR_SELECTION = '__select';\nexport const COLUMN_ID_FOR_EXPANSION = '__expansion';\nexport const COLUMN_ID_FOR_ACTIONS = '__actions';\n\nexport const isInternalFrozenColumn = (id: string) => isInternalColumn(id) && id !== COLUMN_ID_FOR_ACTIONS;\n\nexport const isInternalColumn = (id: string) =>\n id === COLUMN_ID_FOR_SELECTION ||\n id === COLUMN_ID_FOR_EXPANSION ||\n id === COLUMN_ID_FOR_ACTIONS ||\n id === COLUMN_ID_FOR_DRAGGABLE;\n\nexport const MIN_COLUMN_SIZE = 80; // accounts for padding and sort controls\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nexport function createRowDraggableColumn<TType = any>(\n onRowDrag: RowDragHandler<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_DRAGGABLE,\n cell: ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n const onDragStart = (event: React.DragEvent): void => {\n const rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n\n meta.setDragging(rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {}));\n\n const data = rows.map(row => row.original);\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'wcag-blue rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.appendChild(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n onRowDrag(data, showPlaceholder, setDataTransfer);\n };\n\n const onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n meta.setDragging({});\n };\n\n return (\n <div draggable onDragStart={onDragStart} onDragEnd={onDragEnd}>\n <Icon\n aria-label={texts.table2.columns.drag.tooltip}\n name=\"drag\"\n className=\"text-grey-darkest invisible w-[20px] cursor-grab active:cursor-grabbing group-hover/row:visible group-[[aria-grabbed]]/row:text-white\"\n />\n </div>\n );\n },\n meta: {\n align: 'center',\n className: 'items-center !px-0',\n headerClassName: 'items-center !px-0',\n },\n // sizing\n enableResizing: false,\n size: 10,\n };\n}\n\nconst SelectCell = React.memo(({ lastSelectedRowIndex, rowIndex, isSelected, table, tableRef, texts, toggleSelected }: any) => {\n const meta = table.options.meta as TableMeta<any>;\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedRowIndex?.current || 0, rowIndex);\n\n table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n toggleSelected();\n }\n\n lastSelectedRowIndex.current = rowIndex;\n meta.setActiveRowIndex(rowIndex);\n tableRef.current?.focus();\n };\n\n return (\n <Tooltip\n title={\n <>\n {isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n className=\"hover:border-blue !mt-0\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\nexport function createRowSelectionColumn<TType = any>(\n enableMultipleRowSelection: boolean,\n lastSelectedRowIndex: React.MutableRefObject<number | undefined>,\n onRowDrag: RowDragHandler<TType> | undefined,\n tableRef: React.RefObject<HTMLDivElement>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n let header;\n let cell;\n\n if (enableMultipleRowSelection) {\n header = ({ table }) => (\n <Tooltip\n title={\n <>\n {table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll}\n <Shortcut className=\"ml-2\" keys={{ key: 'a', meta: true }} />\n </>\n }>\n <Checkbox\n aria-label={\n table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll\n }\n className=\"hover:border-blue !mt-0\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={checked => table.toggleAllPageRowsSelected(checked)}\n onClick={() => {\n tableRef.current?.focus();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n cell = ({ row, table }) => (\n <SelectCell\n lastSelectedRowIndex={lastSelectedRowIndex}\n rowIndex={row.index}\n isSelected={row.getIsSelected()}\n table={table}\n tableRef={tableRef}\n texts={texts}\n toggleSelected={row.toggleSelected}\n />\n );\n } else {\n cell = ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const className =\n 'border-grey-300 focus:yt-focus flex h-5 w-5 mt-[0.45rem] flex-shrink-0 items-center justify-center self-start rounded-full border-2 bg-white hover:border-[5px] aria-checked:border-blue-500 aria-checked:bg-blue-500 hover:aria-checked:border-blue-300';\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n row.toggleSelected();\n meta.setActiveRowIndex(row.index);\n tableRef.current?.focus();\n };\n\n return (\n <button\n className={className}\n aria-checked={row.getIsSelected()}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {row.getIsSelected() ? <span className=\"h-2.5 w-2.5 rounded-full bg-white\" /> : null}\n </button>\n );\n };\n }\n\n return {\n id: COLUMN_ID_FOR_SELECTION,\n header,\n cell,\n meta: {\n align: 'center',\n className: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nconst ExpandCell = React.memo(({ expandedRowRenderer, isExpanded, row, texts }: any) => {\n const hasExpandedRow = expandedRowRenderer(row.original);\n\n if (!hasExpandedRow) {\n return null;\n }\n\n return (\n <Tooltip\n title={\n <>\n {isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n <Shortcut className=\"ml-2\" keys={{ key: isExpanded ? 'ArrowLeft' : 'ArrowRight', meta: true }} />\n </>\n }>\n <IconButton\n title={isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n appearance=\"discrete\"\n icon={isExpanded ? 'chevron-down' : 'chevron-right'}\n onClick={event => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\n\nexport function createRowExpansionColumn<TType = any>(\n expandedRowRenderer: RowExpansionRenderer<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_EXPANSION,\n header: ({ table }) => (\n <Tooltip\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }>\n <IconButton\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }\n appearance=\"discrete\"\n className=\"-mb-2 -mt-1.5\"\n icon={table.getIsSomeRowsExpanded() ? 'chevron-down-double' : 'chevron-right-double'}\n onClick={event => {\n event.stopPropagation();\n table.toggleAllRowsExpanded(table.getIsSomeRowsExpanded() ? false : true);\n }}\n tabIndex={-1}\n />\n </Tooltip>\n ),\n cell: ({ row }: CellContext<TType, any>) => (\n // ExpandCell is memoised and that's why calling row.getIsExpanded() inside it doesn't return the correct\n // expand state. This is the reason why isExpanded is pulled out of the ExpandCell component.\n <ExpandCell expandedRowRenderer={expandedRowRenderer} isExpanded={row.getIsExpanded()} row={row} texts={texts} />\n ),\n\n meta: {\n align: 'center',\n className: 'items-center !p-0',\n headerClassName: 'items-center hover:!bg-white !p-0',\n },\n // sizing\n enableResizing: false,\n size: 36,\n };\n}\n\nconst RowActionsCell = React.memo(({ row, actions, actionsLength, isEditing, shouldPauseHoverState, table, texts }: any) => {\n const { isActive, isHovered } = useRowContext();\n\n if ((!isActive && (!isHovered || shouldPauseHoverState)) || isEditing) {\n return null;\n }\n\n const visibleActions = actions.map(action => action(row.original)).filter(action => !!action);\n\n const actionsOnRow = visibleActions.length === actionsLength ? visibleActions : visibleActions.slice(0, actionsLength - 1);\n const actionsInMenu = visibleActions.slice(visibleActions.length === actionsLength ? actionsLength : actionsLength - 1);\n\n // If the row is not the active row or the hovered row then actions are hidden.\n const actionClassName = 'group-hover/row:flex group-[[aria-current]]/row:flex hidden';\n\n // only actions in the active row should be tabbable\n const tabIndex = table.options.meta.activeRowIndex === row.index ? 0 : -1;\n\n return (\n <span className=\"-mb-2 -mt-2 flex justify-end text-right\">\n {actionsOnRow.map((button, index) =>\n React.cloneElement(button, {\n appearance: 'discrete',\n className: cn(actionClassName, button.props.className),\n key: index,\n tabIndex,\n tooltip: button.props.shortcut ? (\n <>\n {button.props.tooltip ?? button.props['aria-label']}\n <Shortcut className=\"ml-2\" keys={button.props.shortcut} />\n </>\n ) : (\n button.props.tooltip ?? button.props['aria-label']\n ),\n })\n )}\n {actionsInMenu.length ? (\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.table2.columns.actions.tooltip}\n icon=\"more\"\n tabIndex={tabIndex}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {actionsInMenu.map((action, i) => (\n <Menu.Item key={i} {...action.props} shortcut={action.props.shortcut}>\n {action.props['aria-label']}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n )}\n tooltip={texts.table2.columns.actions.tooltip}\n />\n ) : null}\n </span>\n );\n});\n\nexport function createRowActionsColumn<TType = any>(\n rowActions,\n rowActionsLength,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_ACTIONS,\n cell: ({ row, table }) => (\n <RowActionsCell\n row={row}\n actions={rowActions}\n actionsLength={rowActionsLength}\n texts={texts}\n table={table}\n isEditing={!!table.options.meta?.editMode.isEditing}\n shouldPauseHoverState={!!table.options.meta?.shouldPauseHoverState}\n />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>, table: any) =>\n // Adding z-index so that it shows on top of frozen columns\n cn('items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 !px-1 z-[1]', {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),\n 'group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]':\n !row.getIsSelected() &&\n (!table.options.meta?.shouldPauseHoverState || table.options.meta.editMode.isEditing),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }),\n headerClassName: 'hover:!bg-white !px-1',\n },\n // sizing\n enableResizing: false,\n };\n}\n\nexport function ensureOrdering<TType = unknown>(columns: ColumnDef<TType>[], settingsOrder: string[] | undefined): string[] {\n // internal column come with a defined order\n const internalColumns = columns\n .filter(column => column.id?.startsWith('__') && column.id !== COLUMN_ID_FOR_ACTIONS)\n .map(column => column.id) as string[];\n\n // columns with ordering disabled should be moved to the front\n const orderingDisabled: string[] = [];\n const orderingEnabled: string[] = [];\n\n if (Array.isArray(settingsOrder)) {\n settingsOrder.forEach(id => {\n if (id.startsWith('__')) {\n return;\n }\n\n if (columns.find(column => column.id === id)?.meta?.disableReordering) {\n orderingDisabled.unshift(id);\n } else {\n orderingEnabled.push(id);\n }\n });\n } else {\n columns.forEach(column => {\n if (column.id?.startsWith('__')) {\n return;\n }\n\n if (column.meta?.disableReordering) {\n orderingDisabled.push(column.id as string);\n } else {\n orderingEnabled.push(column.id as string);\n }\n });\n }\n\n const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];\n\n // actions should always be last, enforce that\n if (columns.findIndex(column => column.id === COLUMN_ID_FOR_ACTIONS) > -1) {\n order.push(COLUMN_ID_FOR_ACTIONS);\n }\n\n return order;\n}\n"],"names":["COLUMN_ID_FOR_DRAGGABLE","COLUMN_ID_FOR_SELECTION","COLUMN_ID_FOR_EXPANSION","COLUMN_ID_FOR_ACTIONS","isInternalFrozenColumn","id","isInternalColumn","MIN_COLUMN_SIZE","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","createRowDraggableColumn","onRowDrag","texts","cell","row","table","meta","options","GHOST_ELEMENT_ID","onDragStart","event","rows","getIsSelected","getSelectedRowModel","setDragging","reduce","dragging","rowBeingDragged","data","map","original","dataTransfer","setData","JSON","stringify","showPlaceholder","text","ghost","document","createElement","className","innerText","body","appendChild","setDragImage","setDataTransfer","onDragEnd","getElementById","remove","React","draggable","Icon","table2","columns","drag","tooltip","name","align","headerClassName","enableResizing","size","SelectCell","memo","lastSelectedRowIndex","rowIndex","isSelected","tableRef","toggleSelected","handleClick","stopPropagation","shiftKey","current","getRowModel","slice","forEach","setActiveRowIndex","focus","Tooltip","title","select","deselect","Shortcut","keys","Checkbox","checked","onClick","onChange","tabIndex","createRowSelectionColumn","enableMultipleRowSelection","header","getIsAllPageRowsSelected","deselectAll","selectAll","key","indeterminate","getIsSomePageRowsSelected","toggleAllPageRowsSelected","index","role","type","ExpandCell","expandedRowRenderer","isExpanded","hasExpandedRow","expansion","collapse","expand","IconButton","appearance","icon","toggleExpanded","createRowExpansionColumn","getIsSomeRowsExpanded","collapseAll","expandAll","toggleAllRowsExpanded","getIsExpanded","RowActionsCell","actions","actionsLength","isEditing","shouldPauseHoverState","isActive","isHovered","useRowContext","visibleActions","action","filter","actionsOnRow","length","actionsInMenu","actionClassName","activeRowIndex","button","cloneElement","cn","props","shortcut","menu","menuProps","Menu","Content","i","Item","createRowActionsColumn","rowActions","rowActionsLength","editMode","ensureOrdering","settingsOrder","internalColumns","column","startsWith","orderingDisabled","orderingEnabled","Array","isArray","find","disableReordering","unshift","push","order","findIndex"],"mappings":"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"}
1
+ {"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table2/utilities/columns.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { CellContext, ColumnDef, DisplayColumnDef, Row, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { RowDragHandler, RowExpansionRenderer } from '../types';\nimport { Menu } from '../../Menu/Menu';\nimport { Icon } from '../../Icon/Icon';\nimport { LocalizationTexts } from '../../Provider/Localization';\nimport { useRowContext } from '../components/row/Context';\n\nexport const COLUMN_ID_FOR_DRAGGABLE = '__draggable';\nexport const COLUMN_ID_FOR_SELECTION = '__select';\nexport const COLUMN_ID_FOR_EXPANSION = '__expansion';\nexport const COLUMN_ID_FOR_ACTIONS = '__actions';\n\nexport const isInternalFrozenColumn = (id: string) => isInternalColumn(id) && id !== COLUMN_ID_FOR_ACTIONS;\n\nexport const isInternalColumn = (id: string) =>\n id === COLUMN_ID_FOR_SELECTION ||\n id === COLUMN_ID_FOR_EXPANSION ||\n id === COLUMN_ID_FOR_ACTIONS ||\n id === COLUMN_ID_FOR_DRAGGABLE;\n\nexport const MIN_COLUMN_SIZE = 80; // accounts for padding and sort controls\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nexport function createRowDraggableColumn<TType = any>(\n onRowDrag: RowDragHandler<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_DRAGGABLE,\n cell: ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n const onDragStart = (event: React.DragEvent): void => {\n const rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n\n meta.setDragging(rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {}));\n\n const data = rows.map(row => row.original);\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'wcag-blue rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.appendChild(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n onRowDrag(data, showPlaceholder, setDataTransfer);\n };\n\n const onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n meta.setDragging({});\n };\n\n return (\n <div draggable onDragStart={onDragStart} onDragEnd={onDragEnd}>\n <Icon\n aria-label={texts.table2.columns.drag.tooltip}\n name=\"drag\"\n className=\"text-grey-darkest invisible w-[20px] cursor-grab active:cursor-grabbing group-hover/row:visible group-[[aria-grabbed]]/row:text-white\"\n />\n </div>\n );\n },\n meta: {\n align: 'center',\n className: 'items-center !px-0',\n headerClassName: 'items-center !px-0',\n },\n // sizing\n enableResizing: false,\n size: 10,\n };\n}\n\nconst SelectCell = React.memo(({ lastSelectedRowIndex, rowIndex, isSelected, table, tableRef, texts, toggleSelected }: any) => {\n const meta = table.options.meta as TableMeta<any>;\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedRowIndex?.current || 0, rowIndex);\n\n table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n toggleSelected();\n }\n\n lastSelectedRowIndex.current = rowIndex;\n meta.setActiveRowIndex(rowIndex);\n tableRef.current?.focus();\n };\n\n return (\n <Tooltip\n title={\n <>\n {isSelected ? texts.table2.columns.select.deselect : texts.table2.columns.select.select}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n className=\"hover:border-blue !mt-0\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\nexport function createRowSelectionColumn<TType = any>(\n enableMultipleRowSelection: boolean,\n lastSelectedRowIndex: React.MutableRefObject<number | undefined>,\n onRowDrag: RowDragHandler<TType> | undefined,\n tableRef: React.RefObject<HTMLDivElement>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n let header;\n let cell;\n\n if (enableMultipleRowSelection) {\n header = ({ table }) => (\n <Tooltip\n title={\n <>\n {table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll}\n <Shortcut className=\"ml-2\" keys={{ key: 'a', meta: true }} />\n </>\n }>\n <Checkbox\n aria-label={\n table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll\n }\n className=\"hover:border-blue !mt-0\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={checked => table.toggleAllPageRowsSelected(checked)}\n onClick={() => {\n tableRef.current?.focus();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n cell = ({ row, table }) => (\n <SelectCell\n lastSelectedRowIndex={lastSelectedRowIndex}\n rowIndex={row.index}\n isSelected={row.getIsSelected()}\n table={table}\n tableRef={tableRef}\n texts={texts}\n toggleSelected={row.toggleSelected}\n />\n );\n } else {\n cell = ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const className =\n 'border-grey-300 focus:yt-focus flex h-5 w-5 mt-[0.45rem] flex-shrink-0 items-center justify-center self-start rounded-full border-2 bg-white hover:border-[5px] aria-checked:border-blue-500 aria-checked:bg-blue-500 hover:aria-checked:border-blue-300';\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n row.toggleSelected();\n meta.setActiveRowIndex(row.index);\n tableRef.current?.focus();\n };\n\n return (\n <button\n className={className}\n aria-checked={row.getIsSelected()}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {row.getIsSelected() ? <span className=\"h-2.5 w-2.5 rounded-full bg-white\" /> : null}\n </button>\n );\n };\n }\n\n return {\n id: COLUMN_ID_FOR_SELECTION,\n header,\n cell,\n meta: {\n align: 'center',\n className: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nconst ExpandCell = React.memo(({ expandedRowRenderer, isExpanded, row, texts }: any) => {\n const hasExpandedRow = expandedRowRenderer(row.original);\n\n if (!hasExpandedRow) {\n return null;\n }\n\n return (\n <Tooltip\n title={\n <>\n {isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n <Shortcut className=\"ml-2\" keys={{ key: isExpanded ? 'ArrowLeft' : 'ArrowRight', meta: true }} />\n </>\n }>\n <IconButton\n title={isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n appearance=\"discrete\"\n icon={isExpanded ? 'chevron-down' : 'chevron-right'}\n onClick={event => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\n\nexport function createRowExpansionColumn<TType = any>(\n expandedRowRenderer: RowExpansionRenderer<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_EXPANSION,\n header: ({ table }) => (\n <Tooltip\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }>\n <IconButton\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }\n appearance=\"discrete\"\n className=\"-mb-2 -mt-1.5\"\n icon={table.getIsSomeRowsExpanded() ? 'chevron-down-double' : 'chevron-right-double'}\n onClick={event => {\n event.stopPropagation();\n table.toggleAllRowsExpanded(table.getIsSomeRowsExpanded() ? false : true);\n }}\n tabIndex={-1}\n />\n </Tooltip>\n ),\n cell: ({ row }: CellContext<TType, any>) => (\n // ExpandCell is memoised and that's why calling row.getIsExpanded() inside it doesn't return the correct\n // expand state. This is the reason why isExpanded is pulled out of the ExpandCell component.\n <ExpandCell expandedRowRenderer={expandedRowRenderer} isExpanded={row.getIsExpanded()} row={row} texts={texts} />\n ),\n\n meta: {\n align: 'center',\n className: 'items-center !p-0',\n headerClassName: 'items-center hover:!bg-white !p-0',\n },\n // sizing\n enableResizing: false,\n size: 36,\n };\n}\n\nconst RowActionsCell = React.memo(({ row, actions, actionsLength, isEditing, shouldPauseHoverState, table, texts }: any) => {\n const { isActive, isHovered } = useRowContext();\n\n if ((!isActive && (!isHovered || shouldPauseHoverState)) || isEditing) {\n return null;\n }\n\n const visibleActions = actions.map(action => action(row.original)).filter(action => !!action);\n\n const actionsOnRow = visibleActions.length === actionsLength ? visibleActions : visibleActions.slice(0, actionsLength - 1);\n const actionsInMenu = visibleActions.slice(visibleActions.length === actionsLength ? actionsLength : actionsLength - 1);\n\n // If the row is not the active row or the hovered row then actions are hidden.\n const actionClassName = 'group-hover/row:flex group-[[aria-current]]/row:flex hidden';\n\n // only actions in the active row should be tabbable\n const tabIndex = table.options.meta.activeRowIndex === row.index ? 0 : -1;\n\n return (\n <span className=\"-mb-2 -mt-2 flex justify-end text-right\">\n {actionsOnRow.map((button, index) =>\n React.cloneElement(button, {\n appearance: 'discrete',\n className: cn(actionClassName, button.props.className),\n key: index,\n tabIndex,\n tooltip: button.props.shortcut ? (\n <>\n {button.props.tooltip ?? button.props['aria-label']}\n <Shortcut className=\"ml-2\" keys={button.props.shortcut} />\n </>\n ) : (\n button.props.tooltip ?? button.props['aria-label']\n ),\n })\n )}\n {actionsInMenu.length ? (\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.table2.columns.actions.tooltip}\n icon=\"more\"\n tabIndex={tabIndex}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {actionsInMenu.map((action, i) => (\n <Menu.Item key={i} {...action.props} shortcut={action.props.shortcut}>\n {action.props['aria-label']}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n )}\n tooltip={texts.table2.columns.actions.tooltip}\n />\n ) : null}\n </span>\n );\n});\n\nexport function createRowActionsColumn<TType = any>(\n rowActions,\n rowActionsLength,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_ACTIONS,\n cell: ({ row, table }) => (\n <RowActionsCell\n row={row}\n actions={rowActions}\n actionsLength={rowActionsLength}\n texts={texts}\n table={table}\n isEditing={!!table.options.meta?.editMode.isEditing}\n shouldPauseHoverState={!!table.options.meta?.shouldPauseHoverState}\n />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>, table: any) =>\n // Adding z-index so that it shows on top of frozen columns\n cn('items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 !px-1 z-[1]', {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),\n 'group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]':\n !row.getIsSelected() &&\n (!table.options.meta?.shouldPauseHoverState || table.options.meta.editMode.isEditing),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }),\n headerClassName: 'hover:!bg-white !px-1',\n },\n // sizing\n enableResizing: false,\n };\n}\n\nexport function ensureOrdering<TType = unknown>(columns: ColumnDef<TType>[], settingsOrder: string[] | undefined): string[] {\n // internal column come with a defined order\n const internalColumns = columns\n .filter(column => column.id?.startsWith('__') && column.id !== COLUMN_ID_FOR_ACTIONS)\n .map(column => column.id) as string[];\n\n // columns with ordering disabled should be moved to the front\n const orderingDisabled: string[] = [];\n const orderingEnabled: string[] = [];\n\n let orderedColumns = columns;\n\n // if settings is defined, make sure the columns that are actual children are sorted by it\n if (Array.isArray(settingsOrder)) {\n orderedColumns = columns.slice().sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (settingsOrder.indexOf(a.id as string) >>> 0) - (settingsOrder.indexOf(b.id as string) >>> 0)\n );\n }\n\n orderedColumns.forEach(column => {\n if (column.id?.startsWith('__')) {\n return;\n }\n\n if (column.meta?.disableReordering) {\n orderingDisabled.push(column.id as string);\n } else {\n orderingEnabled.push(column.id as string);\n }\n });\n\n const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];\n\n // actions should always be last, enforce that\n if (columns.findIndex(column => column.id === COLUMN_ID_FOR_ACTIONS) > -1) {\n order.push(COLUMN_ID_FOR_ACTIONS);\n }\n\n return order;\n}\n"],"names":["COLUMN_ID_FOR_DRAGGABLE","COLUMN_ID_FOR_SELECTION","COLUMN_ID_FOR_EXPANSION","COLUMN_ID_FOR_ACTIONS","isInternalFrozenColumn","id","isInternalColumn","MIN_COLUMN_SIZE","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","createRowDraggableColumn","onRowDrag","texts","cell","row","table","meta","options","GHOST_ELEMENT_ID","onDragStart","event","rows","getIsSelected","getSelectedRowModel","setDragging","reduce","dragging","rowBeingDragged","data","map","original","dataTransfer","setData","JSON","stringify","showPlaceholder","text","ghost","document","createElement","className","innerText","body","appendChild","setDragImage","setDataTransfer","onDragEnd","getElementById","remove","React","draggable","Icon","table2","columns","drag","tooltip","name","align","headerClassName","enableResizing","size","SelectCell","memo","lastSelectedRowIndex","rowIndex","isSelected","tableRef","toggleSelected","handleClick","stopPropagation","shiftKey","current","getRowModel","slice","forEach","setActiveRowIndex","focus","Tooltip","title","select","deselect","Shortcut","keys","Checkbox","checked","onClick","onChange","tabIndex","createRowSelectionColumn","enableMultipleRowSelection","header","getIsAllPageRowsSelected","deselectAll","selectAll","key","indeterminate","getIsSomePageRowsSelected","toggleAllPageRowsSelected","index","role","type","ExpandCell","expandedRowRenderer","isExpanded","hasExpandedRow","expansion","collapse","expand","IconButton","appearance","icon","toggleExpanded","createRowExpansionColumn","getIsSomeRowsExpanded","collapseAll","expandAll","toggleAllRowsExpanded","getIsExpanded","RowActionsCell","actions","actionsLength","isEditing","shouldPauseHoverState","isActive","isHovered","useRowContext","visibleActions","action","filter","actionsOnRow","length","actionsInMenu","actionClassName","activeRowIndex","button","cloneElement","cn","props","shortcut","menu","menuProps","Menu","Content","i","Item","createRowActionsColumn","rowActions","rowActionsLength","editMode","ensureOrdering","settingsOrder","internalColumns","column","startsWith","orderingDisabled","orderingEnabled","orderedColumns","Array","isArray","sort","a","b","indexOf","disableReordering","push","order","findIndex"],"mappings":"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"}
@@ -4006,7 +4006,11 @@ const defaultLocalisationTexts = {
4006
4006
  total: 'Viewing [CURRENT] of [TOTAL]'
4007
4007
  },
4008
4008
  rowDensity: {
4009
- tooltip: 'Row density'
4009
+ tooltip: 'Row density',
4010
+ compact: 'compact',
4011
+ normal: 'normal',
4012
+ comfortable: 'comfortable',
4013
+ spacious: 'spacious'
4010
4014
  },
4011
4015
  search: {
4012
4016
  placeholder: 'Search...'
@@ -5376,10 +5380,10 @@ const useDatepicker = ({
5376
5380
  const {
5377
5381
  formatting
5378
5382
  } = useLocalization();
5379
- const [internalValue, setInternalValue] = React.useState(value ? format(value, formatting.date) : '');
5383
+ const [internalValue, setInternalValue] = React.useState(value && dateFns.isValid(value) ? format(value, formatting.date) : '');
5380
5384
  // update internal value if it changed 'externally'
5381
5385
  React.useEffect(() => {
5382
- if (value) {
5386
+ if (value && dateFns.isValid(value)) {
5383
5387
  const formattedValue = format(value, formatting.date);
5384
5388
  if (formattedValue !== internalValue) {
5385
5389
  setInternalValue(formattedValue);
@@ -9104,7 +9108,8 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
9104
9108
  }
9105
9109
  }
9106
9110
  };
9107
- const popover = onEdit || onDelete ? popoverProps => {
9111
+ const isEmptyOption = children !== '';
9112
+ const popover = isEmptyOption && (onEdit || onDelete) ? popoverProps => {
9108
9113
  var _props$textValue, _props$textValue2;
9109
9114
  return /*#__PURE__*/React__default.createElement(EditPopover, Object.assign({}, popoverProps, {
9110
9115
  color: props.color,
@@ -11584,7 +11589,7 @@ const SelectCell = /*#__PURE__*/React__default.memo(({
11584
11589
  (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.focus();
11585
11590
  };
11586
11591
  return /*#__PURE__*/React__default.createElement(Tooltip, {
11587
- title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect, /*#__PURE__*/React__default.createElement(Shortcut, {
11592
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isSelected ? texts.table2.columns.select.deselect : texts.table2.columns.select.select, /*#__PURE__*/React__default.createElement(Shortcut, {
11588
11593
  className: "ml-2",
11589
11594
  keys: "Space"
11590
11595
  }))
@@ -11841,31 +11846,24 @@ function ensureOrdering(columns, settingsOrder) {
11841
11846
  // columns with ordering disabled should be moved to the front
11842
11847
  const orderingDisabled = [];
11843
11848
  const orderingEnabled = [];
11849
+ let orderedColumns = columns;
11850
+ // if settings is defined, make sure the columns that are actual children are sorted by it
11844
11851
  if (Array.isArray(settingsOrder)) {
11845
- settingsOrder.forEach(id => {
11846
- var _columns$find, _columns$find$meta;
11847
- if (id.startsWith('__')) {
11848
- return;
11849
- }
11850
- if ((_columns$find = columns.find(column => column.id === id)) !== null && _columns$find !== void 0 && (_columns$find$meta = _columns$find.meta) !== null && _columns$find$meta !== void 0 && _columns$find$meta.disableReordering) {
11851
- orderingDisabled.unshift(id);
11852
- } else {
11853
- orderingEnabled.push(id);
11854
- }
11855
- });
11856
- } else {
11857
- columns.forEach(column => {
11858
- var _column$id2, _column$meta;
11859
- if ((_column$id2 = column.id) !== null && _column$id2 !== void 0 && _column$id2.startsWith('__')) {
11860
- return;
11861
- }
11862
- if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.disableReordering) {
11863
- orderingDisabled.push(column.id);
11864
- } else {
11865
- orderingEnabled.push(column.id);
11866
- }
11867
- });
11852
+ orderedColumns = columns.slice().sort(
11853
+ // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end
11854
+ (a, b) => (settingsOrder.indexOf(a.id) >>> 0) - (settingsOrder.indexOf(b.id) >>> 0));
11868
11855
  }
11856
+ orderedColumns.forEach(column => {
11857
+ var _column$id2, _column$meta;
11858
+ if ((_column$id2 = column.id) !== null && _column$id2 !== void 0 && _column$id2.startsWith('__')) {
11859
+ return;
11860
+ }
11861
+ if ((_column$meta = column.meta) !== null && _column$meta !== void 0 && _column$meta.disableReordering) {
11862
+ orderingDisabled.push(column.id);
11863
+ } else {
11864
+ orderingEnabled.push(column.id);
11865
+ }
11866
+ });
11869
11867
  const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];
11870
11868
  // actions should always be last, enforce that
11871
11869
  if (columns.findIndex(column => column.id === COLUMN_ID_FOR_ACTIONS) > -1) {
@@ -13018,7 +13016,7 @@ const HeaderMenu = ({
13018
13016
  frozenColumnsCount,
13019
13017
  setFrozenColumnsCount
13020
13018
  } = table.options.meta;
13021
- const columns = table.getAllLeafColumns();
13019
+ const columns = table.getVisibleLeafColumns();
13022
13020
  const {
13023
13021
  columnVisibility,
13024
13022
  columnOrder
@@ -13619,13 +13617,13 @@ const RowDensityButton = ({
13619
13617
  value: meta.rowDensity
13620
13618
  }, /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13621
13619
  value: "compact"
13622
- }, "Compact"), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13620
+ }, texts.table2.rowDensity.compact), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13623
13621
  value: "normal"
13624
- }, "Normal"), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13622
+ }, texts.table2.rowDensity.normal), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13625
13623
  value: "comfortable"
13626
- }, "Comfortable"), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13624
+ }, texts.table2.rowDensity.comfortable), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
13627
13625
  value: "spacious"
13628
- }, "Spacious")))),
13626
+ }, texts.table2.rowDensity.spacious)))),
13629
13627
  tooltip: texts.table2.rowDensity.tooltip
13630
13628
  });
13631
13629
  };
@@ -14730,7 +14728,7 @@ const BaseTable2 = /*#__PURE__*/React__default.forwardRef(function BaseTable2(pr
14730
14728
  const scrollY = event.currentTarget.scrollTop;
14731
14729
  const isScrollingDown = scrollY > prevScrollY.current;
14732
14730
  prevScrollY.current = scrollY;
14733
- const scrolledPercentage = Math.round(100 / event.currentTarget.scrollHeight * scrollY);
14731
+ const scrolledPercentage = Math.round(scrollY / (event.currentTarget.scrollHeight - event.currentTarget.clientHeight) * 100);
14734
14732
  const _temp2 = function () {
14735
14733
  if (isScrollingDown && !loadingRef.current && scrolledPercentage >= 80) {
14736
14734
  const _temp = _finallyRethrows(function () {