@zhenliang/sheet 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/core/config.js +2 -1
  2. package/dist/core/config.js.map +1 -0
  3. package/dist/core/editor/cascaderEditor/index.js +2 -1
  4. package/dist/core/editor/cascaderEditor/index.js.map +1 -0
  5. package/dist/core/editor/dateEditor/index.d.ts +2 -1
  6. package/dist/core/editor/dateEditor/index.js +44 -34
  7. package/dist/core/editor/dateEditor/index.js.map +1 -0
  8. package/dist/core/editor/index.d.ts +1 -1
  9. package/dist/core/editor/index.js +3 -2
  10. package/dist/core/editor/index.js.map +1 -0
  11. package/dist/core/editor/numberEditor/index.d.ts +1 -1
  12. package/dist/core/editor/numberEditor/index.js +6 -1
  13. package/dist/core/editor/numberEditor/index.js.map +1 -0
  14. package/dist/core/editor/numberEditor/index.less +10 -0
  15. package/dist/core/editor/selectEditor/index.d.ts +1 -1
  16. package/dist/core/editor/selectEditor/index.js +15 -3
  17. package/dist/core/editor/selectEditor/index.js.map +1 -0
  18. package/dist/core/reducers/index.js +2 -1
  19. package/dist/core/reducers/index.js.map +1 -0
  20. package/dist/core/reducers/keyboardReducer.js +6 -3
  21. package/dist/core/reducers/keyboardReducer.js.map +1 -0
  22. package/dist/core/reducers/mouseReducer.js +24 -10
  23. package/dist/core/reducers/mouseReducer.js.map +1 -0
  24. package/dist/core/reducers/sideEffectReducer.js +21 -10
  25. package/dist/core/reducers/sideEffectReducer.js.map +1 -0
  26. package/dist/core/reducers/stateReducer.js +8 -3
  27. package/dist/core/reducers/stateReducer.js.map +1 -0
  28. package/dist/core/sheet/Cell.d.ts +1 -1
  29. package/dist/core/sheet/Cell.js +5 -3
  30. package/dist/core/sheet/Cell.js.map +1 -0
  31. package/dist/core/sheet/DataEditor.js +2 -1
  32. package/dist/core/sheet/DataEditor.js.map +1 -0
  33. package/dist/core/sheet/DefaultCell.d.ts +1 -1
  34. package/dist/core/sheet/DefaultCell.js +2 -1
  35. package/dist/core/sheet/DefaultCell.js.map +1 -0
  36. package/dist/core/sheet/DefaultRow.js +2 -1
  37. package/dist/core/sheet/DefaultRow.js.map +1 -0
  38. package/dist/core/sheet/DefaultRowMapper.js +2 -1
  39. package/dist/core/sheet/DefaultRowMapper.js.map +1 -0
  40. package/dist/core/sheet/DefaultShell.js +2 -1
  41. package/dist/core/sheet/DefaultShell.js.map +1 -0
  42. package/dist/core/sheet/Event.js +2 -1
  43. package/dist/core/sheet/Event.js.map +1 -0
  44. package/dist/core/sheet/ValueViewer.js +2 -1
  45. package/dist/core/sheet/ValueViewer.js.map +1 -0
  46. package/dist/core/sheet/index.js +12 -9
  47. package/dist/core/sheet/index.js.map +1 -0
  48. package/dist/core/sheet/useCellEvent.js +2 -1
  49. package/dist/core/sheet/useCellEvent.js.map +1 -0
  50. package/dist/core/sheet/useContextMenu.js +2 -1
  51. package/dist/core/sheet/useContextMenu.js.map +1 -0
  52. package/dist/core/sheet/useKeyBoardEvent.js +14 -4
  53. package/dist/core/sheet/useKeyBoardEvent.js.map +1 -0
  54. package/dist/core/sheet/useMouseEvent.js +2 -1
  55. package/dist/core/sheet/useMouseEvent.js.map +1 -0
  56. package/dist/core/sheet/useVirtualList.js +10 -1
  57. package/dist/core/sheet/useVirtualList.js.map +1 -0
  58. package/dist/core/shell/draggableShell/index.js +2 -1
  59. package/dist/core/shell/draggableShell/index.js.map +1 -0
  60. package/dist/core/shell/tableShell.js +2 -1
  61. package/dist/core/shell/tableShell.js.map +1 -0
  62. package/dist/core/table/index.js +2 -1
  63. package/dist/core/table/index.js.map +1 -0
  64. package/dist/core/table/useGroupConfig.js +2 -1
  65. package/dist/core/table/useGroupConfig.js.map +1 -0
  66. package/dist/core/table/useRowSelection.js +2 -1
  67. package/dist/core/table/useRowSelection.js.map +1 -0
  68. package/dist/core/table/util.js +2 -1
  69. package/dist/core/table/util.js.map +1 -0
  70. package/dist/core/util.js +2 -1
  71. package/dist/core/util.js.map +1 -0
  72. package/dist/core/viewer/btnViewer/index.js +2 -1
  73. package/dist/core/viewer/btnViewer/index.js.map +1 -0
  74. package/dist/core/viewer/checkViewer/index.js +2 -1
  75. package/dist/core/viewer/checkViewer/index.js.map +1 -0
  76. package/dist/core/viewer/editViewer/index.js +2 -1
  77. package/dist/core/viewer/editViewer/index.js.map +1 -0
  78. package/dist/core/viewer/groupViewer/index.js +2 -1
  79. package/dist/core/viewer/groupViewer/index.js.map +1 -0
  80. package/dist/core/viewer/index.js +2 -1
  81. package/dist/core/viewer/index.js.map +1 -0
  82. package/dist/core/viewer/switchViewer/index.js +2 -1
  83. package/dist/core/viewer/switchViewer/index.js.map +1 -0
  84. package/dist/example/antComponent.js +4 -3
  85. package/dist/example/antComponent.js.map +1 -0
  86. package/dist/example/basic.js +2 -1
  87. package/dist/example/basic.js.map +1 -0
  88. package/dist/example/ellipsis.js +2 -1
  89. package/dist/example/ellipsis.js.map +1 -0
  90. package/dist/example/fixed.js +2 -1
  91. package/dist/example/fixed.js.map +1 -0
  92. package/dist/example/group.js +2 -1
  93. package/dist/example/group.js.map +1 -0
  94. package/dist/example/selection.js +2 -1
  95. package/dist/example/selection.js.map +1 -0
  96. package/dist/example/sheet.js +2 -1
  97. package/dist/example/sheet.js.map +1 -0
  98. package/dist/example/valuationAnalyze.d.ts +1 -1
  99. package/dist/example/valuationAnalyze.js +2 -1
  100. package/dist/example/valuationAnalyze.js.map +1 -0
  101. package/dist/hooks/index.js +2 -1
  102. package/dist/hooks/index.js.map +1 -0
  103. package/dist/hooks/useEventBus.d.ts +1 -0
  104. package/dist/hooks/useEventBus.js +2 -1
  105. package/dist/hooks/useEventBus.js.map +1 -0
  106. package/dist/hooks/useKeyboard.js +3 -2
  107. package/dist/hooks/useKeyboard.js.map +1 -0
  108. package/dist/hooks/useMiddlewareReducer.js +2 -1
  109. package/dist/hooks/useMiddlewareReducer.js.map +1 -0
  110. package/dist/hooks/useMouse.js +36 -19
  111. package/dist/hooks/useMouse.js.map +1 -0
  112. package/dist/hooks/useSetState.js +2 -1
  113. package/dist/hooks/useSetState.js.map +1 -0
  114. package/dist/hooks/useSheetEvent.js +2 -1
  115. package/dist/hooks/useSheetEvent.js.map +1 -0
  116. package/dist/index.js +2 -1
  117. package/dist/index.js.map +1 -0
  118. package/dist/standardUtils/index.js +2 -1
  119. package/dist/standardUtils/index.js.map +1 -0
  120. package/dist/type/index.js +2 -1
  121. package/dist/type/index.js.map +1 -0
  122. package/dist/type/sheet.js +2 -1
  123. package/dist/type/sheet.js.map +1 -0
  124. package/dist/type/sheetTable.d.ts +2 -2
  125. package/dist/type/sheetTable.js +2 -1
  126. package/dist/type/sheetTable.js.map +1 -0
  127. package/package.json +3 -3
  128. package/README_PROJECT.md +0 -40
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SheetType","stateReducer","change","state","payload","_ref","key","value","_objectSpread","_defineProperty","changes","rowMove","_state$data","_state$end","_state$end2","maxRow","data","length","newRow","end","row","col","colMove","_state$data2","_state$data2$","_state$end3","_state$data3","_state$end4","maxCol","newCol","fixed","editFinish","_data$row","_ref2","_ref2$cell","cell","confirm","history","_toConsumableArray","current","console","log","push","type","editing","undefined","lastEditing","pushHistory","concat","selectRow","_state$data4","_state$data4$","_state$data5","_state$data5$","startCol","findIndex","item","endCol","CellAlign","right","start","lastSelected","clearSelect","clearSelectIfNotSingleRow","clearEdit"],"sources":["../../../src/core/reducers/stateReducer.ts"],"sourcesContent":["import { SheetType } from '@zhenliang/sheet/type';\nimport { reducerAction } from '.';\n\nexport const stateReducer: Record<string, reducerAction> = {\n change(state, payload) {\n const { key, value } = payload as { key: string; value: string };\n return { ...state, [key]: value };\n },\n changes(state, payload) {\n return { ...state, ...(payload as Partial<SheetType.UpdateStateType>) };\n },\n rowMove(state, payload) {\n const maxRow = (state.data?.length || 0) - 1;\n const newRow = (state.end?.row || 0) + (payload as number);\n if (newRow < 0 || newRow > maxRow) return state;\n return {\n ...state,\n end: {\n col: state.end?.col as number,\n row: newRow,\n },\n };\n },\n colMove(state, payload) {\n const maxCol = (state.data?.[0]?.length || 0) - 1;\n const newCol = (state.end?.col || 0) + (payload as number);\n if (newCol < 0 || newCol > maxCol || state.data?.[0][newCol].fixed)\n return state;\n return {\n ...state,\n end: {\n row: state.end?.row as number,\n col: newCol,\n },\n };\n },\n editFinish(state, payload) {\n const { data } = state;\n const {\n cell: { row, col, confirm },\n } = payload as {\n cell: SheetType.CellData & { confirm: boolean };\n };\n let history = [...(state.history || [])];\n const current = data?.[row]?.[col].value;\n console.log(history.length, current);\n history.push({\n changes: [{ row, col, value: current as string }],\n type: 'Edit' as SheetType.OperateType,\n });\n if (confirm) {\n return {\n ...state,\n editing: undefined,\n lastEditing: state.editing,\n history,\n };\n }\n return {\n ...state,\n history,\n };\n },\n pushHistory(state, payload) {\n return {\n ...state,\n history: [...(state.history || []), payload as SheetType.OperateHistory],\n };\n },\n selectRow(state, payload) {\n const startCol = state.data?.[0]?.findIndex((item) => !item.fixed) || 0;\n const endCol =\n (state.data?.[0]?.findIndex(\n (item) => item.fixed === SheetType.CellAlign.right,\n ) || 0) - 1;\n // const endCol = (state.data?.[0].length || 0) - 1;\n if (startCol >= 0 && endCol >= 0) {\n return {\n ...state,\n start: {\n row: payload as number,\n col: startCol,\n },\n end: {\n row: payload as number,\n col: endCol,\n },\n lastSelected: {\n start: state.start,\n end: state.end,\n },\n };\n }\n return {};\n },\n clearSelect(state) {\n const { start, end } = state;\n return {\n ...state,\n start: undefined,\n end: undefined,\n lastSelected: {\n start,\n end,\n },\n };\n },\n clearSelectIfNotSingleRow(state) {\n const { start, end } = state;\n if (start?.row === end?.row) {\n return {\n ...state,\n };\n }\n return {\n ...state,\n start: undefined,\n end: undefined,\n lastSelected: {\n start,\n end,\n },\n };\n },\n clearEdit(state) {\n const { editing } = state;\n return {\n ...state,\n editing: undefined,\n lastEditing: editing,\n };\n },\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { SheetType } from "../../type";
2
2
  import React from 'react';
3
- declare const _default: React.MemoExoticComponent<(props: SheetType.CellProps) => import("react/jsx-runtime").JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<(props: SheetType.CellProps) => JSX.Element>;
4
4
  export default _default;
@@ -87,15 +87,16 @@ var Cell = function Cell(props) {
87
87
  confirm: false
88
88
  });
89
89
  if (value !== valueRef.current) {
90
+ var _cell$dataEditor, _cell$dataEditor$form, _cell$dataEditor2;
90
91
  console.log('confirm omit');
91
92
  eventBus.emit('cell-change', {
92
93
  row: row,
93
94
  col: col,
94
- value: value
95
+ value: (_cell$dataEditor = cell.dataEditor) !== null && _cell$dataEditor !== void 0 && _cell$dataEditor.formatter ? (_cell$dataEditor$form = (_cell$dataEditor2 = cell.dataEditor).formatter) === null || _cell$dataEditor$form === void 0 ? void 0 : _cell$dataEditor$form.call(_cell$dataEditor2, value) : value
95
96
  });
96
97
  }
97
98
  }
