@economic/taco 1.35.0 → 1.35.2

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.
@@ -7,7 +7,7 @@ import { useLocalization } from '../../../Provider/Localization.js';
7
7
  import { Menu } from '../../../Menu/Menu.js';
8
8
  import { isOverflowing } from '../../../../utils/dom.js';
9
9
  import { flexRender } from '@tanstack/react-table';
10
- import { isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns.js';
10
+ import { isInternalFrozenColumn, isInternalColumn, MIN_COLUMN_SIZE } from '../../utilities/columns.js';
11
11
  import { getCellSizingClasses, getCellAlignmentClasses } from '../../utilities/cell.js';
12
12
  import { ColumnBase } from './Base.js';
13
13
 
@@ -117,7 +117,7 @@ const Header = function Header(props) {
117
117
  name: "chevron-down-solid",
118
118
  className: "pointer-events-none -my-0.5"
119
119
  })
120
- }[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), (_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
120
+ }[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), !isInternalColumn(header.column.id) && ((_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing) ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
121
121
  menu: (_header$column$column9 = header.column.columnDef.meta) === null || _header$column$column9 === void 0 ? void 0 : _header$column$column9.menu,
122
122
  enableColumnFreezing: enableColumnFreezing,
123
123
  table: table,
@@ -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 { 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 {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","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.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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"}
@@ -6,6 +6,7 @@ import React__default from 'react';
6
6
  const useColumnOffsetStateListener = (table, setColumnOffsets) => {
7
7
  const {
8
8
  columnOrder,
9
+ columnSizing,
9
10
  columnSizingInfo,
10
11
  columnVisibility
11
12
  } = table.getState();
@@ -20,7 +21,7 @@ const useColumnOffsetStateListener = (table, setColumnOffsets) => {
20
21
  return offset + column.getSize();
21
22
  }, 0);
22
23
  setColumnOffsets(offsets);
23
- }, [columnOrder, columnSizingInfo, columnVisibility, frozenColumnsCount]);
24
+ }, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, frozenColumnsCount]);
24
25
  };
25
26
 
