@zhenliang/sheet 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/core/config.js +1 -2
- package/dist/core/editor/cascaderEditor/index.js +14 -7
- package/dist/core/editor/dateEditor/index.d.ts +1 -1
- package/dist/core/editor/dateEditor/index.js +2 -3
- package/dist/core/editor/index.d.ts +1 -1
- package/dist/core/editor/index.js +2 -3
- package/dist/core/editor/numberEditor/index.js +50 -6
- package/dist/core/editor/numberEditor/index.less +1 -0
- package/dist/core/editor/selectEditor/index.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +23 -5
- package/dist/core/reducers/index.d.ts +1 -1
- package/dist/core/reducers/index.js +3 -2
- package/dist/core/reducers/keyboardReducer.js +2 -3
- package/dist/core/reducers/mouseReducer.js +1 -2
- package/dist/core/reducers/sideEffectReducer.js +49 -25
- package/dist/core/reducers/stateReducer.js +35 -10
- package/dist/core/sheet/Cell.js +37 -16
- package/dist/core/sheet/DataEditor.js +4 -2
- package/dist/core/sheet/DefaultCell.js +1 -2
- package/dist/core/sheet/DefaultRow.d.ts +1 -0
- package/dist/core/sheet/DefaultRow.js +5 -3
- package/dist/core/sheet/DefaultRowMapper.js +1 -2
- package/dist/core/sheet/DefaultShell.js +1 -2
- package/dist/core/sheet/Event.js +2 -3
- package/dist/core/sheet/ValueViewer.js +1 -2
- package/dist/core/sheet/index.js +54 -15
- package/dist/core/sheet/index.less +20 -11
- package/dist/core/sheet/useCellEvent.js +1 -2
- package/dist/core/sheet/useContextMenu.d.ts +1 -1
- package/dist/core/sheet/useContextMenu.js +2 -3
- package/dist/core/sheet/useKeyBoardEvent.js +15 -3
- package/dist/core/sheet/useMouseEvent.js +3 -4
- package/dist/core/sheet/useSelectVisible.d.ts +2 -0
- package/dist/core/sheet/useSelectVisible.js +48 -0
- package/dist/core/sheet/useVirtualList.d.ts +1 -1
- package/dist/core/sheet/useVirtualList.js +24 -20
- package/dist/core/shell/draggableShell/index.d.ts +0 -1
- package/dist/core/shell/draggableShell/index.js +21 -13
- package/dist/core/shell/tableShell.d.ts +0 -1
- package/dist/core/shell/tableShell.js +9 -6
- package/dist/core/table/events.d.ts +15 -0
- package/dist/core/table/events.js +94 -0
- package/dist/core/table/index.js +91 -112
- package/dist/core/table/useGroupConfig.js +24 -7
- package/dist/core/table/useRowSelection.d.ts +2 -1
- package/dist/core/table/useRowSelection.js +1 -2
- package/dist/core/table/util.js +2 -3
- package/dist/core/util.d.ts +5 -2
- package/dist/core/util.js +97 -16
- package/dist/core/viewer/btnViewer/index.js +2 -3
- package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
- package/dist/core/viewer/cascaderViewer/index.js +11 -0
- package/dist/core/viewer/checkViewer/index.js +2 -3
- package/dist/core/viewer/editViewer/index.js +2 -3
- package/dist/core/viewer/groupViewer/index.js +5 -3
- package/dist/core/viewer/index.d.ts +1 -0
- package/dist/core/viewer/index.js +2 -2
- package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
- package/dist/core/viewer/selectorViewer/index.js +12 -0
- package/dist/core/viewer/switchViewer/index.js +2 -3
- package/dist/example/antComponent.js +60 -14
- package/dist/example/basic.js +2 -3
- package/dist/example/ellipsis.js +1 -2
- package/dist/example/fixed.js +1 -2
- package/dist/example/group.js +42 -4
- package/dist/example/selection.js +2 -3
- package/dist/example/sheet.js +52 -16
- package/dist/example/valuationAnalyze.js +20 -18
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useEventBus.d.ts +0 -1
- package/dist/hooks/useEventBus.js +1 -2
- package/dist/hooks/useKeyboard.js +1 -2
- package/dist/hooks/useMiddlewareReducer.js +1 -2
- package/dist/hooks/useMouse.js +1 -2
- package/dist/hooks/useSetState.js +1 -2
- package/dist/hooks/useSheetEvent.js +1 -2
- package/dist/hooks/useWidthConfig.d.ts +4 -0
- package/dist/hooks/useWidthConfig.js +5 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/standardUtils/index.js +2 -3
- package/dist/type/index.js +1 -2
- package/dist/type/sheet.d.ts +14 -3
- package/dist/type/sheet.js +1 -2
- package/dist/type/sheetTable.d.ts +43 -14
- package/dist/type/sheetTable.js +1 -2
- package/package.json +1 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/editor/cascaderEditor/index.js.map +0 -1
- package/dist/core/editor/dateEditor/index.js.map +0 -1
- package/dist/core/editor/index.js.map +0 -1
- package/dist/core/editor/numberEditor/index.js.map +0 -1
- package/dist/core/editor/selectEditor/index.js.map +0 -1
- package/dist/core/reducers/index.js.map +0 -1
- package/dist/core/reducers/keyboardReducer.js.map +0 -1
- package/dist/core/reducers/mouseReducer.js.map +0 -1
- package/dist/core/reducers/sideEffectReducer.js.map +0 -1
- package/dist/core/reducers/stateReducer.js.map +0 -1
- package/dist/core/sheet/Cell.js.map +0 -1
- package/dist/core/sheet/DataEditor.js.map +0 -1
- package/dist/core/sheet/DefaultCell.js.map +0 -1
- package/dist/core/sheet/DefaultRow.js.map +0 -1
- package/dist/core/sheet/DefaultRowMapper.js.map +0 -1
- package/dist/core/sheet/DefaultShell.js.map +0 -1
- package/dist/core/sheet/Event.js.map +0 -1
- package/dist/core/sheet/ValueViewer.js.map +0 -1
- package/dist/core/sheet/index.js.map +0 -1
- package/dist/core/sheet/useCellEvent.js.map +0 -1
- package/dist/core/sheet/useContextMenu.js.map +0 -1
- package/dist/core/sheet/useKeyBoardEvent.js.map +0 -1
- package/dist/core/sheet/useMouseEvent.js.map +0 -1
- package/dist/core/sheet/useVirtualList.js.map +0 -1
- package/dist/core/shell/draggableShell/index.js.map +0 -1
- package/dist/core/shell/tableShell.js.map +0 -1
- package/dist/core/table/index.js.map +0 -1
- package/dist/core/table/useGroupConfig.js.map +0 -1
- package/dist/core/table/useRowSelection.js.map +0 -1
- package/dist/core/table/util.js.map +0 -1
- package/dist/core/util.js.map +0 -1
- package/dist/core/viewer/btnViewer/index.js.map +0 -1
- package/dist/core/viewer/checkViewer/index.js.map +0 -1
- package/dist/core/viewer/editViewer/index.js.map +0 -1
- package/dist/core/viewer/groupViewer/index.js.map +0 -1
- package/dist/core/viewer/index.js.map +0 -1
- package/dist/core/viewer/switchViewer/index.js.map +0 -1
- package/dist/example/antComponent.js.map +0 -1
- package/dist/example/basic.js.map +0 -1
- package/dist/example/ellipsis.js.map +0 -1
- package/dist/example/fixed.js.map +0 -1
- package/dist/example/group.js.map +0 -1
- package/dist/example/selection.js.map +0 -1
- package/dist/example/sheet.js.map +0 -1
- package/dist/example/valuationAnalyze.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useEventBus.js.map +0 -1
- package/dist/hooks/useKeyboard.js.map +0 -1
- package/dist/hooks/useMiddlewareReducer.js.map +0 -1
- package/dist/hooks/useMouse.js.map +0 -1
- package/dist/hooks/useSetState.js.map +0 -1
- package/dist/hooks/useSheetEvent.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/standardUtils/index.js.map +0 -1
- package/dist/type/index.js.map +0 -1
- package/dist/type/sheet.js.map +0 -1
- package/dist/type/sheetTable.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","_catch","thrown","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","head","isNil","last","pick","clipboardDataToString","defaultValueRenderer","flatRowCol","flatRowColIndex","formatDataToCell","getRowColConfig","groupConfigToGroupMap","stringToClipboardData","sideEffectReducer","init","dispatch","getState","_getState","eventBus","on","cell","_getState2","cellChangeHandler","payload","_ref","row","col","_getState3","start","end","_getRowColConfig","startRow","endRow","startCol","endCol","isMultiSelected","isSelected","emit","concat","selected","selectedInfo","isStart","isTop","isBottom","isLeft","isRight","destroy","d","_getState4","removeAllListeners","emitSelectChange","_getState5","lastSelected","_getRowColConfig2","selectedCellIndex","selectedCells","cancelCells","includes","_ref2","emitEditChange","_getState6","editing","lastEditing","confirm","copy","_getState7","data","groupConfig","cellIndex","groupMap","copyData","reduce","left","_ref3","_ref3$row","_ref3$col","currentRow","get","_groupMap$get","_groupMap$get2","isOpen","currentValue","text","trimStart","paste","_callee","_getState8","history","_getState8$freePaste","freePaste","pasteData","changeInfo","changes","extChanges","legalChanges","legalExtChanges","newHistory","_callee$","_context","_ref4","editor","dataEditor","checker","map","_ref5","_editor$formatter","formatter","_ref6","item","delete","_delete","_getState9","_data$item$row","readonly","_groupMap$get3","_groupMap$get4","_data$item$row2","_getState10","console","log","changeHistory","change"],"sources":["../../../src/core/reducers/sideEffectReducer.ts"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { head, isNil, last, pick } from 'lodash';\nimport { FunctionAction, NormalAction } from '../../hooks';\nimport {\n clipboardDataToString,\n defaultValueRenderer,\n flatRowCol,\n flatRowColIndex,\n formatDataToCell,\n getRowColConfig,\n groupConfigToGroupMap,\n stringToClipboardData,\n} from '../util';\n\nexport type asyncActionType = (\n dispatch: (action: NormalAction | FunctionAction) => void,\n getState: () => SheetType.UpdateStateType,\n) => void;\n\nexport const sideEffectReducer: Record<string, asyncActionType> = {\n init(dispatch, getState) {\n const { eventBus } = getState();\n eventBus.on(\n 'cell-change',\n (cell: SheetType.CellData & { confirm?: boolean }) => {\n dispatch(() => {\n const { cellChangeHandler } = getState();\n cellChangeHandler && cellChangeHandler([cell]);\n dispatch({ type: 'editFinish', payload: { cell } });\n });\n },\n );\n eventBus.on('cell-create', ({ row, col }: { row: number; col: number }) => {\n const { start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(\n start,\n end,\n );\n const isMultiSelected = startRow !== endRow && startCol !== endCol;\n const isSelected =\n row >= startRow && row <= endRow && col >= startCol && col <= endCol;\n if (isSelected) {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart: row === start?.row && col === start.col && isMultiSelected,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n }\n });\n },\n destroy(d, getState) {\n const { eventBus } = getState();\n eventBus?.removeAllListeners();\n },\n emitSelectChange(d, getState) {\n const { eventBus, lastSelected, start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(start, end);\n\n const selectedCellIndex = flatRowColIndex(start, end);\n const selectedCells = flatRowCol(start, end);\n const cancelCells = flatRowCol(lastSelected?.start, lastSelected?.end);\n\n cancelCells.forEach((cell) => {\n if (selectedCells.includes(cell)) return;\n eventBus.emit(`cell-${cell}-change`, {\n selected: false,\n selectedInfo: undefined,\n });\n });\n\n selectedCellIndex.forEach(({ row, col }) => {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart:\n row === start?.row &&\n col === start.col &&\n selectedCellIndex.length !== 1,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n });\n },\n emitEditChange(d, getState) {\n const { editing, lastEditing, eventBus } = getState();\n\n if (!isNil(editing?.col) && !isNil(editing?.row)) {\n eventBus.emit(`cell-${editing.row}-${editing.col}-change`, {\n editing: true,\n value: editing.value,\n });\n }\n if (!isNil(lastEditing?.col) && !isNil(lastEditing?.row)) {\n //清空上一个编辑cell的状态\n eventBus.emit(`cell-${lastEditing.row}-${lastEditing.col}-change`, {\n editing: false,\n confirm: lastEditing?.confirm,\n });\n d({ type: 'changes', payload: { lastEditing: undefined } });\n }\n },\n copy(d, getState) {\n const { start, end, data, groupConfig } = getState();\n const cellIndex = flatRowColIndex(start, end);\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n\n const copyData = cellIndex.reduce(\n (left, { row = 0, col = 0 }) => {\n const { currentRow, value } = left;\n\n if (groupMap.get(row)) {\n // 如果是分组的子行并且是合并的状态\n if (!groupMap.get(row)?.isStart && !groupMap.get(row)?.isOpen) {\n return {\n currentRow: row,\n value: `${value}`,\n };\n }\n }\n\n const currentValue = `${value}${\n currentRow === row ? '\\t' : '\\n'\n } ${defaultValueRenderer(data[row][col])}`;\n return {\n currentRow: row,\n value: currentValue,\n };\n },\n { currentRow: -1, value: '' },\n );\n const text = copyData.value.trimStart();\n stringToClipboardData(text);\n },\n async paste(dispatch, getState) {\n const {\n start,\n end,\n cellChangeHandler,\n history,\n freePaste = false,\n data,\n groupConfig,\n } = getState();\n const pasteData = await clipboardDataToString();\n\n const changeInfo = formatDataToCell({\n ...pick(getState(), ['data', 'start', 'end', 'editing']),\n pasteData,\n groupConfig,\n freePaste,\n });\n if (!changeInfo) return;\n const { changes, extChanges } = changeInfo;\n\n const legalChanges = changes\n .filter(({ row, col, value }) => {\n const editor = data[row][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n })\n .map(({ row, col, value }) => {\n const editor = data[row][col].dataEditor;\n return {\n row,\n col,\n value: editor?.formatter ? editor?.formatter?.(value) : value,\n };\n });\n const legalExtChanges = extChanges?.filter(({ value, col }) => {\n const editor = data[0][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n });\n cellChangeHandler &&\n cellChangeHandler(legalChanges as any, legalExtChanges as any);\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: legalChanges.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Paste',\n });\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(legalChanges[0], ['row', 'col']),\n history: newHistory,\n end: pick(legalChanges[legalChanges.length - 1], ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n },\n });\n },\n delete(dispatch, getState) {\n const {\n cellChangeHandler,\n start,\n end,\n data,\n history,\n groupConfig,\n editing,\n } = getState();\n\n if (editing) return;\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n const cellIndex = flatRowColIndex(start, end);\n const changes = cellIndex\n .filter((item) => !data?.[item.row]?.[item.col].readonly)\n .filter(\n // 过滤掉分组的子行并且是关闭的状态\n (item) =>\n !(\n groupMap.get(item.row) &&\n !groupMap.get(item.row)?.isStart &&\n !groupMap.get(item.row)?.isOpen\n ),\n )\n .map((item) => ({\n cell: data?.[item.row]?.[item.col],\n row: item.row,\n col: item.col,\n value: '',\n }));\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: changes.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Delete',\n });\n cellChangeHandler && cellChangeHandler(changes as any);\n dispatch({ type: 'changes', payload: { history: newHistory } });\n },\n reverse(dispatch, getState) {\n const { start, end, history, cellChangeHandler, eventBus } = getState();\n if (!history?.length) return;\n console.log(history.length);\n\n const changeHistory = [...history];\n const change = changeHistory.pop() as SheetType.OperateHistory;\n const { type } = change;\n if (!['Edit', 'Paste', 'Delete'].includes(type)) {\n eventBus.emit('reverse', change);\n if (type === 'DeleteRow') {\n // console.log(change.rowInfo?.deleteRow);\n // dispatch({\n // type: 'selectRow',\n // payload: change.rowInfo?.deleteRow as number,\n // });\n }\n\n dispatch({\n type: 'changes',\n payload: {\n history: changeHistory,\n },\n });\n return;\n }\n cellChangeHandler &&\n cellChangeHandler(change.changes as SheetType.CellData[]);\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(head(change.changes), ['row', 'col']),\n end: pick(last(change.changes), ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n history: changeHistory,\n },\n });\n },\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Sheet","Button","useCallback","useEffect","useMemo","useRef","useState","SheetEvent","DraggableShell","TableShell","groupConfigToGroupMap","CheckViewer","GroupViewer","useGroupConfig","useRowSelection","jsx","_jsx","jsxs","_jsxs","Table","_ref","sheetRef","sheetInstance","columns","dataSource","rowKey","rowSelection","groupConfig","onChange","handleAdd","draggable","eventHandler","args","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","data","setData","_sheetInstance","hasChildren","some","item","_item$children","children","length","hasControl","_useRowSelection","_useRowSelection2","checkedRow","setCheckedRow","_useGroupConfig","defaultOpen","_useGroupConfig2","rowGroupConfig","setGroupConfig","_ref2","groups","groupOpen","groupMap","currentIndex","forEach","row","groupList","concat","_toConsumableArray","itemRow","_groupMap$get","_groupMap$get2","dataRow","rowId","key","id","String","Function","push","col","editable","align","value","get","isStart","record","open","isOpen","valueViewer","className","colInfo","dataIndex","readonly","fixed","render","undefined","dataEditor","editor","map","rows","handleChanges","changes","handleReverse","_ref3","type","extraInfo","_ref4","extraType","lastData","handleRowSelect","current","newChecked","Array","fill","WrappedTableShell","_rowGroupConfig$group2","_rowGroupConfig$group","showGroup","showSelect","controlProps","group","check","checked","_objectSpread","sheetRenderer","onCellsChanged","name","handler","e","_ref5","index","findIndex","groupStart","_sheetInstance$curren","newGrid","pushToHistory","_sheetInstance$curren2","Object","keys","style","width","height","onClick"],"sources":["../../../src/core/table/index.tsx"],"sourcesContent":["import { Sheet } from '@zhenliang/sheet';\nimport { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { Button } from 'antd';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { SheetEvent } from '../sheet/Event';\nimport { DraggableShell } from '../shell/draggableShell';\nimport { TableShell } from '../shell/tableShell';\nimport { groupConfigToGroupMap } from '../util';\nimport { CheckViewer } from '../viewer/checkViewer';\nimport { GroupViewer } from '../viewer/groupViewer';\nimport { useGroupConfig } from './useGroupConfig';\nimport { useRowSelection } from './useRowSelection';\n\nconst Table: React.FC<SheetTableType.TableProps> = ({\n sheetInstance: sheetRef,\n columns,\n dataSource,\n rowKey,\n rowSelection,\n groupConfig,\n onChange,\n handleAdd,\n draggable,\n eventHandler,\n ...args\n}) => {\n const [data, setData] = useState<SheetType.Cell[][]>([[]]);\n const _sheetInstance = useRef<SheetType.SheetInstance | null>(null);\n const sheetInstance = sheetRef || _sheetInstance;\n\n const hasChildren = dataSource?.some(\n (item) => (item?.children as Array<any>)?.length > 0,\n );\n const hasControl = hasChildren || rowSelection;\n\n const [checkedRow, setCheckedRow] = useRowSelection(\n dataSource,\n rowSelection,\n hasChildren,\n );\n const [rowGroupConfig, setGroupConfig] = useGroupConfig(\n dataSource,\n { defaultOpen: true },\n hasChildren,\n );\n const { groups, groupOpen } = rowGroupConfig || {};\n\n useEffect(() => {\n if (!hasChildren) return;\n if (!dataSource || !columns) return;\n\n const data: SheetType.Cell[][] = [];\n\n const groupMap = groupConfigToGroupMap({\n groups,\n groupOpen,\n });\n\n let currentIndex = 0;\n dataSource.forEach((item: any, row: number) => {\n let groupList = [item];\n if (item.children) {\n groupList = [item, ...item.children];\n }\n groupList.forEach((itemRow: any) => {\n const dataRow: SheetType.Cell[] = [];\n let rowId: string = item.key || item.id || String(currentIndex);\n if (rowKey) {\n if (rowKey instanceof Function) {\n rowId = rowKey(item, row);\n } else {\n rowId = item[rowKey];\n }\n }\n\n dataRow.push({\n id: rowId,\n row: currentIndex,\n col: -1,\n editable: false,\n align: 'center',\n value:\n groupMap.get(currentIndex) && groupMap.get(currentIndex)?.isStart,\n record: {\n open:\n groupMap.get(currentIndex) && groupMap.get(currentIndex)?.isOpen,\n },\n valueViewer: GroupViewer,\n className: 'sheet-control',\n } as any);\n\n columns.forEach((colInfo: SheetTableType.ColumnProps, col: number) => {\n const value = itemRow[colInfo.dataIndex || ''];\n dataRow.push({\n id: rowId,\n value,\n record: itemRow,\n readonly: !(colInfo.readonly instanceof Function)\n ? colInfo.readonly\n : colInfo.readonly(value, itemRow, currentIndex),\n align: colInfo.align,\n fixed: colInfo.fixed,\n editable: colInfo.editable,\n valueViewer: colInfo.render ? colInfo.render : undefined,\n dataEditor: colInfo.editor ? colInfo.editor : undefined,\n row: currentIndex,\n col,\n } as any);\n });\n data.push(dataRow);\n\n currentIndex++;\n });\n });\n\n setData(data);\n }, [dataSource, columns, groups, hasChildren, rowGroupConfig]);\n\n useEffect(() => {\n if (hasChildren) return;\n if (!dataSource || !columns) return;\n\n setData(\n dataSource.map((item: any, row: number) => {\n let rowId: string = String(row);\n if (rowKey) {\n if (rowKey instanceof Function) {\n rowId = rowKey(item, row);\n } else {\n rowId = item[rowKey];\n }\n }\n const rows = [];\n if (rowSelection) {\n rows.push({\n id: rowId,\n row,\n col: -1,\n readonly: true,\n align: 'center' as SheetType.CellAlign,\n value: checkedRow[row] as unknown as string,\n valueViewer: CheckViewer,\n className: 'sheet-control',\n });\n }\n\n columns.forEach((colInfo: SheetTableType.ColumnProps, col: number) => {\n const value = item[colInfo.dataIndex || ''];\n rows.push({\n id: rowId,\n value,\n record: item,\n readonly: !(colInfo.readonly instanceof Function)\n ? colInfo.readonly\n : colInfo.readonly(value, item, row),\n align: colInfo.align,\n fixed: colInfo.fixed,\n editable: colInfo.editable,\n valueViewer: colInfo.render ? colInfo.render : undefined,\n dataEditor: colInfo.editor ? colInfo.editor : undefined,\n row,\n col,\n });\n });\n return rows;\n }),\n );\n }, [dataSource, columns, checkedRow, hasChildren]);\n\n useEffect(() => {\n if (!dataSource || !columns) {\n setData([[]]);\n }\n }, [dataSource, columns]);\n\n const handleChanges = useCallback(\n (changes: SheetType.CellData[]) => {\n onChange &&\n onChange(\n changes.map((item) => ({\n row: item.row,\n id: item.id,\n key: columns[hasControl ? item.col - 1 : item.col]\n .dataIndex as string,\n value: item.value,\n })),\n );\n },\n [columns, onChange, hasControl],\n );\n\n const handleReverse = useCallback(\n (value: unknown) => {\n const { type, extraInfo } = value as SheetType.OperateHistory;\n if (type === 'Custom') {\n const {\n groupConfig,\n extraType,\n data: lastData,\n } = extraInfo as {\n extraType: string;\n groupConfig: SheetType.RowGroupConfig;\n data: SheetType.Cell[][];\n };\n if (extraType === 'group') {\n setGroupConfig(groupConfig);\n setData(lastData);\n }\n }\n },\n [data, groupConfig],\n );\n const handleRowSelect = useCallback(\n (value: unknown) => {\n if (!sheetInstance.current) return;\n // sheetInstance.current?.selectRow(value as number);\n const newChecked = Array(checkedRow.length).fill(false);\n newChecked[value as number] = !newChecked[value as number];\n setCheckedRow(newChecked);\n },\n [sheetInstance, checkedRow],\n );\n const WrappedTableShell = useMemo(() => {\n if (draggable) {\n return DraggableShell({\n columns,\n className: 'baseTable',\n showGroup: hasChildren,\n showSelect: !!rowSelection,\n controlProps: {\n group: {\n open: !rowGroupConfig?.groupOpen?.some((value: boolean) => !value),\n },\n check: {\n checked: false,\n },\n },\n });\n }\n return TableShell({\n columns,\n className: 'baseTable',\n showGroup: hasChildren,\n showSelect: !!rowSelection,\n controlProps: {\n group: {\n open: !rowGroupConfig?.groupOpen?.some((value: boolean) => !value),\n },\n check: {\n checked: false,\n },\n },\n });\n }, [columns, draggable, rowSelection, hasChildren, rowGroupConfig]);\n\n return (\n <Sheet\n {...args}\n sheetInstance={sheetInstance}\n sheetRenderer={WrappedTableShell}\n groupConfig={rowGroupConfig}\n data={data}\n onCellsChanged={handleChanges}\n >\n {!hasChildren && rowSelection\n ? [\n <SheetEvent\n key=\"row-select\"\n name=\"row-select\"\n handler={handleRowSelect}\n />,\n <SheetEvent\n key=\"row-select-title\"\n name=\"row-select-title\"\n handler={handleRowSelect}\n />,\n ]\n : null}\n {hasChildren\n ? [\n <SheetEvent\n key=\"group-open\"\n name=\"group-open\"\n handler={(e: unknown) => {\n const { row } = e as { row: number };\n const index = groups.findIndex(\n (item) => item.groupStart === row,\n );\n if (index >= 0) {\n const groupOpen = [...rowGroupConfig.groupOpen];\n groupOpen[index] = !rowGroupConfig.groupOpen[index];\n\n setGroupConfig({\n ...rowGroupConfig,\n groupOpen: groupOpen,\n });\n const newGrid = [...data];\n newGrid[row] = [...newGrid[row]];\n newGrid[row][0] = {\n ...(newGrid[row][0] as SheetType.Cell),\n record: {\n open: !!groupOpen[index],\n },\n };\n setData(newGrid);\n sheetInstance.current?.pushToHistory({\n type: 'Custom' as SheetType.OperateType,\n changes: [],\n extraInfo: {\n extraType: 'group',\n groupConfig: rowGroupConfig,\n data,\n },\n });\n }\n }}\n />,\n <SheetEvent\n key=\"group-open-title\"\n name=\"group-open-title\"\n handler={(value) => {\n setGroupConfig({\n ...rowGroupConfig,\n groupOpen: Array(rowGroupConfig.groupOpen.length).fill(value),\n });\n\n sheetInstance.current?.pushToHistory({\n type: 'Custom' as SheetType.OperateType,\n changes: [],\n extraInfo: {\n extraType: 'group',\n groupConfig: rowGroupConfig,\n data,\n },\n });\n }}\n />,\n ]\n : null}\n\n <SheetEvent key=\"_reverse\" name=\"reverse\" handler={handleReverse} />\n {Object.keys(eventHandler || {}).map((key) => (\n <SheetEvent key={key} name={key} handler={eventHandler?.[key]} />\n ))}\n {handleAdd ? (\n <Button\n type=\"dashed\"\n style={{ width: '100%', height: 32 }}\n onClick={handleAdd}\n >\n + 添加\n </Button>\n ) : null}\n </Sheet>\n );\n};\n\nexport default Table;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","dataSourceToRowConfig","useGroupConfig","dataSource","tableGroupConfig","hasChildren","_useState","_useState2","_slicedToArray","groupConfig","setGroupConfig","groupConfigRef","rowConfig","defaultOpen","current","groups","forEach","_ref","index","_groupConfigRef$curre","groupName","rowIndex","findIndex","item","groupOpen"],"sources":["../../../src/core/table/useGroupConfig.ts"],"sourcesContent":["import type { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useRef, useState } from 'react';\nimport { dataSourceToRowConfig } from './util';\n\nexport const useGroupConfig = (\n dataSource: Record<string, unknown>[],\n tableGroupConfig?: SheetTableType.TableGroupConfig,\n hasChildren?: boolean,\n) => {\n const [groupConfig, setGroupConfig] = useState<SheetType.RowGroupConfig>();\n const groupConfigRef = useRef<SheetType.RowGroupConfig>();\n useEffect(() => {\n if (!hasChildren) return;\n\n const rowConfig = dataSourceToRowConfig(\n dataSource,\n tableGroupConfig?.defaultOpen,\n );\n if (groupConfigRef.current) {\n groupConfigRef.current.groups.forEach(({ groupName }, index) => {\n const rowIndex = rowConfig.groups.findIndex(\n (item) => item.groupName === groupName,\n );\n rowConfig.groupOpen[rowIndex] =\n groupConfigRef.current?.groupOpen[index] ||\n rowConfig.groupOpen[rowIndex];\n });\n }\n\n setGroupConfig(rowConfig);\n groupConfigRef.current = rowConfig;\n }, [dataSource, hasChildren]);\n\n return [groupConfig, setGroupConfig] as [\n SheetType.RowGroupConfig,\n (value: SheetType.RowGroupConfig) => void,\n ];\n};\n"],"mappings":";;;;;;AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,qBAAqB;AAE9B,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CACzBC,UAAqC,EACrCC,gBAAkD,EAClDC,WAAqB,EAClB;EACH,IAAAC,SAAA,GAAsCN,QAAQ,CAA2B,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnEG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;EAClC,IAAMI,cAAc,GAAGZ,MAAM,CAA2B,CAAC;EACzDD,SAAS,CAAC,YAAM;IACd,IAAI,CAACO,WAAW,EAAE;IAElB,IAAMO,SAAS,GAAGX,qBAAqB,CACrCE,UAAU,EACVC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAES,WACpB,CAAC;IACD,IAAIF,cAAc,CAACG,OAAO,EAAE;MAC1BH,cAAc,CAACG,OAAO,CAACC,MAAM,CAACC,OAAO,CAAC,UAAAC,IAAA,EAAgBC,KAAK,EAAK;QAAA,IAAAC,qBAAA;QAAA,IAAvBC,SAAS,GAAAH,IAAA,CAATG,SAAS;QAChD,IAAMC,QAAQ,GAAGT,SAAS,CAACG,MAAM,CAACO,SAAS,CACzC,UAACC,IAAI;UAAA,OAAKA,IAAI,CAACH,SAAS,KAAKA,SAAS;QAAA,CACxC,CAAC;QACDR,SAAS,CAACY,SAAS,CAACH,QAAQ,CAAC,GAC3B,EAAAF,qBAAA,GAAAR,cAAc,CAACG,OAAO,cAAAK,qBAAA,uBAAtBA,qBAAA,CAAwBK,SAAS,CAACN,KAAK,CAAC,KACxCN,SAAS,CAACY,SAAS,CAACH,QAAQ,CAAC;MACjC,CAAC,CAAC;IACJ;IAEAX,cAAc,CAACE,SAAS,CAAC;IACzBD,cAAc,CAACG,OAAO,GAAGF,SAAS;EACpC,CAAC,EAAE,CAACT,UAAU,EAAEE,WAAW,CAAC,CAAC;EAE7B,OAAO,CAACI,WAAW,EAAEC,cAAc,CAAC;AAItC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","useRowSelection","dataSource","rowSelection","hasChildren","_dataSource$length","_useState","Array","length","fill","_useState2","_slicedToArray","checkedRow","setCheckedRow","checkedRowRef","currentEmpty","map","checked","index","current"],"sources":["../../../src/core/table/useRowSelection.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const useRowSelection = (\n dataSource: Record<string, unknown>[],\n rowSelection?: SheetTableType.TableRowSelection,\n hasChildren?: boolean,\n) => {\n const [checkedRow, setCheckedRow] = useState<boolean[]>(\n Array(dataSource?.length ?? 0).fill(false),\n );\n const checkedRowRef = useRef<boolean[]>(checkedRow);\n useEffect(() => {\n if (hasChildren || !rowSelection) return;\n const currentEmpty = Array(dataSource.length)\n .fill(false)\n .map((checked, index) => (checkedRowRef.current[index] ? true : false));\n setCheckedRow(currentEmpty);\n checkedRowRef.current = currentEmpty;\n }, [dataSource.length, hasChildren, rowSelection]);\n return [checkedRow, setCheckedRow] as [boolean[], (value: boolean[]) => void];\n};\n"],"mappings":";;;;;;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,UAAqC,EACrCC,YAA+C,EAC/CC,WAAqB,EAClB;EAAA,IAAAC,kBAAA;EACH,IAAAC,SAAA,GAAoCN,QAAQ,CAC1CO,KAAK,EAAAF,kBAAA,GAACH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,MAAM,cAAAH,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC,CAACI,IAAI,CAAC,KAAK,CAC3C,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAL,SAAA;IAFMM,UAAU,GAAAF,UAAA;IAAEG,aAAa,GAAAH,UAAA;EAGhC,IAAMI,aAAa,GAAGf,MAAM,CAAYa,UAAU,CAAC;EACnDd,SAAS,CAAC,YAAM;IACd,IAAIM,WAAW,IAAI,CAACD,YAAY,EAAE;IAClC,IAAMY,YAAY,GAAGR,KAAK,CAACL,UAAU,CAACM,MAAM,CAAC,CAC1CC,IAAI,CAAC,KAAK,CAAC,CACXO,GAAG,CAAC,UAACC,OAAO,EAAEC,KAAK;MAAA,OAAMJ,aAAa,CAACK,OAAO,CAACD,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK;IAAA,CAAC,CAAC;IACzEL,aAAa,CAACE,YAAY,CAAC;IAC3BD,aAAa,CAACK,OAAO,GAAGJ,YAAY;EACtC,CAAC,EAAE,CAACb,UAAU,CAACM,MAAM,EAAEJ,WAAW,EAAED,YAAY,CAAC,CAAC;EAClD,OAAO,CAACS,UAAU,EAAEC,aAAa,CAAC;AACpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["dataSourceToRowConfig","dataSource","defaultOpen","arguments","length","undefined","groups","groupOpen","currentIndex","forEach","item","index","_ref","children","push","groupStart","groupEnd","groupName","concat","key","id"],"sources":["../../../src/core/table/util.ts"],"sourcesContent":["export const dataSourceToRowConfig = (\n dataSource: Record<string, unknown>[],\n defaultOpen = false,\n) => {\n const groups: {\n groupStart: number;\n groupEnd: number;\n groupName: string;\n }[] = [];\n const groupOpen: boolean[] = [];\n if (!dataSource?.length)\n return {\n groups,\n groupOpen,\n };\n let currentIndex = 0;\n dataSource.forEach((item, index) => {\n const { children } = item as { children: Array<any> };\n\n if (children?.length > 0) {\n groups.push({\n groupStart: currentIndex,\n groupEnd: currentIndex + children.length + 1,\n // 默认 key 或者 id 是行数据的唯一标识\n groupName: `${item.key || item.id || index}group`,\n });\n currentIndex += children.length;\n groupOpen.push(defaultOpen);\n }\n currentIndex++;\n });\n\n return {\n groups,\n groupOpen,\n };\n};\n"],"mappings":"AAAA,OAAO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAChCC,UAAqC,EAElC;EAAA,IADHC,WAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEnB,IAAMG,MAIH,GAAG,EAAE;EACR,IAAMC,SAAoB,GAAG,EAAE;EAC/B,IAAI,EAACN,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEG,MAAM,GACrB,OAAO;IACLE,MAAM,EAANA,MAAM;IACNC,SAAS,EAATA;EACF,CAAC;EACH,IAAIC,YAAY,GAAG,CAAC;EACpBP,UAAU,CAACQ,OAAO,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;IAClC,IAAAC,IAAA,GAAqBF,IAAI;MAAjBG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAEhB,IAAI,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAET,MAAM,IAAG,CAAC,EAAE;MACxBE,MAAM,CAACQ,IAAI,CAAC;QACVC,UAAU,EAAEP,YAAY;QACxBQ,QAAQ,EAAER,YAAY,GAAGK,QAAQ,CAACT,MAAM,GAAG,CAAC;QAC5C;QACAa,SAAS,KAAAC,MAAA,CAAKR,IAAI,CAACS,GAAG,IAAIT,IAAI,CAACU,EAAE,IAAIT,KAAK;MAC5C,CAAC,CAAC;MACFH,YAAY,IAAIK,QAAQ,CAACT,MAAM;MAC/BG,SAAS,CAACO,IAAI,CAACZ,WAAW,CAAC;IAC7B;IACAM,YAAY,EAAE;EAChB,CAAC,CAAC;EAEF,OAAO;IACLF,MAAM,EAANA,MAAM;IACNC,SAAS,EAATA;EACF,CAAC;AACH,CAAC"}
|
package/dist/core/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cloneDeep","isNil","range","findParentTd","el","tagName","parentElement","extractDataRowAndCol","row","Number","getAttribute","col","getRowColConfig","start","end","_start$row","_end$row","_start$row2","_end$row2","_start$col","_end$col","_start$col2","_end$col2","startRow","Math","min","endRow","max","startCol","endCol","flatRowColIndex","_getRowColConfig","some","a","cellList","i","j","push","flatRowCol","rowColIndex","map","_ref","concat","isInputKey","keyCode","numbersPressed","lettersPressed","latin1Supplement","numPadKeysPressed","equationKeysPressed","indexOf","classNames","_len","arguments","length","args","Array","_key","filter","Boolean","join","stringToClipboardData","str","navigator","clipboard","writeText","then","console","log","error","defaultParsePaste","split","clipboardDataToString","Promise","resolve","readText","res","formatDataToCell","_ref2","_start$row3","_end$row3","editing","data","pasteData","groupConfig","_ref2$freePaste","freePaste","cells","rowCount","isMultiCells","isSinglePaste","isExRow","groupMap","groupConfigToGroupMap","actualRowCount","reduce","left","index","_groupMap$get","_groupMap$get2","get","isStart","isOpen","changes","forEach","_ref3","_groupMap$get3","_groupMap$get4","readonly","value","_cells$","extChanges","hasStartAndNotOpen","rowData","cell","_data","_data2","_groupMap$get5","_groupMap$get6","undefined","baseCol","pasteCount","_ref4","_groupMap$get7","_groupMap$get8","defaultValueRenderer","renderValue","optionsTransferToValue","options","val","values","_options$i","label","children","_toConsumableArray","rowGroupConfig","_rowGroupConfig$group","Map","groups","group","groupStart","groupEnd","set","_objectSpread","groupOpen","changeGroupConfig","changeInfo","size","newGroups","add","remove","_newGroups$i","_newGroups$_i","rowToActualRow","item","getRowHeight","container","_container$getElement","_container$getElement2","h","getElementsByTagName","parentNode","clientHeight","getNextVisibleRow","maxRow","_groupMap$get9","_groupMap$get10","calcMenuPosition","_ref5","_menuElement$getBound","_tableElement$getBoun","tableElement","menuElement","x","y","top","_ref6","getBoundingClientRect","menuRight","right","menuBottom","bottom","_ref7","tableBottom","tableRight","_document$body","document","body","clientWidth","edgeRight","edgeBottom"],"sources":["../../src/core/util.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { cloneDeep, isNil, range } from 'lodash';\n\nexport function findParentTd(el: HTMLElement): HTMLElement | null {\n if (!el) return null;\n if (el.tagName === 'TD') return el;\n return findParentTd(el.parentElement as HTMLElement);\n}\nexport function extractDataRowAndCol(el: HTMLElement) {\n const row = Number(el.getAttribute('data-row'));\n const col = Number(el.getAttribute('data-col'));\n return {\n row,\n col,\n };\n}\nexport function getRowColConfig(\n start?: SheetType.CellPosition,\n end?: SheetType.CellPosition,\n) {\n const startRow = Math.min(start?.row ?? -1, end?.row ?? -1);\n const endRow = Math.max(start?.row ?? -1, end?.row ?? -1);\n const startCol = Math.min(start?.col ?? -1, end?.col ?? -1);\n const endCol = Math.max(start?.col ?? -1, end?.col ?? -1);\n return {\n startRow,\n endRow,\n startCol,\n endCol,\n };\n}\n\nexport function flatRowColIndex(\n start?: SheetType.CellPosition,\n end?: SheetType.CellPosition,\n) {\n const { startRow, endRow, startCol, endCol } = getRowColConfig(start, end);\n if ([startRow, endRow, startCol, endCol].some((a) => a === -1)) {\n return [];\n }\n const cellList: SheetType.CellPosition[] = [];\n\n for (let i = startRow; i <= endRow; i++) {\n for (let j = startCol; j <= endCol; j++) {\n cellList.push({ row: i, col: j });\n }\n }\n return cellList;\n}\n\nexport function flatRowCol(\n start?: SheetType.CellPosition,\n end?: SheetType.CellPosition,\n) {\n const rowColIndex = flatRowColIndex(start, end);\n return rowColIndex.map(({ row, col }) => `${row}-${col}`);\n}\n\nexport function isInputKey(keyCode: number) {\n const numbersPressed = keyCode >= 48 && keyCode <= 57;\n const lettersPressed = keyCode >= 65 && keyCode <= 90;\n const latin1Supplement = keyCode >= 160 && keyCode <= 255;\n const numPadKeysPressed = keyCode >= 96 && keyCode <= 105;\n const equationKeysPressed =\n [\n 187 /* equal */, 189 /* substract */, 190 /* period */, 107 /* add */,\n 109 /* decimal point */, 110,\n ].indexOf(keyCode) > -1;\n\n return (\n numPadKeysPressed ||\n numbersPressed ||\n lettersPressed ||\n latin1Supplement ||\n equationKeysPressed\n );\n}\n\nexport function classNames(...args: (string | null | undefined)[]) {\n return args.filter(Boolean).join(' ');\n}\n\nexport function stringToClipboardData(str: string) {\n // navigator.clipboard.writeText(str);\n navigator.clipboard.writeText(str).then(\n () => {\n console.log('复制成功');\n },\n () => {\n console.error('复制失败');\n },\n );\n}\n\nexport const defaultParsePaste = (str: string) =>\n str.split(/\\r\\n|\\n|\\r/).map((row) => row.split('\\t'));\nexport function clipboardDataToString() {\n return new Promise<string[][]>((resolve) => {\n navigator.clipboard.readText().then((res) => {\n resolve(defaultParsePaste(res) as string[][]);\n });\n });\n}\n\nexport function formatDataToCell({\n start,\n editing,\n end,\n data,\n pasteData,\n groupConfig,\n freePaste = false,\n}: Partial<SheetType.UpdateStateType> & {\n pasteData: string[][];\n freePaste: boolean;\n}) {\n if (editing || !data) return;\n const cells = flatRowColIndex(start, end);\n if (!cells.length) return;\n const rowCount = cells[cells.length - 1].row - cells[0].row + 1;\n if (!cells.length) return;\n const isMultiCells = cells.length > 1;\n const isSinglePaste = pasteData.length === 1 && pasteData[0].length === 1;\n\n // todo 超出行的处理\n const isExRow = (cells[cells.length - 1].row as number) > (data?.length || 0);\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n const actualRowCount = range(start?.row ?? 0, (end?.row ?? 0) + 1).reduce(\n (left, index) => {\n if (\n groupMap.get(index) &&\n !groupMap.get(index)?.isStart &&\n !groupMap.get(index)?.isOpen\n ) {\n return left;\n }\n return left + 1;\n },\n 0,\n );\n\n const changes: SheetType.CellData[] = [];\n if (isMultiCells && isSinglePaste) {\n // 选中多个单元格,粘贴单个数据\n cells.forEach(({ row, col }) => {\n if (data[row][col].readonly) return;\n if (\n groupMap.get(row) &&\n !groupMap.get(row)?.isStart &&\n !groupMap.get(row)?.isOpen\n ) {\n return;\n }\n\n changes.push({\n row,\n col,\n value: pasteData[0][0],\n } as any);\n });\n return { changes };\n }\n\n if (!isMultiCells) {\n // 选中单个单元格\n const { row, col } = cells[0];\n const extChanges: SheetType.CellData[] = [];\n let hasStartAndNotOpen = false;\n pasteData.forEach((rowData, i) => {\n rowData.forEach((cell, j) => {\n if (row + i >= data.length) {\n extChanges.push({\n row: row + i,\n col: col + j,\n value: pasteData[i][j],\n } as any);\n } else {\n if (data?.[row + i]?.[col + j]?.readonly) return;\n\n if (\n groupMap.get(row + i) &&\n !groupMap.get(row + i)?.isStart &&\n !groupMap.get(row + i)?.isOpen\n ) {\n hasStartAndNotOpen = true;\n }\n changes.push({\n row: row + i,\n col: col + j,\n value: pasteData[i][j],\n } as any);\n }\n });\n });\n if (hasStartAndNotOpen) {\n console.error('有折叠单元格,不可粘贴');\n return { changes: [], extChanges: [] };\n }\n\n return {\n changes,\n extChanges: isExRow && freePaste ? extChanges : undefined,\n };\n } else {\n // 选中多个单元格,粘贴多个数据\n if (\n actualRowCount !== pasteData.length ||\n (cells.length / rowCount) * actualRowCount !==\n pasteData.length * pasteData[0].length\n ) {\n // 单元格数量不对\n return;\n }\n\n const { col: baseCol } = cells[0];\n let pasteCount = 0;\n cells.forEach(({ row, col }) => {\n if (data[row][col].readonly) return;\n if (\n groupMap.get(row) &&\n !groupMap.get(row)?.isStart &&\n !groupMap.get(row)?.isOpen\n ) {\n return;\n }\n changes.push({\n row: row,\n col: col,\n value: pasteData[pasteCount++][col - baseCol],\n } as any);\n });\n return { changes };\n }\n}\n\nexport const defaultValueRenderer = (cell: SheetType.Cell) => cell.value;\n\nexport function renderValue(cell: SheetType.Cell) {\n const value = defaultValueRenderer(cell);\n return value === null || typeof value === 'undefined' ? '' : value;\n}\n\nexport const optionsTransferToValue = (\n options: SheetType.OptionsType[],\n val: string,\n) => {\n let values: string[] = [];\n\n for (let i = 0; i < options.length; i++) {\n const { label, value, children } = options[i];\n if (children) {\n values = optionsTransferToValue(children, val);\n if (values.length) {\n values = [value, ...values];\n break;\n }\n } else if (label === val) {\n values.push(value);\n break;\n } else {\n values = [];\n }\n }\n return values;\n};\n\nexport const groupConfigToGroupMap = (\n rowGroupConfig?: SheetType.RowGroupConfig,\n) => {\n const groupMap = new Map<\n number,\n SheetType.RowGroup & { isStart: boolean; isOpen: boolean }\n >();\n if (!rowGroupConfig || !rowGroupConfig.groups?.length) return groupMap;\n const { groups } = rowGroupConfig;\n groups?.forEach((group, index) => {\n const { groupStart, groupEnd } = group;\n for (let i = groupStart; i <= groupEnd; i++) {\n groupMap.set(i, {\n ...group,\n isStart: i === groupStart,\n isOpen: rowGroupConfig.groupOpen[index],\n });\n }\n });\n return groupMap;\n};\n\nexport const changeGroupConfig = (\n rowGroupConfig: SheetType.RowGroupConfig,\n changeInfo: { add?: number; remove?: number },\n) => {\n const groupMap = groupConfigToGroupMap(rowGroupConfig);\n if (!groupMap.size) return rowGroupConfig;\n const newGroups = cloneDeep(rowGroupConfig.groups);\n // 顺序是先增后减\n const { add, remove } = changeInfo;\n if (!isNil(add)) {\n for (let i = 0; i < newGroups.length; i++) {\n const { groupStart, groupEnd } = newGroups[i];\n if (groupStart >= add) {\n newGroups[i].groupStart++;\n newGroups[i].groupEnd++;\n } else if (groupStart < add && groupEnd >= add) {\n newGroups[i].groupEnd++;\n }\n }\n }\n if (!isNil(remove)) {\n for (let i = 0; i < newGroups.length; i++) {\n const { groupStart, groupEnd } = newGroups[i];\n if (groupStart > remove) {\n newGroups[i].groupStart--;\n newGroups[i].groupEnd--;\n } else if (groupStart <= remove && groupEnd > remove) {\n newGroups[i].groupEnd--;\n }\n }\n }\n return {\n ...rowGroupConfig,\n groups: newGroups,\n };\n};\n\nexport const rowToActualRow = (\n row: number,\n groupConfig?: SheetType.RowGroupConfig,\n) => {\n const groupMap = groupConfigToGroupMap(groupConfig);\n if (!groupMap.size) return row;\n groupMap.forEach((item, index) => {\n if (index <= row && !item?.isOpen && !item?.isStart) {\n row--;\n }\n });\n return row;\n};\n\nexport const getRowHeight = (container: HTMLSpanElement) => {\n const h =\n (container.getElementsByTagName('td')[0]?.parentNode as HTMLTableRowElement)\n ?.clientHeight || 30;\n\n return h;\n};\n\nexport const getNextVisibleRow = (\n row: number,\n maxRow: number,\n groupMap?: Map<\n number,\n SheetType.RowGroup & { isStart: boolean; isOpen: boolean }\n >,\n): number | null => {\n if (!groupMap?.size) {\n return row;\n }\n if (row > maxRow) {\n return null;\n }\n if (\n groupMap.get(row) &&\n !groupMap.get(row)?.isOpen &&\n !groupMap.get(row)?.isStart\n ) {\n return getNextVisibleRow(row + 1, maxRow, groupMap);\n }\n return row;\n};\n\nexport const calcMenuPosition = ({\n tableElement,\n menuElement,\n x,\n y,\n}: {\n tableElement: SheetType.refAssertion | null;\n menuElement?: Element | null;\n x: number;\n y: number;\n}) => {\n let top = y;\n let left = x;\n const { right: menuRight, bottom: menuBottom } =\n menuElement?.getBoundingClientRect() ?? ({} as Record<string, number>);\n // 这里不考虑 左边和上边 因为 屏幕连一个 menu都发不下的情况应该特殊处理\n const { bottom: tableBottom, right: tableRight } =\n tableElement?.getBoundingClientRect() ?? ({} as Record<string, number>);\n const { clientHeight, clientWidth } = document.body;\n const edgeRight = Math.min(tableRight, clientWidth);\n const edgeBottom = Math.min(tableBottom, clientHeight);\n if (menuRight > edgeRight) {\n left = left - (menuRight - edgeRight);\n }\n if (menuBottom > edgeBottom) {\n top = top - (menuBottom - edgeBottom);\n }\n return { top, left };\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useSheetEvent","Button","Divider","useCallback","jsx","_jsx","jsxs","_jsxs","BtnViewer","props","value","row","record","eventBus","handleClick","event","emit","children","type","onClick"],"sources":["../../../../src/core/viewer/btnViewer/index.tsx"],"sourcesContent":["import { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { Button, Divider } from 'antd';\nimport { useCallback } from 'react';\n\nexport const BtnViewer: SheetType.CellViewer = (props) => {\n const { value, row, record } = props;\n const eventBus = useSheetEvent();\n const handleClick = useCallback(\n (event: { row?: number; type: 'copy' | 'delete' }) => {\n eventBus && eventBus.emit('btn-click', event);\n },\n [eventBus, row, record, value],\n );\n return (\n <div>\n <Button\n type=\"link\"\n key=\"copy\"\n onClick={() => handleClick({ row, type: 'copy' })}\n >\n 复制\n </Button>\n <Divider type=\"vertical\" />\n <Button\n type=\"link\"\n key=\"delete\"\n onClick={() => handleClick({ row, type: 'delete' })}\n >\n 删除\n </Button>\n </div>\n );\n};\n"],"mappings":"AAAA,SAASA,aAAa;AAEtB,SAASC,MAAM,EAAEC,OAAO,QAAQ,MAAM;AACtC,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEpC,OAAO,IAAMC,SAA+B,GAAG,SAAlCA,SAA+BA,CAAIC,KAAK,EAAK;EACxD,IAAQC,KAAK,GAAkBD,KAAK,CAA5BC,KAAK;IAAEC,GAAG,GAAaF,KAAK,CAArBE,GAAG;IAAEC,MAAM,GAAKH,KAAK,CAAhBG,MAAM;EAC1B,IAAMC,QAAQ,GAAGb,aAAa,CAAC,CAAC;EAChC,IAAMc,WAAW,GAAGX,WAAW,CAC7B,UAACY,KAAgD,EAAK;IACpDF,QAAQ,IAAIA,QAAQ,CAACG,IAAI,CAAC,WAAW,EAAED,KAAK,CAAC;EAC/C,CAAC,EACD,CAACF,QAAQ,EAAEF,GAAG,EAAEC,MAAM,EAAEF,KAAK,CAC/B,CAAC;EACD,oBACEH,KAAA;IAAAU,QAAA,gBACEZ,IAAA,CAACJ,MAAM;MACLiB,IAAI,EAAC,MAAM;MAEXC,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAML,WAAW,CAAC;UAAEH,GAAG,EAAHA,GAAG;UAAEO,IAAI,EAAE;QAAO,CAAC,CAAC;MAAA,CAAC;MAAAD,QAAA,EACnD;IAED,GAJM,MAIE,CAAC,eACTZ,IAAA,CAACH,OAAO;MAACgB,IAAI,EAAC;IAAU,CAAE,CAAC,eAC3Bb,IAAA,CAACJ,MAAM;MACLiB,IAAI,EAAC,MAAM;MAEXC,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAML,WAAW,CAAC;UAAEH,GAAG,EAAHA,GAAG;UAAEO,IAAI,EAAE;QAAS,CAAC,CAAC;MAAA,CAAC;MAAAD,QAAA,EACrD;IAED,GAJM,QAIE,CAAC;EAAA,CACN,CAAC;AAEV,CAAC"}
|