98
- }, [confirm, eventBus, value]);
99
+ }, [confirm, eventBus, value, cell]);
99
100
  var handleCommit = useCallback(function (value) {
100
101
  if (valueRef.current === value) {
101
102
  return;
@@ -155,4 +156,5 @@ var Cell = function Cell(props) {
155
156
  export default /*#__PURE__*/memo(Cell, function (pre, next) {
156
157
  var shouldUpdate = pre.col === next.col && pre.row === next.row && pre.cell.value === next.cell.value && pre.cell.record === next.cell.record;
157
158
  return shouldUpdate;
158
- });
159
+ });
160
+ //# sourceMappingURL=Cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNil","React","memo","useCallback","useEffect","useMemo","useRef","useState","useSetState","useSheetEvent","renderValue","DataEditor","DefaultCell","ValueViewer","jsx","_jsx","initialData","_ref","cell","widthStyle","width","concat","align","position","fixed","left","right","textAlign","Cell","props","_cell$editable","row","col","_props$cellRenderer","cellRenderer","CellRenderer","dataEditor","valueViewer","attributesRenderer","eventBus","_useSetState","_useSetState2","_slicedToArray","eventState","setEventState","selected","selectedInfo","editing","confirm","_useState","_useState2","value","setValue","valueRef","newValue","current","onCellState","eventInfo","on","emit","off","_cell$dataEditor","_cell$dataEditor$form","_cell$dataEditor2","console","log","formatter","call","handleCommit","renderEditor","cel","r","editor","isEditing","Editor","onConfirm","onChange","renderViewer","valViewer","Viewer","val","record","content","editable","className","isStart","isBottom","isTop","isLeft","isRight","readonly","filter","a","join","style","children","pre","next","shouldUpdate"],"sources":["../../../src/core/sheet/Cell.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { isNil } from 'lodash';\nimport React, {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useSetState, useSheetEvent } from '../../hooks';\nimport { renderValue } from '../util';\nimport DataEditor from './DataEditor';\nimport DefaultCell from './DefaultCell';\nimport ValueViewer from './ValueViewer';\n\ntype EventInfo = {\n selected: boolean;\n value?: string;\n editing: boolean;\n};\nfunction initialData({ cell }: SheetType.CellProps) {\n return renderValue(cell);\n}\n\nfunction widthStyle(cell: SheetType.Cell) {\n const width =\n typeof cell?.width === 'number' ? `${cell.width}px` : cell.width;\n const align = cell.align || 'left';\n const position = cell.fixed ? 'sticky' : 'unset';\n const left = cell.fixed === 'left' ? 0 : 'unset';\n const right = cell.fixed === 'right' ? 0 : 'unset';\n return { width, textAlign: align, position, left, right };\n}\n\nconst Cell = (props: SheetType.CellProps) => {\n const {\n row,\n col,\n cell,\n cellRenderer: CellRenderer = DefaultCell,\n dataEditor,\n valueViewer,\n attributesRenderer,\n } = props;\n\n const eventBus = useSheetEvent();\n const [eventState, setEventState] = useSetState<{\n selected: boolean;\n selectedInfo?: {\n isStart?: boolean;\n isTop?: boolean;\n isBottom?: boolean;\n isLeft?: boolean;\n isRight?: boolean;\n };\n editing?: boolean;\n confirm?: boolean;\n }>();\n const { selected, selectedInfo, editing, confirm } = eventState;\n\n const [value, setValue] = useState(initialData(props));\n const valueRef = useRef<any>(value);\n\n useEffect(() => {\n const newValue = renderValue(cell);\n setValue(newValue);\n valueRef.current = newValue;\n }, [cell, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n const onCellState = (eventInfo: EventInfo) => {\n if (eventInfo.value && eventInfo.editing) {\n setValue(eventInfo.value);\n }\n setEventState(eventInfo);\n };\n\n eventBus.on(`cell-${row}-${col}-change`, onCellState);\n eventBus.emit(`cell-create`, { row, col });\n return () => {\n eventBus.off(`cell-${row}-${col}-change`, onCellState);\n };\n }, [eventBus, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n if (confirm) {\n setEventState({ confirm: false });\n if (value !== valueRef.current) {\n console.log('confirm omit');\n eventBus.emit('cell-change', {\n row,\n col,\n value: cell.dataEditor?.formatter\n ? cell.dataEditor.formatter?.(value)\n : value,\n });\n }\n }\n }, [confirm, eventBus, value, cell]);\n\n const handleCommit = useCallback(\n (value: string) => {\n if (valueRef.current === value) {\n return;\n }\n setValue(value);\n console.log('handle omit');\n eventBus.emit('cell-change', { row, col: col, value, confirm: true });\n },\n [eventBus, valueRef],\n );\n\n const renderEditor = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n editor: any,\n isEditing?: boolean,\n ) => {\n if (isEditing) {\n const Editor = cel.dataEditor || editor || DataEditor;\n return (\n <Editor\n cell={cel}\n row={r}\n col={col}\n value={value}\n onConfirm={handleCommit}\n onChange={setValue}\n />\n );\n }\n return null;\n };\n\n const renderViewer = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n valViewer?: React.ElementType,\n ) => {\n const Viewer = cell.valueViewer || valViewer || ValueViewer;\n const val = renderValue(cell);\n\n return (\n <Viewer\n record={cell.record}\n cell={cell}\n row={row}\n col={col}\n value={val}\n />\n );\n };\n\n const content =\n (cell.editable ?? true) && editing\n ? renderEditor(cell, row, col, dataEditor, editing)\n : renderViewer(cell, row, col, valueViewer);\n\n const className = useMemo(\n () =>\n [\n cell.className,\n 'cell',\n selected && 'selected',\n selectedInfo?.isStart && 'selected-start',\n selectedInfo?.isBottom && 'selected-bottom',\n selectedInfo?.isTop && 'selected-top',\n selectedInfo?.isLeft && 'selected-left',\n selectedInfo?.isRight && 'selected-right',\n editing && 'editing',\n cell.readonly && 'read-only',\n ]\n .filter((a) => a)\n .join(' '),\n [editing, selected, selectedInfo, cell.className, cell.readonly],\n );\n\n return (\n <CellRenderer\n row={row}\n col={col}\n cell={cell}\n selected={eventState.selected}\n editing={eventState.editing}\n attributesRenderer={attributesRenderer}\n className={className}\n style={widthStyle(cell)}\n >\n {content}\n </CellRenderer>\n );\n};\n\nexport default memo(Cell, (pre, next) => {\n const shouldUpdate =\n pre.col === next.col &&\n pre.row === next.row &&\n pre.cell.value === next.cell.value &&\n pre.cell.record === next.cell.record;\n return shouldUpdate;\n});\n"],"mappings":"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"}
@@ -18,4 +18,5 @@ var DataEditor = function DataEditor(_ref) {
18
18
  onChange: handleChange
19
19
  });
20
20
  };
21
- export default DataEditor;
21
+ export default DataEditor;
22
+ //# sourceMappingURL=DataEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","jsx","_jsx","DataEditor","_ref","value","onChange","inputRef","_inputRef$current","current","focus","handleChange","e","target","ref","className"],"sources":["../../../src/core/sheet/DataEditor.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { ChangeEvent, useEffect, useRef } from 'react';\n\nconst DataEditor: SheetType.CellEditor = ({ value, onChange }) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n inputRef.current?.focus();\n }, []);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n };\n\n return (\n <input\n ref={inputRef}\n className=\"data-editor\"\n value={value as string}\n onChange={handleChange}\n />\n );\n};\n\nexport default DataEditor;\n"],"mappings":"AACA,SAAsBA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvD,IAAMC,UAAgC,GAAG,SAAnCA,UAAgCA,CAAAC,IAAA,EAA4B;EAAA,IAAtBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACzD,IAAMC,QAAQ,GAAGP,MAAM,CAAmB,IAAI,CAAC;EAE/CD,SAAS,CAAC,YAAM;IAAA,IAAAS,iBAAA;IACd,CAAAA,iBAAA,GAAAD,QAAQ,CAACE,OAAO,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkBE,KAAK,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,CAAgC,EAAK;IACzDN,QAAQ,CAACM,CAAC,CAACC,MAAM,CAACR,KAAK,CAAC;EAC1B,CAAC;EAED,oBACEH,IAAA;IACEY,GAAG,EAAEP,QAAS;IACdQ,SAAS,EAAC,aAAa;IACvBV,KAAK,EAAEA,KAAgB;IACvBC,QAAQ,EAAEK;EAAa,CACxB,CAAC;AAEN,CAAC;AAED,eAAeR,UAAU"}
@@ -7,5 +7,5 @@ declare const DefaultCell: (props: {
7
7
  className: string;
8
8
  style: Record<string, string>;
9
9
  children: React.ReactElement;
10
- }) => import("react/jsx-runtime").JSX.Element;
10
+ }) => JSX.Element;
11
11
  export default DefaultCell;