26
27
  export { useColumnOffsetStateListener };
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnOffsetStateListener.js","sources":["../../../../../../../../../src/components/Table2/hooks/listeners/useColumnOffsetStateListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, OnChangeFn, TableMeta } from '@tanstack/react-table';\nimport { ColumnOffsetState } from '../../types';\n\n// frozen columns have position sticky, and because we support more than one of them\n// we must set a 'left' css value. this hook listens to changes on state that will\n// affect the left offset (resize, visibility, freezing) and updates offsets based on width\nexport const useColumnOffsetStateListener = (table: RTTable<any>, setColumnOffsets: OnChangeFn<ColumnOffsetState>) => {\n const { columnOrder, columnSizingInfo, columnVisibility } = table.getState();\n const { frozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n React.useEffect(() => {\n const offsets = {};\n\n // store left offsets for each visible column\n table.getVisibleLeafColumns().reduce((offset, column) => {\n offsets[column.id] = offset;\n return offset + column.getSize();\n }, 0);\n\n setColumnOffsets(offsets);\n }, [columnOrder, columnSizingInfo, columnVisibility, frozenColumnsCount]);\n};\n"],"names":["useColumnOffsetStateListener","table","setColumnOffsets","columnOrder","columnSizingInfo","columnVisibility","getState","frozenColumnsCount","options","meta","React","useEffect","offsets","getVisibleLeafColumns","reduce","offset","column","id","getSize"],"mappings":";;AAIA;AACA;AACA;MACaA,4BAA4B,GAAG,CAACC,KAAmB,EAAEC,gBAA+C;EAC7G,MAAM;IAAEC,WAAW;IAAEC,gBAAgB;IAAEC;GAAkB,GAAGJ,KAAK,CAACK,QAAQ,EAAE;EAC5E,MAAM;IAAEC;GAAoB,GAAGN,KAAK,CAACO,OAAO,CAACC,IAAsB;EAEnEC,cAAK,CAACC,SAAS,CAAC;IACZ,MAAMC,OAAO,GAAG,EAAE;;IAGlBX,KAAK,CAACY,qBAAqB,EAAE,CAACC,MAAM,CAAC,CAACC,MAAM,EAAEC,MAAM;MAChDJ,OAAO,CAACI,MAAM,CAACC,EAAE,CAAC,GAAGF,MAAM;MAC3B,OAAOA,MAAM,GAAGC,MAAM,CAACE,OAAO,EAAE;KACnC,EAAE,CAAC,CAAC;IAELhB,gBAAgB,CAACU,OAAO,CAAC;GAC5B,EAAE,CAACT,WAAW,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEE,kBAAkB,CAAC,CAAC;AAC7E;;;;"}
1
+ {"version":3,"file":"useColumnOffsetStateListener.js","sources":["../../../../../../../../../src/components/Table2/hooks/listeners/useColumnOffsetStateListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, OnChangeFn, TableMeta } from '@tanstack/react-table';\nimport { ColumnOffsetState } from '../../types';\n\n// frozen columns have position sticky, and because we support more than one of them\n// we must set a 'left' css value. this hook listens to changes on state that will\n// affect the left offset (resize, visibility, freezing) and updates offsets based on width\nexport const useColumnOffsetStateListener = (table: RTTable<any>, setColumnOffsets: OnChangeFn<ColumnOffsetState>) => {\n const { columnOrder, columnSizing, columnSizingInfo, columnVisibility } = table.getState();\n const { frozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n React.useEffect(() => {\n const offsets = {};\n\n // store left offsets for each visible column\n table.getVisibleLeafColumns().reduce((offset, column) => {\n offsets[column.id] = offset;\n return offset + column.getSize();\n }, 0);\n\n setColumnOffsets(offsets);\n }, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, frozenColumnsCount]);\n};\n"],"names":["useColumnOffsetStateListener","table","setColumnOffsets","columnOrder","columnSizing","columnSizingInfo","columnVisibility","getState","frozenColumnsCount","options","meta","React","useEffect","offsets","getVisibleLeafColumns","reduce","offset","column","id","getSize"],"mappings":";;AAIA;AACA;AACA;MACaA,4BAA4B,GAAG,CAACC,KAAmB,EAAEC,gBAA+C;EAC7G,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC,gBAAgB;IAAEC;GAAkB,GAAGL,KAAK,CAACM,QAAQ,EAAE;EAC1F,MAAM;IAAEC;GAAoB,GAAGP,KAAK,CAACQ,OAAO,CAACC,IAAsB;EAEnEC,cAAK,CAACC,SAAS,CAAC;IACZ,MAAMC,OAAO,GAAG,EAAE;;IAGlBZ,KAAK,CAACa,qBAAqB,EAAE,CAACC,MAAM,CAAC,CAACC,MAAM,EAAEC,MAAM;MAChDJ,OAAO,CAACI,MAAM,CAACC,EAAE,CAAC,GAAGF,MAAM;MAC3B,OAAOA,MAAM,GAAGC,MAAM,CAACE,OAAO,EAAE;KACnC,EAAE,CAAC,CAAC;IAELjB,gBAAgB,CAACW,OAAO,CAAC;GAC5B,EAAE,CAACV,WAAW,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEE,kBAAkB,CAAC,CAAC;AAC3F;;;;"}
@@ -12978,7 +12978,7 @@ const Header$1 = function Header(props) {
12978
12978
  name: "chevron-down-solid",
12979
12979
  className: "pointer-events-none -my-0.5"
12980
12980
  })
12981
- }[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), (_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
12981
+ }[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), !isInternalColumn(header.column.id) && ((_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing) ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
12982
12982
  menu: (_header$column$column9 = header.column.columnDef.meta) === null || _header$column$column9 === void 0 ? void 0 : _header$column$column9.menu,
12983
12983
  enableColumnFreezing: enableColumnFreezing,
12984
12984
  table: table,
@@ -13224,6 +13224,7 @@ function getSortingFn(dataType, customFn) {
13224
13224
  const useColumnOffsetStateListener = (table, setColumnOffsets) => {
13225
13225
  const {
13226
13226
  columnOrder,
13227
+ columnSizing,
13227
13228
  columnSizingInfo,
13228
13229
  columnVisibility
13229
13230
  } = table.getState();
@@ -13238,7 +13239,7 @@ const useColumnOffsetStateListener = (table, setColumnOffsets) => {
13238
13239
  return offset + column.getSize();
13239
13240
  }, 0);
13240
13241
  setColumnOffsets(offsets);
13241
- }, [columnOrder, columnSizingInfo, columnVisibility, frozenColumnsCount]);
13242
+ }, [columnOrder, columnSizing, columnSizingInfo, columnVisibility, frozenColumnsCount]);
13242
13243
  };
13243
13244
 
13244
13245
  const useRowSelectionListener = (table, onRowSelect) => {