@are-visual/virtual-table 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { createMiddleware, useShallowMemo, useStableFn } from '@are-visual/virtual-table';
2
+ import { useMergedRef, createMiddleware, useShallowMemo, useStableFn } from '@are-visual/virtual-table';
3
3
  import { useControllableValue } from '@are-visual/virtual-table/middleware/utils/useControllableValue';
4
4
  import { forwardRef, useRef, useEffect, createElement, useCallback, useMemo, isValidElement } from 'react';
5
- import { useMergedRef } from '@are-visual/virtual-table/utils/ref';
6
5
  import clsx from 'clsx';
7
6
 
8
7
  function Selection(props, ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/virtual-table/src/middleware/selection/selection.tsx","../../../../packages/virtual-table/src/middleware/selection/table-selection.tsx"],"sourcesContent":["import type { ComponentType, DetailedHTMLProps, ForwardedRef, InputHTMLAttributes } from 'react'\nimport type { SelectionProps as BaseProps } from './types'\nimport { useMergedRef } from '@are-visual/virtual-table/utils/ref'\nimport clsx from 'clsx'\nimport { createElement, forwardRef, useEffect, useRef } from 'react'\n\ntype InputProps = DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\nexport interface SelectionProps extends BaseProps,\n Omit<InputProps, 'type' | 'onChange' | 'checked' | 'value' | 'defaultChecked' | 'defaultValue' | 'disabled'> {\n component?: ComponentType<BaseProps>\n}\n\nfunction Selection(props: SelectionProps, ref: ForwardedRef<HTMLInputElement>) {\n const {\n className,\n multiple,\n indeterminate,\n value = false,\n onChange,\n component,\n ...rest\n } = props\n\n const isCustomComponent = component != null\n\n const inputNode = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (isCustomComponent) return\n const input = inputNode.current\n if (input == null) return\n input.indeterminate = !!indeterminate\n }, [isCustomComponent, indeterminate])\n\n const mergedRef = useMergedRef(inputNode, ref)\n\n if (isCustomComponent) {\n return createElement(component, props)\n }\n\n return (\n <input\n {...rest}\n ref={mergedRef}\n className={clsx('virtual-table-selection', className)}\n type={multiple ? 'checkbox' : 'radio'}\n checked={value}\n onChange={(e) => {\n onChange?.(e.target.checked, e.nativeEvent)\n }}\n />\n )\n}\n\nexport default forwardRef(Selection)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AnyObject, ColumnType, MiddlewareContext, MiddlewareResult } from '@are-visual/virtual-table'\nimport type { Key, ReactNode } from 'react'\nimport type { SelectionColumnTitleProps, TableRowSelection } from './types'\n\nimport { createMiddleware, useShallowMemo, useStableFn } from '@are-visual/virtual-table'\nimport { useControllableValue } from '@are-visual/virtual-table/middleware/utils/useControllableValue'\nimport { isValidElement, useCallback, useMemo, useRef } from 'react'\nimport Selection from './selection'\n\nexport const SELECTION_COLUMN_KEY = 'VirtualTable.SELECTION_COLUMN'\n\nconst EMPTY_ARR: AnyObject[] = []\n\nexport function isSelectionColumn<T = any>(column: ColumnType<T>) {\n return column.key === SELECTION_COLUMN_KEY\n}\n\nfunction useSelection<T = any>(\n ctx: MiddlewareContext<T>,\n options?: TableRowSelection<T>,\n): MiddlewareResult<T> {\n const disablePlugin = options == null\n\n const { columns: rawColumns } = ctx\n const rowKey = ctx.rowKey as string\n const dataSource = disablePlugin ? EMPTY_ARR : (ctx.dataSource as AnyObject[])\n\n const {\n defaultSelectedRowKeys,\n\n component,\n preserveSelectedRowKeys,\n multiple = true,\n getSelectionProps,\n onSelect,\n hideSelectAll = false,\n fixed,\n columnWidth,\n columnTitle,\n\n extraColumnProps,\n\n // checkStrictly 属性使用场景:\n // const dataSource = [{ key: 1, name: \"张三\", children: [{ key: 1.1, name: \"李四\" }] }]\n // dataSource 中含有 children 属性,antd Table 组件会显示为“树形”结构,Table 左侧会新增一个展开按钮,点击后会显示“李四”的数据\n // 勾选“张三”的时候,会把对应 children 全部选中。如果 checkStrictly=false 则不选中。\n // checkStrictly: _checkStrictly,\n\n renderCell,\n onCell,\n } = options ?? {}\n\n const [selectedRowKeys = [], setSelectedRowKeys] = useControllableValue<Key[]>(\n options ?? {},\n {\n defaultValue: defaultSelectedRowKeys,\n valuePropName: 'selectedRowKeys',\n trigger: 'onChange',\n },\n )\n\n const rowClassName = useCallback((record: T) => {\n const key = (record as AnyObject)[rowKey] as Key\n const checked = selectedRowKeys.includes(key)\n return checked ? 'virtual-table-row-selected' : ''\n }, [rowKey, selectedRowKeys])\n\n const selectionPropsList = useShallowMemo(() => {\n return dataSource.map((row) => {\n if (!getSelectionProps) return {}\n return getSelectionProps(row as T)\n })\n })\n\n // 当有某一行数据 Checkbox disabled 时,过滤它\n const allKeys: Key[] = useShallowMemo(() => {\n return dataSource\n .filter((_data, index) => !selectionPropsList[index].disabled)\n .map((x) => x[rowKey] as Key)\n })\n\n // preserveSelectedRowKeys=true 时,勾选过的数据,都会在这里存一份\n const cache = useRef(new Map<Key, T>())\n\n const allDisabled = !selectionPropsList.some((item) => !item.disabled)\n\n const getRowsByKeys = useStableFn((keys: Key[]) => {\n const result: (T | undefined)[] = []\n keys.forEach((key) => {\n let value = dataSource.find((row) => row[rowKey] === key) as T | undefined\n\n // 在 cache 中还是找不到对应的数据,就放弃寻找,填入一个 undefined(与 antd 默认表现一致)\n // 场景: selectedRowKeys 中有一个在 dataSource 中不存在的 key,用这个 key 是找不到数据的\n if (value == null && preserveSelectedRowKeys) {\n value = cache.current.get(key)\n }\n\n if (value == null && !preserveSelectedRowKeys) return\n\n result.push(value)\n })\n return result\n })\n\n const prevSelectedIndex = useRef<number | null>(null)\n\n const mergeColumns = useMemo(() => {\n if (disablePlugin) {\n return rawColumns\n }\n\n const isSelected = selectedRowKeys.length > 0\n const indeterminate = isSelected && allKeys.length > selectedRowKeys.length\n const isSelectedAll = isSelected\n ? allKeys.length > 0 && allKeys.every((key) => selectedRowKeys.includes(key))\n : false\n\n const shakeDeadKeys = (keys: Key[]) => {\n const unionKeys = new Set(keys)\n if (!preserveSelectedRowKeys) {\n return Array.from(unionKeys).filter((key) => {\n return allKeys.includes(key)\n })\n }\n return Array.from(unionKeys)\n }\n\n const multipleSelect = (currentIndex: number, nextChecked: boolean) => {\n const index = prevSelectedIndex.current ?? currentIndex\n const startIndex = Math.min(index, currentIndex)\n const endIndex = Math.max(index, currentIndex)\n const rangeKeys = allKeys.slice(startIndex, endIndex + 1)\n const shouldSelected = rangeKeys.some((rangeKey) => !selectedRowKeys.includes(rangeKey))\n prevSelectedIndex.current = shouldSelected ? endIndex : null\n const keys = nextChecked\n ? shakeDeadKeys([...selectedRowKeys, ...rangeKeys])\n : shakeDeadKeys(selectedRowKeys.filter((x) => !rangeKeys.includes(x)))\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'multiple' })\n }\n\n const onSelectAll = () => {\n const keys = shakeDeadKeys([...selectedRowKeys, ...allKeys])\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'all' })\n }\n\n const onSelectInvert = () => {\n const keys = allKeys.filter((key) => !selectedRowKeys.includes(key))\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'invert' })\n }\n\n const onClearAll = () => {\n setSelectedRowKeys([], [], { type: 'none' })\n }\n\n const columnTitleProps: SelectionColumnTitleProps = {\n indeterminate,\n value: isSelectedAll,\n disabled: allDisabled,\n multiple,\n onChange: (checked) => {\n if (checked) {\n onSelectAll()\n } else {\n onClearAll()\n }\n },\n onClear: onClearAll,\n onSelectAll,\n onSelectInvert,\n allKeys,\n }\n\n const onCreateTitle = () => {\n if (!multiple) {\n if (isValidElement(columnTitle)) {\n return columnTitle\n }\n if (typeof columnTitle === 'function') {\n return columnTitle(undefined, columnTitleProps)\n }\n return null\n }\n\n let title: ReactNode = (\n <div className=\"virtual-table-selection\">\n <Selection\n component={component}\n multiple={multiple}\n value={isSelectedAll}\n indeterminate={indeterminate}\n disabled={allDisabled}\n onChange={(checked) => {\n if (checked) {\n onSelectAll()\n } else {\n onClearAll()\n }\n }}\n />\n </div>\n )\n if (isValidElement(columnTitle)) {\n title = columnTitle\n } else if (typeof columnTitle === 'function') {\n title = columnTitle(title, columnTitleProps)\n }\n return title\n }\n\n const column: ColumnType<T> = {\n ...extraColumnProps,\n title: hideSelectAll ? undefined : onCreateTitle(),\n width: columnWidth ?? 32,\n align: 'center',\n fixed: fixed ? 'left' : undefined,\n key: SELECTION_COLUMN_KEY,\n render(_value, record, index) {\n const key = (record as AnyObject)[rowKey] as Key\n const checked = selectedRowKeys.includes(key)\n const extraProps = selectionPropsList[index]\n\n const updateCache = () => {\n if (preserveSelectedRowKeys) {\n cache.current.set(key, record)\n }\n }\n\n const node = (\n <Selection\n {...extraProps}\n component={component}\n value={checked}\n multiple={multiple}\n onChange={(nextChecked, e) => {\n updateCache()\n if (multiple && (e as PointerEvent).shiftKey) {\n multipleSelect(index, nextChecked)\n return\n }\n if (nextChecked) {\n prevSelectedIndex.current = index\n } else {\n prevSelectedIndex.current = null\n }\n let keys: Key[] = [key]\n if (multiple) {\n keys = nextChecked ? shakeDeadKeys([...selectedRowKeys, key]) : shakeDeadKeys(selectedRowKeys.filter((x) => x !== key))\n }\n const rows = getRowsByKeys(keys)\n // @ts-expect-error rows 并不是安全的 T[] 类型,因为有 preserveSelectedRowKeys 功能存在,在此处只能忽略类型错误\n onSelect?.(record, nextChecked, rows, e)\n setSelectedRowKeys(keys, rows, { type: 'single' })\n }}\n />\n )\n\n if (typeof renderCell === 'function') {\n return renderCell(checked, record, index, node)\n }\n\n return node\n },\n onCell,\n onHeaderCell() {\n return { className: 'virtual-table-selection-column' }\n },\n }\n\n return [column, ...rawColumns]\n }, [\n disablePlugin,\n extraColumnProps,\n allDisabled,\n allKeys,\n columnTitle,\n columnWidth,\n fixed,\n getRowsByKeys,\n hideSelectAll,\n onCell,\n onSelect,\n preserveSelectedRowKeys,\n rawColumns,\n renderCell,\n rowKey,\n selectedRowKeys,\n selectionPropsList,\n setSelectedRowKeys,\n multiple,\n component,\n ])\n\n if (disablePlugin) {\n return ctx\n }\n\n return {\n ...ctx,\n rowClassName,\n columns: mergeColumns,\n }\n}\n\n/**\n * 为 Table 实现多选、单选功能,不传入 options 则是禁用插件\n */\nexport const tableSelection = createMiddleware(useSelection)\n"],"names":["Selection","props","ref","className","multiple","indeterminate","value","onChange","component","rest","isCustomComponent","inputNode","useRef","useEffect","input","current","mergedRef","useMergedRef","createElement","_jsx","clsx","type","checked","e","target","nativeEvent","forwardRef","SELECTION_COLUMN_KEY","EMPTY_ARR","useSelection","ctx","options","disablePlugin","columns","rawColumns","rowKey","dataSource","defaultSelectedRowKeys","preserveSelectedRowKeys","getSelectionProps","onSelect","hideSelectAll","fixed","columnWidth","columnTitle","extraColumnProps","renderCell","onCell","selectedRowKeys","setSelectedRowKeys","useControllableValue","defaultValue","valuePropName","trigger","rowClassName","useCallback","record","key","includes","selectionPropsList","useShallowMemo","map","row","allKeys","filter","_data","index","disabled","x","cache","Map","allDisabled","some","item","getRowsByKeys","useStableFn","keys","result","forEach","find","get","push","prevSelectedIndex","mergeColumns","useMemo","isSelected","length","isSelectedAll","every","shakeDeadKeys","unionKeys","Set","Array","from","multipleSelect","currentIndex","nextChecked","startIndex","Math","min","endIndex","max","rangeKeys","slice","shouldSelected","rangeKey","rows","onSelectAll","onSelectInvert","onClearAll","columnTitleProps","onClear","onCreateTitle","isValidElement","undefined","title","children","column","width","align","render","_value","extraProps","updateCache","set","node","shiftKey","onHeaderCell","tableSelection","createMiddleware"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/virtual-table/src/middleware/selection/selection.tsx","../../../../packages/virtual-table/src/middleware/selection/table-selection.tsx"],"sourcesContent":["import type { ComponentType, DetailedHTMLProps, ForwardedRef, InputHTMLAttributes } from 'react'\nimport type { SelectionProps as BaseProps } from './types'\nimport { useMergedRef } from '@are-visual/virtual-table'\nimport clsx from 'clsx'\nimport { createElement, forwardRef, useEffect, useRef } from 'react'\n\ntype InputProps = DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>\nexport interface SelectionProps extends BaseProps,\n Omit<InputProps, 'type' | 'onChange' | 'checked' | 'value' | 'defaultChecked' | 'defaultValue' | 'disabled'> {\n component?: ComponentType<BaseProps>\n}\n\nfunction Selection(props: SelectionProps, ref: ForwardedRef<HTMLInputElement>) {\n const {\n className,\n multiple,\n indeterminate,\n value = false,\n onChange,\n component,\n ...rest\n } = props\n\n const isCustomComponent = component != null\n\n const inputNode = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (isCustomComponent) return\n const input = inputNode.current\n if (input == null) return\n input.indeterminate = !!indeterminate\n }, [isCustomComponent, indeterminate])\n\n const mergedRef = useMergedRef(inputNode, ref)\n\n if (isCustomComponent) {\n return createElement(component, props)\n }\n\n return (\n <input\n {...rest}\n ref={mergedRef}\n className={clsx('virtual-table-selection', className)}\n type={multiple ? 'checkbox' : 'radio'}\n checked={value}\n onChange={(e) => {\n onChange?.(e.target.checked, e.nativeEvent)\n }}\n />\n )\n}\n\nexport default forwardRef(Selection)\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AnyObject, ColumnType, MiddlewareContext, MiddlewareResult } from '@are-visual/virtual-table'\nimport type { Key, ReactNode } from 'react'\nimport type { SelectionColumnTitleProps, TableRowSelection } from './types'\n\nimport { createMiddleware, useShallowMemo, useStableFn } from '@are-visual/virtual-table'\nimport { useControllableValue } from '@are-visual/virtual-table/middleware/utils/useControllableValue'\nimport { isValidElement, useCallback, useMemo, useRef } from 'react'\nimport Selection from './selection'\n\nexport const SELECTION_COLUMN_KEY = 'VirtualTable.SELECTION_COLUMN'\n\nconst EMPTY_ARR: AnyObject[] = []\n\nexport function isSelectionColumn<T = any>(column: ColumnType<T>) {\n return column.key === SELECTION_COLUMN_KEY\n}\n\nfunction useSelection<T = any>(\n ctx: MiddlewareContext<T>,\n options?: TableRowSelection<T>,\n): MiddlewareResult<T> {\n const disablePlugin = options == null\n\n const { columns: rawColumns } = ctx\n const rowKey = ctx.rowKey as string\n const dataSource = disablePlugin ? EMPTY_ARR : (ctx.dataSource as AnyObject[])\n\n const {\n defaultSelectedRowKeys,\n\n component,\n preserveSelectedRowKeys,\n multiple = true,\n getSelectionProps,\n onSelect,\n hideSelectAll = false,\n fixed,\n columnWidth,\n columnTitle,\n\n extraColumnProps,\n\n // checkStrictly 属性使用场景:\n // const dataSource = [{ key: 1, name: \"张三\", children: [{ key: 1.1, name: \"李四\" }] }]\n // dataSource 中含有 children 属性,antd Table 组件会显示为“树形”结构,Table 左侧会新增一个展开按钮,点击后会显示“李四”的数据\n // 勾选“张三”的时候,会把对应 children 全部选中。如果 checkStrictly=false 则不选中。\n // checkStrictly: _checkStrictly,\n\n renderCell,\n onCell,\n } = options ?? {}\n\n const [selectedRowKeys = [], setSelectedRowKeys] = useControllableValue<Key[]>(\n options ?? {},\n {\n defaultValue: defaultSelectedRowKeys,\n valuePropName: 'selectedRowKeys',\n trigger: 'onChange',\n },\n )\n\n const rowClassName = useCallback((record: T) => {\n const key = (record as AnyObject)[rowKey] as Key\n const checked = selectedRowKeys.includes(key)\n return checked ? 'virtual-table-row-selected' : ''\n }, [rowKey, selectedRowKeys])\n\n const selectionPropsList = useShallowMemo(() => {\n return dataSource.map((row) => {\n if (!getSelectionProps) return {}\n return getSelectionProps(row as T)\n })\n })\n\n // 当有某一行数据 Checkbox disabled 时,过滤它\n const allKeys: Key[] = useShallowMemo(() => {\n return dataSource\n .filter((_data, index) => !selectionPropsList[index].disabled)\n .map((x) => x[rowKey] as Key)\n })\n\n // preserveSelectedRowKeys=true 时,勾选过的数据,都会在这里存一份\n const cache = useRef(new Map<Key, T>())\n\n const allDisabled = !selectionPropsList.some((item) => !item.disabled)\n\n const getRowsByKeys = useStableFn((keys: Key[]) => {\n const result: (T | undefined)[] = []\n keys.forEach((key) => {\n let value = dataSource.find((row) => row[rowKey] === key) as T | undefined\n\n // 在 cache 中还是找不到对应的数据,就放弃寻找,填入一个 undefined(与 antd 默认表现一致)\n // 场景: selectedRowKeys 中有一个在 dataSource 中不存在的 key,用这个 key 是找不到数据的\n if (value == null && preserveSelectedRowKeys) {\n value = cache.current.get(key)\n }\n\n if (value == null && !preserveSelectedRowKeys) return\n\n result.push(value)\n })\n return result\n })\n\n const prevSelectedIndex = useRef<number | null>(null)\n\n const mergeColumns = useMemo(() => {\n if (disablePlugin) {\n return rawColumns\n }\n\n const isSelected = selectedRowKeys.length > 0\n const indeterminate = isSelected && allKeys.length > selectedRowKeys.length\n const isSelectedAll = isSelected\n ? allKeys.length > 0 && allKeys.every((key) => selectedRowKeys.includes(key))\n : false\n\n const shakeDeadKeys = (keys: Key[]) => {\n const unionKeys = new Set(keys)\n if (!preserveSelectedRowKeys) {\n return Array.from(unionKeys).filter((key) => {\n return allKeys.includes(key)\n })\n }\n return Array.from(unionKeys)\n }\n\n const multipleSelect = (currentIndex: number, nextChecked: boolean) => {\n const index = prevSelectedIndex.current ?? currentIndex\n const startIndex = Math.min(index, currentIndex)\n const endIndex = Math.max(index, currentIndex)\n const rangeKeys = allKeys.slice(startIndex, endIndex + 1)\n const shouldSelected = rangeKeys.some((rangeKey) => !selectedRowKeys.includes(rangeKey))\n prevSelectedIndex.current = shouldSelected ? endIndex : null\n const keys = nextChecked\n ? shakeDeadKeys([...selectedRowKeys, ...rangeKeys])\n : shakeDeadKeys(selectedRowKeys.filter((x) => !rangeKeys.includes(x)))\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'multiple' })\n }\n\n const onSelectAll = () => {\n const keys = shakeDeadKeys([...selectedRowKeys, ...allKeys])\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'all' })\n }\n\n const onSelectInvert = () => {\n const keys = allKeys.filter((key) => !selectedRowKeys.includes(key))\n const rows = getRowsByKeys(keys)\n setSelectedRowKeys(keys, rows, { type: 'invert' })\n }\n\n const onClearAll = () => {\n setSelectedRowKeys([], [], { type: 'none' })\n }\n\n const columnTitleProps: SelectionColumnTitleProps = {\n indeterminate,\n value: isSelectedAll,\n disabled: allDisabled,\n multiple,\n onChange: (checked) => {\n if (checked) {\n onSelectAll()\n } else {\n onClearAll()\n }\n },\n onClear: onClearAll,\n onSelectAll,\n onSelectInvert,\n allKeys,\n }\n\n const onCreateTitle = () => {\n if (!multiple) {\n if (isValidElement(columnTitle)) {\n return columnTitle\n }\n if (typeof columnTitle === 'function') {\n return columnTitle(undefined, columnTitleProps)\n }\n return null\n }\n\n let title: ReactNode = (\n <div className=\"virtual-table-selection\">\n <Selection\n component={component}\n multiple={multiple}\n value={isSelectedAll}\n indeterminate={indeterminate}\n disabled={allDisabled}\n onChange={(checked) => {\n if (checked) {\n onSelectAll()\n } else {\n onClearAll()\n }\n }}\n />\n </div>\n )\n if (isValidElement(columnTitle)) {\n title = columnTitle\n } else if (typeof columnTitle === 'function') {\n title = columnTitle(title, columnTitleProps)\n }\n return title\n }\n\n const column: ColumnType<T> = {\n ...extraColumnProps,\n title: hideSelectAll ? undefined : onCreateTitle(),\n width: columnWidth ?? 32,\n align: 'center',\n fixed: fixed ? 'left' : undefined,\n key: SELECTION_COLUMN_KEY,\n render(_value, record, index) {\n const key = (record as AnyObject)[rowKey] as Key\n const checked = selectedRowKeys.includes(key)\n const extraProps = selectionPropsList[index]\n\n const updateCache = () => {\n if (preserveSelectedRowKeys) {\n cache.current.set(key, record)\n }\n }\n\n const node = (\n <Selection\n {...extraProps}\n component={component}\n value={checked}\n multiple={multiple}\n onChange={(nextChecked, e) => {\n updateCache()\n if (multiple && (e as PointerEvent).shiftKey) {\n multipleSelect(index, nextChecked)\n return\n }\n if (nextChecked) {\n prevSelectedIndex.current = index\n } else {\n prevSelectedIndex.current = null\n }\n let keys: Key[] = [key]\n if (multiple) {\n keys = nextChecked ? shakeDeadKeys([...selectedRowKeys, key]) : shakeDeadKeys(selectedRowKeys.filter((x) => x !== key))\n }\n const rows = getRowsByKeys(keys)\n // @ts-expect-error rows 并不是安全的 T[] 类型,因为有 preserveSelectedRowKeys 功能存在,在此处只能忽略类型错误\n onSelect?.(record, nextChecked, rows, e)\n setSelectedRowKeys(keys, rows, { type: 'single' })\n }}\n />\n )\n\n if (typeof renderCell === 'function') {\n return renderCell(checked, record, index, node)\n }\n\n return node\n },\n onCell,\n onHeaderCell() {\n return { className: 'virtual-table-selection-column' }\n },\n }\n\n return [column, ...rawColumns]\n }, [\n disablePlugin,\n extraColumnProps,\n allDisabled,\n allKeys,\n columnTitle,\n columnWidth,\n fixed,\n getRowsByKeys,\n hideSelectAll,\n onCell,\n onSelect,\n preserveSelectedRowKeys,\n rawColumns,\n renderCell,\n rowKey,\n selectedRowKeys,\n selectionPropsList,\n setSelectedRowKeys,\n multiple,\n component,\n ])\n\n if (disablePlugin) {\n return ctx\n }\n\n return {\n ...ctx,\n rowClassName,\n columns: mergeColumns,\n }\n}\n\n/**\n * 为 Table 实现多选、单选功能,不传入 options 则是禁用插件\n */\nexport const tableSelection = createMiddleware(useSelection)\n"],"names":["Selection","props","ref","className","multiple","indeterminate","value","onChange","component","rest","isCustomComponent","inputNode","useRef","useEffect","input","current","mergedRef","useMergedRef","createElement","_jsx","clsx","type","checked","e","target","nativeEvent","forwardRef","SELECTION_COLUMN_KEY","EMPTY_ARR","useSelection","ctx","options","disablePlugin","columns","rawColumns","rowKey","dataSource","defaultSelectedRowKeys","preserveSelectedRowKeys","getSelectionProps","onSelect","hideSelectAll","fixed","columnWidth","columnTitle","extraColumnProps","renderCell","onCell","selectedRowKeys","setSelectedRowKeys","useControllableValue","defaultValue","valuePropName","trigger","rowClassName","useCallback","record","key","includes","selectionPropsList","useShallowMemo","map","row","allKeys","filter","_data","index","disabled","x","cache","Map","allDisabled","some","item","getRowsByKeys","useStableFn","keys","result","forEach","find","get","push","prevSelectedIndex","mergeColumns","useMemo","isSelected","length","isSelectedAll","every","shakeDeadKeys","unionKeys","Set","Array","from","multipleSelect","currentIndex","nextChecked","startIndex","Math","min","endIndex","max","rangeKeys","slice","shouldSelected","rangeKey","rows","onSelectAll","onSelectInvert","onClearAll","columnTitleProps","onClear","onCreateTitle","isValidElement","undefined","title","children","column","width","align","render","_value","extraProps","updateCache","set","node","shiftKey","onHeaderCell","tableSelection","createMiddleware"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@are-visual/virtual-table",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "main": "./index.esm.js",
5
5
  "types": "./index.d.ts",
6
6
  "sideEffects": false,