@@ -28,4 +28,5 @@ var DefaultCell = function DefaultCell(props) {
28
28
  children: children
29
29
  }));
30
30
  };
31
- export default DefaultCell;
31
+ export default DefaultCell;
32
+ //# sourceMappingURL=DefaultCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classNames","jsx","_jsx","DefaultCell","props","cell","row","col","attributesRenderer","className","style","children","colSpan","rowSpan","attributes","_objectSpread","fixed","concat"],"sources":["../../../src/core/sheet/DefaultCell.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { classNames } from '../util';\n\nconst DefaultCell = (props: {\n cell: SheetType.Cell;\n row: number;\n col: number;\n attributesRenderer?: SheetType.AttributesRenderer;\n className: string;\n style: Record<string, string>;\n children: React.ReactElement;\n}) => {\n const { cell, row, col, attributesRenderer, className, style, children } =\n props;\n\n const { colSpan, rowSpan } = cell;\n const attributes = attributesRenderer\n ? attributesRenderer(cell, row, col)\n : {};\n\n return (\n <td\n data-row={row}\n data-col={col}\n className={classNames(\n className,\n cell.fixed && 'fixed',\n cell.fixed && `fixed-${cell.fixed}`,\n )}\n colSpan={colSpan}\n rowSpan={rowSpan}\n style={style}\n {...attributes}\n >\n {children}\n </td>\n );\n};\n\nexport default DefaultCell;\n"],"mappings":";;;;;;AACA,SAASA,UAAU;AAAkB,SAAAC,GAAA,IAAAC,IAAA;AAErC,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAQpB,EAAK;EACJ,IAAQC,IAAI,GACVD,KAAK,CADCC,IAAI;IAAEC,GAAG,GACfF,KAAK,CADOE,GAAG;IAAEC,GAAG,GACpBH,KAAK,CADYG,GAAG;IAAEC,kBAAkB,GACxCJ,KAAK,CADiBI,kBAAkB;IAAEC,SAAS,GACnDL,KAAK,CADqCK,SAAS;IAAEC,KAAK,GAC1DN,KAAK,CADgDM,KAAK;IAAEC,QAAQ,GACpEP,KAAK,CADuDO,QAAQ;EAGtE,IAAQC,OAAO,GAAcP,IAAI,CAAzBO,OAAO;IAAEC,OAAO,GAAKR,IAAI,CAAhBQ,OAAO;EACxB,IAAMC,UAAU,GAAGN,kBAAkB,GACjCA,kBAAkB,CAACH,IAAI,EAAEC,GAAG,EAAEC,GAAG,CAAC,GAClC,CAAC,CAAC;EAEN,oBACEL,IAAA,OAAAa,aAAA,CAAAA,aAAA;IACE,YAAUT,GAAI;IACd,YAAUC,GAAI;IACdE,SAAS,EAAET,UAAU,CACnBS,SAAS,EACTJ,IAAI,CAACW,KAAK,IAAI,OAAO,EACrBX,IAAI,CAACW,KAAK,aAAAC,MAAA,CAAaZ,IAAI,CAACW,KAAK,CACnC,CAAE;IACFJ,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBH,KAAK,EAAEA;EAAM,GACTI,UAAU;IAAAH,QAAA,EAEbA;EAAQ,EACP,CAAC;AAET,CAAC;AAED,eAAeR,WAAW"}
@@ -22,4 +22,5 @@ var DefaultRow = function DefaultRow(_ref) {
22
22
  children: children
23
23
  });
24
24
  };
25
- export default DefaultRow;
25
+ export default DefaultRow;
26
+ //# sourceMappingURL=DefaultRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","groupConfigToGroupMap","jsx","_jsx","DefaultRow","_ref","_groupMap$get","_groupMap$get2","children","row","groupConfig","groupMap","get","isStart","isOpen","style","display"],"sources":["../../../src/core/sheet/DefaultRow.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { useMemo } from 'react';\nimport { groupConfigToGroupMap } from '../util';\n\nconst DefaultRow: React.FC<{\n children: React.ReactElement;\n\n row: number;\n groupConfig?: {\n groups: SheetType.RowGroup[];\n groupOpen: boolean[];\n };\n}> = ({ children, row, groupConfig }) => {\n const groupMap = useMemo(() => {\n // 分组逻辑\n return groupConfigToGroupMap(groupConfig);\n }, [groupConfig]);\n\n if (\n groupMap.get(row) &&\n !groupMap.get(row)?.isStart &&\n !groupMap.get(row)?.isOpen\n ) {\n return <tr style={{ display: 'none' }}>{children}</tr>;\n }\n\n return <tr>{children}</tr>;\n};\nexport default DefaultRow;\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,qBAAqB;AAAkB,SAAAC,GAAA,IAAAC,IAAA;AAEhD,IAAMC,UAQJ,GAAG,SARCA,UAQJA,CAAAC,IAAA,EAAuC;EAAA,IAAAC,aAAA,EAAAC,cAAA;EAAA,IAAjCC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;IAAEC,WAAW,GAAAL,IAAA,CAAXK,WAAW;EAChC,IAAMC,QAAQ,GAAGX,OAAO,CAAC,YAAM;IAC7B;IACA,OAAOC,qBAAqB,CAACS,WAAW,CAAC;EAC3C,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,IACEC,QAAQ,CAACC,GAAG,CAACH,GAAG,CAAC,IACjB,GAAAH,aAAA,GAACK,QAAQ,CAACC,GAAG,CAACH,GAAG,CAAC,cAAAH,aAAA,eAAjBA,aAAA,CAAmBO,OAAO,KAC3B,GAAAN,cAAA,GAACI,QAAQ,CAACC,GAAG,CAACH,GAAG,CAAC,cAAAF,cAAA,eAAjBA,cAAA,CAAmBO,MAAM,GAC1B;IACA,oBAAOX,IAAA;MAAIY,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO,CAAE;MAAAR,QAAA,EAAEA;IAAQ,CAAK,CAAC;EACxD;EAEA,oBAAOL,IAAA;IAAAK,QAAA,EAAKA;EAAQ,CAAK,CAAC;AAC5B,CAAC;AACD,eAAeJ,UAAU"}
@@ -12,4 +12,5 @@ export var DefaultRowMapper = /*#__PURE__*/memo(function (_ref) {
12
12
  }, col);
13
13
  });
14
14
  return cls;
15
- });
15
+ });
16
+ //# sourceMappingURL=DefaultRowMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Cell","jsx","_jsx","DefaultRowMapper","_ref","rowData","row","cls","map","cell","col"],"sources":["../../../src/core/sheet/DefaultRowMapper.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { memo } from 'react';\nimport Cell from './Cell';\n\ninterface DefaultRowMapperProps {\n rowData: SheetType.Cell[];\n row: number;\n}\n\nexport const DefaultRowMapper: React.FC<DefaultRowMapperProps> = memo(\n ({ rowData, row }) => {\n const cls = rowData.map((cell, col) => {\n return <Cell key={col} row={row} col={col} cell={cell} />;\n });\n\n return cls;\n },\n);\n"],"mappings":"AACA,SAASA,IAAI,QAAQ,OAAO;AAC5B,OAAOC,IAAI;AAAe,SAAAC,GAAA,IAAAC,IAAA;AAO1B,OAAO,IAAMC,gBAAiD,gBAAGJ,IAAI,CACnE,UAAAK,IAAA,EAAsB;EAAA,IAAnBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;EACb,IAAMC,GAAG,GAAGF,OAAO,CAACG,GAAG,CAAC,UAACC,IAAI,EAAEC,GAAG,EAAK;IACrC,oBAAOR,IAAA,CAACF,IAAI;MAAWM,GAAG,EAAEA,GAAI;MAACI,GAAG,EAAEA,GAAI;MAACD,IAAI,EAAEA;IAAK,GAApCC,GAAsC,CAAC;EAC3D,CAAC,CAAC;EAEF,OAAOH,GAAG;AACZ,CACF,CAAC"}
@@ -9,4 +9,5 @@ var DefaultShell = function DefaultShell(_ref) {
9
9
  })
10
10
  });
11
11
  };
12
- export default DefaultShell;
12
+ export default DefaultShell;
13
+ //# sourceMappingURL=DefaultShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DefaultShell","_ref","children","className","_jsx"],"sources":["../../../src/core/sheet/DefaultShell.tsx"],"sourcesContent":["interface IShell {\n children: React.ReactElement;\n data?: unknown;\n className?: string;\n}\n\nconst DefaultShell: React.FC<IShell> = ({ children, className }) => (\n <table className={className}>\n <tbody>{children}</tbody>\n </table>\n);\n\nexport default DefaultShell;\n"],"mappings":";AAMA,IAAMA,YAA8B,GAAG,SAAjCA,YAA8BA,CAAAC,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;EAAA,oBAC3DC,IAAA;IAAOD,SAAS,EAAEA,SAAU;IAAAD,QAAA,eAC1BE,IAAA;MAAAF,QAAA,EAAQA;IAAQ,CAAQ;EAAC,CACpB,CAAC;AAAA,CACT;AAED,eAAeF,YAAY"}
@@ -14,4 +14,5 @@ export var SheetEvent = function SheetEvent(_ref) {
14
14
  };
15
15
  }, [eventBus, handler, name]);
16
16
  return null;
