@zhenliang/sheet 0.0.6 → 0.0.7
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/dist/core/config.js +2 -1
- package/dist/core/config.js.map +1 -0
- package/dist/core/editor/cascaderEditor/index.js +2 -1
- package/dist/core/editor/cascaderEditor/index.js.map +1 -0
- package/dist/core/editor/dateEditor/index.js +2 -1
- package/dist/core/editor/dateEditor/index.js.map +1 -0
- package/dist/core/editor/index.js +2 -1
- package/dist/core/editor/index.js.map +1 -0
- package/dist/core/editor/numberEditor/index.js +2 -1
- package/dist/core/editor/numberEditor/index.js.map +1 -0
- package/dist/core/editor/numberEditor/index.less +10 -0
- package/dist/core/editor/selectEditor/index.js +2 -1
- package/dist/core/editor/selectEditor/index.js.map +1 -0
- package/dist/core/reducers/index.js +2 -1
- package/dist/core/reducers/index.js.map +1 -0
- package/dist/core/reducers/keyboardReducer.js +6 -3
- package/dist/core/reducers/keyboardReducer.js.map +1 -0
- package/dist/core/reducers/mouseReducer.js +24 -10
- package/dist/core/reducers/mouseReducer.js.map +1 -0
- package/dist/core/reducers/sideEffectReducer.js +7 -7
- package/dist/core/reducers/sideEffectReducer.js.map +1 -0
- package/dist/core/reducers/stateReducer.js +2 -1
- package/dist/core/reducers/stateReducer.js.map +1 -0
- package/dist/core/sheet/Cell.d.ts +1 -1
- package/dist/core/sheet/Cell.js +2 -1
- package/dist/core/sheet/Cell.js.map +1 -0
- package/dist/core/sheet/DataEditor.js +2 -1
- package/dist/core/sheet/DataEditor.js.map +1 -0
- package/dist/core/sheet/DefaultCell.d.ts +1 -1
- package/dist/core/sheet/DefaultCell.js +2 -1
- package/dist/core/sheet/DefaultCell.js.map +1 -0
- package/dist/core/sheet/DefaultRow.js +2 -1
- package/dist/core/sheet/DefaultRow.js.map +1 -0
- package/dist/core/sheet/DefaultRowMapper.js +2 -1
- package/dist/core/sheet/DefaultRowMapper.js.map +1 -0
- package/dist/core/sheet/DefaultShell.js +2 -1
- package/dist/core/sheet/DefaultShell.js.map +1 -0
- package/dist/core/sheet/Event.js +2 -1
- package/dist/core/sheet/Event.js.map +1 -0
- package/dist/core/sheet/ValueViewer.js +2 -1
- package/dist/core/sheet/ValueViewer.js.map +1 -0
- package/dist/core/sheet/index.js +4 -2
- package/dist/core/sheet/index.js.map +1 -0
- package/dist/core/sheet/useCellEvent.js +2 -1
- package/dist/core/sheet/useCellEvent.js.map +1 -0
- package/dist/core/sheet/useContextMenu.js +2 -1
- package/dist/core/sheet/useContextMenu.js.map +1 -0
- package/dist/core/sheet/useKeyBoardEvent.js +14 -4
- package/dist/core/sheet/useKeyBoardEvent.js.map +1 -0
- package/dist/core/sheet/useMouseEvent.js +2 -1
- package/dist/core/sheet/useMouseEvent.js.map +1 -0
- package/dist/core/sheet/useVirtualList.js +2 -1
- package/dist/core/sheet/useVirtualList.js.map +1 -0
- package/dist/core/shell/draggableShell/index.d.ts +0 -1
- package/dist/core/shell/draggableShell/index.js +2 -1
- package/dist/core/shell/draggableShell/index.js.map +1 -0
- package/dist/core/shell/tableShell.d.ts +0 -1
- package/dist/core/shell/tableShell.js +2 -1
- package/dist/core/shell/tableShell.js.map +1 -0
- package/dist/core/table/index.js +2 -1
- package/dist/core/table/index.js.map +1 -0
- package/dist/core/table/useGroupConfig.js +2 -1
- package/dist/core/table/useGroupConfig.js.map +1 -0
- package/dist/core/table/useRowSelection.js +2 -1
- package/dist/core/table/useRowSelection.js.map +1 -0
- package/dist/core/table/util.js +2 -1
- package/dist/core/table/util.js.map +1 -0
- package/dist/core/util.js +2 -1
- package/dist/core/util.js.map +1 -0
- package/dist/core/viewer/btnViewer/index.js +2 -1
- package/dist/core/viewer/btnViewer/index.js.map +1 -0
- package/dist/core/viewer/checkViewer/index.js +2 -1
- package/dist/core/viewer/checkViewer/index.js.map +1 -0
- package/dist/core/viewer/editViewer/index.js +2 -1
- package/dist/core/viewer/editViewer/index.js.map +1 -0
- package/dist/core/viewer/groupViewer/index.js +2 -1
- package/dist/core/viewer/groupViewer/index.js.map +1 -0
- package/dist/core/viewer/index.js +2 -1
- package/dist/core/viewer/index.js.map +1 -0
- package/dist/core/viewer/switchViewer/index.js +2 -1
- package/dist/core/viewer/switchViewer/index.js.map +1 -0
- package/dist/example/antComponent.js +2 -1
- package/dist/example/antComponent.js.map +1 -0
- package/dist/example/basic.js +2 -1
- package/dist/example/basic.js.map +1 -0
- package/dist/example/ellipsis.js +2 -1
- package/dist/example/ellipsis.js.map +1 -0
- package/dist/example/fixed.js +2 -1
- package/dist/example/fixed.js.map +1 -0
- package/dist/example/group.js +2 -1
- package/dist/example/group.js.map +1 -0
- package/dist/example/selection.js +2 -1
- package/dist/example/selection.js.map +1 -0
- package/dist/example/sheet.js +2 -1
- package/dist/example/sheet.js.map +1 -0
- package/dist/example/valuationAnalyze.d.ts +1 -1
- package/dist/example/valuationAnalyze.js +2 -1
- package/dist/example/valuationAnalyze.js.map +1 -0
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useEventBus.js +2 -1
- package/dist/hooks/useEventBus.js.map +1 -0
- package/dist/hooks/useKeyboard.js +3 -2
- package/dist/hooks/useKeyboard.js.map +1 -0
- package/dist/hooks/useMiddlewareReducer.js +2 -1
- package/dist/hooks/useMiddlewareReducer.js.map +1 -0
- package/dist/hooks/useMouse.js +2 -1
- package/dist/hooks/useMouse.js.map +1 -0
- package/dist/hooks/useSetState.js +2 -1
- package/dist/hooks/useSetState.js.map +1 -0
- package/dist/hooks/useSheetEvent.js +2 -1
- package/dist/hooks/useSheetEvent.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/standardUtils/index.js +2 -1
- package/dist/standardUtils/index.js.map +1 -0
- package/dist/type/index.js +2 -1
- package/dist/type/index.js.map +1 -0
- package/dist/type/sheet.js +2 -1
- package/dist/type/sheet.js.map +1 -0
- package/dist/type/sheetTable.js +2 -1
- package/dist/type/sheetTable.js.map +1 -0
- package/package.json +3 -3
- package/README_PROJECT.md +0 -40
package/dist/core/sheet/index.js
CHANGED
|
@@ -5,6 +5,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5
5
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
7
|
import { useEffect, useMemo, useRef } from 'react';
|
|
8
|
+
import ReduxLogger from 'redux-logger';
|
|
8
9
|
import ReduxThunk from 'redux-thunk';
|
|
9
10
|
import DefaultRow from "./DefaultRow";
|
|
10
11
|
import DefaultShell from "./DefaultShell";
|
|
@@ -55,7 +56,7 @@ var Sheet = function Sheet(props) {
|
|
|
55
56
|
lastFocus: [],
|
|
56
57
|
groupConfig: groupConfig,
|
|
57
58
|
eventBus: eventBus
|
|
58
|
-
}, [ReduxThunk]),
|
|
59
|
+
}, [ReduxThunk, ReduxLogger]),
|
|
59
60
|
_useMiddlewareReducer2 = _slicedToArray(_useMiddlewareReducer, 2),
|
|
60
61
|
state = _useMiddlewareReducer2[0],
|
|
61
62
|
dispatch = _useMiddlewareReducer2[1];
|
|
@@ -198,4 +199,5 @@ var Sheet = function Sheet(props) {
|
|
|
198
199
|
})
|
|
199
200
|
});
|
|
200
201
|
};
|
|
201
|
-
export default Sheet;
|
|
202
|
+
export default Sheet;
|
|
203
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","ReduxLogger","ReduxThunk","DefaultRow","DefaultShell","isNil","SheetEventContext","useEventBus","useMiddlewareReducer","sheetReducer","classNames","getRowHeight","rowToActualRow","DefaultRowMapper","useCellEvent","useContextMenu","useKeyBoardEvent","useMouseEvent","useVirtualList","jsx","_jsx","jsxs","_jsxs","Sheet","props","_state$data$length","_state$data2","_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","console","log","rowHeight","scrollTo","pushToHistory","config","type","payload","selectRow","popHistory","cellChangeHandler","menu","setTimeout","_sheetWrapperRef$curr2","focus","preventScroll","_useVirtualList","virtualStart","virtualEnd","paddingTop","paddingBottom","rowElements","_state$data","map","rowData","cells","memoHeight","Math","min","length","Provider","value","ref","tabIndex","style","maxHeight","y","width","x","height","display","slice","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 console.log(actual);\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?.map((rowData: SheetType.Cell[], row: number) => {\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]);\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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","sideEffectReducer","useCellEvent","dispatch","listenerVar","_ref","start","end","lastSelected","editing","lastEditing","init","destroy","emitSelectChange","emitEditChange"],"sources":["../../../src/core/sheet/useCellEvent.ts"],"sourcesContent":["import { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect } from 'react';\nimport { sideEffectReducer } from '../reducers';\n\nexport const useCellEvent = (\n dispatch: Dispatch,\n listenerVar?: Partial<SheetType.UpdateStateType>,\n) => {\n const { start, end, lastSelected, editing, lastEditing } = listenerVar || {};\n\n useEffect(() => {\n dispatch(sideEffectReducer.init);\n return () => {\n dispatch(sideEffectReducer.destroy);\n };\n }, []);\n useEffect(() => {\n dispatch(sideEffectReducer.emitSelectChange);\n }, [start, end, lastSelected]);\n\n useEffect(() => {\n dispatch(sideEffectReducer.emitEditChange);\n }, [editing, lastEditing]);\n};\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,iBAAiB;AAE1B,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CACvBC,QAAkB,EAClBC,WAAgD,EAC7C;EACH,IAAAC,IAAA,GAA2DD,WAAW,IAAI,CAAC,CAAC;IAApEE,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAEC,WAAW,GAAAL,IAAA,CAAXK,WAAW;EAEtDV,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACU,IAAI,CAAC;IAChC,OAAO,YAAM;MACXR,QAAQ,CAACF,iBAAiB,CAACW,OAAO,CAAC;IACrC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACNZ,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACY,gBAAgB,CAAC;EAC9C,CAAC,EAAE,CAACP,KAAK,EAAEC,GAAG,EAAEC,YAAY,CAAC,CAAC;EAE9BR,SAAS,CAAC,YAAM;IACdG,QAAQ,CAACF,iBAAiB,CAACa,cAAc,CAAC;EAC5C,CAAC,EAAE,CAACL,OAAO,EAAEC,WAAW,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSetState","useEffect","calcMenuPosition","extractDataRowAndCol","findParentTd","useContextMenu","dispatch","elementRef","enableContextMenu","arguments","length","undefined","contextMenuRef","_useSetState","showMenu","position","top","left","cellPosition","row","col","_useSetState2","_slicedToArray","menuEvent","setMenuEvent","handleContextMenu","e","_contextMenuRef$curre","preventDefault","currentCell","target","currentPos","type","payload","pos","shiftKey","_calcMenuPosition","tableElement","current","menuElement","firstElementChild","x","clientX","y","clientY","_contextMenuRef$curre2","_contextMenuRef$curre3","setAttribute","handleClose","addEventListener","document","removeEventListener","_objectSpread"],"sources":["../../../src/core/sheet/useContextMenu.tsx"],"sourcesContent":["import { Dispatch, useSetState } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect } from 'react';\nimport { calcMenuPosition, extractDataRowAndCol, findParentTd } from '../util';\n\nexport type MenuEvent = {\n showMenu: boolean;\n position: { top: number; left: number };\n cellPosition: SheetType.CellPosition;\n};\n\nexport const useContextMenu = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n enableContextMenu: boolean = false,\n contextMenuRef: React.RefObject<HTMLDivElement>,\n) => {\n const [menuEvent, setMenuEvent] = useSetState({\n showMenu: false,\n position: { top: 0, left: 0 },\n cellPosition: { row: 0, col: 0 },\n });\n\n const handleContextMenu = (e: MouseEvent) => {\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell) return;\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({\n type: 'mouseDown',\n payload: { pos: currentPos, shiftKey: e.shiftKey },\n });\n const { top, left } = calcMenuPosition({\n tableElement: elementRef.current,\n menuElement: contextMenuRef.current?.firstElementChild,\n x: e.clientX,\n y: e.clientY,\n });\n setMenuEvent({\n showMenu: true,\n position: { top, left },\n cellPosition: currentPos,\n });\n };\n\n useEffect(() => {\n if (!elementRef.current || !enableContextMenu) return;\n // 添加统一规范\n contextMenuRef.current?.firstElementChild?.setAttribute(\n 'style',\n 'z-index: 5;word-break: keep-all;',\n );\n const handleClose = () => {\n setMenuEvent({ showMenu: false });\n };\n elementRef.current.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('click', handleClose);\n document.addEventListener(\n 'scroll',\n () => {\n setMenuEvent({ showMenu: false });\n },\n true,\n );\n return () => {\n document.removeEventListener('contextmenu', handleContextMenu);\n document.removeEventListener('click', handleClose);\n };\n }, [elementRef.current, enableContextMenu]);\n\n return {\n ...menuEvent,\n };\n};\n"],"mappings":"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"}
|
|
@@ -25,9 +25,18 @@ export var useKeyBoardEvent = function useKeyBoardEvent(dispatch, elementRef) {
|
|
|
25
25
|
});
|
|
26
26
|
},
|
|
27
27
|
otherInput: function otherInput(e, value) {
|
|
28
|
-
dispatch({
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
dispatch(function (d, getState) {
|
|
29
|
+
var _getState = getState(),
|
|
30
|
+
editing = _getState.editing;
|
|
31
|
+
if (editing) {
|
|
32
|
+
return;
|
|
33
|
+
} else {
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
dispatch({
|
|
36
|
+
type: 'otherInput',
|
|
37
|
+
payload: value
|
|
38
|
+
});
|
|
39
|
+
}
|
|
31
40
|
});
|
|
32
41
|
},
|
|
33
42
|
copy: function copy() {
|
|
@@ -41,4 +50,5 @@ export var useKeyBoardEvent = function useKeyBoardEvent(dispatch, elementRef) {
|
|
|
41
50
|
dispatch(sideEffectReducer.delete);
|
|
42
51
|
}
|
|
43
52
|
}, elementRef.current);
|
|
44
|
-
};
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=useKeyBoardEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useKeyBoard","sideEffectReducer","useKeyBoardEvent","dispatch","elementRef","move","e","value","type","payload","escape","reverse","delete","_delete","enter","otherInput","d","getState","_getState","editing","preventDefault","copy","paste","cut","current"],"sources":["../../../src/core/sheet/useKeyBoardEvent.ts"],"sourcesContent":["import { useKeyBoard } from '@zhenliang/sheet/hooks';\nimport { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { sideEffectReducer } from '../reducers/sideEffectReducer';\n\nexport const useKeyBoardEvent = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n) => {\n useKeyBoard(\n {\n move: (e, value: any) => {\n dispatch({ type: 'move', payload: value });\n },\n escape: () => {\n dispatch({ type: 'escape' });\n },\n reverse: () => {\n dispatch(sideEffectReducer.reverse);\n },\n delete: () => {\n dispatch(sideEffectReducer.delete);\n },\n enter: () => {\n dispatch({ type: 'enter' });\n },\n otherInput: (e, value: string) => {\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { editing } = getState();\n if (editing) {\n return;\n } else {\n e.preventDefault();\n dispatch({ type: 'otherInput', payload: value });\n }\n });\n },\n copy: () => {\n dispatch(sideEffectReducer.copy);\n },\n paste: () => {\n dispatch(sideEffectReducer.paste);\n },\n cut: () => {\n dispatch(sideEffectReducer.copy);\n dispatch(sideEffectReducer.delete);\n },\n },\n elementRef.current,\n );\n};\n"],"mappings":"AAAA,SAASA,WAAW;AAGpB,SAASC,iBAAiB;AAE1B,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3BC,QAAkB,EAClBC,UAAmD,EAChD;EACHJ,WAAW,CACT;IACEK,IAAI,EAAE,SAAAA,KAACC,CAAC,EAAEC,KAAU,EAAK;MACvBJ,QAAQ,CAAC;QAAEK,IAAI,EAAE,MAAM;QAAEC,OAAO,EAAEF;MAAM,CAAC,CAAC;IAC5C,CAAC;IACDG,MAAM,EAAE,SAAAA,OAAA,EAAM;MACZP,QAAQ,CAAC;QAAEK,IAAI,EAAE;MAAS,CAAC,CAAC;IAC9B,CAAC;IACDG,OAAO,EAAE,SAAAA,QAAA,EAAM;MACbR,QAAQ,CAACF,iBAAiB,CAACU,OAAO,CAAC;IACrC,CAAC;IACDC,MAAM,EAAE,SAAAC,QAAA,EAAM;MACZV,QAAQ,CAACF,iBAAiB,CAACW,MAAM,CAAC;IACpC,CAAC;IACDE,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXX,QAAQ,CAAC;QAAEK,IAAI,EAAE;MAAQ,CAAC,CAAC;IAC7B,CAAC;IACDO,UAAU,EAAE,SAAAA,WAACT,CAAC,EAAEC,KAAa,EAAK;MAChCJ,QAAQ,CAAC,UAACa,CAAM,EAAEC,QAAyC,EAAK;QAC9D,IAAAC,SAAA,GAAoBD,QAAQ,CAAC,CAAC;UAAtBE,OAAO,GAAAD,SAAA,CAAPC,OAAO;QACf,IAAIA,OAAO,EAAE;UACX;QACF,CAAC,MAAM;UACLb,CAAC,CAACc,cAAc,CAAC,CAAC;UAClBjB,QAAQ,CAAC;YAAEK,IAAI,EAAE,YAAY;YAAEC,OAAO,EAAEF;UAAM,CAAC,CAAC;QAClD;MACF,CAAC,CAAC;IACJ,CAAC;IACDc,IAAI,EAAE,SAAAA,KAAA,EAAM;MACVlB,QAAQ,CAACF,iBAAiB,CAACoB,IAAI,CAAC;IAClC,CAAC;IACDC,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXnB,QAAQ,CAACF,iBAAiB,CAACqB,KAAK,CAAC;IACnC,CAAC;IACDC,GAAG,EAAE,SAAAA,IAAA,EAAM;MACTpB,QAAQ,CAACF,iBAAiB,CAACoB,IAAI,CAAC;MAChClB,QAAQ,CAACF,iBAAiB,CAACW,MAAM,CAAC;IACpC;EACF,CAAC,EACDR,UAAU,CAACoB,OACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMouse","useCallback","useRef","extractDataRowAndCol","findParentTd","rowCount","colCount","useMouseEvent","dispatch","elementRef","animateRef","rowHeightRef","colWidthRef","resetInterval","current","scrollTo","type","_ref","scrollTop","scrollLeft","scrollHeight","scrollWidth","destination","y","x","called","rowCalled","colCalled","step","_elementRef$current","style","setProperty","position","Math","round","payload","distance","abs","_elementRef$current2","_elementRef$current3","requestAnimationFrame","mouseDown","e","_elementRef$current4","button","preventDefault","contains","target","currentCell","currentPos","pos","shiftKey","mouseOver","_elementRef$current5","_elementRef$current6","classList","d","getState","_elementRef$current7","_getState","cellBounding","getBoundingClientRect","parentBounding","left","top","bottom","right","parentLeft","parentTop","parentBottom","parentRight","dBottom","dTop","dLeft","dRight","cellHeight","clientHeight","cellWidth","clientWidth","isElementEdge","mouseUp","mouseLeave","_getState2","_elementRef$current8","doubleClick","_elementRef$current9","loseFocus","_elementRef$current10","mouseEnter"],"sources":["../../../src/core/sheet/useMouseEvent.ts"],"sourcesContent":["import { useMouse } from '@zhenliang/sheet/hooks';\nimport { Dispatch } from '@zhenliang/sheet/hooks/useMiddlewareReducer';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useCallback, useRef } from 'react';\nimport { extractDataRowAndCol, findParentTd } from '../util';\n\nconst rowCount = 10; //每秒10行\nconst colCount = 5; //每秒3列\n\nexport const useMouseEvent = (\n dispatch: Dispatch,\n elementRef: React.RefObject<SheetType.refAssertion>,\n) => {\n const animateRef = useRef<boolean>(false);\n // const animateScrollCalled = useRef<number>(0);\n const rowHeightRef = useRef<number>(40);\n const colWidthRef = useRef<number>(100);\n\n const resetInterval = useCallback(() => {\n if (animateRef.current) {\n animateRef.current = false;\n // animateScrollCalled.current -= 1;\n }\n }, []);\n\n const scrollTo = useCallback((type: 'bottom' | 'top' | 'left' | 'right') => {\n if (!elementRef.current) return;\n // 当前滚动高度\n const { scrollTop, scrollLeft, scrollHeight, scrollWidth } =\n elementRef.current || {};\n\n let destination = {\n y: scrollTop,\n x: scrollLeft,\n };\n\n let called = 0;\n let rowCalled = 0;\n let colCalled = 0;\n const step = () => {\n elementRef.current?.style.setProperty('scroll-behavior', 'auto');\n const position = {\n x: destination.x,\n y: destination.y,\n };\n if (type === 'bottom') {\n position.y = scrollHeight;\n if (Math.round((called / 60) * rowCount) - rowCalled > 1) {\n rowCalled++;\n dispatch({ type: 'rowMove', payload: 1 });\n }\n }\n if (type === 'right') {\n position.x = scrollWidth;\n\n if (Math.round((called / 60) * colCount) - colCalled > 1) {\n colCalled++;\n dispatch({ type: 'colMove', payload: 1 });\n }\n }\n if (type === 'left') {\n position.x = 0;\n\n if (Math.round((called / 60) * colCount) - colCalled > 1) {\n colCalled++;\n dispatch({ type: 'colMove', payload: -1 });\n }\n }\n if (type === 'top') {\n position.y = 0;\n\n if (Math.round((called / 60) * rowCount) - rowCalled > 1) {\n rowCalled++;\n dispatch({ type: 'rowMove', payload: -1 });\n }\n }\n\n // 距离目标滚动距离\n let distance = {\n x: position.x - destination.x,\n // x: 0,\n y: position.y - destination.y,\n };\n // 目标滚动位置\n destination = {\n x:\n destination.x +\n (distance.x !== 0\n ? (distance.x * colWidthRef.current * colCount) /\n 60 /\n Math.abs(distance.x)\n : 0),\n // x: 0,\n y:\n destination.y +\n (distance.y !== 0\n ? (distance.y * rowHeightRef.current * rowCount) /\n 60 /\n Math.abs(distance.y)\n : 0),\n };\n if (!animateRef.current) return;\n if (Math.abs(distance.x) + Math.abs(distance.y) < 2) {\n elementRef.current?.scrollTo(destination.x, destination.y);\n resetInterval();\n } else {\n elementRef.current?.scrollTo(destination.x, destination.y);\n requestAnimationFrame(step);\n called++;\n }\n };\n step();\n }, []);\n const mouseDown = useCallback((e: MouseEvent) => {\n if (e.button !== 0) return;\n e.preventDefault();\n if (!elementRef.current?.contains(e.target)) {\n dispatch({ type: 'loseFocus' });\n }\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell) {\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({\n type: 'mouseDown',\n payload: { pos: currentPos, shiftKey: e.shiftKey },\n });\n }, []);\n\n const mouseOver = useCallback((e: MouseEvent) => {\n e.preventDefault();\n\n if (!elementRef.current?.contains(e.target)) return;\n\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell || currentCell.classList.contains('fixed')) return;\n\n elementRef.current?.style.setProperty('scroll-behavior', 'smooth');\n\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'mouseOver', payload: currentPos });\n\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { mouseDown } = getState();\n if (!mouseDown || !elementRef.current) return;\n\n const cellBounding = currentCell.getBoundingClientRect();\n const parentBounding = elementRef.current?.getBoundingClientRect();\n\n const { left, top, bottom, right } = cellBounding;\n const {\n left: parentLeft,\n top: parentTop,\n bottom: parentBottom,\n right: parentRight,\n } = parentBounding;\n\n let dBottom = bottom - parentBottom;\n let dTop = top - parentTop;\n let dLeft = left - parentLeft;\n let dRight = right - parentRight;\n\n const cellHeight = currentCell.clientHeight;\n const cellWidth = currentCell.clientWidth;\n rowHeightRef.current = cellHeight;\n colWidthRef.current = cellWidth;\n const isElementEdge =\n dBottom > -40 || dTop < 40 || dLeft < 40 || dRight > -40;\n if (isElementEdge) {\n if (animateRef.current === true) return;\n animateRef.current = true;\n // animateScrollCalled.current += 1;\n } else {\n resetInterval();\n }\n\n if (dBottom > -40) {\n scrollTo('bottom');\n // elementRef.current.scrollTop += cellHeight;\n }\n if (dTop < 40) {\n scrollTo('top');\n // elementRef.current.scrollTop -= cellHeight;\n }\n if (dLeft < 40) {\n scrollTo('left');\n // elementRef.current.scrollLeft -= cellWidth;\n }\n if (dRight > -40) {\n scrollTo('right');\n // elementRef.current.scrollLeft += cellWidth;\n }\n });\n }, []);\n\n const mouseUp = useCallback((e: MouseEvent) => {\n e.preventDefault();\n\n resetInterval();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (!currentCell || currentCell.classList.contains('fixed')) {\n dispatch({ type: 'changes', payload: { mouseDown: false } });\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'mouseUp', payload: currentPos });\n }, []);\n\n const mouseLeave = useCallback((e: MouseEvent) => {\n dispatch((d: any, getState: () => SheetType.UpdateStateType) => {\n const { mouseDown } = getState();\n if (mouseDown && elementRef.current) {\n const parentBounding = elementRef.current?.getBoundingClientRect();\n const { left, top, right, bottom } = parentBounding;\n const { x, y } = e;\n resetInterval();\n\n if (animateRef.current === true) return;\n animateRef.current = true;\n\n // animateScrollCalled.current += 1;\n if (y > bottom) {\n scrollTo('bottom');\n }\n if (y < top) {\n scrollTo('top');\n }\n if (x < left) {\n scrollTo('left');\n }\n if (x > right) {\n scrollTo('right');\n }\n } else {\n mouseDown &&\n dispatch({ type: 'changes', payload: { mouseDown: false } });\n }\n });\n }, []);\n\n const doubleClick = useCallback((e: MouseEvent) => {\n if (!elementRef.current?.contains(e.target)) {\n return;\n }\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (\n !currentCell?.classList ||\n currentCell.classList.contains('read-only')\n ) {\n // 只读\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'doubleClick', payload: currentPos });\n }, []);\n const loseFocus = useCallback((e: MouseEvent) => {\n if (!elementRef.current?.contains(e.target)) {\n dispatch({ type: 'loseFocus' });\n return;\n }\n e.preventDefault();\n const currentCell = findParentTd(e.target as HTMLElement) as HTMLElement;\n if (currentCell.classList.contains('read-only')) {\n // 只读\n return;\n }\n const currentPos = extractDataRowAndCol(currentCell);\n dispatch({ type: 'doubleClick', payload: currentPos });\n }, []);\n\n useMouse(\n {\n mouseDown,\n mouseOver,\n mouseUp,\n mouseLeave,\n mouseEnter: resetInterval,\n doubleClick,\n loseFocus,\n },\n elementRef.current,\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isEqual","throttle","useEffect","useRef","useState","getRowHeight","extra","useVirtualList","elementRef","data","arguments","length","undefined","virtualized","_useState","virtualStart","virtualEnd","paddingTop","paddingBottom","_useState2","_slicedToArray","state","setState","virtualRef","current","rowHeight","handleScroll","_ref","scrollTop","clientHeight","itemHeight","start","Math","floor","end","ceil","updateVirtualConfig","addEventListener","_elementRef$current","removeEventListener","max","min"],"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 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","useSetState","classNames","CheckViewer","GroupViewer","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DraggableShell","_ref","columns","className","showGroup","showSelect","controlProps","_ref$controlWidth","controlWidth","TableShell","_ref2","children","headRef","downRef","_useSetState","_useSetState2","_slicedToArray","widths","setWidth","hasControl","thItems","ths","_controlProps$group","_controlProps$check","_controlProps$check2","_controlProps$check3","push","row","col","value","record","open","group","isHeader","check","checked","indeterminate","forEach","item","index","_item$dataIndex","_ref3","fixed","concat","style","textAlign","align","left","right","onMouseDown","e","target","current","nativeEvent","offsetX","offsetWidth","mouseDown","oldX","x","oldWidth","onMouseMove","cursor","undefined","title","dataIndex","colItems","cols","width","_item$dataIndex2","handleMouseUp","handleMouseMove","_downRef$current","_downRef$current2","_downRef$current$oldW","_downRef$current$oldX","_downRef$current$oldW2","_downRef$current$oldX2","_headRef$current","newWidth","Math","max","Number","cellList","slice","call","cells","changeIndex","indexOf","_defineProperty","length","document","addEventListener","removeEventListener","position","top","zIndex","ref"],"sources":["../../../../src/core/shell/draggableShell/index.tsx"],"sourcesContent":["import type { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useSetState } from '../../../hooks';\nimport { classNames } from '../../util';\nimport { CheckViewer } from '../../viewer/checkViewer';\nimport { GroupViewer } from '../../viewer/groupViewer';\nimport './index.less';\n\nexport const DraggableShell = ({\n columns,\n className,\n showGroup,\n showSelect,\n controlProps,\n controlWidth = 25,\n}: SheetType.SheetShell) => {\n const TableShell: React.FC<{\n children: React.ReactElement;\n }> = ({ children }) => {\n const headRef = useRef<HTMLTableRowElement>(null);\n const downRef = useRef<\n | (HTMLTableHeaderCellElement & {\n mouseDown?: boolean;\n oldX?: number;\n oldWidth?: number;\n width?: string;\n })\n | null\n >(null);\n const [widths, setWidth] = useSetState<\n Record<number | string, string | number>\n >({});\n\n const hasControl = showGroup || showSelect;\n\n const thItems = useMemo(() => {\n const ths = [];\n\n if (hasControl) {\n ths.push(\n <th className=\"cell cell-title read-only sheet-control\" key=\"-1\">\n {showGroup && (\n <GroupViewer\n row={-1}\n col={-1}\n value={true}\n record={{ open: controlProps?.group?.open, isHeader: true }}\n />\n )}\n {showSelect && (\n <CheckViewer\n row={-1}\n col={-1}\n value={controlProps?.check?.checked}\n record={{\n open: controlProps?.check?.checked,\n isHeader: true,\n indeterminate: controlProps?.check?.indeterminate,\n }}\n />\n )}\n </th>,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n ths.push(\n <th\n className={classNames(\n 'cell',\n 'cell-title',\n 'read-only',\n item.fixed && 'fixed',\n item.fixed && `fixed-${item.fixed}`,\n )}\n key={item.dataIndex ?? index}\n style={{\n textAlign: (item.align as any) ?? 'unset',\n left: item.fixed === 'left' ? 0 : 'unset',\n right: item.fixed === 'right' ? 0 : 'unset',\n }}\n onMouseDown={(e) => {\n const target = e.target as HTMLTableHeaderCellElement;\n\n downRef.current = target;\n if (e.nativeEvent.offsetX > target.offsetWidth - 10) {\n downRef.current.mouseDown = true;\n downRef.current.oldX = e.nativeEvent.x;\n downRef.current.oldWidth = downRef.current.offsetWidth;\n } else {\n downRef.current = null;\n }\n }}\n onMouseMove={(e) => {\n const target = e.target as HTMLTableHeaderCellElement;\n if (e.nativeEvent.offsetX > target.offsetWidth - 10) {\n target.style.cursor = 'col-resize';\n } else {\n target.style.cursor = 'default';\n }\n //取出暂存的Table Cell\n if (downRef.current === undefined) downRef.current = target;\n //调整宽度\n }}\n >\n {item.title}\n </th>,\n );\n });\n\n return ths;\n }, [columns]);\n\n const colItems = useMemo(() => {\n const cols = [];\n if (hasControl) {\n cols.push(\n <col\n className={classNames('sheet-control')}\n key=\"sheet-control\"\n style={{\n width: controlWidth,\n }}\n />,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n cols.push(\n <col\n className={classNames('cell')}\n key={item.dataIndex ?? index}\n style={{\n width: widths[index] || item.width || 'unset',\n }}\n />,\n );\n });\n return cols;\n }, [widths, hasControl, columns]);\n\n useEffect(() => {\n const handleMouseUp = () => {\n //结束宽度调整\n if (downRef.current) {\n downRef.current.mouseDown = false;\n downRef.current.style.cursor = 'default';\n }\n };\n const handleMouseMove = (e: MouseEvent) => {\n if (!downRef.current || !downRef.current.mouseDown) return;\n\n if (\n downRef.current?.mouseDown !== null &&\n downRef.current?.mouseDown === true\n ) {\n downRef.current.style.cursor = 'default';\n if (\n (downRef.current.oldWidth ?? 0) +\n (e.x - (downRef.current.oldX ?? 0)) >\n 0\n ) {\n let newWidth = Math.max(\n Number(\n (downRef.current.oldWidth ?? 0) +\n (e.x - (downRef.current.oldX ?? 0)),\n ),\n 50,\n );\n\n const cellList = ([] as any[]).slice.call(headRef.current?.cells);\n const changeIndex = cellList.indexOf(downRef.current);\n //调整该列中的每个Cell\n const widths = {\n length: columns.length,\n [hasControl ? changeIndex - 1 : changeIndex]: `${newWidth}px`,\n };\n\n setWidth(widths);\n }\n }\n };\n\n document.addEventListener('mouseup', handleMouseUp);\n document.addEventListener('mousemove', handleMouseMove);\n return () => {\n document.removeEventListener('mouseup', handleMouseUp);\n document.removeEventListener('mousemove', handleMouseMove);\n };\n }, [hasControl]);\n return (\n <>\n <table\n key=\"header\"\n className={classNames('header', 'harvest-sheet', className)}\n style={{ position: 'sticky', top: 0, zIndex: 3 }}\n >\n <colgroup>{colItems}</colgroup>\n <thead>\n <tr ref={headRef}>{thItems}</tr>\n </thead>\n </table>\n <table key=\"body\" className={classNames('body', 'harvest-sheet')}>\n <colgroup className=\"header\">{colItems}</colgroup>\n <tbody key=\"tbody\">{children}</tbody>\n </table>\n </>\n );\n };\n return TableShell;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { SheetType } from "../../type";
|
|
3
2
|
import './draggableShell/index.less';
|
|
4
3
|
export declare const TableShell: ({ columns, className, showGroup, showSelect, controlProps, controlWidth, }: SheetType.SheetShell) => import("react").FC<{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","classNames","CheckViewer","GroupViewer","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TableShell","_ref","columns","className","showGroup","showSelect","controlProps","_ref$controlWidth","controlWidth","_ref2","children","thItems","ths","_controlProps$group","_controlProps$check","_controlProps$check2","_controlProps$check3","push","row","col","value","record","open","group","isHeader","check","checked","indeterminate","forEach","item","index","_ref3","fixed","concat","style","textAlign","align","left","right","title","dataIndex","colItems","cols","width","position","top","zIndex"],"sources":["../../../src/core/shell/tableShell.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { SheetTableType, SheetType } from '@zhenliang/sheet/type';\nimport { classNames } from '../util';\nimport { CheckViewer } from '../viewer/checkViewer';\nimport { GroupViewer } from '../viewer/groupViewer';\nimport './draggableShell/index.less';\n\nexport const TableShell = ({\n columns,\n className,\n showGroup,\n showSelect,\n controlProps,\n controlWidth = 25,\n}: SheetType.SheetShell) => {\n const TableShell: React.FC<{\n children: React.ReactElement;\n }> = ({ children }) => {\n const thItems = useMemo(() => {\n const ths = [];\n if (showGroup || showSelect) {\n ths.push(\n <th className=\"cell cell-title read-only sheet-control\" key=\"-1\">\n {showGroup && (\n <GroupViewer\n row={-1}\n col={-1}\n value={true}\n record={{ open: controlProps?.group?.open, isHeader: true }}\n />\n )}\n {showSelect && (\n <CheckViewer\n row={-1}\n col={-1}\n value={controlProps?.check?.checked}\n record={{\n open: controlProps?.check?.checked,\n isHeader: true,\n indeterminate: controlProps?.check?.indeterminate,\n }}\n />\n )}\n </th>,\n );\n }\n\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n ths.push(\n <th\n className={classNames(\n 'cell',\n 'cell-title',\n 'read-only',\n item.fixed && 'fixed',\n item.fixed && `fixed-${item.fixed}`,\n )}\n key={item.dataIndex || index}\n style={{\n textAlign: (item.align as any) ?? 'unset',\n left: item.fixed === 'left' ? 0 : 'unset',\n right: item.fixed === 'right' ? 0 : 'unset',\n }}\n >\n {item.title}\n </th>,\n );\n });\n return ths;\n }, [columns, showGroup || showSelect, controlProps]);\n\n const colItems = useMemo(() => {\n const cols = [];\n if (showGroup || showSelect) {\n cols.push(\n <col\n className={classNames('sheet-control')}\n key=\"sheet-control\"\n style={{\n width: controlWidth,\n }}\n />,\n );\n }\n columns.forEach((item: SheetTableType.ColumnProps, index: number) => {\n cols.push(\n <col\n className={classNames('cell')}\n key={item.dataIndex || index}\n style={{\n width: item.width || 'unset',\n }}\n />,\n );\n });\n return cols;\n }, [columns, showGroup || showSelect, controlWidth]);\n\n return (\n <>\n <table\n key=\"header\"\n className={classNames('header', 'harvest-sheet', className)}\n style={{ position: 'sticky', top: 0, zIndex: 3 }}\n >\n <colgroup>{colItems}</colgroup>\n <thead>\n <tr>{thItems}</tr>\n </thead>\n </table>\n <table key=\"body\" className={classNames('body', 'harvest-sheet')}>\n <colgroup>{colItems}</colgroup>\n <tbody key=\"tbody\">{children}</tbody>\n </table>\n </>\n );\n };\n return TableShell;\n};\n"],"mappings":"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"}
|
package/dist/core/table/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -21,4 +21,5 @@ export var useRowSelection = function useRowSelection(dataSource, rowSelection,
|
|
|
21
21
|
checkedRowRef.current = currentEmpty;
|
|
22
22
|
}, [dataSource.length, hasChildren, rowSelection]);
|
|
23
23
|
return [checkedRow, setCheckedRow];
|
|
24
|
-
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=useRowSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/core/table/util.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
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
CHANGED
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSheetEvent","Checkbox","useCallback","jsx","_jsx","CheckViewer","props","value","row","record","eventBus","handleChange","isHeader","emit","indeterminate","checked","onChange"],"sources":["../../../../src/core/viewer/checkViewer/index.tsx"],"sourcesContent":["import { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { Checkbox } from 'antd';\nimport { useCallback } from 'react';\n\nexport const CheckViewer: SheetType.CellViewer = (props) => {\n const { value, row, record } = props;\n const eventBus = useSheetEvent();\n const handleChange = useCallback(() => {\n if (!eventBus) return;\n if (record?.isHeader) {\n eventBus.emit('row-select-title', record?.indeterminate ? false : true);\n } else {\n eventBus.emit('row-select', row);\n }\n }, [eventBus, row, record, value]);\n return (\n <Checkbox\n indeterminate={record?.indeterminate as boolean}\n checked={value as boolean}\n onChange={handleChange}\n />\n );\n};\n"],"mappings":"AAAA,SAASA,aAAa;AAEtB,SAASC,QAAQ,QAAQ,MAAM;AAC/B,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,OAAO,IAAMC,WAAiC,GAAG,SAApCA,WAAiCA,CAAIC,KAAK,EAAK;EAC1D,IAAQC,KAAK,GAAkBD,KAAK,CAA5BC,KAAK;IAAEC,GAAG,GAAaF,KAAK,CAArBE,GAAG;IAAEC,MAAM,GAAKH,KAAK,CAAhBG,MAAM;EAC1B,IAAMC,QAAQ,GAAGV,aAAa,CAAC,CAAC;EAChC,IAAMW,YAAY,GAAGT,WAAW,CAAC,YAAM;IACrC,IAAI,CAACQ,QAAQ,EAAE;IACf,IAAID,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEG,QAAQ,EAAE;MACpBF,QAAQ,CAACG,IAAI,CAAC,kBAAkB,EAAEJ,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEK,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;IACzE,CAAC,MAAM;MACLJ,QAAQ,CAACG,IAAI,CAAC,YAAY,EAAEL,GAAG,CAAC;IAClC;EACF,CAAC,EAAE,CAACE,QAAQ,EAAEF,GAAG,EAAEC,MAAM,EAAEF,KAAK,CAAC,CAAC;EAClC,oBACEH,IAAA,CAACH,QAAQ;IACPa,aAAa,EAAEL,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,aAAyB;IAChDC,OAAO,EAAER,KAAiB;IAC1BS,QAAQ,EAAEL;EAAa,CACxB,CAAC;AAEN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EditFilled","useSheetEvent","useCallback","jsx","_jsx","jsxs","_jsxs","EditViewer","props","value","row","record","eventBus","handleClick","emit","style","display","justifyContent","color","children","onClick"],"sources":["../../../../src/core/viewer/editViewer/index.tsx"],"sourcesContent":["import { EditFilled } from '@ant-design/icons';\nimport { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { useCallback } from 'react';\n\nexport const EditViewer: SheetType.CellViewer = (props) => {\n const { value, row, record } = props;\n const eventBus = useSheetEvent();\n const handleClick = useCallback(() => {\n if (!eventBus) return;\n eventBus.emit('cell-edit', { row, record, value });\n }, [eventBus, row, record, value]);\n return (\n <span\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n color: 'green',\n }}\n >\n <span>{value as string}</span>\n <EditFilled onClick={handleClick} />\n </span>\n );\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,aAAa;AAEtB,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEpC,OAAO,IAAMC,UAAgC,GAAG,SAAnCA,UAAgCA,CAAIC,KAAK,EAAK;EACzD,IAAQC,KAAK,GAAkBD,KAAK,CAA5BC,KAAK;IAAEC,GAAG,GAAaF,KAAK,CAArBE,GAAG;IAAEC,MAAM,GAAKH,KAAK,CAAhBG,MAAM;EAC1B,IAAMC,QAAQ,GAAGX,aAAa,CAAC,CAAC;EAChC,IAAMY,WAAW,GAAGX,WAAW,CAAC,YAAM;IACpC,IAAI,CAACU,QAAQ,EAAE;IACfA,QAAQ,CAACE,IAAI,CAAC,WAAW,EAAE;MAAEJ,GAAG,EAAHA,GAAG;MAAEC,MAAM,EAANA,MAAM;MAAEF,KAAK,EAALA;IAAM,CAAC,CAAC;EACpD,CAAC,EAAE,CAACG,QAAQ,EAAEF,GAAG,EAAEC,MAAM,EAAEF,KAAK,CAAC,CAAC;EAClC,oBACEH,KAAA;IACES,KAAK,EAAE;MACLC,OAAO,EAAE,MAAM;MACfC,cAAc,EAAE,eAAe;MAC/BC,KAAK,EAAE;IACT,CAAE;IAAAC,QAAA,gBAEFf,IAAA;MAAAe,QAAA,EAAOV;IAAK,CAAiB,CAAC,eAC9BL,IAAA,CAACJ,UAAU;MAACoB,OAAO,EAAEP;IAAY,CAAE,CAAC;EAAA,CAChC,CAAC;AAEX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MinusSquareOutlined","PlusSquareOutlined","useSheetEvent","useCallback","jsx","_jsx","GroupViewer","props","value","row","record","eventBus","handleChange","isHeader","emit","open","onClick","children"],"sources":["../../../../src/core/viewer/groupViewer/index.tsx"],"sourcesContent":["import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';\nimport { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\n\nimport { useCallback } from 'react';\n\nexport const GroupViewer: SheetType.CellViewer = (props) => {\n const { value, row, record } = props;\n const eventBus = useSheetEvent();\n const handleChange = useCallback(() => {\n if (!eventBus) return;\n\n if (record?.isHeader) {\n eventBus.emit('group-open-title', !record?.open);\n } else {\n eventBus.emit('group-open', { row, open: record?.open });\n }\n }, [eventBus, row, record?.open]);\n if (value) {\n return (\n <span onClick={handleChange}>\n {!record?.open ? <PlusSquareOutlined /> : <MinusSquareOutlined />}\n </span>\n );\n }\n return <span></span>;\n};\n"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,kBAAkB,QAAQ,mBAAmB;AAC3E,SAASC,aAAa;AAGtB,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,OAAO,IAAMC,WAAiC,GAAG,SAApCA,WAAiCA,CAAIC,KAAK,EAAK;EAC1D,IAAQC,KAAK,GAAkBD,KAAK,CAA5BC,KAAK;IAAEC,GAAG,GAAaF,KAAK,CAArBE,GAAG;IAAEC,MAAM,GAAKH,KAAK,CAAhBG,MAAM;EAC1B,IAAMC,QAAQ,GAAGT,aAAa,CAAC,CAAC;EAChC,IAAMU,YAAY,GAAGT,WAAW,CAAC,YAAM;IACrC,IAAI,CAACQ,QAAQ,EAAE;IAEf,IAAID,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEG,QAAQ,EAAE;MACpBF,QAAQ,CAACG,IAAI,CAAC,kBAAkB,EAAE,EAACJ,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEK,IAAI,EAAC;IAClD,CAAC,MAAM;MACLJ,QAAQ,CAACG,IAAI,CAAC,YAAY,EAAE;QAAEL,GAAG,EAAHA,GAAG;QAAEM,IAAI,EAAEL,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK;MAAK,CAAC,CAAC;IAC1D;EACF,CAAC,EAAE,CAACJ,QAAQ,EAAEF,GAAG,EAAEC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,IAAI,CAAC,CAAC;EACjC,IAAIP,KAAK,EAAE;IACT,oBACEH,IAAA;MAAMW,OAAO,EAAEJ,YAAa;MAAAK,QAAA,EACzB,EAACP,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEK,IAAI,iBAAGV,IAAA,CAACJ,kBAAkB,IAAE,CAAC,gBAAGI,IAAA,CAACL,mBAAmB,IAAE;IAAC,CAC7D,CAAC;EAEX;EACA,oBAAOK,IAAA,WAAY,CAAC;AACtB,CAAC"}
|
|
@@ -2,4 +2,5 @@ export { BtnViewer } from "./btnViewer";
|
|
|
2
2
|
export { CheckViewer } from "./checkViewer";
|
|
3
3
|
export { EditViewer } from "./editViewer";
|
|
4
4
|
export { GroupViewer } from "./groupViewer";
|
|
5
|
-
export { SwitchViewer } from "./switchViewer";
|
|
5
|
+
export { SwitchViewer } from "./switchViewer";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|