@vuu-ui/vuu-table 0.8.26-debug → 0.8.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/cjs/index.js +1 -3760
- package/cjs/index.js.map +2 -2
- package/esm/index.js +1 -3837
- package/esm/index.js.map +2 -2
- package/index.css +1 -578
- package/index.css.map +3 -3
- package/package.json +8 -8
package/esm/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/vuu-table/src/header-cell/GroupHeaderCell.tsx", "../../../packages/vuu-table/src/column-header-pill/ColumnHeaderPill.tsx", "../../../packages/vuu-table/src/column-header-pill/GroupColumnPill.tsx", "../../../packages/vuu-table/src/column-header-pill/SortIndicator.tsx", "../../../packages/vuu-table/src/column-resizing/ColumnResizer.tsx", "../../../packages/vuu-table/src/column-resizing/useTableColumnResize.tsx", "../../../packages/vuu-table/src/useCell.ts", "../../../packages/vuu-table/src/header-cell/HeaderCell.tsx", "../../../packages/vuu-table/src/column-menu/ColumnMenu.tsx", "../../../packages/vuu-table/src/Table.tsx", "../../../packages/vuu-table/src/Row.tsx", "../../../packages/vuu-table/src/table-cell/TableCell.tsx", "../../../packages/vuu-table/src/table-cell/TableGroupCell.tsx", "../../../packages/vuu-table/src/table-header/TableHeader.tsx", "../../../packages/vuu-table/src/table-header/useTableHeader.ts", "../../../packages/vuu-table/src/useTable.ts", "../../../packages/vuu-table/src/context-menu/buildContextMenuDescriptors.ts", "../../../packages/vuu-table/src/context-menu/useHandleTableContextMenu.ts", "../../../packages/vuu-table/src/table-config.ts", "../../../packages/vuu-table/src/useCellEditing.ts", "../../../packages/vuu-table/src/table-dom-utils.ts", "../../../packages/vuu-table/src/useDataSource.ts", "../../../packages/vuu-table/src/moving-window.ts", "../../../packages/vuu-table/src/useInitialValue.ts", "../../../packages/vuu-table/src/useKeyboardNavigation.ts", "../../../packages/vuu-table/src/useSelection.ts", "../../../packages/vuu-table/src/useTableContextMenu.ts", "../../../packages/vuu-table/src/useTableModel.ts", "../../../packages/vuu-table/src/useTableScroll.ts", "../../../packages/vuu-table/src/useTableViewport.ts", "../../../packages/vuu-table/src/useTableAndColumnSettings.ts", "../../../packages/vuu-table/src/useRowClassNameGenerators.ts", "../../../packages/vuu-table/src/useRowHeight.ts", "../../../packages/vuu-table/src/cell-renderers/checkbox-cell/CheckboxCell.tsx", "../../../packages/vuu-table/src/cell-renderers/input-cell/InputCell.tsx", "../../../packages/vuu-table/src/cell-renderers/toggle-cell/ToggleCell.tsx", "../../../packages/vuu-table/src/useControlledTableNavigation.ts"],
|
|
4
4
|
"sourcesContent": ["import { OverflowContainer } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n ColumnDescriptor,\n GroupColumnDescriptor,\n HeaderCellProps,\n RuntimeColumnDescriptor,\n} from \"@vuu-ui/vuu-table-types\";\nimport { useLayoutEffectSkipFirst } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { ColumnHeaderPill, GroupColumnPill } from \"../column-header-pill\";\nimport { ColumnResizer, useTableColumnResize } from \"../column-resizing\";\nimport { useCell } from \"../useCell\";\n\nimport \"./GroupHeaderCell.css\";\n\nconst classBase = \"vuuTableGroupHeaderCell\";\n\nconst switchIfChanged = (\n columns: RuntimeColumnDescriptor[],\n newColumns: RuntimeColumnDescriptor[]\n) => {\n if (columns === newColumns) {\n return columns;\n } else {\n return newColumns;\n }\n};\n\nexport interface GroupHeaderCellProps\n extends Omit<HeaderCellProps, \"onDragStart\" | \"onDrag\" | \"onDragEnd\"> {\n column: GroupColumnDescriptor;\n onMoveColumn?: (columns: ColumnDescriptor[]) => void;\n onRemoveColumn: (column: RuntimeColumnDescriptor) => void;\n}\n\nexport const GroupHeaderCell = ({\n column: groupColumn,\n className: classNameProp,\n onMoveColumn,\n onRemoveColumn,\n onResize,\n ...htmlAttributes\n}: GroupHeaderCellProps) => {\n const rootRef = useRef<HTMLTableCellElement>(null);\n const { isResizing, ...resizeProps } = useTableColumnResize({\n column: groupColumn,\n onResize,\n rootRef,\n });\n\n const [columns, setColumns] = useState(groupColumn.columns);\n const { className, style } = useCell(groupColumn, classBase, true);\n const columnPillProps =\n columns.length > 1\n ? {\n removable: true,\n onRemove: onRemoveColumn,\n }\n : undefined;\n\n const handleMoveItem = useCallback(\n (fromIndex, toIndex) => {\n setColumns((cols) => {\n const newCols = cols.slice();\n const [tab] = newCols.splice(fromIndex, 1);\n if (toIndex === -1) {\n const result = newCols.concat(tab);\n onMoveColumn?.(result);\n return result;\n } else {\n newCols.splice(toIndex, 0, tab);\n onMoveColumn?.(newCols);\n return newCols;\n }\n });\n },\n [onMoveColumn]\n );\n\n useLayoutEffectSkipFirst(() => {\n setColumns((cols) => switchIfChanged(cols, groupColumn.columns));\n }, [groupColumn.columns]);\n\n return (\n <div\n {...htmlAttributes}\n className={cx(className, classNameProp, {\n [`${classBase}-pending`]: groupColumn.groupConfirmed === false,\n })}\n ref={rootRef}\n role=\"columnheader\"\n style={style}\n >\n <OverflowContainer\n allowDragDrop\n className={`${classBase}-inner`}\n onMoveItem={handleMoveItem}\n overflowPosition=\"start\"\n >\n {columns.map((column) => {\n return (\n <GroupColumnPill\n {...columnPillProps}\n column={column}\n key={column.name}\n />\n );\n })}\n </OverflowContainer>\n <ColumnHeaderPill\n column={groupColumn}\n removable\n onRemove={onRemoveColumn}\n />\n\n {groupColumn.resizeable !== false ? (\n <ColumnResizer {...resizeProps} />\n ) : null}\n </div>\n );\n};\n", "import cx from \"clsx\";\nimport { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { HTMLAttributes, MouseEvent, useCallback } from \"react\";\n\nimport \"./ColumnHeaderPill.css\";\n\nexport interface ColumnHeaderPillProps extends HTMLAttributes<HTMLDivElement> {\n column: RuntimeColumnDescriptor;\n removable?: boolean;\n onRemove?: (column: RuntimeColumnDescriptor) => void;\n}\n\nconst classBase = \"vuuColumnHeaderPill\";\n\nexport const ColumnHeaderPill = ({\n children,\n className,\n column,\n onRemove,\n removable,\n ...htmlAttributes\n}: ColumnHeaderPillProps) => {\n if (removable && typeof onRemove !== \"function\") {\n throw Error(\n \"ColumnHeaderPill onRemove prop must be provided if Pill is removable\"\n );\n }\n\n const handleClickRemove = useCallback(\n (evt: MouseEvent<HTMLSpanElement>) => {\n evt.preventDefault();\n evt.stopPropagation();\n onRemove?.(column);\n },\n [column, onRemove]\n );\n\n return (\n <div {...htmlAttributes} className={cx(classBase, className)}>\n {children}\n {removable ? (\n <span\n className={`${classBase}-removeButton`}\n role=\"button\"\n data-icon=\"cross\"\n onClick={handleClickRemove}\n />\n ) : null}\n </div>\n );\n};\n", "import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { ColumnHeaderPill, ColumnHeaderPillProps } from \"./ColumnHeaderPill\";\n\nimport \"./GroupColumnPill.css\";\n\nexport interface GroupColumnPillProps extends ColumnHeaderPillProps {\n column: RuntimeColumnDescriptor;\n}\n\nexport const GroupColumnPill = ({\n column,\n ...columnHeaderProps\n}: GroupColumnPillProps) => {\n const { name, sorted } = column;\n const icon =\n typeof sorted === \"number\"\n ? sorted < 0\n ? \"arrow-down\"\n : \"arrow-up\"\n : sorted === \"A\"\n ? \"arrow-up\"\n : sorted === \"D\"\n ? \"arrow-down\"\n : undefined;\n\n return (\n <ColumnHeaderPill {...columnHeaderProps} column={column}>\n <span className=\"vuuGroupColumnPill-label\">{name}</span>\n {icon !== undefined ? <span data-icon={icon} /> : null}\n {typeof sorted === \"number\" ? (\n <span className={\"vuuSortPosition\"}>{Math.abs(sorted)}</span>\n ) : null}\n </ColumnHeaderPill>\n );\n};\n", "import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { ColumnHeaderPill } from \"./ColumnHeaderPill\";\n\nimport \"./SortIndicator.css\";\n\nexport interface SortIndicatorProps {\n column: RuntimeColumnDescriptor;\n}\n\nexport const SortIndicator = ({ column }: SortIndicatorProps) => {\n if (!column.sorted) {\n return null;\n }\n\n const icon =\n typeof column.sorted === \"number\"\n ? column.sorted < 0\n ? \"arrow-down\"\n : \"arrow-up\"\n : column.sorted === \"A\"\n ? \"arrow-up\"\n : \"arrow-down\";\n\n return (\n <ColumnHeaderPill column={column}>\n <span data-icon={icon} />\n {typeof column.sorted === \"number\" ? (\n <span className={\"vuuSortPosition\"}>{Math.abs(column.sorted)}</span>\n ) : null}\n </ColumnHeaderPill>\n );\n};\n", "import { useCallback, useRef } from \"react\";\n\nimport \"./ColumnResizer.css\";\n\nconst NOOP = () => undefined;\n\nconst baseClass = \"vuuColumnResizerNext\";\nexport interface TableColumnResizerProps {\n onDrag: (evt: MouseEvent, moveBy: number, totalDistanceMoved: number) => void;\n onDragEnd: (evt: MouseEvent, totalDistanceMoved: number) => void;\n onDragStart: (evt: React.MouseEvent) => void;\n}\n\nexport const ColumnResizer = ({\n onDrag,\n onDragEnd = NOOP,\n onDragStart = NOOP,\n}: TableColumnResizerProps) => {\n const positionRef = useRef({ start: 0, now: 0 });\n\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n const { current: position } = positionRef;\n\n const x = Math.round(e.clientX);\n const moveBy = x - position.now;\n const distanceMoved = position.now - position.start;\n\n positionRef.current.now = x;\n\n if (moveBy !== 0) {\n onDrag(e, moveBy, distanceMoved);\n }\n },\n [onDrag]\n );\n\n const onMouseUp = useCallback(\n (e: MouseEvent) => {\n window.removeEventListener(\"mouseup\", onMouseUp);\n window.removeEventListener(\"mousemove\", onMouseMove);\n\n const { current: position } = positionRef;\n const distanceMoved = position.now - position.start;\n onDragEnd(e, distanceMoved);\n },\n [onDragEnd, onMouseMove]\n );\n\n const handleMouseDown = useCallback(\n (e: React.MouseEvent) => {\n const { current: position } = positionRef;\n onDragStart(e);\n position.now = position.start = Math.round(e.clientX);\n\n window.addEventListener(\"mouseup\", onMouseUp);\n window.addEventListener(\"mousemove\", onMouseMove);\n\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n },\n [onDragStart, onMouseMove, onMouseUp]\n );\n\n return <div className={baseClass} onMouseDown={handleMouseDown} />;\n};\n", "import {\n Heading,\n ResizePhase,\n RuntimeColumnDescriptor,\n} from \"@vuu-ui/vuu-table-types\";\nimport { RefObject, useCallback, useRef, useState } from \"react\";\n\nexport type ResizeHandler = (evt: MouseEvent, moveBy: number) => void;\nexport interface CellResizeHookProps {\n column: RuntimeColumnDescriptor | Heading;\n onResize?: (phase: ResizePhase, columnName: string, width?: number) => void;\n rootRef: RefObject<HTMLDivElement>;\n}\n\nexport interface CellResizeHookResult {\n isResizing: boolean;\n onDrag: (evt: MouseEvent, moveBy: number, totalDistanceMoved: number) => void;\n onDragStart: (evt: React.MouseEvent) => void;\n onDragEnd: (evt: MouseEvent) => void;\n}\n\nexport const useTableColumnResize = ({\n column,\n onResize,\n rootRef,\n}: CellResizeHookProps): CellResizeHookResult => {\n const widthRef = useRef({ start: 0, now: 0 });\n\n const [isResizing, setResizing] = useState(false);\n const { name } = column;\n\n const handleResizeStart = useCallback(() => {\n if (onResize && rootRef.current) {\n const { current: width } = widthRef;\n const { width: measuredWidth } = rootRef.current.getBoundingClientRect();\n width.start = width.now = Math.round(measuredWidth);\n setResizing(true);\n onResize?.(\"begin\", name);\n }\n }, [name, onResize, rootRef]);\n\n const handleResize = useCallback(\n (_evt: MouseEvent, moveBy: number, totalDistanceMoved) => {\n if (rootRef.current) {\n if (onResize) {\n const { current: width } = widthRef;\n const newWidth = width.start + totalDistanceMoved;\n if (newWidth !== width.now && newWidth > 0) {\n onResize(\"resize\", name, newWidth);\n width.now = newWidth;\n }\n }\n }\n },\n [name, onResize, rootRef]\n );\n\n const handleResizeEnd = useCallback(() => {\n if (onResize) {\n const { current: width } = widthRef;\n onResize(\"end\", name, width.now);\n setTimeout(() => {\n // clickHandler in HeaderCell checks isResizing before firing. Because onMouseUp\n // fires before click, we need to delay setting isResizing back to false, just\n // long enough that the click ghandler will have fired.\n setResizing(false);\n }, 80);\n }\n }, [name, onResize]);\n\n return {\n isResizing,\n onDrag: handleResize,\n onDragStart: handleResizeStart,\n onDragEnd: handleResizeEnd,\n };\n};\n", "import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { getColumnStyle } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { useMemo } from \"react\";\n\nexport const useCell = (\n column: RuntimeColumnDescriptor,\n classBase: string,\n isHeader?: boolean\n) =>\n // TODO measure perf without the memo, might not be worth the cost\n useMemo(() => {\n const className = cx(classBase, {\n vuuPinFloating: column.pin === \"floating\",\n vuuPinLeft: column.pin === \"left\",\n vuuPinRight: column.pin === \"right\",\n vuuEndPin: isHeader && column.endPin,\n // [`${classBase}-resizing`]: column.resizing,\n [`${classBase}-editable`]: column.editable,\n [`${classBase}-right`]: column.align === \"right\",\n });\n\n const style = getColumnStyle(column);\n return {\n className,\n style,\n };\n }, [column, classBase, isHeader]);\n", "import { HeaderCellProps } from \"@vuu-ui/vuu-table-types\";\nimport cx from \"clsx\";\nimport { MouseEventHandler, useCallback, useRef } from \"react\";\nimport { SortIndicator } from \"../column-header-pill\";\nimport { ColumnMenu } from \"../column-menu\";\nimport { ColumnResizer, useTableColumnResize } from \"../column-resizing\";\nimport { useCell } from \"../useCell\";\n\nimport \"./HeaderCell.css\";\n\nconst classBase = \"vuuTableHeaderCell\";\n\nexport const HeaderCell = ({\n className: classNameProp,\n column,\n onClick,\n onResize,\n ...htmlAttributes\n}: HeaderCellProps) => {\n const { HeaderCellContentRenderer, HeaderCellLabelRenderer } = column;\n const rootRef = useRef<HTMLDivElement>(null);\n const { isResizing, ...resizeProps } = useTableColumnResize({\n column,\n onResize,\n rootRef,\n });\n\n const handleClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n (evt) => {\n !isResizing && onClick?.(evt);\n },\n [isResizing, onClick]\n );\n\n const { className, style } = useCell(column, classBase, true);\n\n const columnMenu = <ColumnMenu column={column} />;\n const columnLabel = HeaderCellLabelRenderer ? (\n <HeaderCellLabelRenderer className={`${classBase}-label`} column={column} />\n ) : (\n <div className={`${classBase}-label`}>{column.label ?? column.name}</div>\n );\n\n const columnContent = HeaderCellContentRenderer\n ? [<HeaderCellContentRenderer column={column} key=\"content\" />]\n : [];\n\n const sortIndicator = <SortIndicator column={column} />;\n const headerItems =\n column.align === \"right\"\n ? [sortIndicator, columnLabel].concat(columnContent).concat(columnMenu)\n : [columnMenu, columnLabel, sortIndicator].concat(columnContent);\n\n return (\n <div\n {...htmlAttributes}\n className={cx(className, classNameProp, {\n [`${classBase}-resizing`]: isResizing,\n })}\n onClick={handleClick}\n ref={rootRef}\n role=\"columnheader\"\n style={style}\n >\n {...headerItems}\n {column.resizeable !== false ? <ColumnResizer {...resizeProps} /> : null}\n </div>\n );\n};\n", "import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { PopupMenu } from \"@vuu-ui/vuu-popups\";\nimport { HTMLAttributes } from \"react\";\nimport cx from \"clsx\";\n\nimport \"./ColumnMenu.css\";\n\nconst classBase = \"vuuColumnMenu\";\nexport interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {\n column: RuntimeColumnDescriptor;\n}\n\nexport const ColumnMenu = ({ className, column }: ColumnMenuProps) => {\n return (\n <PopupMenu\n className={cx(classBase, className)}\n data-embedded\n menuLocation=\"column-menu\"\n menuOptions={{ column }}\n />\n );\n};\n", "import {\n DataSource,\n SchemaColumn,\n SelectionChangeHandler,\n VuuFeatureInvocationMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport { ContextMenuProvider } from \"@vuu-ui/vuu-popups\";\nimport {\n TableConfig,\n TableConfigChangeHandler,\n TableRowClickHandler,\n TableRowSelectHandler,\n TableSelectionModel,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n DragStartHandler,\n dragStrategy,\n MeasuredContainer,\n MeasuredContainerProps,\n MeasuredSize,\n} from \"@vuu-ui/vuu-ui-controls\";\nimport { metadataKeys, useId } from \"@vuu-ui/vuu-utils\";\nimport { useForkRef } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport {\n CSSProperties,\n FC,\n ForwardedRef,\n forwardRef,\n RefObject,\n useRef,\n useState,\n} from \"react\";\nimport { Row as DefaultRow, RowProps, RowProxy } from \"./Row\";\nimport { TableHeader } from \"./table-header/TableHeader\";\nimport { useTable } from \"./useTable\";\n\nimport type { DragDropState } from \"@vuu-ui/vuu-ui-controls\";\nimport \"./Table.css\";\nimport { ScrollingAPI } from \"./useTableScroll\";\nimport { useRowHeight } from \"./useRowHeight\";\n\nconst classBase = \"vuuTable\";\n\nconst { IDX, RENDER_IDX } = metadataKeys;\n\nexport type TableNavigationStyle = \"none\" | \"cell\" | \"row\";\n\nexport interface TableProps\n extends Omit<MeasuredContainerProps, \"onDragStart\" | \"onDrop\" | \"onSelect\"> {\n Row?: FC<RowProps>;\n allowConfigEditing?: boolean;\n allowDragDrop?: boolean | dragStrategy;\n /**\n * required if a fully featured column picker is to be available\n */\n availableColumns?: SchemaColumn[];\n /**\n * Provide configuration settings for Table. At minimun, column\n * descriptors must be provided.\n */\n config: TableConfig;\n dataSource: DataSource;\n disableFocus?: boolean;\n /**\n * Pixel height of headers. If specified here, this will take precedence over CSS\n * values and Table will not respond to density changes. Default value is 125% of\n * rowHeight, whether set vis rowHeight prop or CSS.\n */\n headerHeight?: number;\n /**\n * Defined how focus navigation within data cells will be handled by table.\n * Default is cell.\n */\n highlightedIndex?: number;\n navigationStyle?: TableNavigationStyle;\n /**\n * required if a fully featured column picker is to be available.\n * Available columns can be changed by the addition or removal of\n * one or more calculated columns.\n */\n onAvailableColumnsChange?: (columns: SchemaColumn[]) => void;\n /**\n * This callback will be invoked any time a config attribute of TableConfig\n * is changed. By persisting this value and providing it to the Table as a\n * prop, table state can be persisted across sessions.\n */\n onConfigChange?: TableConfigChangeHandler;\n onDragStart?: DragStartHandler;\n onDrop?: (dragDropState: DragDropState) => void;\n /**\n * When a Vuu feature e.g. context menu action, has been invoked, the Vuu server\n * response must be handled. This callback provides that response.\n */\n onFeatureInvocation?: (message: VuuFeatureInvocationMessage) => void;\n\n onHighlight?: (idx: number) => void;\n /**\n * callback invoked when user 'clicks' a table row. CLick triggered either\n * via mouse click or keyboard (default ENTER);\n */\n onRowClick?: TableRowClickHandler;\n onSelect?: TableRowSelectHandler;\n onSelectionChange?: SelectionChangeHandler;\n renderBufferSize?: number;\n /**\n * Pixel height of rows. If specified here, this will take precedence over CSS\n * values and Table will not respond to density changes.\n */\n rowHeight?: number;\n /**\n * imperative API for scrolling table\n */\n scrollingApiRef?: ForwardedRef<ScrollingAPI>;\n\n /**\n * Selection Bookends style the left and right edge of a selection block.\n * They are optional, value defaults to zero.\n * TODO this should just live in CSS\n */\n selectionBookendWidth?: number;\n selectionModel?: TableSelectionModel;\n /**\n * if false, table rendered without headers. Useful when table is being included in a\n * composite component.\n */\n showColumnHeaders?: boolean;\n}\n\nconst TableCore = ({\n Row = DefaultRow,\n allowDragDrop,\n availableColumns,\n config,\n containerRef,\n dataSource,\n disableFocus = false,\n highlightedIndex: highlightedIndexProp,\n id: idProp,\n navigationStyle = \"cell\",\n onAvailableColumnsChange,\n onConfigChange,\n onDragStart,\n onDrop,\n onFeatureInvocation,\n onHighlight,\n onRowClick: onRowClickProp,\n onSelect,\n onSelectionChange,\n renderBufferSize = 5,\n rowHeight,\n scrollingApiRef,\n selectionModel = \"extended\",\n showColumnHeaders = true,\n headerHeight = showColumnHeaders ? rowHeight * 1.25 : 0,\n size,\n}: Omit<TableProps, \"rowHeight\"> & {\n containerRef: RefObject<HTMLDivElement>;\n rowHeight: number;\n size: MeasuredSize;\n}) => {\n const id = useId(idProp);\n const {\n columnMap,\n columns,\n data,\n draggableRow,\n getRowOffset,\n handleContextMenuAction,\n headings,\n highlightedIndex,\n menuBuilder,\n onDataEdited,\n onMoveColumn,\n onMoveGroupColumn,\n onRemoveGroupColumn,\n onResizeColumn,\n onRowClick,\n onSortColumn,\n onToggleGroup,\n rowClassNameGenerator,\n scrollProps,\n tableAttributes,\n tableConfig,\n viewportMeasurements,\n ...tableProps\n } = useTable({\n allowDragDrop,\n availableColumns,\n config,\n containerRef,\n dataSource,\n disableFocus,\n headerHeight,\n highlightedIndex: highlightedIndexProp,\n id,\n navigationStyle,\n onAvailableColumnsChange,\n onConfigChange,\n onDragStart,\n onDrop,\n onFeatureInvocation,\n onHighlight,\n onRowClick: onRowClickProp,\n onSelect,\n onSelectionChange,\n renderBufferSize: Math.max(5, renderBufferSize),\n rowHeight,\n scrollingApiRef,\n selectionModel,\n size,\n });\n\n const contentContainerClassName = cx(`${classBase}-contentContainer`, {\n [`${classBase}-colLines`]: tableAttributes.columnSeparators,\n [`${classBase}-rowLines`]: tableAttributes.rowSeparators,\n [`${classBase}-zebra`]: tableAttributes.zebraStripes,\n });\n\n const cssVariables = {\n \"--content-height\": `${viewportMeasurements.contentHeight}px`,\n \"--content-width\": `${viewportMeasurements.contentWidth}px`,\n \"--horizontal-scrollbar-height\": `${viewportMeasurements.horizontalScrollbarHeight}px`,\n \"--pinned-width-left\": `${viewportMeasurements.pinnedWidthLeft}px`,\n \"--pinned-width-right\": `${viewportMeasurements.pinnedWidthRight}px`,\n \"--header-height\": `${headerHeight}px`,\n \"--row-height-prop\": `${rowHeight}px`,\n \"--total-header-height\": `${viewportMeasurements.totalHeaderHeight}px`,\n \"--vertical-scrollbar-width\": `${viewportMeasurements.verticalScrollbarWidth}px`,\n \"--viewport-body-height\": `${viewportMeasurements.viewportBodyHeight}px`,\n } as CSSProperties;\n\n return (\n <ContextMenuProvider\n menuActionHandler={handleContextMenuAction}\n menuBuilder={menuBuilder}\n >\n <div\n className={`${classBase}-scrollbarContainer`}\n ref={scrollProps.scrollbarContainerRef}\n style={cssVariables}\n >\n <div className={`${classBase}-scrollbarContent`} />\n </div>\n <div\n className={contentContainerClassName}\n ref={scrollProps.contentContainerRef}\n style={cssVariables}\n >\n <div\n {...tableProps}\n className={`${classBase}-table`}\n role=\"table\"\n tabIndex={disableFocus ? undefined : -1}\n >\n {showColumnHeaders ? (\n <TableHeader\n columns={scrollProps.columnsWithinViewport}\n headings={headings}\n onMoveColumn={onMoveColumn}\n onMoveGroupColumn={onMoveGroupColumn}\n onRemoveGroupColumn={onRemoveGroupColumn}\n onResizeColumn={onResizeColumn}\n onSortColumn={onSortColumn}\n tableConfig={tableConfig}\n tableId={id}\n virtualColSpan={scrollProps.virtualColSpan}\n />\n ) : null}\n <div className={`${classBase}-body`}>\n {data.map((data) => (\n <Row\n aria-rowindex={data[0] + 1}\n classNameGenerator={rowClassNameGenerator}\n columnMap={columnMap}\n columns={scrollProps.columnsWithinViewport}\n highlighted={highlightedIndex === data[IDX]}\n key={data[RENDER_IDX]}\n onClick={onRowClick}\n onDataEdited={onDataEdited}\n row={data}\n offset={getRowOffset(data)}\n onToggleGroup={onToggleGroup}\n virtualColSpan={scrollProps.virtualColSpan}\n zebraStripes={tableAttributes.zebraStripes}\n />\n ))}\n </div>\n </div>\n </div>\n {draggableRow}\n </ContextMenuProvider>\n );\n};\n\nexport const Table = forwardRef(function TableNext(\n {\n Row,\n allowDragDrop,\n availableColumns,\n className: classNameProp,\n config,\n dataSource,\n disableFocus,\n highlightedIndex,\n id,\n navigationStyle,\n onAvailableColumnsChange,\n onConfigChange,\n onDragStart,\n onDrop,\n onFeatureInvocation,\n onHighlight,\n onRowClick,\n onSelect,\n onSelectionChange,\n renderBufferSize,\n rowHeight: rowHeightProp,\n scrollingApiRef,\n selectionModel,\n showColumnHeaders,\n headerHeight,\n style: styleProp,\n ...htmlAttributes\n }: TableProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState<MeasuredSize>();\n\n const { rowHeight, rowRef } = useRowHeight({ rowHeight: rowHeightProp });\n\n if (config === undefined) {\n throw Error(\n \"vuu Table requires config prop. Minimum config is list of Column Descriptors\"\n );\n }\n if (dataSource === undefined) {\n throw Error(\"vuu Table requires dataSource prop\");\n }\n\n console.log({ rowHeight });\n\n return (\n <MeasuredContainer\n {...htmlAttributes}\n className={cx(classBase, classNameProp)}\n id={id}\n onResize={setSize}\n ref={useForkRef(containerRef, forwardedRef)}\n >\n <RowProxy ref={rowRef} height={rowHeightProp} />\n\n {size && rowHeight ? (\n <TableCore\n Row={Row}\n allowDragDrop={allowDragDrop}\n availableColumns={availableColumns}\n config={config}\n containerRef={containerRef}\n dataSource={dataSource}\n disableFocus={disableFocus}\n headerHeight={headerHeight}\n highlightedIndex={highlightedIndex}\n id={id}\n navigationStyle={navigationStyle}\n onAvailableColumnsChange={onAvailableColumnsChange}\n onConfigChange={onConfigChange}\n onDragStart={onDragStart}\n onDrop={onDrop}\n onFeatureInvocation={onFeatureInvocation}\n onHighlight={onHighlight}\n onRowClick={onRowClick}\n onSelect={onSelect}\n onSelectionChange={onSelectionChange}\n renderBufferSize={renderBufferSize}\n rowHeight={rowHeight}\n scrollingApiRef={scrollingApiRef}\n selectionModel={selectionModel}\n showColumnHeaders={showColumnHeaders}\n size={size}\n />\n ) : null}\n </MeasuredContainer>\n );\n});\n", "import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport {\n DataCellEditHandler,\n RuntimeColumnDescriptor,\n TableRowClickHandlerInternal,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n ColumnMap,\n isGroupColumn,\n isJsonColumn,\n isJsonGroup,\n metadataKeys,\n isNotHidden,\n RowSelected,\n RowClassNameGenerator,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n CSSProperties,\n forwardRef,\n memo,\n MouseEvent,\n useCallback,\n} from \"react\";\nimport { TableCell, TableGroupCell } from \"./table-cell\";\n\nimport \"./Row.css\";\n\nexport interface RowProps {\n className?: string;\n classNameGenerator?: RowClassNameGenerator;\n columnMap: ColumnMap;\n columns: RuntimeColumnDescriptor[];\n highlighted?: boolean;\n row: DataSourceRow;\n offset: number;\n onClick?: TableRowClickHandlerInternal;\n onDataEdited?: DataCellEditHandler;\n onToggleGroup?: (row: DataSourceRow, column: RuntimeColumnDescriptor) => void;\n style?: CSSProperties;\n virtualColSpan?: number;\n zebraStripes?: boolean;\n}\n\nconst { IDX, IS_EXPANDED, SELECTED } = metadataKeys;\nconst classBase = \"vuuTableRow\";\n\n// A dummy Table Row rendered once and not visible. We measure this to\n// determine height of Row(s) and monitor it for size changes (in\n// case of runtime density switch). This allows ListItem height to\n// be controlled purely through CSS.\nexport const RowProxy = forwardRef<HTMLDivElement, { height?: number }>(\n function RowProxy({ height }, forwardedRef) {\n return (\n <div\n aria-hidden\n className={cx(classBase, `${classBase}-proxy`)}\n ref={forwardedRef}\n style={{ height }}\n />\n );\n }\n);\n\n// export const Row = memo(\nexport const Row = memo(\n ({\n className: classNameProp,\n classNameGenerator,\n columnMap,\n columns,\n highlighted,\n row,\n offset,\n onClick,\n onDataEdited,\n onToggleGroup,\n virtualColSpan = 0,\n zebraStripes = false,\n ...htmlAttributes\n }: RowProps) => {\n const {\n [IDX]: rowIndex,\n [IS_EXPANDED]: isExpanded,\n [SELECTED]: selectionStatus,\n } = row;\n\n const handleRowClick = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n const rangeSelect = evt.shiftKey;\n const keepExistingSelection = evt.ctrlKey || evt.metaKey; /* mac only */\n onClick?.(evt, row, rangeSelect, keepExistingSelection);\n },\n [onClick, row]\n );\n\n const { True, First, Last } = RowSelected;\n\n const className = cx(\n classBase,\n classNameProp,\n classNameGenerator?.(row, columnMap),\n {\n [`${classBase}-even`]: zebraStripes && rowIndex % 2 === 0,\n [`${classBase}-expanded`]: isExpanded,\n [`${classBase}-highlighted`]: highlighted,\n [`${classBase}-selected`]: selectionStatus & True,\n [`${classBase}-selectedStart`]: selectionStatus & First,\n [`${classBase}-selectedEnd`]: selectionStatus & Last,\n }\n );\n\n const style = { transform: `translate3d(0px, ${offset}px, 0px)` };\n\n const handleGroupCellClick = useCallback(\n (evt: MouseEvent, column: RuntimeColumnDescriptor) => {\n if (isGroupColumn(column) || isJsonGroup(column, row, columnMap)) {\n evt.stopPropagation();\n onToggleGroup?.(row, column);\n }\n },\n [columnMap, onToggleGroup, row]\n );\n\n return (\n <div\n {...htmlAttributes}\n role=\"row\"\n className={className}\n onClick={handleRowClick}\n style={style}\n >\n <span className={`${classBase}-selectionDecorator vuuStickyLeft`} />\n {virtualColSpan > 0 ? (\n <div className=\"vuuTableCell\" style={{ width: virtualColSpan }} />\n ) : null}\n {columns.filter(isNotHidden).map((column) => {\n const isGroup = isGroupColumn(column);\n const isJsonCell = isJsonColumn(column);\n const Cell = isGroup ? TableGroupCell : TableCell;\n\n return (\n <Cell\n column={column}\n columnMap={columnMap}\n key={column.name}\n onClick={isGroup || isJsonCell ? handleGroupCellClick : undefined}\n onDataEdited={onDataEdited}\n row={row}\n />\n );\n })}\n <span className={`${classBase}-selectionDecorator vuuStickyRight`} />\n </div>\n );\n }\n);\nRow.displayName = \"Row\";\n", "import { DataItemCommitHandler, TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport { isNumericColumn } from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, useCallback } from \"react\";\nimport { useCell } from \"../useCell\";\n\nimport \"./TableCell.css\";\n\nconst classBase = \"vuuTableCell\";\n\nexport const TableCell = ({\n column,\n columnMap,\n onClick,\n onDataEdited,\n row,\n}: TableCellProps) => {\n const { className, style } = useCell(column, classBase);\n const { CellRenderer, index, name, valueFormatter } = column;\n const dataIdx = columnMap[name];\n\n const handleDataItemEdited = useCallback<DataItemCommitHandler>(\n (value) => {\n if (onDataEdited) {\n let typedValue = value;\n if (isNumericColumn(column) && typeof value === \"string\") {\n typedValue =\n column.serverDataType === \"double\"\n ? parseFloat(value)\n : parseInt(value);\n }\n return onDataEdited?.(row, name, typedValue);\n } else {\n throw Error(\n \"TableCell onDataEdited prop not supplied for an editable cell\"\n );\n }\n },\n [column, name, onDataEdited, row]\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n onClick?.(evt, column);\n },\n [column, onClick]\n );\n\n return (\n <div\n aria-colindex={index}\n className={className}\n onClick={onClick ? handleClick : undefined}\n role=\"cell\"\n style={style}\n >\n {CellRenderer ? (\n <CellRenderer\n column={column}\n columnMap={columnMap}\n onCommit={handleDataItemEdited}\n row={row}\n />\n ) : (\n valueFormatter(row[dataIdx])\n )}\n </div>\n );\n};\n", "import { GroupColumnDescriptor, TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport { getGroupValueAndOffset, metadataKeys } from \"@vuu-ui/vuu-utils\";\nimport { MouseEvent, useCallback } from \"react\";\nimport { useCell } from \"../useCell\";\nimport cx from \"clsx\";\n\nimport \"./TableGroupCell.css\";\n\nconst { IS_LEAF } = metadataKeys;\n\nconst classBase = \"vuuTableGroupCell\";\n\nexport const TableGroupCell = ({\n column,\n columnMap,\n onClick,\n row,\n}: TableCellProps) => {\n const { columns } = column as GroupColumnDescriptor;\n const [value, offset] = getGroupValueAndOffset(columns, row, columnMap);\n const { className, style } = useCell(column, classBase);\n\n const handleClick = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n onClick?.(evt, column);\n },\n [column, onClick]\n );\n\n const isLeaf = row[IS_LEAF];\n const spacers = Array(offset)\n .fill(0)\n .map((n, i) => <span className={`${classBase}-spacer`} key={i} />);\n\n return (\n <div\n className={cx(className, \"vuuTableCell\")}\n role=\"cell\"\n style={style}\n onClick={isLeaf ? undefined : handleClick}\n >\n {spacers}\n {isLeaf ? null : (\n <span className={`${classBase}-toggle`} data-icon=\"triangle-right\" />\n )}\n <span>{value}</span>\n </div>\n );\n};\n", "import { VuuSortType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n ColumnDescriptor,\n RuntimeColumnDescriptor,\n TableColumnResizeHandler,\n TableConfig,\n TableHeadings,\n} from \"@vuu-ui/vuu-table-types\";\nimport { isGroupColumn, isNotHidden } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { memo } from \"react\";\nimport { GroupHeaderCell, HeaderCell } from \"../header-cell\";\nimport { useTableHeader } from \"./useTableHeader\";\n\nexport type ColumnSortHandler = (\n column: ColumnDescriptor,\n addToExistingSort: boolean,\n sortType?: VuuSortType\n) => void;\n\nexport interface TableHeaderProps {\n classBase?: string;\n columns: RuntimeColumnDescriptor[];\n headings: TableHeadings;\n onResizeColumn: TableColumnResizeHandler;\n onMoveColumn: (columns: ColumnDescriptor[]) => void;\n onMoveGroupColumn: (columns: ColumnDescriptor[]) => void;\n onRemoveGroupColumn: (column: RuntimeColumnDescriptor) => void;\n onSortColumn: ColumnSortHandler;\n tableConfig: TableConfig;\n tableId: string;\n virtualColSpan?: number;\n}\n\nexport const TableHeader = memo(\n ({\n classBase = \"vuuTable\",\n columns,\n headings,\n onMoveColumn,\n onMoveGroupColumn,\n onRemoveGroupColumn,\n onResizeColumn,\n onSortColumn,\n tableConfig,\n tableId,\n virtualColSpan = 0,\n }: TableHeaderProps) => {\n const {\n draggableColumn,\n draggedColumnIndex,\n onClick,\n onMouseDown,\n setContainerRef,\n } = useTableHeader({\n columns,\n onMoveColumn,\n onSortColumn,\n tableConfig,\n });\n\n return (\n <div className={`${classBase}-col-headings`} ref={setContainerRef}>\n {headings.map((colHeaders, i) => (\n <div className=\"vuuTable-heading\" key={i}>\n {colHeaders.map(({ label, width }, j) => (\n <div key={j} className=\"vuuTable-headingCell\" style={{ width }}>\n {label}\n </div>\n ))}\n </div>\n ))}\n <div className={`${classBase}-col-headers`} role=\"row\">\n {virtualColSpan > 0 ? (\n <div\n role=\"cell\"\n className=\"vuuTableCell\"\n style={{ width: virtualColSpan }}\n />\n ) : null}\n {columns.filter(isNotHidden).map((col, i) =>\n isGroupColumn(col) ? (\n <GroupHeaderCell\n aria-colindex={col.index}\n column={col}\n data-index={i}\n key={col.name}\n onMoveColumn={onMoveGroupColumn}\n onRemoveColumn={onRemoveGroupColumn}\n onResize={onResizeColumn}\n />\n ) : (\n <HeaderCell\n aria-colindex={col.index}\n className={cx({\n \"vuuDraggable-dragAway\": i === draggedColumnIndex,\n })}\n column={col}\n data-index={i}\n id={`${tableId}-col-${i}`}\n key={col.name}\n onClick={onClick}\n onMouseDown={onMouseDown}\n onResize={onResizeColumn}\n />\n )\n )}\n {draggableColumn}\n </div>\n </div>\n );\n }\n);\nTableHeader.displayName = \"TableHeader\";\n", "import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n DropOptions,\n useDragDrop as useDragDrop,\n} from \"@vuu-ui/vuu-ui-controls\";\nimport { moveColumnTo, visibleColumnAtIndex } from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, RefCallback, useCallback, useRef } from \"react\";\nimport { TableHeaderProps } from \"./TableHeader\";\n\nexport interface TableHeaderHookProps\n extends Pick<\n TableHeaderProps,\n \"columns\" | \"onMoveColumn\" | \"onSortColumn\" | \"tableConfig\"\n > {\n label?: string;\n onMoveColumn: (columns: ColumnDescriptor[]) => void;\n onSortColumn: (column: ColumnDescriptor, addToExistingSort: boolean) => void;\n}\n\nexport const useTableHeader = ({\n columns,\n onMoveColumn,\n onSortColumn,\n tableConfig,\n}: TableHeaderHookProps) => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const scrollingContainerRef = useRef<HTMLDivElement | null>(null);\n const setContainerRef = useCallback<RefCallback<HTMLDivElement>>((el) => {\n containerRef.current = el;\n if (el) {\n scrollingContainerRef.current = el.closest(\".vuuTable-contentContainer\");\n } else {\n scrollingContainerRef.current = null;\n }\n }, []);\n\n const handleDropColumnHeader = useCallback(\n ({ fromIndex: moveFrom, toIndex: moveTo }: DropOptions) => {\n const column = columns[moveFrom];\n // columns are what get rendered, so these are the columns that\n // the drop operation relates to. We must translate these into\n // columns within the table config. Grouping complicates this\n // as the group columns are not present in columns but ARE in\n // config.columns\n const orderedColumns = moveColumnTo(columns, column, moveTo);\n\n const ofColumn =\n ({ name }: ColumnDescriptor) =>\n (col: ColumnDescriptor) =>\n col.name === name;\n\n const targetIndex = orderedColumns.findIndex(ofColumn(column));\n const nextColumn = orderedColumns[targetIndex + 1];\n const insertPos = nextColumn\n ? tableConfig.columns.findIndex(ofColumn(nextColumn))\n : -1;\n\n if (moveTo > moveFrom && insertPos !== -1) {\n onMoveColumn(moveColumnTo(tableConfig.columns, column, insertPos - 1));\n } else {\n onMoveColumn(moveColumnTo(tableConfig.columns, column, insertPos));\n }\n },\n [columns, onMoveColumn, tableConfig.columns]\n );\n\n const handleColumnHeaderClick = useCallback<\n MouseEventHandler<HTMLDivElement>\n >(\n (evt) => {\n const targetElement = evt.target as HTMLElement;\n const headerCell = targetElement.closest(\n \".vuuTableHeaderCell\"\n ) as HTMLElement;\n const colIdx = parseInt(headerCell?.dataset.index ?? \"-1\");\n const column = visibleColumnAtIndex(columns, colIdx);\n const isAdditive = evt.shiftKey;\n column && onSortColumn(column, isAdditive);\n },\n [columns, onSortColumn]\n );\n\n // Drag Drop column headers\n const {\n onMouseDown: columnHeaderDragMouseDown,\n draggable: draggableColumn,\n ...dragDropHook\n } = useDragDrop({\n allowDragDrop: true,\n containerRef,\n draggableClassName: `vuuTable`,\n itemQuery: \".vuuTableHeaderCell\",\n onDrop: handleDropColumnHeader,\n orientation: \"horizontal\",\n scrollingContainerRef,\n });\n\n return {\n draggableColumn,\n draggedColumnIndex: dragDropHook.draggedItemIndex,\n onClick: handleColumnHeaderClick,\n onMouseDown: columnHeaderDragMouseDown,\n setContainerRef,\n };\n};\n", "import {\n DataSourceConfig,\n DataSourceRow,\n DataSourceSubscribedMessage,\n SelectionChangeHandler,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n DataCellEditHandler,\n TableRowClickHandlerInternal,\n RuntimeColumnDescriptor,\n TableColumnResizeHandler,\n TableConfig,\n TableSelectionModel,\n TableRowSelectHandlerInternal,\n} from \"@vuu-ui/vuu-table-types\";\nimport { VuuRange, VuuSortType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n DragStartHandler,\n MeasuredProps,\n MeasuredSize,\n useDragDrop,\n} from \"@vuu-ui/vuu-ui-controls\";\nimport {\n applySort,\n asDataSourceRowObject,\n buildColumnMap,\n getIndexFromRowElement,\n isGroupColumn,\n isJsonGroup,\n isValidNumber,\n metadataKeys,\n updateColumn,\n useLayoutEffectSkipFirst,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n FocusEvent,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n buildContextMenuDescriptors,\n useHandleTableContextMenu,\n} from \"./context-menu\";\nimport { TableProps } from \"./Table\";\nimport { updateTableConfig } from \"./table-config\";\nimport { useCellEditing } from \"./useCellEditing\";\nimport { useDataSource } from \"./useDataSource\";\nimport { useInitialValue } from \"./useInitialValue\";\nimport { useKeyboardNavigation } from \"./useKeyboardNavigation\";\nimport { useSelection } from \"./useSelection\";\nimport { useTableContextMenu } from \"./useTableContextMenu\";\nimport {\n ColumnActionHide,\n ColumnActionPin,\n isShowColumnSettings,\n isShowTableSettings,\n PersistentColumnAction,\n useTableModel,\n} from \"./useTableModel\";\nimport { useTableScroll } from \"./useTableScroll\";\nimport { useTableViewport } from \"./useTableViewport\";\nimport { useTableAndColumnSettings } from \"./useTableAndColumnSettings\";\nimport { useRowClassNameGenerators } from \"./useRowClassNameGenerators\";\n\nconst stripInternalProperties = (tableConfig: TableConfig): TableConfig => {\n return tableConfig;\n};\n\nexport interface TableHookProps\n extends MeasuredProps,\n Pick<\n TableProps,\n | \"allowDragDrop\"\n | \"availableColumns\"\n | \"config\"\n | \"dataSource\"\n | \"disableFocus\"\n | \"highlightedIndex\"\n | \"id\"\n | \"navigationStyle\"\n | \"onAvailableColumnsChange\"\n | \"onConfigChange\"\n | \"onDragStart\"\n | \"onDrop\"\n | \"onFeatureInvocation\"\n | \"onHighlight\"\n | \"onSelect\"\n | \"onSelectionChange\"\n | \"onRowClick\"\n | \"renderBufferSize\"\n | \"scrollingApiRef\"\n > {\n containerRef: RefObject<HTMLDivElement>;\n headerHeight: number;\n rowHeight: number;\n selectionModel: TableSelectionModel;\n size: MeasuredSize;\n}\n\nconst { KEY, IS_EXPANDED, IS_LEAF } = metadataKeys;\n\nconst NULL_DRAG_DROP = {\n draggable: undefined,\n onMouseDown: undefined,\n};\nconst useNullDragDrop = () => NULL_DRAG_DROP;\n\nconst addColumn = (\n tableConfig: TableConfig,\n column: ColumnDescriptor\n): TableConfig => ({\n ...tableConfig,\n columns: tableConfig.columns.concat(column),\n});\n\nexport const useTable = ({\n allowDragDrop = false,\n availableColumns,\n config,\n containerRef,\n dataSource,\n disableFocus,\n headerHeight = 25,\n highlightedIndex: highlightedIndexProp,\n id,\n navigationStyle = \"cell\",\n onAvailableColumnsChange,\n onConfigChange,\n onDragStart,\n onDrop,\n onFeatureInvocation,\n onHighlight,\n onRowClick: onRowClickProp,\n onSelect,\n onSelectionChange,\n renderBufferSize = 0,\n rowHeight = 20,\n scrollingApiRef,\n selectionModel,\n size,\n}: TableHookProps) => {\n const [rowCount, setRowCount] = useState<number>(dataSource.size);\n if (dataSource === undefined) {\n throw Error(\"no data source provided to Vuu Table\");\n }\n\n const rowClassNameGenerator = useRowClassNameGenerators(config);\n\n const useRowDragDrop = allowDragDrop ? useDragDrop : useNullDragDrop;\n\n const menuBuilder = useMemo(\n () => buildContextMenuDescriptors(dataSource),\n [dataSource]\n );\n\n const onDataRowcountChange = useCallback((size: number) => {\n setRowCount(size);\n }, []);\n\n const {\n columns,\n dispatchTableModelAction,\n headings,\n tableAttributes,\n tableConfig,\n } = useTableModel(config, dataSource);\n\n useLayoutEffectSkipFirst(() => {\n dispatchTableModelAction({\n type: \"init\",\n tableConfig: config,\n dataSource,\n });\n }, [config, dataSource, dispatchTableModelAction]);\n\n const applyTableConfigChange = useCallback(\n (config: TableConfig) => {\n dispatchTableModelAction({\n type: \"init\",\n tableConfig: config,\n dataSource,\n });\n onConfigChange?.(stripInternalProperties(config));\n },\n [dataSource, dispatchTableModelAction, onConfigChange]\n );\n\n const columnMap = useMemo(\n () => buildColumnMap(dataSource.columns),\n [dataSource.columns]\n );\n\n const onSubscribed = useCallback(\n ({ tableSchema }: DataSourceSubscribedMessage) => {\n if (tableSchema) {\n dispatchTableModelAction({\n type: \"setTableSchema\",\n tableSchema,\n });\n } else {\n console.log(\"subscription message with no schema\");\n }\n },\n [dispatchTableModelAction]\n );\n\n const {\n getRowAtPosition,\n getRowOffset,\n setInSituRowOffset: viewportHookSetInSituRowOffset,\n setScrollTop: viewportHookSetScrollTop,\n ...viewportMeasurements\n } = useTableViewport({\n columns,\n headerHeight,\n headings,\n rowCount,\n rowHeight,\n size: size,\n });\n\n const initialRange = useInitialValue<VuuRange>({\n from: 0,\n to: viewportMeasurements.rowCount,\n });\n\n const { data, dataRef, getSelectedRows, range, setRange } = useDataSource({\n dataSource,\n // We need to factor this out of Table\n onFeatureInvocation,\n renderBufferSize,\n onSizeChange: onDataRowcountChange,\n onSubscribed,\n range: initialRange,\n });\n\n const { requestScroll, ...scrollProps } = useTableScroll({\n columns,\n getRowAtPosition,\n rowHeight,\n scrollingApiRef,\n setRange,\n onVerticalScroll: viewportHookSetScrollTop,\n onVerticalScrollInSitu: viewportHookSetInSituRowOffset,\n viewportMeasurements,\n });\n\n // TODO does this belong here ?\n const handleConfigEditedInSettingsPanel = useCallback(\n (tableConfig: TableConfig) => {\n dispatchTableModelAction({\n type: \"init\",\n tableConfig,\n dataSource,\n });\n onConfigChange?.(stripInternalProperties(tableConfig));\n },\n [dataSource, dispatchTableModelAction, onConfigChange]\n );\n\n const handleDataSourceConfigChanged = useCallback(\n (dataSourceConfig: DataSourceConfig) => {\n dataSource.config = {\n ...dataSource.config,\n ...dataSourceConfig,\n };\n },\n [dataSource]\n );\n\n useEffect(() => {\n dataSource.on(\"config\", (config, confirmed, changes) => {\n const scrollSensitiveChanges =\n changes?.filterChanged || changes?.groupByChanged;\n if (scrollSensitiveChanges && dataSource.range.from > 0) {\n requestScroll({\n type: \"scroll-end\",\n direction: \"home\",\n });\n }\n dispatchTableModelAction({\n type: \"tableConfig\",\n ...config,\n confirmed,\n });\n });\n }, [dataSource, dispatchTableModelAction, requestScroll]);\n\n const handleCreateCalculatedColumn = useCallback(\n (column: ColumnDescriptor) => {\n dataSource.columns = dataSource.columns.concat(column.name);\n applyTableConfigChange(addColumn(tableConfig, column));\n },\n [dataSource, tableConfig, applyTableConfigChange]\n );\n\n const hideColumns = useCallback(\n (action: ColumnActionHide) => {\n const { columns } = action;\n const hiddenColumns = columns.map((c) => c.name);\n const newTableConfig = {\n ...tableConfig,\n columns: tableConfig.columns.map((col) =>\n hiddenColumns.includes(col.name) ? { ...col, hidden: true } : col\n ),\n };\n applyTableConfigChange(newTableConfig);\n },\n [tableConfig, applyTableConfigChange]\n );\n\n const pinColumn = useCallback(\n (action: ColumnActionPin) => {\n applyTableConfigChange({\n ...tableConfig,\n columns: updateColumn(tableConfig.columns, {\n ...action.column,\n pin: action.pin,\n }),\n });\n },\n [tableConfig, applyTableConfigChange]\n );\n\n const { showColumnSettingsPanel, showTableSettingsPanel } =\n useTableAndColumnSettings({\n availableColumns:\n availableColumns ??\n tableConfig.columns.map(({ name, serverDataType = \"string\" }) => ({\n name,\n serverDataType,\n })),\n onAvailableColumnsChange,\n onConfigChange: handleConfigEditedInSettingsPanel,\n onCreateCalculatedColumn: handleCreateCalculatedColumn,\n onDataSourceConfigChange: handleDataSourceConfigChanged,\n tableConfig,\n });\n\n const onPersistentColumnOperation = useCallback(\n (action: PersistentColumnAction) => {\n if (isShowColumnSettings(action)) {\n showColumnSettingsPanel(action);\n } else if (isShowTableSettings(action)) {\n showTableSettingsPanel();\n } else {\n switch (action.type) {\n case \"hideColumns\":\n return hideColumns(action);\n case \"pinColumn\":\n return pinColumn(action);\n default:\n dispatchTableModelAction(action);\n }\n }\n },\n [\n dispatchTableModelAction,\n hideColumns,\n pinColumn,\n showColumnSettingsPanel,\n showTableSettingsPanel,\n ]\n );\n\n const handleContextMenuAction = useHandleTableContextMenu({\n dataSource,\n onPersistentColumnOperation,\n });\n\n const handleSort = useCallback(\n (column: ColumnDescriptor, extendSort = false, sortType?: VuuSortType) => {\n if (dataSource) {\n dataSource.sort = applySort(\n dataSource.sort,\n column,\n extendSort,\n sortType\n );\n }\n },\n [dataSource]\n );\n\n const resizeCells = useRef<HTMLElement[] | undefined>();\n\n const onResizeColumn: TableColumnResizeHandler = useCallback(\n (phase, columnName, width) => {\n const column = columns.find((column) => column.name === columnName);\n if (column) {\n if (phase === \"resize\") {\n resizeCells.current?.forEach((cell) => {\n cell.style.width = `${width}px`;\n });\n } else if (phase === \"end\") {\n resizeCells.current = undefined;\n if (isValidNumber(width)) {\n dispatchTableModelAction({\n type: \"resizeColumn\",\n phase,\n column,\n width,\n });\n onConfigChange?.(\n stripInternalProperties(\n updateTableConfig(tableConfig, {\n type: \"col-size\",\n column,\n width,\n })\n )\n );\n }\n } else {\n const byColIndex = `[aria-colindex='${column.index}']`;\n resizeCells.current = Array.from(\n containerRef.current?.querySelectorAll(\n `.vuuTableCell${byColIndex},.vuuTableHeaderCell${byColIndex}`\n ) ?? []\n );\n dispatchTableModelAction({\n type: \"resizeColumn\",\n phase,\n column,\n width,\n });\n }\n } else {\n throw Error(\n `useDataTable.handleColumnResize, column ${columnName} not found`\n );\n }\n },\n [\n columns,\n dispatchTableModelAction,\n onConfigChange,\n tableConfig,\n containerRef,\n ]\n );\n\n const onToggleGroup = useCallback(\n (row: DataSourceRow, column: RuntimeColumnDescriptor) => {\n const isJson = isJsonGroup(column, row, columnMap);\n const key = row[KEY];\n\n if (row[IS_EXPANDED]) {\n dataSource.closeTreeNode(key, true);\n if (isJson) {\n const idx = columns.indexOf(column);\n const rows = dataSource.getRowsAtDepth?.(idx + 1);\n if (rows && !rows.some((row) => row[IS_EXPANDED] || row[IS_LEAF])) {\n dispatchTableModelAction({\n type: \"hideColumns\",\n columns: columns.slice(idx + 2),\n });\n }\n }\n } else {\n dataSource.openTreeNode(key);\n if (isJson) {\n const childRows = dataSource.getChildRows?.(key);\n const idx = columns.indexOf(column) + 1;\n const columnsToShow = [columns[idx]];\n if (childRows && childRows.some((row) => row[IS_LEAF])) {\n columnsToShow.push(columns[idx + 1]);\n }\n if (columnsToShow.some((col) => col.hidden)) {\n dispatchTableModelAction({\n type: \"showColumns\",\n columns: columnsToShow,\n });\n }\n }\n }\n },\n [columnMap, columns, dataSource, dispatchTableModelAction]\n );\n\n const {\n highlightedIndexRef,\n navigate,\n onFocus: navigationFocus,\n onKeyDown: navigationKeyDown,\n ...containerProps\n } = useKeyboardNavigation({\n columnCount: columns.filter((c) => c.hidden !== true).length,\n containerRef,\n disableFocus,\n highlightedIndex: highlightedIndexProp,\n navigationStyle,\n requestScroll,\n rowCount: dataSource?.size,\n onHighlight,\n viewportRange: range,\n viewportRowCount: viewportMeasurements.rowCount,\n });\n\n const {\n onBlur: editingBlur,\n onDoubleClick: editingDoubleClick,\n onKeyDown: editingKeyDown,\n onFocus: editingFocus,\n } = useCellEditing({\n navigate,\n });\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n navigationFocus();\n if (!e.defaultPrevented) {\n editingFocus(e);\n }\n },\n [editingFocus, navigationFocus]\n );\n\n const onContextMenu = useTableContextMenu({\n columns,\n data,\n dataSource,\n getSelectedRows,\n });\n\n const onMoveGroupColumn = useCallback(\n (columns: ColumnDescriptor[]) => {\n dataSource.groupBy = columns.map((col) => col.name);\n },\n [dataSource]\n );\n\n const onRemoveGroupColumn = useCallback(\n (column: RuntimeColumnDescriptor) => {\n if (isGroupColumn(column)) {\n dataSource.groupBy = [];\n } else {\n if (dataSource && dataSource.groupBy.includes(column.name)) {\n dataSource.groupBy = dataSource.groupBy.filter(\n (columnName) => columnName !== column.name\n );\n }\n }\n },\n [dataSource]\n );\n\n const handleSelectionChange: SelectionChangeHandler = useCallback(\n (selected) => {\n dataSource.select(selected);\n onSelectionChange?.(selected);\n },\n [dataSource, onSelectionChange]\n );\n\n const handleSelect = useCallback<TableRowSelectHandlerInternal>(\n (row) => {\n if (onSelect) {\n onSelect(row === null ? null : asDataSourceRowObject(row, columnMap));\n }\n },\n [columnMap, onSelect]\n );\n\n const {\n onKeyDown: selectionHookKeyDown,\n onRowClick: selectionHookOnRowClick,\n } = useSelection({\n highlightedIndexRef,\n onSelect: handleSelect,\n onSelectionChange: handleSelectionChange,\n selectionModel,\n });\n\n const handleRowClick = useCallback<TableRowClickHandlerInternal>(\n (evt, row, rangeSelect, keepExistingSelection) => {\n selectionHookOnRowClick(evt, row, rangeSelect, keepExistingSelection);\n onRowClickProp?.(evt, asDataSourceRowObject(row, columnMap));\n },\n [columnMap, onRowClickProp, selectionHookOnRowClick]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n navigationKeyDown(e);\n if (!e.defaultPrevented) {\n editingKeyDown(e);\n }\n if (!e.defaultPrevented) {\n selectionHookKeyDown(e);\n }\n },\n [navigationKeyDown, editingKeyDown, selectionHookKeyDown]\n );\n\n const onMoveColumn = useCallback(\n (columns: ColumnDescriptor[]) => {\n const newTableConfig = {\n ...tableConfig,\n columns,\n };\n\n dispatchTableModelAction({\n type: \"init\",\n tableConfig: newTableConfig,\n dataSource,\n });\n onConfigChange?.(stripInternalProperties(newTableConfig));\n },\n [dataSource, dispatchTableModelAction, onConfigChange, tableConfig]\n );\n\n const handleDropRow = useCallback(\n (dragDropState) => {\n onDrop?.(dragDropState);\n },\n [onDrop]\n );\n\n const handleDataEdited = useCallback<DataCellEditHandler>(\n async (row, columnName, value) =>\n dataSource.applyEdit(row, columnName, value),\n [dataSource]\n );\n\n const handleDragStartRow = useCallback<DragStartHandler>(\n (dragDropState) => {\n const { initialDragElement } = dragDropState;\n const rowIndex = getIndexFromRowElement(initialDragElement);\n const row = dataRef.current.find((row) => row[0] === rowIndex);\n if (row) {\n dragDropState.setPayload(row);\n } else {\n // should we abort the operation ?\n }\n onDragStart?.(dragDropState);\n },\n [dataRef, onDragStart]\n );\n\n // Drag Drop rows\n const { onMouseDown: rowDragMouseDown, draggable: draggableRow } =\n useRowDragDrop({\n allowDragDrop,\n containerRef,\n draggableClassName: `vuuTable`,\n id,\n onDragStart: handleDragStartRow,\n onDrop: handleDropRow,\n orientation: \"vertical\",\n itemQuery: \".vuuTableRow\",\n });\n\n return {\n ...containerProps,\n \"aria-rowcount\": dataSource.size,\n rowClassNameGenerator,\n draggableRow,\n onBlur: editingBlur,\n onDoubleClick: editingDoubleClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onMouseDown: rowDragMouseDown,\n columnMap,\n columns,\n data,\n getRowOffset,\n handleContextMenuAction,\n headings,\n highlightedIndex: highlightedIndexRef.current,\n menuBuilder,\n onContextMenu,\n onDataEdited: handleDataEdited,\n onMoveColumn,\n onMoveGroupColumn,\n onRemoveGroupColumn,\n onRowClick: handleRowClick,\n onSortColumn: handleSort,\n onResizeColumn,\n onToggleGroup,\n scrollProps,\n // TODO don't think we need these ...\n tableAttributes,\n tableConfig,\n viewportMeasurements,\n };\n};\n", "import {\n ContextMenuItemDescriptor,\n DataSource,\n MenuBuilder,\n} from \"@vuu-ui/vuu-data-types\";\nimport { RuntimeColumnDescriptor, PinLocation } from \"@vuu-ui/vuu-table-types\";\nimport { isNumericColumn } from \"@vuu-ui/vuu-utils\";\n\nexport type ContextMenuLocation = \"header\" | \"filter\" | \"grid\";\n\ntype MaybeColumn = { column?: RuntimeColumnDescriptor };\n\nexport const buildContextMenuDescriptors =\n (dataSource?: DataSource): MenuBuilder =>\n (location, options) => {\n const descriptors: ContextMenuItemDescriptor[] = [];\n if (dataSource === undefined) {\n return descriptors;\n }\n //TODO which should it be ?\n if (location === \"header\" || location === \"column-menu\") {\n descriptors.push(\n ...buildSortMenuItems(options as MaybeColumn, dataSource)\n );\n descriptors.push(\n ...buildGroupMenuItems(options as MaybeColumn, dataSource)\n );\n descriptors.push(\n ...buildAggregationMenuItems(options as MaybeColumn, dataSource)\n );\n descriptors.push(...buildColumnDisplayMenuItems(options as MaybeColumn));\n descriptors.push({\n action: \"column-settings\",\n icon: \"cog\",\n label: `Column Settings`,\n options,\n });\n descriptors.push({\n action: \"table-settings\",\n icon: \"cog\",\n label: `DataGrid Settings`,\n options,\n });\n }\n\n // if (options?.selectedRowCount){\n // // TODO pass the table name\n // const rpcActions = getRpcActions();\n // for (let {label, method} of rpcActions){\n // descriptors.push({action: Action.RpcCall, label, options: {method}})\n // }\n // }\n\n return descriptors;\n };\n\nfunction buildSortMenuItems(\n options: MaybeColumn,\n { sort: { sortDefs } }: DataSource\n): ContextMenuItemDescriptor[] {\n const { column } = options;\n const menuItems: ContextMenuItemDescriptor[] = [];\n if (column === undefined) {\n return menuItems;\n }\n\n const hasSort = sortDefs.length > 0;\n\n if (column.sorted === \"A\") {\n menuItems.push({\n label: \"Reverse Sort (DSC)\",\n action: \"sort-dsc\",\n options,\n });\n } else if (column.sorted === \"D\") {\n menuItems.push({\n label: \"Reverse Sort (ASC)\",\n action: \"sort-asc\",\n options,\n });\n } else if (typeof column.sorted === \"number\") {\n if (column.sorted > 0) {\n menuItems.push({\n label: \"Reverse Sort (DSC)\",\n action: \"sort-add-dsc\",\n options,\n });\n } else {\n menuItems.push({\n label: \"Reverse Sort (ASC)\",\n action: \"sort-add-asc\",\n options,\n });\n }\n\n // removing the last column from a sort would be a no-op, so pointless\n if (hasSort && Math.abs(column.sorted) < sortDefs.length) {\n menuItems.push({\n label: \"Remove from sort\",\n action: \"sort-remove\",\n options,\n });\n }\n\n menuItems.push({\n label: \"New Sort\",\n children: [\n { label: \"Ascending\", action: \"sort-asc\", options },\n { label: \"Descending\", action: \"sort-dsc\", options },\n ],\n });\n } else if (hasSort) {\n menuItems.push({\n label: \"Add to sort\",\n children: [\n { label: \"Ascending\", action: \"sort-add-asc\", options },\n { label: \"Descending\", action: \"sort-add-dsc\", options },\n ],\n });\n menuItems.push({\n label: \"New Sort\",\n children: [\n { label: \"Ascending\", action: \"sort-asc\", options },\n { label: \"Descending\", action: \"sort-dsc\", options },\n ],\n });\n } else {\n menuItems.push({\n label: \"Sort\",\n children: [\n { label: \"Ascending\", action: \"sort-asc\", options },\n { label: \"Descending\", action: \"sort-dsc\", options },\n ],\n });\n }\n return menuItems;\n}\n\nfunction buildAggregationMenuItems(\n options: MaybeColumn,\n dataSource: DataSource\n): ContextMenuItemDescriptor[] {\n const { column } = options;\n if (column === undefined || dataSource.groupBy.length === 0) {\n return [];\n }\n const { name, label = name } = column;\n\n return [\n {\n label: `Aggregate ${label}`,\n children: [\n { label: \"Count\", action: \"agg-count\", options },\n { label: \"Distinct\", action: \"agg-distinct\", options },\n ].concat(\n isNumericColumn(column)\n ? [\n { label: \"Sum\", action: \"agg-sum\", options },\n { label: \"Avg\", action: \"agg-avg\", options },\n { label: \"High\", action: \"agg-high\", options },\n { label: \"Low\", action: \"agg-low\", options },\n ]\n : []\n ),\n },\n ];\n}\n\nconst pinColumn = (options: unknown, pinLocation: PinLocation) =>\n ({\n label: `Pin ${pinLocation}`,\n action: `column-pin-${pinLocation}`,\n options,\n } as ContextMenuItemDescriptor);\n\nconst pinLeft = (options: unknown) => pinColumn(options, \"left\");\nconst pinFloating = (options: unknown) => pinColumn(options, \"floating\");\nconst pinRight = (options: unknown) => pinColumn(options, \"right\");\n\nfunction buildColumnDisplayMenuItems(\n options: MaybeColumn\n): ContextMenuItemDescriptor[] {\n const { column } = options;\n if (column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: ContextMenuItemDescriptor[] = [\n {\n label: `Hide column`,\n action: \"column-hide\",\n options,\n },\n {\n label: `Remove column`,\n action: \"column-remove\",\n options,\n },\n ];\n\n if (pin === undefined) {\n menuItems.push({\n label: `Pin column`,\n children: [pinLeft(options), pinFloating(options), pinRight(options)],\n });\n } else if (pin === \"left\") {\n menuItems.push(\n { label: \"Unpin column\", action: \"column-unpin\", options },\n {\n label: `Pin column`,\n children: [pinFloating(options), pinRight(options)],\n }\n );\n } else if (pin === \"right\") {\n menuItems.push(\n { label: \"Unpin column\", action: \"column-unpin\", options },\n {\n label: `Pin column`,\n children: [pinLeft(options), pinFloating(options)],\n }\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n { label: \"Unpin column\", action: \"column-unpin\", options },\n {\n label: `Pin column`,\n children: [pinLeft(options), pinRight(options)],\n }\n );\n }\n\n return menuItems;\n}\n\nfunction buildGroupMenuItems(\n options: MaybeColumn,\n { groupBy }: DataSource\n): ContextMenuItemDescriptor[] {\n const { column } = options;\n const menuItems: ContextMenuItemDescriptor[] = [];\n if (column === undefined) {\n return menuItems;\n }\n\n const { name, label = name } = column;\n\n if (groupBy.length === 0) {\n menuItems.push({\n label: `Group by ${label}`,\n action: \"group\",\n options,\n });\n } else {\n menuItems.push({\n label: `Add ${label} to group by`,\n action: \"group-add\",\n options,\n });\n }\n\n return menuItems;\n}\n", "/* eslint-disable no-sequences */\nimport { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { removeColumnFromFilter } from \"@vuu-ui/vuu-utils\";\nimport { VuuFilter } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n DataSource,\n DataSourceFilter,\n MenuActionHandler,\n} from \"@vuu-ui/vuu-data-types\";\nimport { PersistentColumnAction } from \"../useTableModel\";\nimport {\n addGroupColumn,\n addSortColumn,\n AggregationType,\n setAggregations,\n setSortColumn,\n} from \"@vuu-ui/vuu-utils\";\n\nexport interface ContextMenuOptions {\n column?: RuntimeColumnDescriptor;\n filter?: Filter;\n sort?: VuuFilter;\n}\nexport interface ContextMenuHookProps {\n dataSource?: DataSource;\n /**\n * A persistent Column Operation is any manipulation of a table column that should be\n * persisted across user sessions. e.g. if user pins a column, column should still be\n * pinned next time user opens app.\n */\n onPersistentColumnOperation: (action: PersistentColumnAction) => void;\n}\n\nconst removeFilterColumn = (\n dataSourceFilter: DataSourceFilter,\n column: RuntimeColumnDescriptor\n) => {\n if (dataSourceFilter.filterStruct && column) {\n const [filterStruct, filter] = removeColumnFromFilter(\n column,\n dataSourceFilter.filterStruct\n );\n return {\n filter,\n filterStruct,\n };\n } else {\n return dataSourceFilter;\n }\n};\n\nconst { Average, Count, Distinct, High, Low, Sum } = AggregationType;\n\nexport const useHandleTableContextMenu = ({\n dataSource,\n onPersistentColumnOperation,\n}: ContextMenuHookProps) => {\n /** return {boolean} used by caller to determine whether to forward to additional installed context menu handlers */\n const handleContextMenuAction: MenuActionHandler = (action): boolean => {\n const gridOptions = action.options as ContextMenuOptions;\n if (gridOptions.column && dataSource) {\n const { column } = gridOptions;\n // prettier-ignore\n switch(action.menuId){\n case \"sort-asc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-dsc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"D\")), true;\n case \"sort-add-asc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-add-dsc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"D\")), true;\n case \"group\": return (dataSource.groupBy = addGroupColumn(dataSource.groupBy, column)), true;\n case \"group-add\": return (dataSource.groupBy = addGroupColumn(dataSource.groupBy, column)), true;\n case \"column-hide\": return onPersistentColumnOperation({type: \"hideColumns\", columns: [column]}), true;\n case \"column-remove\": return (dataSource.columns = dataSource.columns.filter(name => name !== column.name)), true\n case \"filter-remove-column\": return (dataSource.filter = removeFilterColumn(dataSource.filter, column)), true;\n case \"remove-filters\": return (dataSource.filter = {filter:\"\"}), true;\n case \"agg-avg\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Average)), true;\n case \"agg-high\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, High)), true;\n case \"agg-low\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Low)), true;\n case \"agg-count\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Count)), true;\n case \"agg-distinct\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Distinct)), true;\n case \"agg-sum\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Sum)), true;\n case \"column-pin-floating\": return onPersistentColumnOperation({type: \"pinColumn\", column, pin: \"floating\"}), true;\n case \"column-pin-left\": return onPersistentColumnOperation({type: \"pinColumn\", column, pin: \"left\"}), true;\n case \"column-pin-right\": return onPersistentColumnOperation({type: \"pinColumn\", column, pin: \"right\"}), true;\n case \"column-unpin\": return onPersistentColumnOperation({type: \"pinColumn\", column, pin: undefined}), true\n case \"column-settings\": return onPersistentColumnOperation({type: \"columnSettings\", column}), true\n case \"table-settings\": return onPersistentColumnOperation({type: \"tableSettings\"}), true\n default:\n }\n }\n return false;\n };\n\n return handleContextMenuAction;\n};\n", "import { ColumnDescriptor, TableConfig } from \"@vuu-ui/vuu-table-types\";\n\nexport type MoveColumnTableConfigAction = {\n type: \"col-move\";\n column: ColumnDescriptor;\n fromIndex: number;\n toIndex: number;\n};\n\nexport type ResizeColumnTableConfigAction = {\n type: \"col-size\";\n column: ColumnDescriptor;\n width: number;\n};\n\nexport type SubscribeColumnTableConfigAction = {\n type: \"subscribed\";\n column: ColumnDescriptor;\n value: boolean;\n};\n\nexport type UpdateColumnPropertyTableConfigAction = {\n type: \"column-prop\";\n column: ColumnDescriptor;\n property: keyof ColumnDescriptor;\n value: boolean | number | string;\n};\n\nexport type TableConfigAction =\n | MoveColumnTableConfigAction\n | ResizeColumnTableConfigAction\n | UpdateColumnPropertyTableConfigAction;\n\nexport const updateTableConfig = (\n config: TableConfig,\n action: TableConfigAction\n): TableConfig => {\n switch (action.type) {\n case \"col-size\":\n return {\n ...config,\n columns: config.columns.map((col) =>\n col.name === action.column.name\n ? { ...col, width: action.width }\n : col\n ),\n };\n case \"column-prop\":\n return {\n ...config,\n columns: config.columns.map((col) =>\n col.name === action.column.name\n ? { ...col, [action.property]: action.value }\n : col\n ),\n };\n\n default:\n return config;\n }\n};\n", "import { isCharacterKey } from \"@vuu-ui/vuu-utils\";\nimport {\n FocusEventHandler,\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent,\n useCallback,\n} from \"react\";\nimport { cellIsTextInput } from \"./table-dom-utils\";\n\nexport interface CellEditingHookProps {\n navigate: () => void;\n}\n\nexport const useCellEditing = ({ navigate }: CellEditingHookProps) => {\n const commitHandler = useCallback(() => {\n navigate();\n }, [navigate]);\n\n const editInput = useCallback(\n (evt: MouseEvent<HTMLElement> | ReactKeyboardEvent<HTMLElement>) => {\n const cellEl = evt.target as HTMLDivElement;\n const input = cellEl.matches(\"input\")\n ? (cellEl as HTMLInputElement)\n : cellEl.querySelector(\"input\");\n\n if (input) {\n input.focus();\n input.select();\n }\n },\n []\n );\n\n const focusInput = useCallback(\n (evt: MouseEvent<HTMLElement> | ReactKeyboardEvent<HTMLElement>) => {\n const cellEl = evt.target as HTMLDivElement;\n const input = cellEl.querySelector(\"input\");\n if (input) {\n input.focus();\n input.select();\n }\n },\n []\n );\n\n const handleKeyDown = useCallback(\n (e: ReactKeyboardEvent<HTMLElement>) => {\n const el = e.target as HTMLElement;\n if (cellIsTextInput(el)) {\n if (isCharacterKey(e.key)) {\n editInput(e);\n } else if (e.key === \"Enter\") {\n focusInput(e);\n }\n }\n },\n [editInput, focusInput]\n );\n\n const handleDoubleClick = useCallback(\n (e: MouseEvent<HTMLElement>) => {\n const el = e.target as HTMLElement;\n if (el.matches(\"input\") || el.querySelector(\"input\")) {\n editInput(e);\n e.stopPropagation();\n }\n },\n [editInput]\n );\n\n const handleBlur = useCallback<FocusEventHandler>(\n (e) => {\n const el = e.target as HTMLElement;\n el.removeEventListener(\"vuu-commit\", commitHandler, true);\n },\n [commitHandler]\n );\n\n const handleFocus = useCallback<FocusEventHandler>(\n (e) => {\n const el = e.target as HTMLElement;\n el.addEventListener(\"vuu-commit\", commitHandler, true);\n },\n [commitHandler]\n );\n\n return {\n onBlur: handleBlur,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n };\n};\n", "import { RefObject } from \"react\";\nimport { ScrollDirection } from \"./useTableScroll\";\n\n/**\n * [rowIndex, colIndex\n */\nexport type CellPos = [number, number];\n\nexport const headerCellQuery = (colIdx: number) =>\n `.vuuTable-col-headers .vuuTableHeaderCell:nth-child(${colIdx})`;\n\nexport const dataCellQuery = (rowIdx: number, colIdx: number) =>\n `.vuuTable-body > [aria-rowindex='${rowIdx + 1}'] > [role='cell']:nth-child(${\n colIdx + 1\n })`;\n\nexport const getTableCell = (\n containerRef: RefObject<HTMLElement>,\n\n [rowIdx, colIdx]: CellPos\n) => {\n const cssQuery =\n rowIdx === -1 ? headerCellQuery(colIdx) : dataCellQuery(rowIdx, colIdx);\n const cell = containerRef.current?.querySelector(\n cssQuery\n ) as HTMLTableCellElement;\n\n if (cellIsEditable(cell)) {\n // Dropdown gets focus, Input does not\n const focusableContent = cell.querySelector(\"button\") as HTMLElement;\n return focusableContent || cell;\n } else {\n return cell;\n }\n};\n\nexport const cellIsEditable = (cell: HTMLDivElement | null) =>\n cell?.classList.contains(\"vuuTableCell-editable\");\n\nexport const cellIsTextInput = (cell: HTMLElement) =>\n cell.querySelector(\".vuuTableInputCell\") !== null;\n\nexport function getRowIndex(rowEl?: HTMLElement) {\n if (rowEl) {\n const idx: string | null = rowEl.ariaRowIndex;\n if (idx !== null) {\n return parseInt(idx, 10) - 1;\n }\n }\n return -1;\n}\n\nconst closestRow = (el: HTMLElement) =>\n el.closest('[role=\"row\"]') as HTMLElement;\n\nexport const closestRowIndex = (el: HTMLElement) => getRowIndex(closestRow(el));\n\nconst NO_SCROLL_NECESSARY = [undefined, undefined] as const;\n\nexport const howFarIsRowOutsideViewport = (\n rowEl: HTMLElement,\n totalHeaderHeight: number,\n contentContainer = rowEl.closest(\".vuuTable-contentContainer\")\n): readonly [ScrollDirection | undefined, number | undefined] => {\n //TODO lots of scope for optimisation here\n if (contentContainer) {\n // TODO take totalHeaderHeight into consideration\n const viewport = contentContainer?.getBoundingClientRect();\n const upperBoundary = viewport.top + totalHeaderHeight;\n const row = rowEl.getBoundingClientRect();\n if (row) {\n if (row.bottom > viewport.bottom) {\n return [\"down\", row.bottom - viewport.bottom];\n } else if (row.top < upperBoundary) {\n return [\"up\", row.top - upperBoundary];\n } else {\n return NO_SCROLL_NECESSARY;\n }\n } else {\n throw Error(\"Whats going on, row not found\");\n }\n } else {\n throw Error(\"Whats going on, scrollbar container not found\");\n }\n};\n", "import {\n DataSource,\n DataSourceRow,\n DataSourceSubscribedMessage,\n SubscribeCallback,\n VuuFeatureInvocationMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { getFullRange, NULL_RANGE, rangesAreSame } from \"@vuu-ui/vuu-utils\";\nimport { GridAction } from \"@vuu-ui/vuu-table-types\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { MovingWindow } from \"./moving-window\";\n\nexport interface DataSourceHookProps {\n dataSource: DataSource;\n onFeatureInvocation?: (message: VuuFeatureInvocationMessage) => void;\n onSizeChange: (size: number) => void;\n onSubscribed: (subscription: DataSourceSubscribedMessage) => void;\n range?: VuuRange;\n renderBufferSize?: number;\n}\n\nexport const isVuuFeatureInvocation = (\n action: GridAction\n): action is VuuFeatureInvocationMessage =>\n action.type === \"vuu-link-created\" || action.type === \"vuu-link-removed\";\n\nexport const useDataSource = ({\n dataSource,\n onFeatureInvocation,\n onSizeChange,\n onSubscribed,\n range = NULL_RANGE,\n renderBufferSize = 0,\n}: DataSourceHookProps) => {\n const [, forceUpdate] = useState<unknown>(null);\n const data = useRef<DataSourceRow[]>([]);\n const isMounted = useRef(true);\n const hasUpdated = useRef(false);\n const rangeRef = useRef<VuuRange>(range);\n\n const dataWindow = useMemo(\n () => new MovingWindow(getFullRange(range, renderBufferSize)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const setData = useCallback(\n (updates: DataSourceRow[]) => {\n for (const row of updates) {\n dataWindow.add(row);\n }\n data.current = dataWindow.data;\n if (isMounted.current) {\n // TODO do we ever need to worry about missing updates here ?\n forceUpdate({});\n } else {\n // do nothing\n }\n },\n [dataWindow]\n );\n\n const datasourceMessageHandler: SubscribeCallback = useCallback(\n (message) => {\n if (message.type === \"subscribed\") {\n onSubscribed?.(message);\n } else if (message.type === \"viewport-update\") {\n if (typeof message.size === \"number\") {\n onSizeChange?.(message.size);\n dataWindow.setRowCount(message.size);\n }\n if (message.rows) {\n setData(message.rows);\n } else if (typeof message.size === \"number\") {\n data.current = dataWindow.data;\n hasUpdated.current = true;\n }\n } else if (isVuuFeatureInvocation(message)) {\n onFeatureInvocation?.(message);\n } else {\n console.log(`useDataSource unexpected message ${message.type}`);\n }\n },\n [dataWindow, onFeatureInvocation, onSizeChange, onSubscribed, setData]\n );\n\n const getSelectedRows = useCallback(() => {\n return dataWindow.getSelectedRows();\n }, [dataWindow]);\n\n useEffect(() => {\n isMounted.current = true;\n dataSource.resume?.();\n return () => {\n isMounted.current = false;\n dataSource.suspend?.();\n };\n }, [dataSource]);\n\n useEffect(() => {\n if (dataSource.status === \"disabled\") {\n dataSource.enable?.(datasourceMessageHandler);\n } else {\n //TODO could we improve this by using a ref for range ?\n dataSource?.subscribe(\n { range: getFullRange(range, renderBufferSize) },\n datasourceMessageHandler\n );\n }\n }, [dataSource, datasourceMessageHandler, range, renderBufferSize]);\n\n const setRange = useCallback(\n (range: VuuRange) => {\n if (!rangesAreSame(range, rangeRef.current)) {\n const fullRange = getFullRange(range, renderBufferSize);\n dataWindow.setRange(fullRange);\n dataSource.range = rangeRef.current = fullRange;\n dataSource.emit(\"range\", range);\n }\n },\n [dataSource, dataWindow, renderBufferSize]\n );\n\n return {\n data: data.current,\n dataRef: data,\n getSelectedRows,\n range: rangeRef.current,\n setRange,\n };\n};\n", "import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport {\n isRowSelectedLast,\n metadataKeys,\n WindowRange,\n} from \"@vuu-ui/vuu-utils\";\nimport { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\n\nconst { SELECTED } = metadataKeys;\n\nexport class MovingWindow {\n public data: DataSourceRow[];\n public rowCount = 0;\n private range: WindowRange;\n\n constructor({ from, to }: VuuRange) {\n this.range = new WindowRange(from, to);\n //internal data is always 0 based, we add range.from to determine an offset\n this.data = new Array(Math.max(0, to - from));\n this.rowCount = 0;\n }\n\n setRowCount = (rowCount: number) => {\n if (rowCount < this.data.length) {\n this.data.length = rowCount;\n }\n\n this.rowCount = rowCount;\n };\n\n add(data: DataSourceRow) {\n const [index] = data;\n if (this.isWithinRange(index)) {\n const internalIndex = index - this.range.from;\n this.data[internalIndex] = data;\n\n // Hack until we can deal with this more elegantly. When we have a block\n // select operation, first row is selected (and updated via server), then\n // remaining rows are selected when we select the block-end row. We get an\n // update for all rows except first. Because we're extending the select status\n // on the client, we have to adjust the first row selected (its still selected\n // but is no longer the 'last selected row in block')\n // Maybe answer is to apply ALL the selection status code here, not in Viewport\n if (data[SELECTED]) {\n const previousRow = this.data[internalIndex - 1];\n if (isRowSelectedLast(previousRow)) {\n this.data[internalIndex - 1] = previousRow.slice() as DataSourceRow;\n this.data[internalIndex - 1][SELECTED] -= 4;\n }\n }\n }\n }\n\n getAtIndex(index: number) {\n return this.range.isWithin(index) &&\n this.data[index - this.range.from] != null\n ? this.data[index - this.range.from]\n : undefined;\n }\n\n isWithinRange(index: number) {\n return this.range.isWithin(index);\n }\n\n setRange({ from, to }: VuuRange) {\n if (from !== this.range.from || to !== this.range.to) {\n const [overlapFrom, overlapTo] = this.range.overlap(from, to);\n const newData = new Array(Math.max(0, to - from));\n for (let i = overlapFrom; i < overlapTo; i++) {\n const data = this.getAtIndex(i);\n if (data) {\n const index = i - from;\n newData[index] = data;\n }\n }\n this.data = newData;\n this.range.from = from;\n this.range.to = to;\n }\n }\n\n getSelectedRows() {\n return this.data.filter((row) => row[SELECTED] !== 0);\n }\n}\n", "import { useMemo, useRef } from \"react\";\n\nexport const useInitialValue = <T = unknown>(value: T): T => {\n const ref = useRef<T>(value);\n return useMemo(() => ref.current, []);\n};\n", "import { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { getIndexFromRowElement } from \"@vuu-ui/vuu-utils\";\nimport { useControlled } from \"@salt-ds/core\";\nimport {\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { TableNavigationStyle } from \"./Table\";\nimport {\n CellPos,\n closestRowIndex,\n dataCellQuery,\n getTableCell,\n headerCellQuery,\n} from \"./table-dom-utils\";\nimport { ScrollRequestHandler } from \"./useTableScroll\";\n\nconst rowNavigationKeys = new Set<NavigationKey>([\n \"Home\",\n \"End\",\n \"PageUp\",\n \"PageDown\",\n \"ArrowDown\",\n \"ArrowUp\",\n]);\n\nconst cellNavigationKeys = new Set(rowNavigationKeys);\ncellNavigationKeys.add(\"ArrowLeft\");\ncellNavigationKeys.add(\"ArrowRight\");\n\nexport const isNavigationKey = (\n key: string,\n navigationStyle: TableNavigationStyle\n): key is NavigationKey => {\n switch (navigationStyle) {\n case \"cell\":\n return cellNavigationKeys.has(key as NavigationKey);\n case \"row\":\n return rowNavigationKeys.has(key as NavigationKey);\n default:\n return false;\n }\n};\n\ntype ArrowKey = \"ArrowUp\" | \"ArrowDown\" | \"ArrowLeft\" | \"ArrowRight\";\ntype PageKey = \"Home\" | \"End\" | \"PageUp\" | \"PageDown\";\ntype NavigationKey = PageKey | ArrowKey;\n\nconst PageKeys = [\"Home\", \"End\", \"PageUp\", \"PageDown\"];\nexport const isPagingKey = (key: string): key is PageKey =>\n PageKeys.includes(key);\n\nconst NULL_CELL_POS: CellPos = [-1, -1];\n\nfunction nextCellPos(\n key: ArrowKey,\n [rowIdx, colIdx]: CellPos,\n columnCount: number,\n rowCount: number\n): CellPos {\n if (key === \"ArrowUp\") {\n if (rowIdx > -1) {\n return [rowIdx - 1, colIdx];\n } else {\n return [rowIdx, colIdx];\n }\n } else if (key === \"ArrowDown\") {\n if (rowIdx === -1) {\n return [0, colIdx];\n } else if (rowIdx === rowCount - 1) {\n return [rowIdx, colIdx];\n } else {\n return [rowIdx + 1, colIdx];\n }\n } else if (key === \"ArrowRight\") {\n // The colIdx is 1 based, because of the selection decorator\n if (colIdx < columnCount) {\n return [rowIdx, colIdx + 1];\n } else {\n return [rowIdx, colIdx];\n }\n } else if (key === \"ArrowLeft\") {\n if (colIdx > 1) {\n return [rowIdx, colIdx - 1];\n } else {\n return [rowIdx, colIdx];\n }\n }\n return [rowIdx, colIdx];\n}\n\nexport interface NavigationHookProps {\n containerRef: RefObject<HTMLElement>;\n columnCount?: number;\n defaultHighlightedIndex?: number;\n disableFocus?: boolean;\n disableHighlightOnFocus?: boolean;\n highlightedIndex?: number;\n label?: string;\n navigationStyle: TableNavigationStyle;\n viewportRange: VuuRange;\n onHighlight?: (idx: number) => void;\n requestScroll?: ScrollRequestHandler;\n restoreLastFocus?: boolean;\n rowCount?: number;\n selected?: unknown;\n viewportRowCount: number;\n}\n\nexport const useKeyboardNavigation = ({\n columnCount = 0,\n containerRef,\n disableFocus = false,\n defaultHighlightedIndex,\n disableHighlightOnFocus,\n highlightedIndex: highlightedIndexProp,\n navigationStyle,\n requestScroll,\n onHighlight,\n rowCount = 0,\n viewportRowCount,\n}: // viewportRange,\nNavigationHookProps) => {\n // const { from: viewportFirstRow, to: viewportLastRow } = viewportRange;\n const focusedCellPos = useRef<CellPos>([-1, -1]);\n const focusableCell = useRef<HTMLElement>();\n const activeCellPos = useRef<CellPos>([-1, 0]);\n // Keep this in sync with state value. This can be used by functions that need\n // to reference highlightedIndex at call time but do not need to be regenerated\n // every time it changes (i.e keep highlightedIndex out of their dependency\n // arrays, as it can update frequently)\n const highlightedIndexRef = useRef<number | undefined>();\n\n const [highlightedIndex, setHighlightedIdx] = useControlled({\n controlled: highlightedIndexProp,\n default: defaultHighlightedIndex,\n name: \"UseKeyboardNavigation\",\n });\n highlightedIndexRef.current = highlightedIndex;\n const setHighlightedIndex = useCallback(\n (idx: number, fromKeyboard = false) => {\n onHighlight?.(idx);\n setHighlightedIdx(idx);\n if (fromKeyboard) {\n // lastFocus.current = idx;\n }\n },\n [onHighlight, setHighlightedIdx]\n );\n\n const getFocusedCell = (element: HTMLElement | Element | null) =>\n element?.closest(\n \"[role='columnHeader'],[role='cell']\"\n ) as HTMLDivElement | null;\n\n const getTableCellPos = (tableCell: HTMLDivElement): CellPos => {\n if (tableCell.role === \"columnHeader\") {\n const colIdx = parseInt(tableCell.dataset.idx ?? \"-1\", 10);\n return [-1, colIdx];\n } else {\n const focusedRow = tableCell.closest(\"[role='row']\") as HTMLElement;\n if (focusedRow) {\n const rowIdx = getIndexFromRowElement(focusedRow);\n // TODO will get trickier when we introduce horizontal virtualisation\n const colIdx = Array.from(focusedRow.childNodes).indexOf(tableCell);\n return [rowIdx, colIdx];\n }\n }\n return NULL_CELL_POS;\n };\n\n const focusCell = useCallback(\n (cellPos: CellPos) => {\n if (containerRef.current) {\n const activeCell = getTableCell(containerRef, cellPos);\n if (activeCell) {\n if (activeCell !== focusableCell.current) {\n focusableCell.current?.removeAttribute(\"tabindex\");\n focusableCell.current = activeCell;\n activeCell.setAttribute(\"tabindex\", \"0\");\n }\n // TODO needs to be scroll cell\n requestScroll?.({ type: \"scroll-row\", rowIndex: cellPos[0] });\n activeCell.focus({ preventScroll: true });\n }\n }\n },\n // TODO we recreate this function whenever viewportRange changes, which will\n // be often whilst scrolling - store range in a a ref ?\n [containerRef, requestScroll]\n );\n\n const setActiveCell = useCallback(\n (rowIdx: number, colIdx: number, fromKeyboard = false) => {\n const pos: CellPos = [rowIdx, colIdx];\n activeCellPos.current = pos;\n if (navigationStyle === \"row\") {\n setHighlightedIdx(rowIdx);\n } else {\n focusCell(pos);\n }\n if (fromKeyboard) {\n focusedCellPos.current = pos;\n }\n },\n [focusCell, navigationStyle, setHighlightedIdx]\n );\n\n const nextPageItemIdx = useCallback(\n (\n key: \"PageDown\" | \"PageUp\" | \"Home\" | \"End\",\n [rowIdx, colIdx]: CellPos\n ): Promise<CellPos> =>\n new Promise((resolve) => {\n let newRowIdx = rowIdx;\n switch (key) {\n case \"PageDown\": {\n newRowIdx = Math.min(rowCount - 1, rowIdx + viewportRowCount);\n if (newRowIdx !== rowIdx) {\n requestScroll?.({ type: \"scroll-page\", direction: \"down\" });\n }\n break;\n }\n case \"PageUp\": {\n newRowIdx = Math.max(0, rowIdx - viewportRowCount);\n if (newRowIdx !== rowIdx) {\n requestScroll?.({ type: \"scroll-page\", direction: \"up\" });\n }\n break;\n }\n case \"Home\": {\n newRowIdx = 0;\n if (newRowIdx !== rowIdx) {\n requestScroll?.({ type: \"scroll-end\", direction: \"home\" });\n }\n break;\n }\n case \"End\": {\n newRowIdx = rowCount - 1;\n if (newRowIdx !== rowIdx) {\n requestScroll?.({ type: \"scroll-end\", direction: \"end\" });\n }\n break;\n }\n }\n // Introduce a delay to allow the scroll operation to complete,\n // which will trigger a range reset and rerender of rows. We\n // might need to tweak how this works. If we introduce too big\n // a delay, we risk seeing the newly rendered rows, with the focus\n // still on the old cell, which will be apparent as a brief flash\n // of the old cell focus before switching to correct cell. If we were\n // to change the way re assign keys such that we can guarantee that\n // when we page down, rows in same position get same keys, then same\n // cell would be focussed in new page as previous and issue would not\n // arise.\n setTimeout(() => {\n resolve([newRowIdx, colIdx]);\n }, 35);\n }),\n [requestScroll, rowCount, viewportRowCount]\n );\n\n const handleFocus = useCallback(() => {\n if (disableHighlightOnFocus !== true) {\n if (containerRef.current?.contains(document.activeElement)) {\n // IF focus arrives via keyboard, a cell will have received focus,\n // we handle that here. If focus arrives via click on a cell with\n // no tabindex (i.e all cells except one) we leave that to the\n // click handler.\n const focusedCell = getFocusedCell(document.activeElement);\n if (focusedCell) {\n focusedCellPos.current = getTableCellPos(focusedCell);\n if (navigationStyle === \"row\") {\n setHighlightedIdx(focusedCellPos.current[0]);\n }\n }\n }\n }\n }, [\n disableHighlightOnFocus,\n containerRef,\n navigationStyle,\n setHighlightedIdx,\n ]);\n\n const navigateChildItems = useCallback(\n async (key: NavigationKey) => {\n const [nextRowIdx, nextColIdx] = isPagingKey(key)\n ? await nextPageItemIdx(key, activeCellPos.current)\n : nextCellPos(key, activeCellPos.current, columnCount, rowCount);\n const [rowIdx, colIdx] = activeCellPos.current;\n if (nextRowIdx !== rowIdx || nextColIdx !== colIdx) {\n setActiveCell(nextRowIdx, nextColIdx, true);\n }\n },\n [columnCount, nextPageItemIdx, rowCount, setActiveCell]\n );\n\n const scrollRowIntoViewIfNecessary = useCallback(\n (rowIndex: number) => {\n requestScroll?.({ type: \"scroll-row\", rowIndex });\n },\n [requestScroll]\n );\n\n const moveHighlightedRow = useCallback(\n async (key: NavigationKey) => {\n const { current: highlighted } = highlightedIndexRef;\n const [nextRowIdx] = isPagingKey(key)\n ? await nextPageItemIdx(key, [highlighted ?? -1, 0])\n : nextCellPos(key, [highlighted ?? -1, 0], columnCount, rowCount);\n if (nextRowIdx !== highlighted) {\n setHighlightedIndex(nextRowIdx);\n // TO(DO make this a scroll request)\n scrollRowIntoViewIfNecessary(nextRowIdx);\n }\n },\n [\n columnCount,\n nextPageItemIdx,\n rowCount,\n scrollRowIntoViewIfNecessary,\n setHighlightedIndex,\n ]\n );\n\n useEffect(() => {\n if (highlightedIndexProp !== undefined && highlightedIndexProp !== -1) {\n scrollRowIntoViewIfNecessary(highlightedIndexProp);\n }\n }, [highlightedIndexProp, scrollRowIntoViewIfNecessary]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (rowCount > 0 && isNavigationKey(e.key, navigationStyle)) {\n e.preventDefault();\n e.stopPropagation();\n if (navigationStyle === \"row\") {\n moveHighlightedRow(e.key);\n } else {\n void navigateChildItems(e.key);\n }\n }\n },\n [rowCount, navigationStyle, moveHighlightedRow, navigateChildItems]\n );\n\n const handleClick = useCallback(\n // Might not be a cell e.g the Settings button\n (evt: MouseEvent) => {\n const target = evt.target as HTMLElement;\n const focusedCell = getFocusedCell(target);\n if (focusedCell) {\n const [rowIdx, colIdx] = getTableCellPos(focusedCell);\n setActiveCell(rowIdx, colIdx);\n }\n },\n [setActiveCell]\n );\n\n const handleMouseLeave = useCallback(() => {\n setHighlightedIndex(-1);\n }, [setHighlightedIndex]);\n\n const handleMouseMove = useCallback(\n (evt: MouseEvent) => {\n const idx = closestRowIndex(evt.target as HTMLElement);\n if (idx !== -1 && idx !== highlightedIndexRef.current) {\n setHighlightedIndex(idx);\n }\n },\n [setHighlightedIndex]\n );\n\n const navigate = useCallback(() => {\n navigateChildItems(\"ArrowDown\");\n }, [navigateChildItems]);\n\n // First render will only render the outer container when explicit\n // sizing has not been provided. Outer container is measured and\n // only then, on second render, is content rendered.\n const fullyRendered = containerRef.current?.firstChild != null;\n useEffect(() => {\n if (fullyRendered && focusableCell.current === undefined && !disableFocus) {\n const { current: container } = containerRef;\n const cell = (container?.querySelector(headerCellQuery(0)) ||\n container?.querySelector(dataCellQuery(0, 0))) as HTMLElement;\n if (cell) {\n cell.setAttribute(\"tabindex\", \"0\");\n focusableCell.current = cell;\n }\n }\n }, [containerRef, disableFocus, fullyRendered]);\n\n return {\n highlightedIndexRef,\n navigate,\n onClick: handleClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onMouseLeave: navigationStyle === \"row\" ? handleMouseLeave : undefined,\n onMouseMove: navigationStyle === \"row\" ? handleMouseMove : undefined,\n };\n};\n", "import {\n TableRowClickHandlerInternal,\n TableRowSelectHandlerInternal,\n TableSelectionModel,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n deselectItem,\n dispatchMouseEvent,\n getRowElementAtIndex,\n isRowSelected,\n metadataKeys,\n selectItem,\n} from \"@vuu-ui/vuu-utils\";\nimport { Selection, SelectionChangeHandler } from \"@vuu-ui/vuu-data-types\";\nimport {\n KeyboardEvent,\n KeyboardEventHandler,\n MutableRefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nconst { IDX } = metadataKeys;\n\nconst NO_SELECTION: Selection = [];\n\nconst defaultSelectionKeys = [\"Enter\", \" \"];\n\nexport interface SelectionHookProps {\n highlightedIndexRef: MutableRefObject<number | undefined>;\n selectionKeys?: string[];\n selectionModel: TableSelectionModel;\n onSelect?: TableRowSelectHandlerInternal;\n onSelectionChange: SelectionChangeHandler;\n}\n\nexport const useSelection = ({\n highlightedIndexRef,\n selectionKeys = defaultSelectionKeys,\n selectionModel,\n onSelect,\n onSelectionChange,\n}: SelectionHookProps) => {\n selectionModel === \"extended\" || selectionModel === \"checkbox\";\n const lastActiveRef = useRef(-1);\n const selectedRef = useRef<Selection>(NO_SELECTION);\n\n const isSelectionEvent = useCallback(\n (evt: KeyboardEvent<HTMLElement>) => selectionKeys.includes(evt.key),\n [selectionKeys]\n );\n\n const handleRowClick = useCallback<TableRowClickHandlerInternal>(\n (evt, row, rangeSelect, keepExistingSelection) => {\n const { [IDX]: idx } = row;\n const { current: active } = lastActiveRef;\n const { current: selected } = selectedRef;\n\n const selectOperation = isRowSelected(row) ? deselectItem : selectItem;\n\n const newSelected = selectOperation(\n selectionModel,\n selected,\n idx,\n rangeSelect,\n keepExistingSelection,\n active\n );\n\n selectedRef.current = newSelected;\n lastActiveRef.current = idx;\n\n onSelect?.(selectOperation === selectItem ? row : null);\n onSelectionChange?.(newSelected);\n },\n [onSelect, onSelectionChange, selectionModel]\n );\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (e) => {\n if (isSelectionEvent(e)) {\n const { current: rowIndex } = highlightedIndexRef;\n if (rowIndex !== undefined && rowIndex !== -1) {\n const rowEl = getRowElementAtIndex(e.target, rowIndex);\n // const rowEl = (e.target as HTMLElement).querySelector(\n // `[aria-rowindex=\"${rowIndex + 1}\"]`\n // ) as HTMLElement;\n if (rowEl) {\n dispatchMouseEvent(rowEl, \"click\");\n }\n }\n }\n },\n [highlightedIndexRef, isSelectionEvent]\n );\n\n return {\n onKeyDown: handleKeyDown,\n onRowClick: handleRowClick,\n };\n};\n", "import { DataSource, DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { useContextMenu as usePopupContextMenu } from \"@vuu-ui/vuu-popups\";\nimport { buildColumnMap, getIndexFromRowElement } from \"@vuu-ui/vuu-utils\";\nimport { MouseEvent, useCallback } from \"react\";\n\nexport interface TableContextMenuHookProps {\n columns: RuntimeColumnDescriptor[];\n data: DataSourceRow[];\n dataSource: DataSource;\n getSelectedRows: () => DataSourceRow[];\n}\n\nconst NO_ROWS = [] as const;\n\nexport const useTableContextMenu = ({\n columns,\n data,\n dataSource,\n getSelectedRows,\n}: TableContextMenuHookProps) => {\n const [showContextMenu] = usePopupContextMenu();\n\n const onContextMenu = useCallback(\n (evt: MouseEvent<HTMLElement>) => {\n const target = evt.target as HTMLElement;\n const cellEl = target?.closest(\"div[role='cell']\");\n const rowEl = target?.closest(\"div[role='row']\") as HTMLElement;\n if (cellEl && rowEl) {\n const { selectedRowsCount } = dataSource;\n const columnMap = buildColumnMap(columns);\n const rowIndex = getIndexFromRowElement(rowEl);\n const cellIndex = Array.from(rowEl.childNodes).indexOf(cellEl);\n const row = data.find(([idx]) => idx === rowIndex);\n const columnName = columns[cellIndex];\n showContextMenu(evt, \"grid\", {\n columnMap,\n columnName,\n row,\n selectedRows: selectedRowsCount === 0 ? NO_ROWS : getSelectedRows(),\n viewport: dataSource.viewport,\n });\n }\n },\n [columns, data, dataSource, getSelectedRows, showContextMenu]\n );\n\n return onContextMenu;\n};\n", "import {\n ColumnDescriptor,\n PinLocation,\n ResizePhase,\n RuntimeColumnDescriptor,\n TableAttributes,\n TableConfig,\n TableHeadings,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n applyFilterToColumns,\n applyGroupByToColumns,\n applySortToColumns,\n getCellRenderer,\n getColumnHeaderContentRenderer,\n getColumnHeaderLabelRenderer,\n getColumnLabel,\n getTableHeadings,\n getValueFormatter,\n hasValidationRules,\n isFilteredColumn,\n isGroupColumn,\n isPinned,\n logger,\n replaceColumn,\n sortPinnedColumns,\n stripFilterFromColumns,\n subscribedOnly,\n} from \"@vuu-ui/vuu-utils\";\n\nimport {\n DataSource,\n DataSourceConfig,\n TableSchema,\n} from \"@vuu-ui/vuu-data-types\";\nimport { VuuColumnDataType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { buildValidationChecker } from \"@vuu-ui/vuu-ui-controls\";\nimport { Reducer, useReducer } from \"react\";\n\nconst { info } = logger(\"useTableModel\");\n\nconst DEFAULT_COLUMN_WIDTH = 100;\n\nconst columnWithoutDataType = ({ serverDataType }: ColumnDescriptor) =>\n serverDataType === undefined;\n\nconst getDataType = (\n column: ColumnDescriptor,\n tableSchema?: TableSchema\n): VuuColumnDataType | undefined => {\n const schemaColumn = tableSchema?.columns.find(\n ({ name }) => name === column.name\n );\n if (schemaColumn) {\n return schemaColumn.serverDataType;\n } else {\n return column.serverDataType;\n }\n};\n\n/**\n * TableModel represents state used internally to manage Table. It is\n * derived initially from the TableConfig provided by user, along with the\n * data-related config from DataSource.\n */\nexport interface TableModel extends TableAttributes {\n columns: RuntimeColumnDescriptor[];\n headings: TableHeadings;\n}\n\n/**\n * InternalTableModel describes the state managed within the TableModel\n * reducer. It is the same as TableModel but with the addition of a\n * readonly copy of the original TableConfig.\n */\ninterface InternalTableModel extends TableModel {\n tableConfig: Readonly<TableConfig>;\n}\n\nconst numericTypes = [\"int\", \"long\", \"double\"];\nconst getDefaultAlignment = (serverDataType?: VuuColumnDataType) =>\n serverDataType === undefined\n ? undefined\n : numericTypes.includes(serverDataType)\n ? \"right\"\n : \"left\";\n\nexport interface ColumnActionInit {\n type: \"init\";\n tableConfig: TableConfig;\n dataSource: DataSource;\n}\n\nexport interface ColumnActionHide {\n type: \"hideColumns\";\n columns: RuntimeColumnDescriptor[];\n}\n\nexport interface ColumnActionShow {\n type: \"showColumns\";\n columns: RuntimeColumnDescriptor[];\n}\nexport interface ColumnActionMove {\n type: \"moveColumn\";\n column: RuntimeColumnDescriptor;\n moveBy?: 1 | -1;\n}\n\nexport interface ColumnActionPin {\n type: \"pinColumn\";\n column: ColumnDescriptor;\n pin?: PinLocation;\n}\n\nexport interface ColumnActionResize {\n type: \"resizeColumn\";\n column: RuntimeColumnDescriptor;\n phase: ResizePhase;\n width?: number;\n}\n\nexport interface ColumnActionSetTableSchema {\n type: \"setTableSchema\";\n tableSchema: TableSchema;\n}\n\nexport interface ColumnActionUpdate {\n type: \"updateColumn\";\n column: ColumnDescriptor;\n}\n\nexport interface ColumnActionUpdateProp {\n align?: ColumnDescriptor[\"align\"];\n column: RuntimeColumnDescriptor;\n hidden?: ColumnDescriptor[\"hidden\"];\n label?: ColumnDescriptor[\"label\"];\n resizing?: RuntimeColumnDescriptor[\"resizing\"];\n type: \"updateColumnProp\";\n width?: ColumnDescriptor[\"width\"];\n}\n\nexport interface ColumnActionTableConfig extends DataSourceConfig {\n confirmed?: boolean;\n type: \"tableConfig\";\n}\n\nexport interface ColumnActionColumnSettings extends DataSourceConfig {\n type: \"columnSettings\";\n column: ColumnDescriptor;\n /** required only for calculated coplumns */\n vuuTable?: VuuTable;\n}\n\nexport interface ColumnActionTableSettings extends DataSourceConfig {\n type: \"tableSettings\";\n}\n\nexport const isShowColumnSettings = (\n action: PersistentColumnAction\n): action is ColumnActionColumnSettings => action.type === \"columnSettings\";\n\nexport const isShowTableSettings = (\n action: PersistentColumnAction\n): action is ColumnActionTableSettings => action.type === \"tableSettings\";\n\n/**\n * PersistentColumnActions are those actions that require us to persist user changes across sessions\n */\nexport type PersistentColumnAction =\n | ColumnActionPin\n | ColumnActionHide\n | ColumnActionColumnSettings\n | ColumnActionTableSettings;\n\nexport type GridModelAction =\n | ColumnActionHide\n | ColumnActionInit\n | ColumnActionMove\n | ColumnActionPin\n | ColumnActionResize\n | ColumnActionSetTableSchema\n | ColumnActionShow\n | ColumnActionUpdate\n | ColumnActionUpdateProp\n | ColumnActionTableConfig;\n\nexport type GridModelReducer = Reducer<InternalTableModel, GridModelAction>;\n\nexport type ColumnActionDispatch = (action: GridModelAction) => void;\n\nconst columnReducer: GridModelReducer = (state, action) => {\n info?.(`TableModelReducer ${action.type}`);\n switch (action.type) {\n case \"init\":\n return init(action);\n case \"moveColumn\":\n return moveColumn(state, action);\n case \"resizeColumn\":\n return resizeColumn(state, action);\n case \"setTableSchema\":\n return setTableSchema(state, action);\n case \"hideColumns\":\n return hideColumns(state, action);\n case \"showColumns\":\n return showColumns(state, action);\n case \"pinColumn\":\n return pinColumn(state, action);\n case \"updateColumnProp\":\n return updateColumnProp(state, action);\n case \"tableConfig\":\n return updateTableConfig(state, action);\n default:\n console.log(`unhandled action ${action.type}`);\n return state;\n }\n};\n\nexport const useTableModel = (\n tableConfigProp: TableConfig,\n dataSource: DataSource\n) => {\n const [state, dispatchTableModelAction] = useReducer<\n GridModelReducer,\n InitialConfig\n >(columnReducer, { tableConfig: tableConfigProp, dataSource }, init);\n\n const { columns, headings, tableConfig, ...tableAttributes } = state;\n\n return {\n columns,\n dispatchTableModelAction,\n headings,\n tableAttributes,\n tableConfig,\n };\n};\n\ntype InitialConfig = {\n dataSource: DataSource;\n tableConfig: TableConfig;\n};\n\nfunction init({ dataSource, tableConfig }: InitialConfig): InternalTableModel {\n const { columns, ...tableAttributes } = tableConfig;\n const { config: dataSourceConfig, tableSchema } = dataSource;\n const runtimeColumns = columns\n .filter(subscribedOnly(dataSourceConfig?.columns))\n .map(\n columnDescriptorToRuntimeColumDescriptor(tableAttributes, tableSchema)\n );\n\n const maybePinnedColumns = runtimeColumns.some(isPinned)\n ? sortPinnedColumns(runtimeColumns)\n : runtimeColumns;\n let state: InternalTableModel = {\n columns: maybePinnedColumns,\n headings: getTableHeadings(maybePinnedColumns),\n tableConfig,\n ...tableAttributes,\n };\n if (dataSourceConfig) {\n const { columns: _, ...rest } = dataSourceConfig;\n state = updateTableConfig(state, {\n type: \"tableConfig\",\n ...rest,\n });\n }\n return state;\n}\n\nconst getLabel = (\n label: string,\n columnFormatHeader?: \"uppercase\" | \"capitalize\"\n): string => {\n if (columnFormatHeader === \"uppercase\") {\n return label.toUpperCase();\n } else if (columnFormatHeader === \"capitalize\") {\n return label[0].toUpperCase() + label.slice(1).toLowerCase();\n }\n return label;\n};\n\nconst columnDescriptorToRuntimeColumDescriptor =\n (tableAttributes: TableAttributes, tableSchema?: TableSchema) =>\n (column: ColumnDescriptor, index: number): RuntimeColumnDescriptor => {\n const { columnDefaultWidth = DEFAULT_COLUMN_WIDTH, columnFormatHeader } =\n tableAttributes;\n const serverDataType = getDataType(column, tableSchema);\n const {\n align = getDefaultAlignment(serverDataType),\n name,\n label = getColumnLabel(column),\n width = columnDefaultWidth,\n ...rest\n } = column;\n\n const runtimeColumnWithDefaults: RuntimeColumnDescriptor = {\n ...rest,\n align,\n CellRenderer: getCellRenderer(column),\n HeaderCellContentRenderer: getColumnHeaderContentRenderer(column),\n HeaderCellLabelRenderer: getColumnHeaderLabelRenderer(column),\n clientSideEditValidationCheck: hasValidationRules(column.type)\n ? buildValidationChecker(column.type.renderer.rules)\n : undefined,\n index: index + 1,\n label: getLabel(label, columnFormatHeader),\n name,\n originalIdx: index,\n serverDataType,\n valueFormatter: getValueFormatter(column, serverDataType),\n width: width,\n };\n\n if (isGroupColumn(runtimeColumnWithDefaults)) {\n runtimeColumnWithDefaults.columns = runtimeColumnWithDefaults.columns.map(\n (col) =>\n columnDescriptorToRuntimeColumDescriptor(tableAttributes)(col, index)\n );\n }\n\n return runtimeColumnWithDefaults;\n };\n\nfunction moveColumn(\n state: InternalTableModel,\n // TODO do we ever use this ?\n { column, moveBy }: ColumnActionMove\n) {\n const { columns } = state;\n if (typeof moveBy === \"number\") {\n const idx = columns.indexOf(column);\n const newColumns = columns.slice();\n const [movedColumns] = newColumns.splice(idx, 1);\n newColumns.splice(idx + moveBy, 0, movedColumns);\n return {\n ...state,\n columns: newColumns,\n };\n }\n return state;\n}\n\nfunction hideColumns(state: InternalTableModel, { columns }: ColumnActionHide) {\n if (columns.some((col) => col.hidden !== true)) {\n return columns.reduce<InternalTableModel>((s, c) => {\n if (c.hidden !== true) {\n return updateColumnProp(s, {\n type: \"updateColumnProp\",\n column: c,\n hidden: true,\n });\n } else {\n return s;\n }\n }, state);\n } else {\n return state;\n }\n}\nfunction showColumns(state: InternalTableModel, { columns }: ColumnActionShow) {\n if (columns.some((col) => col.hidden)) {\n return columns.reduce<InternalTableModel>((s, c) => {\n if (c.hidden) {\n return updateColumnProp(s, {\n type: \"updateColumnProp\",\n column: c,\n hidden: false,\n });\n } else {\n return s;\n }\n }, state);\n } else {\n return state;\n }\n}\n\nfunction resizeColumn(\n state: InternalTableModel,\n { column, phase, width }: ColumnActionResize\n) {\n const type = \"updateColumnProp\";\n const resizing = phase !== \"end\";\n switch (phase) {\n case \"begin\":\n return updateColumnProp(state, { type, column, resizing });\n case \"end\":\n return updateColumnProp(state, { type, column, resizing, width });\n case \"resize\":\n return updateColumnProp(state, { type, column, width });\n default:\n throw Error(`useTableModel.resizeColumn, invalid resizePhase ${phase}`);\n }\n}\n\nfunction setTableSchema(\n state: InternalTableModel,\n { tableSchema }: ColumnActionSetTableSchema\n) {\n const { columns } = state;\n if (columns.some(columnWithoutDataType)) {\n const cols = columns.map((column) => {\n const serverDataType = getDataType(column, tableSchema);\n return {\n ...column,\n align: column.align ?? getDefaultAlignment(serverDataType),\n serverDataType,\n };\n });\n\n return {\n ...state,\n columns: cols,\n };\n } else {\n return state;\n }\n}\n\nfunction pinColumn(state: InternalTableModel, action: ColumnActionPin) {\n let { columns } = state;\n const { column, pin } = action;\n const targetColumn = columns.find((col) => col.name === column.name);\n if (targetColumn) {\n columns = replaceColumn(columns, { ...targetColumn, pin });\n columns = sortPinnedColumns(columns);\n return {\n ...state,\n columns,\n };\n } else {\n return state;\n }\n}\nfunction updateColumnProp(\n state: InternalTableModel,\n action: ColumnActionUpdateProp\n) {\n let { columns, tableConfig } = state;\n const { align, column, hidden, label, resizing, width } = action;\n const targetColumn = columns.find((col) => col.name === column.name);\n if (targetColumn) {\n if (align === \"left\" || align === \"right\") {\n columns = replaceColumn(columns, { ...targetColumn, align });\n }\n if (typeof label === \"string\") {\n columns = replaceColumn(columns, { ...targetColumn, label });\n }\n if (typeof resizing === \"boolean\") {\n columns = replaceColumn(columns, { ...targetColumn, resizing });\n }\n if (typeof hidden === \"boolean\") {\n columns = replaceColumn(columns, { ...targetColumn, hidden });\n }\n if (typeof width === \"number\") {\n columns = replaceColumn(columns, { ...targetColumn, width });\n\n const targetConfigColumn = tableConfig.columns.find(\n (col) => col.name === column.name\n );\n if (targetConfigColumn) {\n tableConfig = {\n ...tableConfig,\n columns: replaceColumn<ColumnDescriptor>(tableConfig.columns, {\n ...targetConfigColumn,\n width,\n }),\n };\n }\n }\n }\n return {\n ...state,\n columns,\n tableConfig,\n } as InternalTableModel;\n}\n\nfunction updateTableConfig(\n state: InternalTableModel,\n { confirmed, filter, groupBy, sort }: ColumnActionTableConfig\n) {\n const hasGroupBy = groupBy !== undefined;\n const hasFilter = typeof filter?.filter === \"string\";\n const hasSort = sort && sort.sortDefs.length > 0;\n\n let result = state;\n\n if (hasGroupBy) {\n result = {\n ...state,\n columns: applyGroupByToColumns(result.columns, groupBy, confirmed),\n };\n }\n\n if (hasSort) {\n result = {\n ...state,\n columns: applySortToColumns(result.columns, sort),\n };\n }\n\n if (hasFilter) {\n result = {\n ...state,\n columns: applyFilterToColumns(result.columns, filter),\n };\n } else if (result.columns.some(isFilteredColumn)) {\n result = {\n ...state,\n columns: stripFilterFromColumns(result.columns),\n };\n }\n\n return result;\n}\n", "import {\n getColumnsInViewport,\n getRowElementAtIndex,\n itemsChanged,\n RowAtPositionFunc,\n} from \"@vuu-ui/vuu-utils\";\nimport type { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n ForwardedRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { ViewportMeasurements } from \"./useTableViewport\";\nimport { howFarIsRowOutsideViewport } from \"./table-dom-utils\";\nimport type { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\n\nexport type ScrollDirectionVertical = \"up\" | \"down\";\nexport type ScrollDirectionHorizontal = \"left\" | \"right\";\nexport type ScrollDirection =\n | ScrollDirectionVertical\n | ScrollDirectionHorizontal;\n\n/**\n * scroll into view the row at given index posiiton.\n */\nexport interface ScrollRequestRow {\n rowIndex: number;\n type: \"scroll-row\";\n}\nexport interface ScrollRequestEnd {\n type: \"scroll-end\";\n direction: \"home\" | \"end\";\n}\n\nexport interface ScrollRequestPage {\n type: \"scroll-page\";\n direction: ScrollDirectionVertical;\n}\n\nexport type ScrollRequest =\n | ScrollRequestPage\n | ScrollRequestEnd\n | ScrollRequestRow;\n\nexport type ScrollRequestHandler = (request: ScrollRequest) => void;\n\nexport interface ScrollingAPI {\n scrollToIndex: (itemIndex: number) => void;\n scrollToKey: (rowKey: string) => void;\n}\n\n/** How far we allow horizontal scroll movement before we recheck the rendered columns */\nconst SCROLL_MOVE_CHECK_THRESHOLD = 100;\n\n/** The buffer size in pixels that we allow for rendering columns just outside the viewport */\nconst HORIZONTAL_SCROLL_BUFFER = 200;\n\n/**\n * Return the maximum scroll positions for gioven container\n * @param container\n * @returns [maxScrollLeft, maxScrollTop]\n */\nconst getMaxScroll = (container: HTMLElement) => {\n const { clientHeight, clientWidth, scrollHeight, scrollWidth } = container;\n return [scrollWidth - clientWidth, scrollHeight - clientHeight];\n};\n\nconst getScrollDirection = (\n prevScrollPositions: ScrollPos | undefined,\n scrollPos: number\n) => {\n if (prevScrollPositions === undefined) {\n return undefined;\n } else {\n const { scrollTop: prevTop } = prevScrollPositions;\n return scrollPos > prevTop ? \"fwd\" : \"bwd\";\n }\n};\n\nconst getPctScroll = (container: HTMLElement, currentScrollPos?: ScrollPos) => {\n const {\n clientHeight,\n clientWidth,\n scrollHeight,\n scrollLeft,\n scrollTop,\n scrollWidth,\n } = container;\n\n const maxScrollLeft = scrollWidth - clientWidth;\n const pctScrollLeft = scrollLeft / (scrollWidth - clientWidth);\n const maxScrollTop = scrollHeight - clientHeight;\n let pctScrollTop = scrollTop / (scrollHeight - clientHeight);\n\n const scrollDirection = getScrollDirection(currentScrollPos, scrollTop);\n\n if (scrollDirection === \"fwd\" && pctScrollTop > 0.99) {\n pctScrollTop = 1;\n } else if (scrollDirection === \"bwd\" && pctScrollTop < 0.02) {\n pctScrollTop = 0;\n }\n\n return [\n scrollLeft,\n pctScrollLeft,\n maxScrollLeft,\n scrollTop,\n pctScrollTop,\n maxScrollTop,\n ];\n};\n\nexport const noScrolling: ScrollingAPI = {\n scrollToIndex: () => undefined,\n scrollToKey: () => undefined,\n};\n\ninterface CallbackRefHookProps<T = HTMLElement> {\n onAttach?: (el: T) => void;\n onDetach: (el: T) => void;\n label?: string;\n}\n\nconst useCallbackRef = <T = HTMLElement>({\n onAttach,\n onDetach,\n}: CallbackRefHookProps<T>) => {\n const ref = useRef<T | null>(null);\n const callbackRef = useCallback(\n (el: T | null) => {\n if (el) {\n ref.current = el;\n onAttach?.(el);\n } else if (ref.current) {\n const { current: originalRef } = ref;\n ref.current = el;\n onDetach?.(originalRef);\n }\n },\n [onAttach, onDetach]\n );\n return callbackRef;\n};\n\ntype ScrollPos = {\n scrollLeft: number;\n scrollTop: number;\n};\n\nexport interface TableScrollHookProps {\n columns: RuntimeColumnDescriptor[];\n getRowAtPosition: RowAtPositionFunc;\n onHorizontalScroll?: (scrollLeft: number) => void;\n onVerticalScroll?: (scrollTop: number, pctScrollTop: number) => void;\n /**\n * When we have a virtualized scroll container, keyboard navigation is\n * performed `in situ`. We shift the range of rows rendered within the\n * viewport, whithout actually moving the scroll position\n */\n onVerticalScrollInSitu?: (rowIndexOffsetCount: number) => void;\n rowHeight: number;\n scrollingApiRef?: ForwardedRef<ScrollingAPI>;\n setRange: (range: VuuRange) => void;\n viewportMeasurements: ViewportMeasurements;\n}\n\nexport const useTableScroll = ({\n columns,\n getRowAtPosition,\n onHorizontalScroll,\n onVerticalScroll,\n onVerticalScrollInSitu,\n rowHeight,\n scrollingApiRef,\n setRange,\n viewportMeasurements,\n}: TableScrollHookProps) => {\n const firstRowRef = useRef<number>(0);\n const rowHeightRef = useRef(rowHeight);\n const contentContainerScrolledRef = useRef(false);\n const contentContainerPosRef = useRef<ScrollPos>({\n scrollTop: 0,\n scrollLeft: 0,\n });\n const scrollbarContainerScrolledRef = useRef(false);\n const scrollbarContainerPosRef = useRef<ScrollPos>({\n scrollTop: 0,\n scrollLeft: 0,\n });\n const scrollbarContainerRef = useRef<HTMLDivElement | null>(null);\n const contentContainerRef = useRef<HTMLDivElement | null>(null);\n const lastHorizontalScrollCheckPoint = useRef(0);\n\n const {\n appliedPageSize,\n isVirtualScroll,\n rowCount: viewportRowCount,\n totalHeaderHeight,\n viewportWidth,\n } = viewportMeasurements;\n\n const columnsWithinViewportRef = useRef<RuntimeColumnDescriptor[]>([]);\n const [, forceRefresh] = useState({});\n\n const preSpanRef = useRef(0);\n\n useMemo(() => {\n const [visibleColumns, offset] = getColumnsInViewport(\n columns,\n contentContainerPosRef.current.scrollLeft,\n contentContainerPosRef.current.scrollLeft +\n viewportWidth +\n HORIZONTAL_SCROLL_BUFFER\n );\n preSpanRef.current = offset;\n columnsWithinViewportRef.current = visibleColumns;\n }, [viewportWidth, columns]);\n\n const handleHorizontalScroll = useCallback(\n (scrollLeft: number) => {\n contentContainerPosRef.current.scrollLeft = scrollLeft;\n onHorizontalScroll?.(scrollLeft);\n\n if (\n Math.abs(scrollLeft - lastHorizontalScrollCheckPoint.current) >\n SCROLL_MOVE_CHECK_THRESHOLD\n ) {\n lastHorizontalScrollCheckPoint.current = scrollLeft;\n\n const [visibleColumns, pre] = getColumnsInViewport(\n columns,\n scrollLeft,\n scrollLeft + viewportWidth + HORIZONTAL_SCROLL_BUFFER\n );\n\n if (itemsChanged(columnsWithinViewportRef.current, visibleColumns)) {\n preSpanRef.current = pre;\n columnsWithinViewportRef.current = visibleColumns;\n forceRefresh({});\n }\n }\n },\n [columns, onHorizontalScroll, viewportWidth]\n );\n const handleVerticalScroll = useCallback(\n (scrollTop: number, pctScrollTop: number) => {\n contentContainerPosRef.current.scrollTop = scrollTop;\n\n onVerticalScroll?.(scrollTop, pctScrollTop);\n const firstRow = getRowAtPosition(scrollTop);\n if (firstRow !== firstRowRef.current) {\n firstRowRef.current = firstRow;\n setRange({ from: firstRow, to: firstRow + viewportRowCount });\n }\n onVerticalScrollInSitu?.(0);\n },\n [\n getRowAtPosition,\n onVerticalScroll,\n onVerticalScrollInSitu,\n setRange,\n viewportRowCount,\n ]\n );\n\n const handleScrollbarContainerScroll = useCallback(() => {\n const { current: contentContainer } = contentContainerRef;\n const { current: scrollbarContainer } = scrollbarContainerRef;\n const { current: contentContainerScrolled } = contentContainerScrolledRef;\n const { current: scrollPos } = scrollbarContainerPosRef;\n\n if (contentContainerScrolled) {\n contentContainerScrolledRef.current = false;\n } else if (contentContainer && scrollbarContainer) {\n scrollbarContainerScrolledRef.current = true;\n const [scrollLeft, pctScrollLeft, , scrollTop, pctScrollTop] =\n getPctScroll(scrollbarContainer, scrollPos);\n\n scrollPos.scrollLeft = scrollLeft;\n scrollPos.scrollTop = scrollTop;\n\n const [maxScrollLeft, maxScrollTop] = getMaxScroll(scrollbarContainer);\n const contentScrollLeft = Math.round(pctScrollLeft * maxScrollLeft);\n const contentScrollTop = pctScrollTop * maxScrollTop;\n\n contentContainer.scrollTo({\n left: contentScrollLeft,\n top: contentScrollTop,\n behavior: \"auto\",\n });\n }\n onVerticalScrollInSitu?.(0);\n }, [onVerticalScrollInSitu]);\n\n const handleContentContainerScroll = useCallback(() => {\n const { current: scrollbarContainerScrolled } =\n scrollbarContainerScrolledRef;\n const { current: contentContainer } = contentContainerRef;\n const { current: scrollbarContainer } = scrollbarContainerRef;\n const { current: scrollPos } = contentContainerPosRef;\n\n if (contentContainer && scrollbarContainer) {\n const [\n scrollLeft,\n pctScrollLeft,\n maxScrollLeft,\n scrollTop,\n pctScrollTop,\n maxScrollTop,\n ] = getPctScroll(contentContainer);\n\n contentContainerScrolledRef.current = true;\n\n if (scrollbarContainerScrolled) {\n scrollbarContainerScrolledRef.current = false;\n } else {\n scrollbarContainer.scrollLeft = Math.round(\n pctScrollLeft * maxScrollLeft\n );\n scrollbarContainer.scrollTop = pctScrollTop * maxScrollTop;\n }\n\n if (scrollPos.scrollTop !== scrollTop) {\n handleVerticalScroll(scrollTop, pctScrollTop);\n }\n if (scrollPos.scrollLeft !== scrollLeft) {\n handleHorizontalScroll(scrollLeft);\n }\n }\n }, [handleVerticalScroll, handleHorizontalScroll]);\n\n const handleAttachScrollbarContainer = useCallback(\n (el: HTMLDivElement) => {\n scrollbarContainerRef.current = el;\n el.addEventListener(\"scroll\", handleScrollbarContainerScroll, {\n passive: true,\n });\n },\n [handleScrollbarContainerScroll]\n );\n\n const handleDetachScrollbarContainer = useCallback(\n (el: HTMLDivElement) => {\n scrollbarContainerRef.current = null;\n el.removeEventListener(\"scroll\", handleScrollbarContainerScroll);\n },\n [handleScrollbarContainerScroll]\n );\n\n const handleAttachContentContainer = useCallback(\n (el: HTMLDivElement) => {\n contentContainerRef.current = el;\n el.addEventListener(\"scroll\", handleContentContainerScroll, {\n passive: true,\n });\n },\n [handleContentContainerScroll]\n );\n\n const handleDetachContentContainer = useCallback(\n (el: HTMLDivElement) => {\n contentContainerRef.current = null;\n el.removeEventListener(\"scroll\", handleContentContainerScroll);\n },\n [handleContentContainerScroll]\n );\n\n const contentContainerCallbackRef = useCallbackRef({\n onAttach: handleAttachContentContainer,\n onDetach: handleDetachContentContainer,\n });\n\n const scrollbarContainerCallbackRef = useCallbackRef({\n onAttach: handleAttachScrollbarContainer,\n onDetach: handleDetachScrollbarContainer,\n });\n\n const requestScroll: ScrollRequestHandler = useCallback(\n (scrollRequest) => {\n const { current: contentContainer } = contentContainerRef;\n if (contentContainer) {\n const [maxScrollLeft, maxScrollTop] = getMaxScroll(contentContainer);\n const { scrollLeft, scrollTop } = contentContainer;\n contentContainerScrolledRef.current = false;\n if (scrollRequest.type === \"scroll-row\") {\n const activeRow = getRowElementAtIndex(\n contentContainer,\n scrollRequest.rowIndex\n );\n\n if (activeRow !== null) {\n const [direction, distance] = howFarIsRowOutsideViewport(\n activeRow,\n totalHeaderHeight\n );\n console.log(`outside viewport ? ${direction} ${distance}`);\n if (direction && distance) {\n if (isVirtualScroll) {\n const offset = direction === \"down\" ? 1 : -1;\n onVerticalScrollInSitu?.(offset);\n const firstRow = firstRowRef.current + offset;\n firstRowRef.current = firstRow;\n setRange({\n from: firstRow,\n to: firstRow + viewportRowCount,\n });\n } else {\n let newScrollLeft = scrollLeft;\n let newScrollTop = scrollTop;\n if (direction === \"up\" || direction === \"down\") {\n newScrollTop = Math.min(\n Math.max(0, scrollTop + distance),\n maxScrollTop\n );\n } else {\n newScrollLeft = Math.min(\n Math.max(0, scrollLeft + distance),\n maxScrollLeft\n );\n }\n contentContainer.scrollTo({\n top: newScrollTop,\n left: newScrollLeft,\n behavior: \"smooth\",\n });\n }\n }\n }\n } else if (scrollRequest.type === \"scroll-page\") {\n const { direction } = scrollRequest;\n if (isVirtualScroll) {\n const offset =\n direction === \"down\" ? viewportRowCount : -viewportRowCount;\n onVerticalScrollInSitu?.(offset);\n const firstRow = firstRowRef.current + offset;\n firstRowRef.current = firstRow;\n setRange({ from: firstRow, to: firstRow + viewportRowCount });\n } else {\n const scrollBy =\n direction === \"down\" ? appliedPageSize : -appliedPageSize;\n const newScrollTop = Math.min(\n Math.max(0, scrollTop + scrollBy),\n maxScrollTop\n );\n contentContainer.scrollTo({\n top: newScrollTop,\n left: scrollLeft,\n behavior: \"auto\",\n });\n }\n } else if (scrollRequest.type === \"scroll-end\") {\n const { direction } = scrollRequest;\n const scrollTo = direction === \"end\" ? maxScrollTop : 0;\n contentContainer.scrollTo({\n top: scrollTo,\n left: contentContainer.scrollLeft,\n behavior: \"auto\",\n });\n }\n }\n },\n [\n appliedPageSize,\n isVirtualScroll,\n onVerticalScrollInSitu,\n setRange,\n totalHeaderHeight,\n viewportRowCount,\n ]\n );\n\n const scrollHandles: ScrollingAPI = useMemo(\n // TODO not complete yet\n () => ({\n scrollToIndex: (rowIndex: number) => {\n if (scrollbarContainerRef.current) {\n // TODO hardcoded rowHeight\n const scrollPos = (rowIndex - 30) * 20;\n scrollbarContainerRef.current.scrollTop = scrollPos;\n }\n },\n scrollToKey: (rowKey: string) => {\n console.log(`scrollToKey ${rowKey}`);\n },\n }),\n []\n );\n\n useImperativeHandle(\n scrollingApiRef,\n () => {\n if (scrollbarContainerRef.current) {\n return scrollHandles;\n } else {\n return noScrolling;\n }\n },\n [scrollHandles]\n );\n\n useEffect(() => {\n if (rowHeight !== rowHeightRef.current) {\n rowHeightRef.current = rowHeight;\n if (contentContainerPosRef.current.scrollTop > 0) {\n if (contentContainerRef.current) {\n contentContainerRef.current.scrollTop = 0;\n }\n }\n } else {\n const { current: from } = firstRowRef;\n const rowRange = { from, to: from + viewportRowCount };\n setRange(rowRange);\n }\n }, [rowHeight, setRange, viewportRowCount]);\n\n return {\n columnsWithinViewport: columnsWithinViewportRef.current,\n /** Ref to be assigned to ScrollbarContainer */\n scrollbarContainerRef: scrollbarContainerCallbackRef,\n /** Ref to be assigned to ContentContainer */\n contentContainerRef: contentContainerCallbackRef,\n /** Scroll the table */\n requestScroll,\n /** number of leading columns not rendered because of virtualization */\n virtualColSpan: preSpanRef.current,\n };\n};\n", "/**\n * This hook measures and calculates the values needed to manage layout\n * and virtualisation of the table. This includes measurements required\n * to support pinned columns.\n */\nimport {\n RuntimeColumnDescriptor,\n TableHeadings,\n} from \"@vuu-ui/vuu-table-types\";\nimport { MeasuredSize } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n actualRowPositioning,\n measurePinnedColumns,\n RowAtPositionFunc,\n RowOffsetFunc,\n RowPositioning,\n virtualRowPositioning,\n} from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useMemo, useRef } from \"react\";\n\nexport interface TableViewportHookProps {\n columns: RuntimeColumnDescriptor[];\n headerHeight: number;\n headings: TableHeadings;\n rowCount: number;\n rowHeight: number;\n /**\n * this is the solid left/right `border` rendered on the selection block\n */\n selectionEndSize?: number;\n size: MeasuredSize | undefined;\n}\n\nexport interface ViewportMeasurements {\n appliedPageSize: number;\n contentHeight: number;\n horizontalScrollbarHeight: number;\n isVirtualScroll: boolean;\n pinnedWidthLeft: number;\n pinnedWidthRight: number;\n rowCount: number;\n contentWidth: number;\n totalHeaderHeight: number;\n verticalScrollbarWidth: number;\n viewportBodyHeight: number;\n viewportWidth: number;\n}\n\nexport interface TableViewportHookResult extends ViewportMeasurements {\n getRowAtPosition: RowAtPositionFunc;\n getRowOffset: RowOffsetFunc;\n setInSituRowOffset: (rowIndexOffset: number) => void;\n setScrollTop: (scrollTop: number, scrollPct: number) => void;\n}\n\n// Too simplistic, it depends on rowHeight\nconst MAX_PIXEL_HEIGHT = 10_000_000;\n\nconst UNMEASURED_VIEWPORT: TableViewportHookResult = {\n appliedPageSize: 0,\n contentHeight: 0,\n contentWidth: 0,\n getRowAtPosition: () => -1,\n getRowOffset: () => -1,\n horizontalScrollbarHeight: 0,\n isVirtualScroll: false,\n pinnedWidthLeft: 0,\n pinnedWidthRight: 0,\n rowCount: 0,\n setInSituRowOffset: () => undefined,\n setScrollTop: () => undefined,\n totalHeaderHeight: 0,\n verticalScrollbarWidth: 0,\n viewportBodyHeight: 0,\n viewportWidth: 0,\n};\n\nexport const useTableViewport = ({\n columns,\n headerHeight,\n headings,\n rowCount,\n rowHeight,\n selectionEndSize = 4,\n size,\n}: TableViewportHookProps): TableViewportHookResult => {\n const inSituRowOffsetRef = useRef(0);\n const pctScrollTopRef = useRef(0);\n // TODO we are limited by pixels not an arbitraty number of rows\n const pixelContentHeight = Math.min(rowHeight * rowCount, MAX_PIXEL_HEIGHT);\n const virtualContentHeight = rowCount * rowHeight;\n const virtualisedExtent = virtualContentHeight - pixelContentHeight;\n\n const { pinnedWidthLeft, pinnedWidthRight, unpinnedWidth } = useMemo(\n () => measurePinnedColumns(columns, selectionEndSize),\n [columns, selectionEndSize]\n );\n\n const totalHeaderHeightRef = useRef(headerHeight);\n useMemo(() => {\n totalHeaderHeightRef.current = headerHeight * (1 + headings.length);\n }, [headerHeight, headings.length]);\n\n const [getRowOffset, getRowAtPosition, isVirtualScroll] =\n useMemo<RowPositioning>(() => {\n if (virtualisedExtent) {\n const [_getRowOffset, getRowAtPosition, _isVirtual] =\n virtualRowPositioning(rowHeight, virtualisedExtent, pctScrollTopRef);\n const getOffset: RowOffsetFunc = (row) => {\n return _getRowOffset(row, inSituRowOffsetRef.current);\n };\n return [getOffset, getRowAtPosition, _isVirtual];\n } else {\n return actualRowPositioning(rowHeight);\n }\n }, [virtualisedExtent, rowHeight]);\n\n const setScrollTop = useCallback((_: number, scrollPct: number) => {\n pctScrollTopRef.current = scrollPct;\n }, []);\n\n /**\n * The inSituRowOffset is used to simulate scrolling through a very large dataset\n * without actually moving the scroll position. It is triggered by keyboard\n * navigation. A simulated scroll operation will always be of one or more rows.\n * A value of zero is a request to reset the offset.\n */\n const setInSituRowOffset = useCallback((rowIndexOffset: number) => {\n if (rowIndexOffset === 0) {\n inSituRowOffsetRef.current = 0;\n } else {\n inSituRowOffsetRef.current = Math.max(\n 0,\n inSituRowOffsetRef.current + rowIndexOffset\n );\n }\n }, []);\n\n return useMemo(() => {\n if (size) {\n const { current: totalHeaderHeight } = totalHeaderHeightRef;\n // TODO determine this at runtime\n const scrollbarSize = 15;\n const contentWidth = pinnedWidthLeft + unpinnedWidth + pinnedWidthRight;\n const horizontalScrollbarHeight =\n contentWidth > size.width ? scrollbarSize : 0;\n const visibleRows = (size.height - headerHeight) / rowHeight;\n const count = Number.isInteger(visibleRows)\n ? visibleRows\n : Math.ceil(visibleRows);\n const viewportBodyHeight = size.height - totalHeaderHeight;\n const verticalScrollbarWidth =\n pixelContentHeight > viewportBodyHeight ? scrollbarSize : 0;\n\n const appliedPageSize =\n count * rowHeight * (pixelContentHeight / virtualContentHeight);\n\n const viewportWidth = size.width;\n\n return {\n appliedPageSize,\n contentHeight: pixelContentHeight,\n contentWidth,\n getRowAtPosition,\n getRowOffset,\n isVirtualScroll,\n horizontalScrollbarHeight,\n pinnedWidthLeft,\n pinnedWidthRight,\n rowCount: count,\n setInSituRowOffset,\n setScrollTop,\n totalHeaderHeight,\n verticalScrollbarWidth,\n viewportBodyHeight,\n viewportWidth,\n };\n } else {\n return UNMEASURED_VIEWPORT;\n }\n }, [\n getRowAtPosition,\n getRowOffset,\n headerHeight,\n isVirtualScroll,\n pinnedWidthLeft,\n unpinnedWidth,\n pinnedWidthRight,\n pixelContentHeight,\n rowHeight,\n setInSituRowOffset,\n setScrollTop,\n size,\n virtualContentHeight,\n ]);\n};\n", "import { DataSourceConfig, SchemaColumn } from \"@vuu-ui/vuu-data-types\";\nimport { useLayoutProviderDispatch } from \"@vuu-ui/vuu-layout\";\nimport {\n ColumnDescriptor,\n ColumnSettingsProps,\n TableConfig,\n TableSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport { getCalculatedColumnType } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { ColumnActionColumnSettings } from \"./useTableModel\";\n\nexport interface TableAndColumnSettingsHookProps {\n availableColumns: SchemaColumn[];\n onAvailableColumnsChange?: (columns: SchemaColumn[]) => void;\n onConfigChange: (config: TableConfig) => void;\n onCreateCalculatedColumn: (column: ColumnDescriptor) => void;\n onDataSourceConfigChange: (dataSourceConfig: DataSourceConfig) => void;\n tableConfig: TableConfig;\n}\nexport const useTableAndColumnSettings = ({\n availableColumns: availableColumnsProps,\n onAvailableColumnsChange,\n onConfigChange,\n onCreateCalculatedColumn,\n onDataSourceConfigChange,\n tableConfig,\n}: TableAndColumnSettingsHookProps) => {\n const dispatchLayoutAction = useLayoutProviderDispatch();\n const showTableSettingsRef = useRef<() => void>();\n\n const [availableColumns, setAvailableColumns] = useState<SchemaColumn[]>(\n availableColumnsProps\n );\n\n const showContextPanel = useCallback(\n (\n componentType: string,\n title: string,\n props: TableSettingsProps | ColumnSettingsProps\n ) => {\n dispatchLayoutAction({\n type: \"set-props\",\n path: \"#context-panel\",\n props: {\n expanded: true,\n content: {\n type: componentType,\n props,\n },\n title,\n },\n });\n },\n [dispatchLayoutAction]\n );\n\n const handleCancelCreateColumn = useCallback(() => {\n requestAnimationFrame(() => {\n showTableSettingsRef.current?.();\n });\n }, []);\n\n const handleCreateCalculatedColumn = useCallback(\n (column: ColumnDescriptor) => {\n const newAvailableColumns = availableColumns.concat({\n name: column.name,\n serverDataType: getCalculatedColumnType(column),\n });\n setAvailableColumns(newAvailableColumns);\n onAvailableColumnsChange?.(newAvailableColumns);\n requestAnimationFrame(() => {\n showTableSettingsRef.current?.();\n });\n onCreateCalculatedColumn(column);\n },\n [availableColumns, onAvailableColumnsChange, onCreateCalculatedColumn]\n );\n\n const showColumnSettingsPanel = useCallback(\n (action: ColumnActionColumnSettings) => {\n showContextPanel(\"ColumnSettings\", \"Column Settings\", {\n column: action.column,\n onCancelCreateColumn: handleCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn: handleCreateCalculatedColumn,\n tableConfig,\n vuuTable: action.vuuTable,\n } as ColumnSettingsProps);\n },\n [\n handleCancelCreateColumn,\n handleCreateCalculatedColumn,\n onConfigChange,\n showContextPanel,\n tableConfig,\n ]\n );\n\n const handleAddCalculatedColumn = useCallback(() => {\n showColumnSettingsPanel({\n column: {\n name: \"::\",\n serverDataType: \"string\",\n },\n type: \"columnSettings\",\n vuuTable: { module: \"SIMUL\", table: \"instruments\" },\n });\n }, [showColumnSettingsPanel]);\n\n const handleNavigateToColumn = useCallback(\n (columnName: string) => {\n const column = tableConfig.columns.find((c) => c.name === columnName);\n if (column) {\n showColumnSettingsPanel({\n type: \"columnSettings\",\n column,\n //TODO where do we get this from\n vuuTable: { module: \"SIMUL\", table: \"instruments\" },\n });\n }\n },\n [showColumnSettingsPanel, tableConfig.columns]\n );\n\n showTableSettingsRef.current = useCallback(() => {\n showContextPanel(\"TableSettings\", \"DataGrid Settings\", {\n availableColumns:\n availableColumns ??\n tableConfig.columns.map(({ name, serverDataType }) => ({\n name,\n serverDataType,\n })),\n onAddCalculatedColumn: handleAddCalculatedColumn,\n onConfigChange,\n onDataSourceConfigChange,\n onNavigateToColumn: handleNavigateToColumn,\n tableConfig,\n } as TableSettingsProps);\n }, [\n availableColumns,\n handleAddCalculatedColumn,\n handleNavigateToColumn,\n onConfigChange,\n onDataSourceConfigChange,\n showContextPanel,\n tableConfig,\n ]);\n\n return {\n showColumnSettingsPanel,\n showTableSettingsPanel: showTableSettingsRef.current,\n };\n};\n", "import { TableConfig } from \"@vuu-ui/vuu-table-types\";\nimport {\n getRowClassNameGenerator,\n RowClassNameGenerator,\n} from \"@vuu-ui/vuu-utils\";\nimport { useMemo } from \"react\";\n\nconst createClassNameGenerator = (\n ids?: string[]\n): RowClassNameGenerator | undefined => {\n const functions: RowClassNameGenerator[] = [];\n ids?.forEach((id) => {\n const fn = getRowClassNameGenerator(id);\n if (fn) {\n functions.push(fn.fn);\n }\n });\n return (row, columnMap) => {\n const classNames: string[] = [];\n functions?.forEach((fn) => {\n const className = fn(row, columnMap);\n if (className) {\n classNames.push(className);\n }\n });\n return classNames.join(\" \");\n };\n};\n\nexport const useRowClassNameGenerators = ({\n rowClassNameGenerators,\n}: TableConfig) => {\n return useMemo<RowClassNameGenerator | undefined>(() => {\n return createClassNameGenerator(rowClassNameGenerators);\n }, [rowClassNameGenerators]);\n};\n", "import { isValidNumber } from \"@vuu-ui/vuu-utils\";\nimport { RefCallback, useCallback, useMemo, useRef, useState } from \"react\";\n\ninterface RowHeightHookProps {\n rowHeight?: number;\n}\n\nexport const useRowHeight = ({\n rowHeight: rowHeightProp = 0,\n}: RowHeightHookProps) => {\n const [rowHeight, setRowHeight] = useState(rowHeightProp);\n const heightRef = useRef(rowHeight);\n\n const resizeObserver = useMemo(() => {\n return new ResizeObserver((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const [{ blockSize: measuredSize }] = entry.borderBoxSize;\n const newHeight = Math.round(measuredSize);\n if (isValidNumber(newHeight) && heightRef.current !== newHeight) {\n heightRef.current = newHeight;\n setRowHeight(newHeight);\n }\n }\n });\n }, []);\n\n const rowRef = useCallback<RefCallback<HTMLDivElement>>(\n (el) => {\n if (el) {\n if (rowHeightProp === 0) {\n const { height } = el.getBoundingClientRect();\n console.log({ boundingClientHeight: height });\n console.log(`measured rowHeight = ${height} (${rowHeightProp})`);\n resizeObserver.observe(el);\n setRowHeight(height);\n }\n } else {\n resizeObserver.disconnect();\n }\n },\n [resizeObserver, rowHeightProp]\n );\n\n return { rowHeight, rowRef };\n};\n", "import React, { memo, useCallback } from \"react\";\nimport { TableCellRendererProps } from \"@vuu-ui/vuu-table-types\";\nimport { CheckboxIcon, WarnCommit } from \"@vuu-ui/vuu-ui-controls\";\nimport { Checkbox } from \"@salt-ds/core\";\nimport {\n dataColumnAndKeyUnchanged,\n dispatchCustomEvent,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\n\nimport \"./CheckboxCell.css\";\n\nexport const CheckboxCell: React.FC<TableCellRendererProps> = memo(\n ({ column, columnMap, onCommit = WarnCommit, row }) => {\n const dataIdx = columnMap[column.name];\n const isChecked = !!row[dataIdx];\n\n const handleCommit = useCallback(\n (value) => async (evt: React.MouseEvent) => {\n const res = await onCommit(value);\n if (res === true) {\n dispatchCustomEvent(evt.target as HTMLElement, \"vuu-commit\");\n }\n return res;\n },\n [onCommit]\n );\n\n return column.editable ? (\n <Checkbox checked={isChecked} onClick={handleCommit(!isChecked)} />\n ) : (\n <CheckboxIcon checked={isChecked} disabled={true} />\n );\n },\n dataColumnAndKeyUnchanged\n);\nCheckboxCell.displayName = \"CheckboxCell\";\n\nregisterComponent(\"checkbox-cell\", CheckboxCell, \"cell-renderer\", {\n serverDataType: \"boolean\",\n});\n", "import { TableCellRendererProps } from \"@vuu-ui/vuu-table-types\";\nimport { registerComponent } from \"@vuu-ui/vuu-utils\";\nimport { Input } from \"@salt-ds/core\";\nimport { useEditableText } from \"@vuu-ui/vuu-ui-controls\";\nimport cx from \"clsx\";\n\nimport \"./InputCell.css\";\n\nconst classBase = \"vuuTableInputCell\";\n\nconst WarnCommit = (): Promise<true> => {\n console.warn(\n \"onCommit handler has not been provided to InputCell cell renderer\"\n );\n return Promise.resolve(true);\n};\nexport const InputCell = ({\n column,\n columnMap,\n onCommit = WarnCommit,\n row,\n}: TableCellRendererProps) => {\n const dataIdx = columnMap[column.name];\n const dataValue = row[dataIdx] as number | string;\n const { align = \"left\", clientSideEditValidationCheck } = column;\n\n const { warningMessage, ...editProps } = useEditableText({\n initialValue: dataValue,\n onCommit,\n clientSideEditValidationCheck,\n });\n\n const endAdornment =\n warningMessage && align === \"left\" ? (\n <span className={`${classBase}-icon`} data-icon=\"error\" />\n ) : undefined;\n\n const startAdornment =\n warningMessage && align === \"right\" ? (\n <span className={`${classBase}-icon`} data-icon=\"error\" />\n ) : undefined;\n\n return (\n <Input\n {...editProps}\n className={cx(classBase, {\n [`${classBase}-error`]: warningMessage !== undefined,\n })}\n endAdornment={endAdornment}\n startAdornment={startAdornment}\n />\n );\n};\n\nregisterComponent(\"input-cell\", InputCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n", "import {\n ColumnDescriptor,\n TableCellRendererProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport { CycleStateButtonProps, WarnCommit } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n dataColumnAndKeyUnchanged,\n dispatchCustomEvent,\n isTypeDescriptor,\n isValueListRenderer,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\n\nimport { memo, useCallback } from \"react\";\nimport { CycleStateButton } from \"@vuu-ui/vuu-ui-controls\";\n\nimport \"./ToggleCell.css\";\n\nconst classBase = \"vuuTableToggleCell\";\n\nconst getValueList = ({ name, type }: ColumnDescriptor) => {\n if (isTypeDescriptor(type) && isValueListRenderer(type.renderer)) {\n return type.renderer.values;\n } else {\n throw Error(\n `useLookupValues column ${name} has not been configured with a values list`\n );\n }\n};\n\nexport const ToggleCell = memo(function ToggleCell({\n column,\n columnMap,\n onCommit = WarnCommit,\n row,\n}: TableCellRendererProps) {\n const values = getValueList(column);\n const dataIdx = columnMap[column.name];\n const value = row[dataIdx] as string;\n\n const handleCommit = useCallback<CycleStateButtonProps[\"onCommit\"]>(\n (evt, value) => {\n return onCommit(value).then((response) => {\n if (response === true) {\n dispatchCustomEvent(evt.target as HTMLElement, \"vuu-commit\");\n }\n return response;\n });\n },\n [onCommit]\n );\n\n return (\n <CycleStateButton\n className={cx(classBase, `${classBase}-${column.name}`)}\n onCommit={handleCommit}\n value={value}\n values={values}\n variant=\"cta\"\n >\n {value}\n </CycleStateButton>\n );\n},\ndataColumnAndKeyUnchanged);\n\nregisterComponent(\"toggle-cell\", ToggleCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n", "import { useStateRef } from \"@vuu-ui/vuu-ui-controls\";\nimport { dispatchMouseEvent } from \"@vuu-ui/vuu-utils\";\nimport { KeyboardEventHandler, useCallback, useRef } from \"react\";\n\nexport const useControlledTableNavigation = (\n initialValue: number,\n rowCount: number\n) => {\n const tableRef = useRef<HTMLDivElement>(null);\n\n const [highlightedIndexRef, setHighlightedIndex] = useStateRef<\n number | undefined\n >(initialValue);\n\n const handleKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n if (e.key === \"ArrowDown\") {\n setHighlightedIndex((index = -1) => Math.min(rowCount - 1, index + 1));\n } else if (e.key === \"ArrowUp\") {\n setHighlightedIndex((index = -1) => Math.max(0, index - 1));\n } else if (e.key === \"Enter\" || e.key === \" \") {\n const { current: rowIdx } = highlightedIndexRef;\n // induce an onSelect event by 'clicking' the row\n const rowEl = tableRef.current?.querySelector(\n `[aria-rowindex=\"${rowIdx}\"]`\n ) as HTMLElement;\n if (rowEl) {\n dispatchMouseEvent(rowEl, \"click\");\n }\n }\n },\n [highlightedIndexRef, rowCount, setHighlightedIndex]\n );\n\n const handleHighlight = useCallback(\n (idx: number) => {\n setHighlightedIndex(idx);\n },\n [setHighlightedIndex]\n );\n\n return {\n highlightedIndexRef,\n onHighlight: handleHighlight,\n onKeyDown: handleKeyDown,\n tableRef,\n };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["cx", "useCallback", "useRef", "useState", "jsx", "jsxs", "jsx", "jsxs", "useCallback", "jsx", "useCallback", "useCallback", "useRef", "cx", "classBase", "jsx", "jsxs", "classBase", "useRef", "useState", "useCallback", "cx", "cx", "useCallback", "useRef", "cx", "jsx", "classBase", "cx", "jsx", "jsxs", "classBase", "useRef", "useCallback", "cx", "metadataKeys", "cx", "forwardRef", "useRef", "useState", "metadataKeys", "cx", "useCallback", "useCallback", "jsx", "classBase", "useCallback", "useCallback", "cx", "jsx", "jsxs", "classBase", "useCallback", "cx", "jsx", "jsxs", "metadataKeys", "classBase", "RowProxy", "cx", "useCallback", "isGroupColumn", "isNotHidden", "cx", "memo", "useCallback", "useRef", "jsx", "jsxs", "memo", "classBase", "isNotHidden", "isGroupColumn", "cx", "useDragDrop", "buildColumnMap", "getIndexFromRowElement", "isGroupColumn", "isJsonGroup", "metadataKeys", "useLayoutEffectSkipFirst", "useCallback", "useEffect", "useMemo", "useRef", "useState", "isNumericColumn", "useCallback", "useCallback", "useCallback", "useMemo", "useRef", "useState", "metadataKeys", "SELECTED", "useState", "useRef", "useMemo", "useCallback", "_a", "range", "useMemo", "useRef", "useCallback", "useEffect", "useRef", "useRef", "useCallback", "_a", "useEffect", "metadataKeys", "useCallback", "useRef", "IDX", "getIndexFromRowElement", "useCallback", "isGroupColumn", "pinColumn", "updateTableConfig", "getRowElementAtIndex", "useCallback", "useEffect", "useMemo", "useRef", "useState", "useRef", "useCallback", "useState", "useMemo", "getRowElementAtIndex", "useEffect", "useCallback", "useMemo", "useRef", "getRowAtPosition", "useCallback", "useRef", "useState", "useMemo", "IS_EXPANDED", "IS_LEAF", "metadataKeys", "useState", "useDragDrop", "useMemo", "useCallback", "size", "useLayoutEffectSkipFirst", "config", "buildColumnMap", "tableConfig", "useEffect", "hideColumns", "columns", "pinColumn", "useRef", "column", "isJsonGroup", "row", "isGroupColumn", "getIndexFromRowElement", "isValidNumber", "useCallback", "useMemo", "useRef", "useState", "jsx", "jsxs", "classBase", "IDX", "metadataKeys", "Row", "cx", "data", "forwardRef", "useRef", "useState", "memo", "useCallback", "jsx", "memo", "useCallback", "registerComponent", "cx", "jsx", "classBase", "WarnCommit", "cx", "registerComponent", "WarnCommit", "dataColumnAndKeyUnchanged", "dispatchCustomEvent", "registerComponent", "cx", "memo", "useCallback", "jsx", "classBase", "memo", "ToggleCell", "WarnCommit", "useCallback", "value", "dispatchCustomEvent", "cx", "dataColumnAndKeyUnchanged", "registerComponent", "dispatchMouseEvent", "useCallback", "useRef"]
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["OverflowContainer", "useLayoutEffectSkipFirst", "cx", "useCallback", "useRef", "useState", "cx", "useCallback", "jsx", "jsxs", "classBase", "ColumnHeaderPill", "children", "className", "column", "onRemove", "removable", "htmlAttributes", "handleClickRemove", "useCallback", "evt", "cx", "jsx", "jsxs", "GroupColumnPill", "column", "columnHeaderProps", "name", "sorted", "icon", "ColumnHeaderPill", "jsx", "jsxs", "SortIndicator", "column", "icon", "ColumnHeaderPill", "useCallback", "useRef", "jsx", "NOOP", "baseClass", "ColumnResizer", "onDrag", "onDragEnd", "onDragStart", "positionRef", "useRef", "onMouseMove", "useCallback", "e", "position", "x", "moveBy", "distanceMoved", "onMouseUp", "handleMouseDown", "useCallback", "useRef", "useState", "useTableColumnResize", "column", "onResize", "rootRef", "widthRef", "isResizing", "setResizing", "name", "handleResizeStart", "width", "measuredWidth", "handleResize", "_evt", "moveBy", "totalDistanceMoved", "newWidth", "handleResizeEnd", "getColumnStyle", "cx", "useMemo", "useCell", "column", "classBase", "isHeader", "className", "style", "jsx", "jsxs", "createElement", "classBase", "switchIfChanged", "columns", "newColumns", "GroupHeaderCell", "groupColumn", "classNameProp", "onMoveColumn", "onRemoveColumn", "onResize", "htmlAttributes", "rootRef", "useRef", "isResizing", "resizeProps", "useTableColumnResize", "setColumns", "useState", "className", "style", "useCell", "columnPillProps", "handleMoveItem", "useCallback", "fromIndex", "toIndex", "cols", "newCols", "tab", "result", "useLayoutEffectSkipFirst", "cx", "OverflowContainer", "column", "GroupColumnPill", "ColumnHeaderPill", "ColumnResizer", "cx", "useCallback", "useRef", "PopupMenu", "cx", "jsx", "classBase", "ColumnMenu", "className", "column", "PopupMenu", "cx", "jsx", "jsxs", "classBase", "HeaderCell", "classNameProp", "column", "onClick", "onResize", "htmlAttributes", "_a", "HeaderCellContentRenderer", "HeaderCellLabelRenderer", "rootRef", "useRef", "isResizing", "resizeProps", "useTableColumnResize", "handleClick", "useCallback", "evt", "className", "style", "useCell", "columnMenu", "ColumnMenu", "columnLabel", "columnContent", "sortIndicator", "SortIndicator", "headerItems", "cx", "ColumnResizer", "ContextMenuProvider", "MeasuredContainer", "metadataKeys", "useId", "useForkRef", "cx", "forwardRef", "useRef", "useState", "isGroupColumn", "isJsonColumn", "isJsonGroup", "metadataKeys", "isNotHidden", "RowSelected", "cx", "forwardRef", "memo", "useCallback", "isNumericColumn", "useCallback", "jsx", "classBase", "TableCell", "column", "columnMap", "onClick", "onDataEdited", "row", "className", "style", "useCell", "CellRenderer", "index", "name", "valueFormatter", "dataIdx", "handleDataItemEdited", "useCallback", "value", "typedValue", "isNumericColumn", "handleClick", "evt", "getGroupValueAndOffset", "metadataKeys", "useCallback", "cx", "jsx", "jsxs", "IS_LEAF", "metadataKeys", "classBase", "TableGroupCell", "column", "columnMap", "onClick", "row", "columns", "value", "offset", "getGroupValueAndOffset", "className", "style", "useCell", "handleClick", "useCallback", "evt", "isLeaf", "spacers", "n", "i", "cx", "jsx", "jsxs", "IDX", "IS_EXPANDED", "SELECTED", "metadataKeys", "classBase", "RowProxy", "forwardRef", "height", "forwardedRef", "cx", "Row", "memo", "classNameProp", "classNameGenerator", "columnMap", "columns", "highlighted", "row", "offset", "onClick", "onDataEdited", "onToggleGroup", "virtualColSpan", "zebraStripes", "htmlAttributes", "rowIndex", "isExpanded", "selectionStatus", "handleRowClick", "useCallback", "evt", "rangeSelect", "keepExistingSelection", "True", "First", "Last", "RowSelected", "className", "style", "handleGroupCellClick", "column", "isGroupColumn", "isJsonGroup", "isNotHidden", "isGroup", "isJsonCell", "isJsonColumn", "TableGroupCell", "TableCell", "isGroupColumn", "isNotHidden", "cx", "memo", "useDragDrop", "moveColumnTo", "visibleColumnAtIndex", "useCallback", "useRef", "useTableHeader", "columns", "onMoveColumn", "onSortColumn", "tableConfig", "containerRef", "scrollingContainerRef", "setContainerRef", "el", "handleDropColumnHeader", "moveFrom", "moveTo", "column", "orderedColumns", "ofColumn", "name", "col", "targetIndex", "nextColumn", "insertPos", "handleColumnHeaderClick", "evt", "_a", "headerCell", "colIdx", "isAdditive", "columnHeaderDragMouseDown", "draggableColumn", "dragDropHook", "jsx", "jsxs", "TableHeader", "memo", "classBase", "columns", "headings", "onMoveColumn", "onMoveGroupColumn", "onRemoveGroupColumn", "onResizeColumn", "onSortColumn", "tableConfig", "tableId", "virtualColSpan", "draggableColumn", "draggedColumnIndex", "onClick", "onMouseDown", "setContainerRef", "useTableHeader", "colHeaders", "i", "label", "width", "j", "isNotHidden", "col", "isGroupColumn", "GroupHeaderCell", "HeaderCell", "cx", "useDragDrop", "applySort", "asDataSourceRowObject", "buildColumnMap", "getIndexFromRowElement", "isGroupColumn", "isJsonGroup", "isValidNumber", "metadataKeys", "updateColumn", "useLayoutEffectSkipFirst", "useCallback", "useEffect", "useMemo", "useRef", "useState", "isNumericColumn", "buildContextMenuDescriptors", "dataSource", "location", "options", "descriptors", "buildSortMenuItems", "buildGroupMenuItems", "buildAggregationMenuItems", "buildColumnDisplayMenuItems", "sortDefs", "column", "menuItems", "hasSort", "name", "label", "pinColumn", "pinLocation", "pinLeft", "pinFloating", "pinRight", "pin", "groupBy", "removeColumnFromFilter", "addGroupColumn", "addSortColumn", "AggregationType", "setAggregations", "setSortColumn", "removeFilterColumn", "dataSourceFilter", "column", "filterStruct", "filter", "Average", "Count", "Distinct", "High", "Low", "Sum", "useHandleTableContextMenu", "dataSource", "onPersistentColumnOperation", "action", "gridOptions", "name", "updateTableConfig", "config", "action", "col", "isCharacterKey", "useCallback", "headerCellQuery", "colIdx", "dataCellQuery", "rowIdx", "getTableCell", "containerRef", "_a", "cssQuery", "cell", "cellIsEditable", "cellIsTextInput", "getRowIndex", "rowEl", "idx", "closestRow", "el", "closestRowIndex", "NO_SCROLL_NECESSARY", "howFarIsRowOutsideViewport", "totalHeaderHeight", "contentContainer", "viewport", "upperBoundary", "row", "useCellEditing", "navigate", "commitHandler", "useCallback", "editInput", "evt", "cellEl", "input", "focusInput", "handleKeyDown", "e", "el", "cellIsTextInput", "isCharacterKey", "handleDoubleClick", "handleBlur", "handleFocus", "getFullRange", "NULL_RANGE", "rangesAreSame", "useCallback", "useEffect", "useMemo", "useRef", "useState", "isRowSelectedLast", "metadataKeys", "WindowRange", "SELECTED", "MovingWindow", "from", "to", "rowCount", "data", "index", "internalIndex", "previousRow", "overlapFrom", "overlapTo", "newData", "i", "row", "isVuuFeatureInvocation", "action", "useDataSource", "dataSource", "onFeatureInvocation", "onSizeChange", "onSubscribed", "range", "NULL_RANGE", "renderBufferSize", "forceUpdate", "useState", "data", "useRef", "isMounted", "hasUpdated", "rangeRef", "dataWindow", "useMemo", "MovingWindow", "getFullRange", "setData", "useCallback", "updates", "row", "datasourceMessageHandler", "message", "getSelectedRows", "useEffect", "_a", "setRange", "rangesAreSame", "fullRange", "useMemo", "useRef", "useInitialValue", "value", "ref", "getIndexFromRowElement", "useControlled", "useCallback", "useEffect", "useRef", "rowNavigationKeys", "cellNavigationKeys", "isNavigationKey", "key", "navigationStyle", "PageKeys", "isPagingKey", "NULL_CELL_POS", "nextCellPos", "rowIdx", "colIdx", "columnCount", "rowCount", "useKeyboardNavigation", "containerRef", "disableFocus", "defaultHighlightedIndex", "disableHighlightOnFocus", "highlightedIndexProp", "requestScroll", "onHighlight", "viewportRowCount", "_a", "focusedCellPos", "useRef", "focusableCell", "activeCellPos", "highlightedIndexRef", "highlightedIndex", "setHighlightedIdx", "useControlled", "setHighlightedIndex", "useCallback", "idx", "fromKeyboard", "getFocusedCell", "element", "getTableCellPos", "tableCell", "focusedRow", "getIndexFromRowElement", "focusCell", "cellPos", "activeCell", "getTableCell", "setActiveCell", "pos", "nextPageItemIdx", "resolve", "newRowIdx", "handleFocus", "focusedCell", "navigateChildItems", "nextRowIdx", "nextColIdx", "scrollRowIntoViewIfNecessary", "rowIndex", "moveHighlightedRow", "highlighted", "useEffect", "handleKeyDown", "e", "handleClick", "evt", "target", "handleMouseLeave", "handleMouseMove", "closestRowIndex", "navigate", "fullyRendered", "container", "cell", "headerCellQuery", "dataCellQuery", "deselectItem", "dispatchMouseEvent", "getRowElementAtIndex", "isRowSelected", "metadataKeys", "selectItem", "useCallback", "useRef", "IDX", "NO_SELECTION", "defaultSelectionKeys", "useSelection", "highlightedIndexRef", "selectionKeys", "selectionModel", "onSelect", "onSelectionChange", "lastActiveRef", "selectedRef", "isSelectionEvent", "evt", "handleRowClick", "row", "rangeSelect", "keepExistingSelection", "idx", "active", "selected", "selectOperation", "newSelected", "e", "rowIndex", "rowEl", "usePopupContextMenu", "buildColumnMap", "getIndexFromRowElement", "useCallback", "NO_ROWS", "useTableContextMenu", "columns", "data", "dataSource", "getSelectedRows", "showContextMenu", "evt", "target", "cellEl", "rowEl", "selectedRowsCount", "columnMap", "rowIndex", "cellIndex", "row", "idx", "columnName", "applyFilterToColumns", "applyGroupByToColumns", "applySortToColumns", "getCellRenderer", "getColumnHeaderContentRenderer", "getColumnHeaderLabelRenderer", "getColumnLabel", "getTableHeadings", "getValueFormatter", "hasValidationRules", "isFilteredColumn", "isGroupColumn", "isPinned", "logger", "replaceColumn", "sortPinnedColumns", "stripFilterFromColumns", "subscribedOnly", "buildValidationChecker", "useReducer", "info", "DEFAULT_COLUMN_WIDTH", "columnWithoutDataType", "serverDataType", "getDataType", "column", "tableSchema", "schemaColumn", "name", "numericTypes", "getDefaultAlignment", "isShowColumnSettings", "action", "isShowTableSettings", "columnReducer", "state", "init", "moveColumn", "resizeColumn", "setTableSchema", "hideColumns", "showColumns", "pinColumn", "updateColumnProp", "updateTableConfig", "useTableModel", "tableConfigProp", "dataSource", "dispatchTableModelAction", "columns", "headings", "tableConfig", "tableAttributes", "dataSourceConfig", "runtimeColumns", "columnDescriptorToRuntimeColumDescriptor", "maybePinnedColumns", "_", "rest", "getLabel", "label", "columnFormatHeader", "index", "columnDefaultWidth", "align", "width", "runtimeColumnWithDefaults", "col", "moveBy", "idx", "newColumns", "movedColumns", "s", "c", "phase", "type", "resizing", "cols", "_a", "pin", "targetColumn", "hidden", "targetConfigColumn", "confirmed", "filter", "groupBy", "sort", "hasGroupBy", "hasFilter", "hasSort", "result", "getColumnsInViewport", "getRowElementAtIndex", "itemsChanged", "useCallback", "useEffect", "useImperativeHandle", "useMemo", "useRef", "useState", "SCROLL_MOVE_CHECK_THRESHOLD", "HORIZONTAL_SCROLL_BUFFER", "getMaxScroll", "container", "clientHeight", "clientWidth", "scrollHeight", "scrollWidth", "getScrollDirection", "prevScrollPositions", "scrollPos", "prevTop", "getPctScroll", "currentScrollPos", "scrollLeft", "scrollTop", "maxScrollLeft", "pctScrollLeft", "maxScrollTop", "pctScrollTop", "scrollDirection", "noScrolling", "useCallbackRef", "onAttach", "onDetach", "ref", "useRef", "useCallback", "el", "originalRef", "useTableScroll", "columns", "getRowAtPosition", "onHorizontalScroll", "onVerticalScroll", "onVerticalScrollInSitu", "rowHeight", "scrollingApiRef", "setRange", "viewportMeasurements", "firstRowRef", "rowHeightRef", "contentContainerScrolledRef", "contentContainerPosRef", "scrollbarContainerScrolledRef", "scrollbarContainerPosRef", "scrollbarContainerRef", "contentContainerRef", "lastHorizontalScrollCheckPoint", "appliedPageSize", "isVirtualScroll", "viewportRowCount", "totalHeaderHeight", "viewportWidth", "columnsWithinViewportRef", "forceRefresh", "useState", "preSpanRef", "useMemo", "visibleColumns", "offset", "getColumnsInViewport", "handleHorizontalScroll", "pre", "itemsChanged", "handleVerticalScroll", "firstRow", "handleScrollbarContainerScroll", "contentContainer", "scrollbarContainer", "contentContainerScrolled", "contentScrollLeft", "contentScrollTop", "handleContentContainerScroll", "scrollbarContainerScrolled", "handleAttachScrollbarContainer", "handleDetachScrollbarContainer", "handleAttachContentContainer", "handleDetachContentContainer", "contentContainerCallbackRef", "scrollbarContainerCallbackRef", "requestScroll", "scrollRequest", "activeRow", "getRowElementAtIndex", "direction", "distance", "howFarIsRowOutsideViewport", "newScrollLeft", "newScrollTop", "scrollBy", "scrollTo", "scrollHandles", "rowIndex", "rowKey", "useImperativeHandle", "useEffect", "from", "rowRange", "actualRowPositioning", "measurePinnedColumns", "virtualRowPositioning", "useCallback", "useMemo", "useRef", "MAX_PIXEL_HEIGHT", "UNMEASURED_VIEWPORT", "useTableViewport", "columns", "headerHeight", "headings", "rowCount", "rowHeight", "selectionEndSize", "size", "inSituRowOffsetRef", "pctScrollTopRef", "pixelContentHeight", "virtualContentHeight", "virtualisedExtent", "pinnedWidthLeft", "pinnedWidthRight", "unpinnedWidth", "totalHeaderHeightRef", "getRowOffset", "getRowAtPosition", "isVirtualScroll", "_getRowOffset", "_isVirtual", "row", "setScrollTop", "_", "scrollPct", "setInSituRowOffset", "rowIndexOffset", "totalHeaderHeight", "scrollbarSize", "contentWidth", "horizontalScrollbarHeight", "visibleRows", "count", "viewportBodyHeight", "verticalScrollbarWidth", "appliedPageSize", "viewportWidth", "useLayoutProviderDispatch", "getCalculatedColumnType", "useCallback", "useRef", "useState", "useTableAndColumnSettings", "availableColumnsProps", "onAvailableColumnsChange", "onConfigChange", "onCreateCalculatedColumn", "onDataSourceConfigChange", "tableConfig", "dispatchLayoutAction", "showTableSettingsRef", "availableColumns", "setAvailableColumns", "showContextPanel", "componentType", "title", "props", "handleCancelCreateColumn", "_a", "handleCreateCalculatedColumn", "column", "newAvailableColumns", "showColumnSettingsPanel", "action", "handleAddCalculatedColumn", "handleNavigateToColumn", "columnName", "c", "name", "serverDataType", "getRowClassNameGenerator", "useMemo", "createClassNameGenerator", "ids", "functions", "id", "fn", "row", "columnMap", "classNames", "className", "useRowClassNameGenerators", "rowClassNameGenerators", "stripInternalProperties", "tableConfig", "KEY", "IS_EXPANDED", "IS_LEAF", "metadataKeys", "NULL_DRAG_DROP", "useNullDragDrop", "addColumn", "column", "useTable", "allowDragDrop", "availableColumns", "config", "containerRef", "dataSource", "disableFocus", "headerHeight", "highlightedIndexProp", "id", "navigationStyle", "onAvailableColumnsChange", "onConfigChange", "onDragStart", "onDrop", "onFeatureInvocation", "onHighlight", "onRowClickProp", "onSelect", "onSelectionChange", "renderBufferSize", "rowHeight", "scrollingApiRef", "selectionModel", "size", "rowCount", "setRowCount", "useState", "rowClassNameGenerator", "useRowClassNameGenerators", "useRowDragDrop", "useDragDrop", "menuBuilder", "useMemo", "buildContextMenuDescriptors", "onDataRowcountChange", "useCallback", "columns", "dispatchTableModelAction", "headings", "tableAttributes", "useTableModel", "useLayoutEffectSkipFirst", "applyTableConfigChange", "columnMap", "buildColumnMap", "onSubscribed", "tableSchema", "getRowAtPosition", "getRowOffset", "viewportHookSetInSituRowOffset", "viewportHookSetScrollTop", "viewportMeasurements", "useTableViewport", "initialRange", "useInitialValue", "data", "dataRef", "getSelectedRows", "range", "setRange", "useDataSource", "requestScroll", "scrollProps", "useTableScroll", "handleConfigEditedInSettingsPanel", "handleDataSourceConfigChanged", "dataSourceConfig", "useEffect", "confirmed", "changes", "handleCreateCalculatedColumn", "hideColumns", "action", "hiddenColumns", "c", "newTableConfig", "col", "pinColumn", "updateColumn", "showColumnSettingsPanel", "showTableSettingsPanel", "useTableAndColumnSettings", "name", "serverDataType", "onPersistentColumnOperation", "isShowColumnSettings", "isShowTableSettings", "handleContextMenuAction", "useHandleTableContextMenu", "handleSort", "extendSort", "sortType", "applySort", "resizeCells", "useRef", "onResizeColumn", "phase", "columnName", "width", "_a", "_b", "_c", "cell", "isValidNumber", "updateTableConfig", "byColIndex", "onToggleGroup", "row", "isJson", "isJsonGroup", "key", "idx", "rows", "childRows", "columnsToShow", "highlightedIndexRef", "navigate", "navigationFocus", "navigationKeyDown", "containerProps", "useKeyboardNavigation", "editingBlur", "editingDoubleClick", "editingKeyDown", "editingFocus", "useCellEditing", "handleFocus", "e", "onContextMenu", "useTableContextMenu", "onMoveGroupColumn", "onRemoveGroupColumn", "isGroupColumn", "handleSelectionChange", "selected", "handleSelect", "asDataSourceRowObject", "selectionHookKeyDown", "selectionHookOnRowClick", "useSelection", "handleRowClick", "evt", "rangeSelect", "keepExistingSelection", "handleKeyDown", "onMoveColumn", "handleDropRow", "dragDropState", "handleDataEdited", "value", "handleDragStartRow", "initialDragElement", "rowIndex", "getIndexFromRowElement", "rowDragMouseDown", "draggableRow", "isValidNumber", "useCallback", "useMemo", "useRef", "useState", "useRowHeight", "rowHeightProp", "rowHeight", "setRowHeight", "heightRef", "resizeObserver", "entries", "entry", "measuredSize", "newHeight", "rowRef", "el", "height", "jsx", "jsxs", "classBase", "IDX", "RENDER_IDX", "metadataKeys", "TableCore", "Row", "allowDragDrop", "availableColumns", "config", "containerRef", "dataSource", "disableFocus", "highlightedIndexProp", "idProp", "navigationStyle", "onAvailableColumnsChange", "onConfigChange", "onDragStart", "onDrop", "onFeatureInvocation", "onHighlight", "onRowClickProp", "onSelect", "onSelectionChange", "renderBufferSize", "rowHeight", "scrollingApiRef", "selectionModel", "showColumnHeaders", "headerHeight", "size", "id", "useId", "columnMap", "columns", "data", "draggableRow", "getRowOffset", "handleContextMenuAction", "headings", "highlightedIndex", "menuBuilder", "onDataEdited", "onMoveColumn", "onMoveGroupColumn", "onRemoveGroupColumn", "onResizeColumn", "onRowClick", "onSortColumn", "onToggleGroup", "rowClassNameGenerator", "scrollProps", "tableAttributes", "tableConfig", "viewportMeasurements", "tableProps", "useTable", "contentContainerClassName", "cx", "cssVariables", "ContextMenuProvider", "TableHeader", "Table", "forwardRef", "classNameProp", "rowHeightProp", "styleProp", "htmlAttributes", "forwardedRef", "useRef", "setSize", "useState", "rowRef", "useRowHeight", "MeasuredContainer", "useForkRef", "RowProxy", "memo", "useCallback", "CheckboxIcon", "WarnCommit", "Checkbox", "dataColumnAndKeyUnchanged", "dispatchCustomEvent", "registerComponent", "jsx", "CheckboxCell", "memo", "column", "columnMap", "onCommit", "WarnCommit", "row", "dataIdx", "isChecked", "handleCommit", "useCallback", "value", "evt", "res", "dispatchCustomEvent", "Checkbox", "CheckboxIcon", "dataColumnAndKeyUnchanged", "registerComponent", "registerComponent", "Input", "useEditableText", "cx", "jsx", "classBase", "WarnCommit", "InputCell", "column", "columnMap", "onCommit", "row", "dataIdx", "dataValue", "align", "clientSideEditValidationCheck", "warningMessage", "editProps", "useEditableText", "endAdornment", "startAdornment", "Input", "cx", "registerComponent", "WarnCommit", "dataColumnAndKeyUnchanged", "dispatchCustomEvent", "isTypeDescriptor", "isValueListRenderer", "registerComponent", "cx", "memo", "useCallback", "CycleStateButton", "jsx", "classBase", "getValueList", "name", "type", "isTypeDescriptor", "isValueListRenderer", "ToggleCell", "memo", "column", "columnMap", "onCommit", "WarnCommit", "row", "values", "dataIdx", "value", "handleCommit", "useCallback", "evt", "response", "dispatchCustomEvent", "CycleStateButton", "cx", "dataColumnAndKeyUnchanged", "registerComponent", "useStateRef", "dispatchMouseEvent", "useCallback", "useRef", "useControlledTableNavigation", "initialValue", "rowCount", "tableRef", "highlightedIndexRef", "setHighlightedIndex", "handleKeyDown", "e", "_a", "index", "rowIdx", "rowEl", "handleHighlight", "idx"]
|
|
7
7
|
}
|