17
- };
17
+ };
18
+ //# sourceMappingURL=Event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSheetEvent","useEffect","SheetEvent","_ref","handler","name","eventBus","on","off"],"sources":["../../../src/core/sheet/Event.tsx"],"sourcesContent":["import { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport { FC, useEffect } from 'react';\n\nexport const SheetEvent: FC<{\n handler?: (value: unknown) => void;\n name: string;\n}> = ({ handler, name }) => {\n const eventBus = useSheetEvent();\n\n useEffect(() => {\n if (!eventBus || !handler) {\n return;\n }\n eventBus.on(name, handler);\n return () => {\n eventBus.off(name, handler);\n };\n }, [eventBus, handler, name]);\n\n return null;\n};\n"],"mappings":"AAAA,SAASA,aAAa;AACtB,SAAaC,SAAS,QAAQ,OAAO;AAErC,OAAO,IAAMC,UAGX,GAAG,SAHQA,UAGXA,CAAAC,IAAA,EAA0B;EAAA,IAApBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;EACnB,IAAMC,QAAQ,GAAGN,aAAa,CAAC,CAAC;EAEhCC,SAAS,CAAC,YAAM;IACd,IAAI,CAACK,QAAQ,IAAI,CAACF,OAAO,EAAE;MACzB;IACF;IACAE,QAAQ,CAACC,EAAE,CAACF,IAAI,EAAED,OAAO,CAAC;IAC1B,OAAO,YAAM;MACXE,QAAQ,CAACE,GAAG,CAACH,IAAI,EAAED,OAAO,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACE,QAAQ,EAAEF,OAAO,EAAEC,IAAI,CAAC,CAAC;EAE7B,OAAO,IAAI;AACb,CAAC"}
@@ -6,4 +6,5 @@ var ValueViewer = function ValueViewer(_ref) {
6
6
  children: value
7
7
  });
8
8
  };
9
- export default ValueViewer;
9
+ export default ValueViewer;
10
+ //# sourceMappingURL=ValueViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ValueViewer","_ref","value","_jsx","className","children"],"sources":["../../../src/core/sheet/ValueViewer.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\n\nconst ValueViewer: SheetType.CellViewer = ({ value }) => (\n <span className=\"value-viewer\">{value as string}</span>\n);\nexport default ValueViewer;\n"],"mappings":";AAEA,IAAMA,WAAiC,GAAG,SAApCA,WAAiCA,CAAAC,IAAA;EAAA,IAAMC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,oBAChDC,IAAA;IAAMC,SAAS,EAAC,cAAc;IAAAC,QAAA,EAAEH;EAAK,CAAiB,CAAC;AAAA,CACxD;AACD,eAAeF,WAAW"}
@@ -5,6 +5,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
5
5
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import { useEffect, useMemo, useRef } from 'react';
8
+ import ReduxLogger from 'redux-logger';
8
9
  import ReduxThunk from 'redux-thunk';
9
10
  import DefaultRow from "./DefaultRow";
10
11
  import DefaultShell from "./DefaultShell";
@@ -22,7 +23,7 @@ import { useVirtualList } from "./useVirtualList";
22
23
  import { jsx as _jsx } from "react/jsx-runtime";
23
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
25
  var Sheet = function Sheet(props) {
25
- var _state$data$length, _state$data2, _scroll$y, _scroll$x;
26
+ var _state$data$length, _state$data3, _scroll$y, _scroll$x;
26
27
  var _props$sheetInstance = props.sheetInstance,
27
28
  sheetInstance = _props$sheetInstance === void 0 ? {
28
29
  current: null
@@ -55,7 +56,7 @@ var Sheet = function Sheet(props) {
55
56
  lastFocus: [],
56
57
  groupConfig: groupConfig,
57
58
  eventBus: eventBus
58
- }, [ReduxThunk]),
59
+ }, [ReduxThunk, ReduxLogger]),
59
60
  _useMiddlewareReducer2 = _slicedToArray(_useMiddlewareReducer, 2),
60
61
  state = _useMiddlewareReducer2[0],
61
62
  dispatch = _useMiddlewareReducer2[1];
@@ -70,7 +71,6 @@ var Sheet = function Sheet(props) {
70
71
  groupConfig = _getState.groupConfig;
71
72
  if (!start && isNil(row)) return;
72
73
  var actual = rowToActualRow((_ref = row) !== null && _ref !== void 0 ? _ref : start === null || start === void 0 ? void 0 : start.row, groupConfig);
73
- console.log(actual);
74
74
  var rowHeight = getRowHeight(sheetWrapperRef.current);
75
75
  (_sheetWrapperRef$curr = sheetWrapperRef.current) === null || _sheetWrapperRef$curr === void 0 ? void 0 : _sheetWrapperRef$curr.scrollTo(0, rowHeight * actual);
76
76
  });
@@ -141,8 +141,10 @@ var Sheet = function Sheet(props) {
141
141
  });
142
142
  }, [groupConfig]);
143
143
  var rowElements = useMemo(function () {
144
- var _state$data;
145
- return state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.map(function (rowData, row) {
144
+ var _state$data, _state$data$slice;
145
+ return state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$slice = _state$data.slice(virtualStart, virtualEnd)) === null || _state$data$slice === void 0 ? void 0 : _state$data$slice.map(function (rowData) {
146
+ var _state$data2;
147
+ var row = (state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.indexOf(rowData)) || 0;
146
148
  return /*#__PURE__*/_jsx(Row, {
147
149
  row: row,
148
150
  cells: rowData,
@@ -154,8 +156,8 @@ var Sheet = function Sheet(props) {
154
156
  })
155
157
  }, row);
156
158
  });
157
- }, [state.data, groupConfig]);
158
- var memoHeight = Math.min(((_state$data$length = state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.length) !== null && _state$data$length !== void 0 ? _state$data$length : 0) + 1, 10) * 42 + 43;
159
+ }, [state.data, groupConfig, virtualStart, virtualEnd]);
160
+ var memoHeight = Math.min(((_state$data$length = state === null || state === void 0 ? void 0 : (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : _state$data3.length) !== null && _state$data$length !== void 0 ? _state$data$length : 0) + 1, 10) * 42 + 43;
159
161
  return /*#__PURE__*/_jsx(SheetEventContext.Provider, {
160
162
  value: eventBus,
161
163
  children: /*#__PURE__*/_jsxs("span", {
@@ -174,7 +176,7 @@ var Sheet = function Sheet(props) {
174
176
  paddingBottom: paddingTop,
175
177
  display: 'block'
176
178
  }
177
- }), rowElements === null || rowElements === void 0 ? void 0 : rowElements.slice(virtualStart, virtualEnd), /*#__PURE__*/_jsx("tr", {
179
+ }), rowElements, /*#__PURE__*/_jsx("tr", {
178
180
  style: {
179
181
  height: 0,
180
182
  paddingBottom: paddingBottom,
@@ -198,4 +200,5 @@ var Sheet = function Sheet(props) {
198
200
  })
199
201
  });
200
202
  };
201
- export default Sheet;
203
+ export default Sheet;
204
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useMemo","useRef","ReduxLogger","ReduxThunk","DefaultRow","DefaultShell","isNil","SheetEventContext","useEventBus","useMiddlewareReducer","sheetReducer","classNames","getRowHeight","rowToActualRow","DefaultRowMapper","useCellEvent","useContextMenu","useKeyBoardEvent","useMouseEvent","useVirtualList","jsx","_jsx","jsxs","_jsxs","Sheet","props","_state$data$length","_state$data3","_scroll$y","_scroll$x","_props$sheetInstance","sheetInstance","current","_props$sheetRenderer","sheetRenderer","SheetShell","_props$rowRenderer","rowRenderer","Row","ContextMenu","menuRenderer","_props$virtualized","virtualized","className","data","_props$freePaste","freePaste","_props$groupConfig","groupConfig","undefined","onCellsChanged","onContextMenu","rowClassName","scroll","children","sheetWrapperRef","contextMenuRef","eventBus","_useMiddlewareReducer","mouseDown","editing","lastFocus","_useMiddlewareReducer2","_slicedToArray","state","dispatch","zoomTo","row","d","getState","_ref","_sheetWrapperRef$curr","_getState","start","actual","rowHeight","scrollTo","pushToHistory","config","type","payload","selectRow","popHistory","cellChangeHandler","menu","setTimeout","_sheetWrapperRef$curr2","focus","preventScroll","_useVirtualList","virtualStart","virtualEnd","paddingTop","paddingBottom","rowElements","_state$data","_state$data$slice","slice","map","rowData","_state$data2","indexOf","cells","memoHeight","Math","min","length","Provider","value","ref","tabIndex","style","maxHeight","y","width","x","height","display","showMenu","position","cell","cellPosition"],"sources":["../../../src/core/sheet/index.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReduxLogger from 'redux-logger';\nimport ReduxThunk from 'redux-thunk';\n\nimport DefaultRow from './DefaultRow';\nimport DefaultShell from './DefaultShell';\n\nimport { isNil } from 'lodash';\nimport {\n SheetEventContext,\n useEventBus,\n useMiddlewareReducer,\n} from '../../hooks';\nimport sheetReducer from '../reducers';\nimport { classNames, getRowHeight, rowToActualRow } from '../util';\nimport { DefaultRowMapper } from './DefaultRowMapper';\nimport './index.less';\nimport { useCellEvent } from './useCellEvent';\nimport { useContextMenu } from './useContextMenu';\nimport { useKeyBoardEvent } from './useKeyBoardEvent';\nimport { useMouseEvent } from './useMouseEvent';\nimport { useVirtualList } from './useVirtualList';\n\nconst Sheet: React.FC<SheetType.SheetProps> = (props) => {\n const {\n sheetInstance = { current: null },\n sheetRenderer: SheetShell = DefaultShell,\n rowRenderer: Row = DefaultRow,\n menuRenderer: ContextMenu,\n virtualized = false,\n className,\n data,\n freePaste = false,\n groupConfig = undefined,\n onCellsChanged,\n onContextMenu,\n rowClassName,\n scroll,\n children,\n } = props;\n const sheetWrapperRef = useRef<SheetType.refAssertion>(null);\n const contextMenuRef = useRef<HTMLDivElement>(null);\n const eventBus = useEventBus();\n const [state, dispatch] = useMiddlewareReducer(\n sheetReducer,\n {\n data,\n mouseDown: false,\n editing: undefined,\n lastFocus: [],\n groupConfig,\n eventBus,\n },\n [ReduxThunk, ReduxLogger],\n );\n\n useEffect(() => {\n sheetInstance.current = {\n zoomTo: (row?: number) => {\n // 默认回到编辑行\n dispatch((d: unknown, getState: () => SheetType.UpdateStateType) => {\n const { start, groupConfig } = getState();\n if (!start && isNil(row)) return;\n const actual = rowToActualRow(\n (row as number) ?? start?.row,\n groupConfig,\n );\n const rowHeight = getRowHeight(\n sheetWrapperRef.current as HTMLSpanElement,\n );\n sheetWrapperRef.current?.scrollTo(0, rowHeight * actual);\n });\n },\n pushToHistory: (config: SheetType.OperateHistory) => {\n dispatch({ type: 'pushHistory', payload: config });\n },\n selectRow: (row?: number) => {\n if (isNil(row)) {\n dispatch({ type: 'clearSelect' });\n } else {\n dispatch({ type: 'selectRow', payload: row });\n }\n },\n popHistory: () => {\n return {} as SheetType.OperateHistory;\n },\n };\n }, [sheetWrapperRef.current]);\n\n useEffect(() => {\n // 同步必要的状态\n dispatch({\n type: 'changes',\n payload: {\n cellChangeHandler: onCellsChanged,\n data,\n freePaste,\n groupConfig,\n },\n });\n }, [onCellsChanged, data, freePaste, groupConfig]);\n\n useCellEvent(dispatch, state);\n useMouseEvent(dispatch, sheetWrapperRef);\n useKeyBoardEvent(dispatch, sheetWrapperRef);\n\n const menu = useContextMenu(\n dispatch,\n sheetWrapperRef,\n !!ContextMenu,\n contextMenuRef,\n );\n\n // timeout 的副作用不适合放reducer里面\n useEffect(() => {\n if (!state.editing && state.start) {\n setTimeout(() => {\n // 表格获取焦点 + 接收keyboard event\n sheetWrapperRef.current?.focus({ preventScroll: true });\n }, 1);\n }\n }, [state.editing, state.start]);\n\n const { virtualStart, virtualEnd, paddingTop, paddingBottom } =\n useVirtualList(sheetWrapperRef, state.data, virtualized);\n\n useEffect(() => {\n dispatch({\n type: 'clearEdit',\n });\n dispatch({\n type: 'clearSelectIfNotSingleRow',\n });\n }, [groupConfig]);\n\n const rowElements = useMemo(() => {\n return state?.data\n ?.slice(virtualStart, virtualEnd)\n ?.map((rowData: SheetType.Cell[]) => {\n const row = state?.data?.indexOf(rowData) || 0;\n return (\n <Row\n key={row}\n row={row}\n cells={rowData}\n groupConfig={groupConfig}\n rowClassName={rowClassName}\n >\n <DefaultRowMapper rowData={rowData} row={row} />\n </Row>\n );\n });\n }, [state.data, groupConfig, virtualStart, virtualEnd]);\n\n const memoHeight = Math.min((state?.data?.length ?? 0) + 1, 10) * 42 + 43;\n\n return (\n <SheetEventContext.Provider value={eventBus}>\n <span\n ref={sheetWrapperRef}\n tabIndex={0}\n className={classNames('harvest harvest-sheet-container', className)}\n style={{\n maxHeight: scroll?.y ?? memoHeight,\n width: scroll?.x ?? '100%',\n }}\n >\n <SheetShell\n key=\"sheet\"\n className={classNames('harvest-sheet', className)}\n >\n {virtualized && (\n <tr\n style={{ height: 0, paddingBottom: paddingTop, display: 'block' }}\n />\n )}\n {/* {rowElements?.slice(virtualStart, virtualEnd)} */}\n {rowElements}\n <tr\n style={{\n height: 0,\n paddingBottom: paddingBottom,\n display: 'block',\n }}\n />\n </SheetShell>\n {ContextMenu ? (\n <div\n ref={contextMenuRef}\n style={{ display: menu.showMenu ? '' : 'none' }}\n >\n <ContextMenu\n position={menu.position}\n cell={menu.cellPosition}\n onContextMenu={onContextMenu}\n />\n </div>\n ) : null}\n <div className=\"harvest-sheet-control\">{children}</div>\n </span>\n </SheetEventContext.Provider>\n );\n};\n\nexport default Sheet;\n"],"mappings":"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"}
@@ -19,4 +19,5 @@ export var useCellEvent = function useCellEvent(dispatch, listenerVar) {
19
19
  useEffect(function () {
20
20
  dispatch(sideEffectReducer.emitEditChange);
21
21
  }, [editing, lastEditing]);
22
- };
22
+ };
23
+ //# sourceMappingURL=useCellEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","sideEffectReducer","useCellEvent","dispatch","listenerVar","_ref","start","end","lastSelected","editing","lastEditing","init","destroy","emitSelectChange","emitEditChange"],"sources":["../../../src/core/sheet/useCellEvent.ts"],"sourcesContent":["import { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect } from 'react';\nimport { sideEffectReducer } from '../reducers';\n\nexport const useCellEvent = (\n dispatch: Dispatch,\n listenerVar?: Partial<SheetType.UpdateStateType>,\n) => {\n const { start, end, lastSelected, editing, lastEditing } = listenerVar || {};\n\n useEffect(() => {\n dispatch(sideEffectReducer.init);\n return () => {\n dispatch(sideEffectReducer.destroy);\n };\n }, []);\n useEffect(() => {\n dispatch(sideEffectReducer.emitSelectChange);\n }, [start, end, lastSelected]);\n\n useEffect(() => {\n dispatch(sideEffectReducer.emitEditChange);\n }, [editing, lastEditing]);\n};\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,iBAAiB;AAE1B,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CACvBC,QAAkB,EAClBC,WAAgD,EAC7C;EACH,IAAAC,IAAA,GAA2DD,WAAW,IAAI,CAAC,CAAC;IAApEE,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAEC,WAAW,GAAAL,IAAA,CAAXK,WAAW;EAEtDV,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACU,IAAI,CAAC;IAChC,OAAO,YAAM;MACXR,QAAQ,CAACF,iBAAiB,CAACW,OAAO,CAAC;IACrC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACNZ,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACY,gBAAgB,CAAC;EAC9C,CAAC,EAAE,CAACP,KAAK,EAAEC,GAAG,EAAEC,YAAY,CAAC,CAAC;EAE9BR,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACa,cAAc,CAAC;EAC5C,CAAC,EAAE,CAACL,OAAO,EAAEC,WAAW,CAAC,CAAC;AAC5B,CAAC"}
@@ -83,4 +83,5 @@ export var useContextMenu = function useContextMenu(dispatch, elementRef) {
83
83
  };
84
84
  }, [elementRef.current, enableContextMenu]);
85
85
  return _objectSpread({}, menuEvent);
86
- };
86
+ };
87
+ //# sourceMappingURL=useContextMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSetState","useEffect","calcMenuPosition","extractDataRowAndCol","findParentTd","useContextMenu","dispatch","elementRef","enableContextMenu","arguments","length","undefined","contextMenuRef","_useSetState","showMenu","position","top","left","cellPosition","row","col","_useSetState2","_slicedToArray","menuEvent","setMenuEvent","handleContextMenu","e","_contextMenuRef$curre","preventDefault","currentCell","target","currentPos","type","payload","pos","shiftKey","_calcMenuPosition","tableElement","current","menuElement","firstElementChild","x","clientX","y","clientY","_contextMenuRef$curre2","_contextMenuRef$curre3","setAttribute","handleClose","addEventListener","document","removeEventListener","_objectSpread"],"sources":["../../../src/core/sheet/useContextMenu.tsx"],"sourcesContent":["import { Dispatch, useSetState } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect } from 'react';\nimport { calcMenuPosition, extractDataRowAndCol, findParentTd } from '../util';\n\nexport type MenuEvent = {\n showMenu: boolean;\n position: { top: number; left: number };\n cellPosition: SheetType.CellPosition;\n};\n\nexport const useContextMenu = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n enableContextMenu: boolean = false,\n contextMenuRef: React.RefObject<HTMLDivElement>,\n) => {\n const [menuEvent, setMenuEvent] = useSetState({\n showMenu: false,\n position: { top: 0, left: 0 },\n cellPosition: { row: 0, col: 0 },\n });\n\n const handleContextMenu = (e: MouseEvent) => {\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell) return;\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({\n type: 'mouseDown',\n payload: { pos: currentPos, shiftKey: e.shiftKey },\n });\n const { top, left } = calcMenuPosition({\n tableElement: elementRef.current,\n menuElement: contextMenuRef.current?.firstElementChild,\n x: e.clientX,\n y: e.clientY,\n });\n setMenuEvent({\n showMenu: true,\n position: { top, left },\n cellPosition: currentPos,\n });\n };\n\n useEffect(() => {\n if (!elementRef.current || !enableContextMenu) return;\n // 添加统一规范\n contextMenuRef.current?.firstElementChild?.setAttribute(\n 'style',\n 'z-index: 5;word-break: keep-all;',\n );\n const handleClose = () => {\n setMenuEvent({ showMenu: false });\n };\n elementRef.current.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('click', handleClose);\n document.addEventListener(\n 'scroll',\n () => {\n setMenuEvent({ showMenu: false });\n },\n true,\n );\n return () => {\n document.removeEventListener('contextmenu', handleContextMenu);\n document.removeEventListener('click', handleClose);\n };\n }, [elementRef.current, enableContextMenu]);\n\n return {\n ...menuEvent,\n };\n};\n"],"mappings":"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"}
@@ -25,9 +25,18 @@ export var useKeyBoardEvent = function useKeyBoardEvent(dispatch, elementRef) {
25
25
  });
26
26
  },
27
27
  otherInput: function otherInput(e, value) {
28
- dispatch({
29
- type: 'otherInput',
30
- payload: value
28
+ dispatch(function (d, getState) {
29
+ var _getState = getState(),
30
+ editing = _getState.editing;
31
+ if (editing) {
32
+ return;
33
+ } else {
34
+ e.preventDefault();
35
+ dispatch({
36
+ type: 'otherInput',
37
+ payload: value
38
+ });
39
+ }
31
40
  });
32
41
  },
33
42
  copy: function copy() {
@@ -41,4 +50,5 @@ export var useKeyBoardEvent = function useKeyBoardEvent(dispatch, elementRef) {
41
50
  dispatch(sideEffectReducer.delete);
42
51
  }
43
52
  }, elementRef.current);
44
- };
53
+ };
54
+ //# sourceMappingURL=useKeyBoardEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useKeyBoard","sideEffectReducer","useKeyBoardEvent","dispatch","elementRef","move","e","value","type","payload","escape","reverse","delete","_delete","enter","otherInput","d","getState","_getState","editing","preventDefault","copy","paste","cut","current"],"sources":["../../../src/core/sheet/useKeyBoardEvent.ts"],"sourcesContent":["import { useKeyBoard } from '@zhenliang/sheet/hooks';\nimport { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { sideEffectReducer } from '../reducers/sideEffectReducer';\n\nexport const useKeyBoardEvent = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n) => {\n useKeyBoard(\n {\n move: (e, value: any) => {\n dispatch({ type: 'move', payload: value });\n },\n escape: () => {\n dispatch({ type: 'escape' });\n },\n reverse: () => {\n dispatch(sideEffectReducer.reverse);\n },\n delete: () => {\n dispatch(sideEffectReducer.delete);\n },\n enter: () => {\n dispatch({ type: 'enter' });\n },\n otherInput: (e, value: string) => {\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { editing } = getState();\n if (editing) {\n return;\n } else {\n e.preventDefault();\n dispatch({ type: 'otherInput', payload: value });\n }\n });\n },\n copy: () => {\n dispatch(sideEffectReducer.copy);\n },\n paste: () => {\n dispatch(sideEffectReducer.paste);\n },\n cut: () => {\n dispatch(sideEffectReducer.copy);\n dispatch(sideEffectReducer.delete);\n },\n },\n elementRef.current,\n );\n};\n"],"mappings":"AAAA,SAASA,WAAW;AAGpB,SAASC,iBAAiB;AAE1B,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3BC,QAAkB,EAClBC,UAAmD,EAChD;EACHJ,WAAW,CACT;IACEK,IAAI,EAAE,SAAAA,KAACC,CAAC,EAAEC,KAAU,EAAK;MACvBJ,QAAQ,CAAC;QAAEK,IAAI,EAAE,MAAM;QAAEC,OAAO,EAAEF;MAAM,CAAC,CAAC;IAC5C,CAAC;IACDG,MAAM,EAAE,SAAAA,OAAA,EAAM;MACZP,QAAQ,CAAC;QAAEK,IAAI,EAAE;MAAS,CAAC,CAAC;IAC9B,CAAC;IACDG,OAAO,EAAE,SAAAA,QAAA,EAAM;MACbR,QAAQ,CAACF,iBAAiB,CAACU,OAAO,CAAC;IACrC,CAAC;IACDC,MAAM,EAAE,SAAAC,QAAA,EAAM;MACZV,QAAQ,CAACF,iBAAiB,CAACW,MAAM,CAAC;IACpC,CAAC;IACDE,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXX,QAAQ,CAAC;QAAEK,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B,CAAC;IACDO,UAAU,EAAE,SAAAA,WAACT,CAAC,EAAEC,KAAa,EAAK;MAChCJ,QAAQ,CAAC,UAACa,CAAM,EAAEC,QAAyC,EAAK;QAC9D,IAAAC,SAAA,GAAoBD,QAAQ,CAAC,CAAC;UAAtBE,OAAO,GAAAD,SAAA,CAAPC,OAAO;QACf,IAAIA,OAAO,EAAE;UACX;QACF,CAAC,MAAM;UACLb,CAAC,CAACc,cAAc,CAAC,CAAC;UAClBjB,QAAQ,CAAC;YAAEK,IAAI,EAAE,YAAY;YAAEC,OAAO,EAAEF;UAAM,CAAC,CAAC;QAClD;MACF,CAAC,CAAC;IACJ,CAAC;IACDc,IAAI,EAAE,SAAAA,KAAA,EAAM;MACVlB,QAAQ,CAACF,iBAAiB,CAACoB,IAAI,CAAC;IAClC,CAAC;IACDC,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXnB,QAAQ,CAACF,iBAAiB,CAACqB,KAAK,CAAC;IACnC,CAAC;IACDC,GAAG,EAAE,SAAAA,IAAA,EAAM;MACTpB,QAAQ,CAACF,iBAAiB,CAACoB,IAAI,CAAC;MAChClB,QAAQ,CAACF,iBAAiB,CAACW,MAAM,CAAC;IACpC;EACF,CAAC,EACDR,UAAU,CAACoB,OACb,CAAC;AACH,CAAC"}
@@ -295,4 +295,5 @@ export var useMouseEvent = function useMouseEvent(dispatch, elementRef) {
295
295
  doubleClick: doubleClick,
296
296
  loseFocus: loseFocus
297
297
  }, elementRef.current);
298
- };
298
+ };
299
+ //# sourceMappingURL=useMouseEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMouse","useCallback","useRef","extractDataRowAndCol","findParentTd","rowCount","colCount","useMouseEvent","dispatch","elementRef","animateRef","rowHeightRef","colWidthRef","resetInterval","current","scrollTo","type","_ref","scrollTop","scrollLeft","scrollHeight","scrollWidth","destination","y","x","called","rowCalled","colCalled","step","_elementRef$current","style","setProperty","position","Math","round","payload","distance","abs","_elementRef$current2","_elementRef$current3","requestAnimationFrame","mouseDown","e","_elementRef$current4","button","preventDefault","contains","target","currentCell","currentPos","pos","shiftKey","mouseOver","_elementRef$current5","_elementRef$current6","classList","d","getState","_elementRef$current7","_getState","cellBounding","getBoundingClientRect","parentBounding","left","top","bottom","right","parentLeft","parentTop","parentBottom","parentRight","dBottom","dTop","dLeft","dRight","cellHeight","clientHeight","cellWidth","clientWidth","isElementEdge","mouseUp","mouseLeave","_getState2","_elementRef$current8","doubleClick","_elementRef$current9","loseFocus","_elementRef$current10","mouseEnter"],"sources":["../../../src/core/sheet/useMouseEvent.ts"],"sourcesContent":["import { useMouse } from '@zhenliang/sheet/hooks';\nimport { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useCallback, useRef } from 'react';\nimport { extractDataRowAndCol, findParentTd } from '../util';\n\nconst rowCount = 10; //每秒10行\nconst colCount = 5; //每秒3列\n\nexport const useMouseEvent = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n) => {\n const animateRef = useRef<boolean>(false);\n // const animateScrollCalled = useRef<number>(0);\n const rowHeightRef = useRef<number>(40);\n const colWidthRef = useRef<number>(100);\n\n const resetInterval = useCallback(() => {\n if (animateRef.current) {\n animateRef.current = false;\n // animateScrollCalled.current -= 1;\n }\n }, []);\n\n const scrollTo = useCallback((type: 'bottom' | 'top' | 'left' | 'right') => {\n if (!elementRef.current) return;\n // 当前滚动高度\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth } =\n elementRef.current || {};\n\n let destination = {\n y: scrollTop,\n x: scrollLeft,\n };\n\n let called = 0;\n let rowCalled = 0;\n let colCalled = 0;\n const step = () => {\n elementRef.current?.style.setProperty('scroll-behavior', 'auto');\n const position = {\n x: destination.x,\n y: destination.y,\n };\n if (type === 'bottom') {\n position.y = scrollHeight;\n if (Math.round((called / 60) * rowCount) - rowCalled > 1) {\n rowCalled++;\n dispatch({ type: 'rowMove', payload: 1 });\n }\n }\n if (type === 'right') {\n position.x = scrollWidth;\n\n if (Math.round((called / 60) * colCount) - colCalled > 1) {\n colCalled++;\n dispatch({ type: 'colMove', payload: 1 });\n }\n }\n if (type === 'left') {\n position.x = 0;\n\n if (Math.round((called / 60) * colCount) - colCalled > 1) {\n colCalled++;\n dispatch({ type: 'colMove', payload: -1 });\n }\n }\n if (type === 'top') {\n position.y = 0;\n\n if (Math.round((called / 60) * rowCount) - rowCalled > 1) {\n rowCalled++;\n dispatch({ type: 'rowMove', payload: -1 });\n }\n }\n\n // 距离目标滚动距离\n let distance = {\n x: position.x - destination.x,\n // x: 0,\n y: position.y - destination.y,\n };\n // 目标滚动位置\n destination = {\n x:\n destination.x +\n (distance.x !== 0\n ? (distance.x * colWidthRef.current * colCount) /\n 60 /\n Math.abs(distance.x)\n : 0),\n // x: 0,\n y:\n destination.y +\n (distance.y !== 0\n ? (distance.y * rowHeightRef.current * rowCount) /\n 60 /\n Math.abs(distance.y)\n : 0),\n };\n if (!animateRef.current) return;\n if (Math.abs(distance.x) + Math.abs(distance.y) < 2) {\n elementRef.current?.scrollTo(destination.x, destination.y);\n resetInterval();\n } else {\n elementRef.current?.scrollTo(destination.x, destination.y);\n requestAnimationFrame(step);\n called++;\n }\n };\n step();\n }, []);\n const mouseDown = useCallback((e: MouseEvent) => {\n if (e.button !== 0) return;\n e.preventDefault();\n if (!elementRef.current?.contains(e.target)) {\n dispatch({ type: 'loseFocus' });\n }\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell) {\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({\n type: 'mouseDown',\n payload: { pos: currentPos, shiftKey: e.shiftKey },\n });\n }, []);\n\n const mouseOver = useCallback((e: MouseEvent) => {\n e.preventDefault();\n\n if (!elementRef.current?.contains(e.target)) return;\n\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell || currentCell.classList.contains('fixed')) return;\n\n elementRef.current?.style.setProperty('scroll-behavior', 'smooth');\n\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'mouseOver', payload: currentPos });\n\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { mouseDown } = getState();\n if (!mouseDown || !elementRef.current) return;\n\n const cellBounding = currentCell.getBoundingClientRect();\n const parentBounding = elementRef.current?.getBoundingClientRect();\n\n const { left, top, bottom, right } = cellBounding;\n const {\n left: parentLeft,\n top: parentTop,\n bottom: parentBottom,\n right: parentRight,\n } = parentBounding;\n\n let dBottom = bottom - parentBottom;\n let dTop = top - parentTop;\n let dLeft = left - parentLeft;\n let dRight = right - parentRight;\n\n const cellHeight = currentCell.clientHeight;\n const cellWidth = currentCell.clientWidth;\n rowHeightRef.current = cellHeight;\n colWidthRef.current = cellWidth;\n const isElementEdge =\n dBottom > -40 || dTop < 40 || dLeft < 40 || dRight > -40;\n if (isElementEdge) {\n if (animateRef.current === true) return;\n animateRef.current = true;\n // animateScrollCalled.current += 1;\n } else {\n resetInterval();\n }\n\n if (dBottom > -40) {\n scrollTo('bottom');\n // elementRef.current.scrollTop += cellHeight;\n }\n if (dTop < 40) {\n scrollTo('top');\n // elementRef.current.scrollTop -= cellHeight;\n }\n if (dLeft < 40) {\n scrollTo('left');\n // elementRef.current.scrollLeft -= cellWidth;\n }\n if (dRight > -40) {\n scrollTo('right');\n // elementRef.current.scrollLeft += cellWidth;\n }\n });\n }, []);\n\n const mouseUp = useCallback((e: MouseEvent) => {\n e.preventDefault();\n\n resetInterval();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell || currentCell.classList.contains('fixed')) {\n dispatch({ type: 'changes', payload: { mouseDown: false } });\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'mouseUp', payload: currentPos });\n }, []);\n\n const mouseLeave = useCallback((e: MouseEvent) => {\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { mouseDown } = getState();\n if (mouseDown && elementRef.current) {\n const parentBounding = elementRef.current?.getBoundingClientRect();\n const { left, top, right, bottom } = parentBounding;\n const { x, y } = e;\n resetInterval();\n\n if (animateRef.current === true) return;\n animateRef.current = true;\n\n // animateScrollCalled.current += 1;\n if (y > bottom) {\n scrollTo('bottom');\n }\n if (y < top) {\n scrollTo('top');\n }\n if (x < left) {\n scrollTo('left');\n }\n if (x > right) {\n scrollTo('right');\n }\n } else {\n mouseDown &&\n dispatch({ type: 'changes', payload: { mouseDown: false } });\n }\n });\n }, []);\n\n const doubleClick = useCallback((e: MouseEvent) => {\n if (!elementRef.current?.contains(e.target)) {\n return;\n }\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (\n !currentCell?.classList ||\n currentCell.classList.contains('read-only')\n ) {\n // 只读\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'doubleClick', payload: currentPos });\n }, []);\n const loseFocus = useCallback((e: MouseEvent) => {\n if (!elementRef.current?.contains(e.target)) {\n dispatch({ type: 'loseFocus' });\n return;\n }\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (currentCell.classList.contains('read-only')) {\n // 只读\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'doubleClick', payload: currentPos });\n }, []);\n\n useMouse(\n {\n mouseDown,\n mouseOver,\n mouseUp,\n mouseLeave,\n mouseEnter: resetInterval,\n doubleClick,\n loseFocus,\n },\n elementRef.current,\n );\n};\n"],"mappings":"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"}
@@ -57,6 +57,14 @@ export var useVirtualList = function useVirtualList(elementRef) {
57
57
  (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.removeEventListener('scroll', handleScroll);
58
58
  };
59
59
  }, [elementRef.current]);
60
+ useEffect(function () {
61
+ setState({
62
+ virtualStart: 0,
63
+ virtualEnd: Math.min(data.length - 1, 2 * extra),
64
+ paddingTop: 0,
65
+ paddingBottom: 0
66
+ });
67
+ }, [data]);
60
68
  if (!virtualized) {
61
69
  return {
62
70
  virtualStart: 0,
@@ -71,4 +79,5 @@ export var useVirtualList = function useVirtualList(elementRef) {
71
79
  paddingTop: Math.max(0, paddingTop),
72
80
  paddingBottom: data.length - 1 <= virtualEnd ? 0 : paddingBottom
73
81
  };
74
- };
82
+ };
83
+ //# sourceMappingURL=useVirtualList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isEqual","throttle","useEffect","useRef","useState","getRowHeight","extra","useVirtualList","elementRef","data","arguments","length","undefined","virtualized","_useState","virtualStart","virtualEnd","paddingTop","paddingBottom","_useState2","_slicedToArray","state","setState","virtualRef","current","rowHeight","handleScroll","_ref","scrollTop","clientHeight","itemHeight","start","Math","floor","end","ceil","updateVirtualConfig","addEventListener","_elementRef$current","removeEventListener","min","max"],"sources":["../../../src/core/sheet/useVirtualList.ts"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { isEqual, throttle } from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { getRowHeight } from '../util';\n\nconst extra = 20;\n\ntype VirtualConfig = {\n virtualStart: number;\n virtualEnd: number;\n paddingTop: number;\n paddingBottom: number;\n};\n\n// 虚拟列表\nexport const useVirtualList = (\n elementRef: React.RefObject<SheetType.refAssertion>,\n data: SheetType.Cell[][] = [],\n virtualized?: boolean,\n) => {\n const [state, setState] = useState({\n virtualStart: 0,\n virtualEnd: data.length - 1,\n paddingTop: 0,\n paddingBottom: 0,\n });\n const { virtualStart, virtualEnd, paddingTop, paddingBottom } = state;\n const virtualRef = useRef<VirtualConfig | null>();\n\n useEffect(() => {\n if (!elementRef.current) return;\n\n // 当前位定高的表格,所以可以直接获取第一行的高度\n\n const rowHeight = getRowHeight(elementRef.current as HTMLSpanElement);\n\n const handleScroll = throttle(() => {\n const { scrollTop, clientHeight } = elementRef.current as HTMLSpanElement;\n const itemHeight = rowHeight || 30;\n const start = Math.floor(scrollTop / itemHeight) - extra;\n const end = Math.ceil((scrollTop + clientHeight) / itemHeight) + extra;\n const updateVirtualConfig = {\n virtualStart: start,\n virtualEnd: end,\n paddingTop: start * itemHeight,\n paddingBottom: (data.length - end) * itemHeight,\n };\n if (isEqual(updateVirtualConfig, virtualRef.current)) {\n return;\n }\n setState(updateVirtualConfig);\n virtualRef.current = updateVirtualConfig;\n }, 50);\n\n elementRef.current.addEventListener('scroll', handleScroll);\n return () => {\n elementRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, [elementRef.current]);\n\n useEffect(() => {\n setState({\n virtualStart: 0,\n virtualEnd: Math.min(data.length - 1, 2 * extra),\n paddingTop: 0,\n paddingBottom: 0,\n });\n }, [data]);\n\n if (!virtualized) {\n return {\n virtualStart: 0,\n virtualEnd: data.length,\n paddingTop: 0,\n paddingBottom: 0,\n };\n }\n\n return {\n virtualStart: Math.max(0, virtualStart),\n virtualEnd: Math.min(data.length, virtualEnd),\n paddingTop: Math.max(0, paddingTop),\n paddingBottom: data.length - 1 <= virtualEnd ? 0 : paddingBottom,\n };\n};\n"],"mappings":";;;;;;AACA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,QAAQ;AAC1C,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,YAAY;AAErB,IAAMC,KAAK,GAAG,EAAE;AAShB;AACA,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACzBC,UAAmD,EAGhD;EAAA,IAFHC,IAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAC7BG,WAAqB,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAErB,IAAAE,SAAA,GAA0BV,QAAQ,CAAC;MACjCW,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEP,IAAI,CAACE,MAAM,GAAG,CAAC;MAC3BM,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAN,SAAA;IALKO,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAMtB,IAAQJ,YAAY,GAA4CM,KAAK,CAA7DN,YAAY;IAAEC,UAAU,GAAgCK,KAAK,CAA/CL,UAAU;IAAEC,UAAU,GAAoBI,KAAK,CAAnCJ,UAAU;IAAEC,aAAa,GAAKG,KAAK,CAAvBH,aAAa;EAC3D,IAAMK,UAAU,GAAGpB,MAAM,CAAuB,CAAC;EAEjDD,SAAS,CAAC,YAAM;IACd,IAAI,CAACM,UAAU,CAACgB,OAAO,EAAE;;IAEzB;;IAEA,IAAMC,SAAS,GAAGpB,YAAY,CAACG,UAAU,CAACgB,OAA0B,CAAC;IAErE,IAAME,YAAY,GAAGzB,QAAQ,CAAC,YAAM;MAClC,IAAA0B,IAAA,GAAoCnB,UAAU,CAACgB,OAAO;QAA9CI,SAAS,GAAAD,IAAA,CAATC,SAAS;QAAEC,YAAY,GAAAF,IAAA,CAAZE,YAAY;MAC/B,IAAMC,UAAU,GAAGL,SAAS,IAAI,EAAE;MAClC,IAAMM,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACL,SAAS,GAAGE,UAAU,CAAC,GAAGxB,KAAK;MACxD,IAAM4B,GAAG,GAAGF,IAAI,CAACG,IAAI,CAAC,CAACP,SAAS,GAAGC,YAAY,IAAIC,UAAU,CAAC,GAAGxB,KAAK;MACtE,IAAM8B,mBAAmB,GAAG;QAC1BrB,YAAY,EAAEgB,KAAK;QACnBf,UAAU,EAAEkB,GAAG;QACfjB,UAAU,EAAEc,KAAK,GAAGD,UAAU;QAC9BZ,aAAa,EAAE,CAACT,IAAI,CAACE,MAAM,GAAGuB,GAAG,IAAIJ;MACvC,CAAC;MACD,IAAI9B,OAAO,CAACoC,mBAAmB,EAAEb,UAAU,CAACC,OAAO,CAAC,EAAE;QACpD;MACF;MACAF,QAAQ,CAACc,mBAAmB,CAAC;MAC7Bb,UAAU,CAACC,OAAO,GAAGY,mBAAmB;IAC1C,CAAC,EAAE,EAAE,CAAC;IAEN5B,UAAU,CAACgB,OAAO,CAACa,gBAAgB,CAAC,QAAQ,EAAEX,YAAY,CAAC;IAC3D,OAAO,YAAM;MAAA,IAAAY,mBAAA;MACX,CAAAA,mBAAA,GAAA9B,UAAU,CAACgB,OAAO,cAAAc,mBAAA,uBAAlBA,mBAAA,CAAoBC,mBAAmB,CAAC,QAAQ,EAAEb,YAAY,CAAC;IACjE,CAAC;EACH,CAAC,EAAE,CAAClB,UAAU,CAACgB,OAAO,CAAC,CAAC;EAExBtB,SAAS,CAAC,YAAM;IACdoB,QAAQ,CAAC;MACPP,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEgB,IAAI,CAACQ,GAAG,CAAC/B,IAAI,CAACE,MAAM,GAAG,CAAC,EAAE,CAAC,GAAGL,KAAK,CAAC;MAChDW,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,IAAI,CAAC,CAAC;EAEV,IAAI,CAACI,WAAW,EAAE;IAChB,OAAO;MACLE,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEP,IAAI,CAACE,MAAM;MACvBM,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE;IACjB,CAAC;EACH;EAEA,OAAO;IACLH,YAAY,EAAEiB,IAAI,CAACS,GAAG,CAAC,CAAC,EAAE1B,YAAY,CAAC;IACvCC,UAAU,EAAEgB,IAAI,CAACQ,GAAG,CAAC/B,IAAI,CAACE,MAAM,EAAEK,UAAU,CAAC;IAC7CC,UAAU,EAAEe,IAAI,CAACS,GAAG,CAAC,CAAC,EAAExB,UAAU,CAAC;IACnCC,aAAa,EAAET,IAAI,CAACE,MAAM,GAAG,CAAC,IAAIK,UAAU,GAAG,CAAC,GAAGE;EACrD,CAAC;AACH,CAAC"}
@@ -179,4 +179,5 @@ export var DraggableShell = function DraggableShell(_ref) {
179
179
  });
180
180
  };
181
181
  return TableShell;
182
- };
182
+ };
183
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useMemo","useRef","useSetState","classNames","CheckViewer","GroupViewer","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DraggableShell","_ref","columns","className","showGroup","showSelect","controlProps","_ref$controlWidth","controlWidth","TableShell","_ref2","children","headRef","downRef","_useSetState","_useSetState2","_slicedToArray","widths","setWidth","hasControl","thItems","ths","_controlProps$group","_controlProps$check","_controlProps$check2","_controlProps$check3","push","row","col","value","record","open","group","isHeader","check","checked","indeterminate","forEach","item","index","_item$dataIndex","_ref3","fixed","concat","style","textAlign","align","left","right","onMouseDown","e","target","current","nativeEvent","offsetX","offsetWidth","mouseDown","oldX","x","oldWidth","onMouseMove","cursor","undefined","title","dataIndex","colItems","cols","width","_item$dataIndex2","handleMouseUp","handleMouseMove","_downRef$current","_downRef$current2","_downRef$current$oldW","_downRef$current$oldX","_downRef$current$oldW2","_downRef$current$oldX2","_headRef$current","newWidth","Math","max","Number","cellList","slice","call","cells","changeIndex","indexOf","_defineProperty","length","document","addEventListener","removeEventListener","position","top","zIndex","ref"],"sources":["../../../../src/core/shell/draggableShell/index.tsx"],"sourcesContent":["import type { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useSetState } from '../../../hooks';\nimport { classNames } from '../../util';\nimport { CheckViewer } from '../../viewer/checkViewer';\nimport { GroupViewer } from '../../viewer/groupViewer';\nimport './index.less';\n\nexport const DraggableShell = ({\n columns,\n className,\n showGroup,\n showSelect,\n controlProps,\n controlWidth = 25,\n}: SheetType.SheetShell) => {\n const TableShell: React.FC<{\n children: React.ReactElement;\n }> = ({ children }) => {\n const headRef = useRef<HTMLTableRowElement>(null);\n const downRef = useRef<\n | (HTMLTableHeaderCellElement & {\n mouseDown?: boolean;\n oldX?: number;\n oldWidth?: number;\n width?: string;\n })\n | null\n >(null);\n const [widths, setWidth] = useSetState<\n Record<number | string, string | number>\n >({});\n\n const hasControl = showGroup || showSelect;\n\n const thItems = useMemo(() => {\n const ths = [];\n\n if (hasControl) {\n ths.push(\n <th className=\"cell cell-title read-only sheet-control\" key=\"-1\">\n {showGroup && (\n <GroupViewer\n row={-1}\n col={-1}\n value={true}\n record={{ open: controlProps?.group?.open, isHeader: true }}\n />\n )}\n {showSelect && (\n <CheckViewer\n row={-1}\n col={-1}\n value={controlProps?.check?.checked}\n record={{\n open: controlProps?.check?.checked,\n isHeader: true,\n indeterminate: controlProps?.check?.indeterminate,\n }}\n />\n )}\n </th>,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n ths.push(\n <th\n className={classNames(\n 'cell',\n 'cell-title',\n 'read-only',\n item.fixed && 'fixed',\n item.fixed && `fixed-${item.fixed}`,\n )}\n key={item.dataIndex ?? index}\n style={{\n textAlign: (item.align as any) ?? 'unset',\n left: item.fixed === 'left' ? 0 : 'unset',\n right: item.fixed === 'right' ? 0 : 'unset',\n }}\n onMouseDown={(e) => {\n const target = e.target as HTMLTableHeaderCellElement;\n\n downRef.current = target;\n if (e.nativeEvent.offsetX > target.offsetWidth - 10) {\n downRef.current.mouseDown = true;\n downRef.current.oldX = e.nativeEvent.x;\n downRef.current.oldWidth = downRef.current.offsetWidth;\n } else {\n downRef.current = null;\n }\n }}\n onMouseMove={(e) => {\n const target = e.target as HTMLTableHeaderCellElement;\n if (e.nativeEvent.offsetX > target.offsetWidth - 10) {\n target.style.cursor = 'col-resize';\n } else {\n target.style.cursor = 'default';\n }\n //取出暂存的Table Cell\n if (downRef.current === undefined) downRef.current = target;\n //调整宽度\n }}\n >\n {item.title}\n </th>,\n );\n });\n\n return ths;\n }, [columns]);\n\n const colItems = useMemo(() => {\n const cols = [];\n if (hasControl) {\n cols.push(\n <col\n className={classNames('sheet-control')}\n key=\"sheet-control\"\n style={{\n width: controlWidth,\n }}\n />,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n cols.push(\n <col\n className={classNames('cell')}\n key={item.dataIndex ?? index}\n style={{\n width: widths[index] || item.width || 'unset',\n }}\n />,\n );\n });\n return cols;\n }, [widths, hasControl, columns]);\n\n useEffect(() => {\n const handleMouseUp = () => {\n //结束宽度调整\n if (downRef.current) {\n downRef.current.mouseDown = false;\n downRef.current.style.cursor = 'default';\n }\n };\n const handleMouseMove = (e: MouseEvent) => {\n if (!downRef.current || !downRef.current.mouseDown) return;\n\n if (\n downRef.current?.mouseDown !== null &&\n downRef.current?.mouseDown === true\n ) {\n downRef.current.style.cursor = 'default';\n if (\n (downRef.current.oldWidth ?? 0) +\n (e.x - (downRef.current.oldX ?? 0)) >\n 0\n ) {\n let newWidth = Math.max(\n Number(\n (downRef.current.oldWidth ?? 0) +\n (e.x - (downRef.current.oldX ?? 0)),\n ),\n 50,\n );\n\n const cellList = ([] as any[]).slice.call(headRef.current?.cells);\n const changeIndex = cellList.indexOf(downRef.current);\n //调整该列中的每个Cell\n const widths = {\n length: columns.length,\n [hasControl ? changeIndex - 1 : changeIndex]: `${newWidth}px`,\n };\n\n setWidth(widths);\n }\n }\n };\n\n document.addEventListener('mouseup', handleMouseUp);\n document.addEventListener('mousemove', handleMouseMove);\n return () => {\n document.removeEventListener('mouseup', handleMouseUp);\n document.removeEventListener('mousemove', handleMouseMove);\n };\n }, [hasControl]);\n return (\n <>\n <table\n key=\"header\"\n className={classNames('header', 'harvest-sheet', className)}\n style={{ position: 'sticky', top: 0, zIndex: 3 }}\n >\n <colgroup>{colItems}</colgroup>\n <thead>\n <tr ref={headRef}>{thItems}</tr>\n </thead>\n </table>\n <table key=\"body\" className={classNames('body', 'harvest-sheet')}>\n <colgroup className=\"header\">{colItems}</colgroup>\n <tbody key=\"tbody\">{children}</tbody>\n </table>\n </>\n );\n };\n return TableShell;\n};\n"],"mappings":"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"}
@@ -102,4 +102,5 @@ export var TableShell = function TableShell(_ref) {
102
102
  });
103
103
  };
104
104
  return TableShell;
105
- };
105
+ };
106
+ //# sourceMappingURL=tableShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","classNames","CheckViewer","GroupViewer","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TableShell","_ref","columns","className","showGroup","showSelect","controlProps","_ref$controlWidth","controlWidth","_ref2","children","thItems","ths","_controlProps$group","_controlProps$check","_controlProps$check2","_controlProps$check3","push","row","col","value","record","open","group","isHeader","check","checked","indeterminate","forEach","item","index","_ref3","fixed","concat","style","textAlign","align","left","right","title","dataIndex","colItems","cols","width","position","top","zIndex"],"sources":["../../../src/core/shell/tableShell.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { classNames } from '../util';\nimport { CheckViewer } from '../viewer/checkViewer';\nimport { GroupViewer } from '../viewer/groupViewer';\nimport './draggableShell/index.less';\n\nexport const TableShell = ({\n columns,\n className,\n showGroup,\n showSelect,\n controlProps,\n controlWidth = 25,\n}: SheetType.SheetShell) => {\n const TableShell: React.FC<{\n children: React.ReactElement;\n }> = ({ children }) => {\n const thItems = useMemo(() => {\n const ths = [];\n if (showGroup || showSelect) {\n ths.push(\n <th className=\"cell cell-title read-only sheet-control\" key=\"-1\">\n {showGroup && (\n <GroupViewer\n row={-1}\n col={-1}\n value={true}\n record={{ open: controlProps?.group?.open, isHeader: true }}\n />\n )}\n {showSelect && (\n <CheckViewer\n row={-1}\n col={-1}\n value={controlProps?.check?.checked}\n record={{\n open: controlProps?.check?.checked,\n isHeader: true,\n indeterminate: controlProps?.check?.indeterminate,\n }}\n />\n )}\n </th>,\n );\n }\n\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n ths.push(\n <th\n className={classNames(\n 'cell',\n 'cell-title',\n 'read-only',\n item.fixed && 'fixed',\n item.fixed && `fixed-${item.fixed}`,\n )}\n key={item.dataIndex || index}\n style={{\n textAlign: (item.align as any) ?? 'unset',\n left: item.fixed === 'left' ? 0 : 'unset',\n right: item.fixed === 'right' ? 0 : 'unset',\n }}\n >\n {item.title}\n </th>,\n );\n });\n return ths;\n }, [columns, showGroup || showSelect, controlProps]);\n\n const colItems = useMemo(() => {\n const cols = [];\n if (showGroup || showSelect) {\n cols.push(\n <col\n className={classNames('sheet-control')}\n key=\"sheet-control\"\n style={{\n width: controlWidth,\n }}\n />,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n cols.push(\n <col\n className={classNames('cell')}\n key={item.dataIndex || index}\n style={{\n width: item.width || 'unset',\n }}\n />,\n );\n });\n return cols;\n }, [columns, showGroup || showSelect, controlWidth]);\n\n return (\n <>\n <table\n key=\"header\"\n className={classNames('header', 'harvest-sheet', className)}\n style={{ position: 'sticky', top: 0, zIndex: 3 }}\n >\n <colgroup>{colItems}</colgroup>\n <thead>\n <tr>{thItems}</tr>\n </thead>\n </table>\n <table key=\"body\" className={classNames('body', 'harvest-sheet')}>\n <colgroup>{colItems}</colgroup>\n <tbody key=\"tbody\">{children}</tbody>\n </table>\n </>\n );\n };\n return TableShell;\n};\n"],"mappings":"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"}
@@ -327,4 +327,5 @@ var Table = function Table(_ref) {
327
327
  }) : null]
328
328
  }));
329
329
  };
330
- export default Table;
330
+ export default Table;
331
+ //# sourceMappingURL=index.js.map