@zhenliang/sheet 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.d.ts +2 -1
- package/dist/core/editor/dateEditor/index.js +44 -34
- package/dist/core/editor/dateEditor/index.js.map +1 -0
- package/dist/core/editor/index.d.ts +1 -1
- package/dist/core/editor/index.js +3 -2
- package/dist/core/editor/index.js.map +1 -0
- package/dist/core/editor/numberEditor/index.d.ts +1 -1
- package/dist/core/editor/numberEditor/index.js +6 -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.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +15 -3
- 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 +21 -10
- package/dist/core/reducers/sideEffectReducer.js.map +1 -0
- package/dist/core/reducers/stateReducer.js +8 -3
- package/dist/core/reducers/stateReducer.js.map +1 -0
- package/dist/core/sheet/Cell.d.ts +1 -1
- package/dist/core/sheet/Cell.js +5 -3
- 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 +12 -9
- 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 +10 -1
- package/dist/core/sheet/useVirtualList.js.map +1 -0
- package/dist/core/shell/draggableShell/index.js +2 -1
- package/dist/core/shell/draggableShell/index.js.map +1 -0
- 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 +4 -3
- 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.d.ts +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 +36 -19
- 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.d.ts +2 -2
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EventEmitter","useEffect","useRef","useEventBus","eventBus","_eventBus$current","current","removeAllListeners"],"sources":["../../src/hooks/useEventBus.ts"],"sourcesContent":["import EventEmitter from 'events';\nimport { useEffect, useRef } from 'react';\n\nconst useEventBus = () => {\n const eventBus = useRef<EventEmitter | null>(new EventEmitter());\n\n useEffect(() => {\n return () => {\n eventBus.current?.removeAllListeners();\n eventBus.current = null;\n };\n }, []);\n\n if (!eventBus.current) {\n eventBus.current = new EventEmitter();\n }\n\n return eventBus.current;\n};\n\nexport { useEventBus };\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,QAAQ;AACjC,SAASC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EACxB,IAAMC,QAAQ,GAAGF,MAAM,CAAsB,IAAIF,YAAY,CAAC,CAAC,CAAC;EAEhEC,SAAS,CAAC,YAAM;IACd,OAAO,YAAM;MAAA,IAAAI,iBAAA;MACX,CAAAA,iBAAA,GAAAD,QAAQ,CAACE,OAAO,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkBE,kBAAkB,CAAC,CAAC;MACtCH,QAAQ,CAACE,OAAO,GAAG,IAAI;IACzB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAACF,QAAQ,CAACE,OAAO,EAAE;IACrBF,QAAQ,CAACE,OAAO,GAAG,IAAIN,YAAY,CAAC,CAAC;EACvC;EAEA,OAAOI,QAAQ,CAACE,OAAO;AACzB,CAAC;AAED,SAASH,WAAW"}
|
|
@@ -87,7 +87,7 @@ export var useKeyBoard = function useKeyBoard(handler, listenElement) {
|
|
|
87
87
|
var isValueInput = isInputKey(keyCode);
|
|
88
88
|
if (isValueInput) {
|
|
89
89
|
handler.otherInput(e, e.key);
|
|
90
|
-
return;
|
|
90
|
+
return false;
|
|
91
91
|
}
|
|
92
92
|
var moveInfo = move(keyCode, shiftKey);
|
|
93
93
|
moveInfo && handler.move(e, moveInfo);
|
|
@@ -105,4 +105,5 @@ export var useKeyBoard = function useKeyBoard(handler, listenElement) {
|
|
|
105
105
|
document.removeEventListener('cut', handler.cut);
|
|
106
106
|
};
|
|
107
107
|
}, [listenElement]);
|
|
108
|
-
};
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=useKeyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","BACKSPACE_KEY","C_KEY","DELETE_KEY","DOWN_KEY","ENTER_KEY","ESCAPE_KEY","LEFT_KEY","RIGHT_KEY","TAB_KEY","UP_KEY","V_KEY","X_KEY","Z_KEY","isInputKey","ua","window","navigator","userAgent","isIE","test","move","keyCode","isShiftKey","row","col","useKeyBoard","handler","listenElement","handleKey","e","defaultPrevented","ctrlKey","metaKey","shiftKey","ctrlKeyPressed","isEscape","escape","isReverse","reverse","isCopy","copy","isCut","isPaste","paste","isDelete","delete","isEnter","enter","isValueInput","otherInput","key","moveInfo","addEventListener","document","cut","removeEventListener"],"sources":["../../src/hooks/useKeyboard.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport {\n BACKSPACE_KEY,\n C_KEY,\n DELETE_KEY,\n DOWN_KEY,\n ENTER_KEY,\n ESCAPE_KEY,\n LEFT_KEY,\n RIGHT_KEY,\n TAB_KEY,\n UP_KEY,\n V_KEY,\n X_KEY,\n Z_KEY,\n} from '../core/config';\nimport { isInputKey } from '../core/util';\n\ntype KeyOrClipBoardEvent = (\n event: KeyboardEvent | ClipboardEvent,\n value?: any,\n) => void;\ntype KeyboardHandler = {\n move: KeyOrClipBoardEvent;\n escape: KeyOrClipBoardEvent;\n delete: KeyOrClipBoardEvent;\n enter: KeyOrClipBoardEvent;\n otherInput: KeyOrClipBoardEvent;\n copy: KeyOrClipBoardEvent;\n paste: KeyOrClipBoardEvent;\n reverse: KeyOrClipBoardEvent;\n cut: KeyOrClipBoardEvent;\n};\n\nconst ua = window.navigator.userAgent;\nconst isIE = /MSIE|Trident/.test(ua);\n\nexport function move(keyCode: number, isShiftKey: boolean) {\n if (keyCode === TAB_KEY) {\n return { row: 0, col: isShiftKey ? -1 : 1 };\n } else if (keyCode === RIGHT_KEY) {\n return { row: 0, col: 1 };\n } else if (keyCode === LEFT_KEY) {\n return { row: 0, col: -1 };\n } else if (keyCode === UP_KEY) {\n return { row: -1, col: 0 };\n } else if (keyCode === DOWN_KEY) {\n return { row: 1, col: 0 };\n } else if (keyCode === ENTER_KEY) {\n return { row: isShiftKey ? -1 : 1, col: 0 };\n }\n}\n\nexport const useKeyBoard = (\n handler: KeyboardHandler,\n listenElement: HTMLSpanElement | null,\n) => {\n const handleKey = useCallback(\n (e: KeyboardEvent) => {\n if (e.defaultPrevented) {\n return;\n }\n const { ctrlKey, metaKey, keyCode, shiftKey } = e;\n\n const ctrlKeyPressed = ctrlKey || metaKey;\n\n const isEscape = keyCode === ESCAPE_KEY;\n\n if (isEscape) {\n handler.escape(e);\n return;\n }\n\n const isReverse = ctrlKeyPressed && keyCode === Z_KEY;\n if (isReverse) {\n handler.reverse(e);\n return;\n }\n const isCopy = ctrlKeyPressed && keyCode === C_KEY;\n if (isCopy && isIE) {\n handler.copy(e);\n return;\n }\n\n const isCut = ctrlKeyPressed && keyCode === X_KEY;\n if (isCut && isIE) {\n handler.copy(e);\n return;\n }\n\n const isPaste = ctrlKeyPressed && keyCode === V_KEY;\n if (isPaste && isIE) {\n handler.paste(e);\n return;\n }\n\n const isDelete = keyCode === DELETE_KEY || keyCode === BACKSPACE_KEY;\n if (isDelete) {\n handler.delete(e);\n return;\n }\n\n const isEnter = keyCode === ENTER_KEY;\n if (isEnter && !shiftKey) {\n handler.enter(e);\n return;\n }\n if (ctrlKeyPressed) {\n return;\n }\n\n const isValueInput = isInputKey(keyCode);\n if (isValueInput) {\n handler.otherInput(e, e.key);\n return false;\n }\n const moveInfo = move(keyCode, shiftKey);\n moveInfo && handler.move(e, moveInfo);\n },\n [handler],\n );\n\n useEffect(() => {\n if (!listenElement) return;\n\n listenElement.addEventListener('keydown', handleKey);\n\n document.addEventListener('copy', handler.copy as any);\n document.addEventListener('paste', handler.paste as any);\n document.addEventListener('cut', handler.cut as any);\n return () => {\n listenElement.removeEventListener('keydown', handleKey);\n document.removeEventListener('copy', handler.copy as any);\n document.removeEventListener('paste', handler.paste as any);\n document.removeEventListener('cut', handler.cut as any);\n };\n }, [listenElement]);\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMiddlewareReducer","reducer","initialState","middleware","arguments","length","undefined","_React$useState","useState","_React$useState2","_slicedToArray","state","setState","stateRef","useRef","dispatch","useMemo","Error","middlewareAPI","getState","current","_dispatch","_x2","apply","toString","action","localDispatch","map","reduceRight","acc"],"sources":["../../src/hooks/useMiddlewareReducer.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type NormalAction = { type: string; payload?: any };\nexport type FunctionAction = (dispatch: any, getState?: () => any) => any;\n\nexport type Dispatch = (action: any) => any;\n\nexport type MiddlewareAPI<A> = { getState: () => A; dispatch: Dispatch };\n\nexport type Middleware<A> = (\n api: MiddlewareAPI<A>,\n) => (next: Dispatch) => Dispatch;\n\nexport const useMiddlewareReducer = <A, B>(\n reducer: (state: A, action: B) => A,\n initialState: A,\n middleware: Middleware<A>[] = [],\n): [A, Dispatch] => {\n const [state, setState] = React.useState(initialState);\n const stateRef = React.useRef(state);\n\n const dispatch = React.useMemo(() => {\n let dispatch: Dispatch = () => {\n throw new Error(\n `Dispatching while constructing your middleware is not allowed. ` +\n `Other middleware would not be applied to this dispatch.`,\n );\n };\n\n const middlewareAPI = {\n getState: () => stateRef.current,\n dispatch: (action: B) => dispatch(action),\n };\n\n const localDispatch = (action: B) => {\n stateRef.current = reducer(stateRef.current, action);\n setState(stateRef.current);\n };\n\n dispatch = middleware\n .map((middleware) => middleware(middlewareAPI))\n .reduceRight((acc, middleware) => middleware(acc), localDispatch);\n\n return dispatch;\n }, []);\n\n return [state, dispatch];\n};\n"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAa9B,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC/BC,OAAmC,EACnCC,YAAe,EAEG;EAAA,IADlBC,UAA2B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEhC,IAAAG,eAAA,GAA0BR,KAAK,CAACS,QAAQ,CAACN,YAAY,CAAC;IAAAO,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA/CI,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EACtB,IAAMI,QAAQ,GAAGd,KAAK,CAACe,MAAM,CAACH,KAAK,CAAC;EAEpC,IAAMI,QAAQ,GAAGhB,KAAK,CAACiB,OAAO,CAAC,YAAM;IACnC,IAAID,QAAkB,GAAG,SAAAA,SAAA,EAAM;MAC7B,MAAM,IAAIE,KAAK,CACb,6HAEF,CAAC;IACH,CAAC;IAED,IAAMC,aAAa,GAAG;MACpBC,QAAQ,EAAE,SAAAA,SAAA;QAAA,OAAMN,QAAQ,CAACO,OAAO;MAAA;MAChCL,QAAQ,YAAAM,SAAA;QAAA,SAAAN,SAAAO,GAAA;UAAA,OAAAD,SAAA,CAAAE,KAAA,OAAAnB,SAAA;QAAA;QAAAW,QAAA,CAAAS,QAAA;UAAA,OAAAH,SAAA,CAAAG,QAAA;QAAA;QAAA,OAAAT,QAAA;MAAA,EAAE,UAACU,MAAS;QAAA,OAAKV,QAAQ,CAACU,MAAM,CAAC;MAAA;IAC3C,CAAC;IAED,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAID,MAAS,EAAK;MACnCZ,QAAQ,CAACO,OAAO,GAAGnB,OAAO,CAACY,QAAQ,CAACO,OAAO,EAAEK,MAAM,CAAC;MACpDb,QAAQ,CAACC,QAAQ,CAACO,OAAO,CAAC;IAC5B,CAAC;IAEDL,QAAQ,GAAGZ,UAAU,CAClBwB,GAAG,CAAC,UAACxB,UAAU;MAAA,OAAKA,UAAU,CAACe,aAAa,CAAC;IAAA,EAAC,CAC9CU,WAAW,CAAC,UAACC,GAAG,EAAE1B,UAAU;MAAA,OAAKA,UAAU,CAAC0B,GAAG,CAAC;IAAA,GAAEH,aAAa,CAAC;IAEnE,OAAOX,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,CAACJ,KAAK,EAAEI,QAAQ,CAAC;AAC1B,CAAC"}
|
package/dist/hooks/useMouse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { debounce } from 'lodash';
|
|
2
|
-
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
3
3
|
export var useMouse = function useMouse(handler, listenElement) {
|
|
4
4
|
var mouseUp = handler.mouseUp,
|
|
5
5
|
mouseDown = handler.mouseDown,
|
|
@@ -8,6 +8,7 @@ export var useMouse = function useMouse(handler, listenElement) {
|
|
|
8
8
|
mouseEnter = handler.mouseEnter,
|
|
9
9
|
doubleClick = handler.doubleClick,
|
|
10
10
|
loseFocus = handler.loseFocus;
|
|
11
|
+
var handlerRef = useRef();
|
|
11
12
|
|
|
12
13
|
// todo
|
|
13
14
|
var wrapper = useCallback(function (handle) {
|
|
@@ -18,35 +19,51 @@ export var useMouse = function useMouse(handler, listenElement) {
|
|
|
18
19
|
handle(e);
|
|
19
20
|
};
|
|
20
21
|
}, [listenElement]);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
return function () {
|
|
24
|
+
if (!handlerRef.current) return;
|
|
25
|
+
var _handlerRef$current = handlerRef.current,
|
|
26
|
+
listenerMouseUp = _handlerRef$current.mouseUp,
|
|
27
|
+
listenerMouseDown = _handlerRef$current.mouseDown,
|
|
28
|
+
listenerMouseOver = _handlerRef$current.mouseOver,
|
|
29
|
+
listenerMouseLeave = _handlerRef$current.mouseLeave,
|
|
30
|
+
listenerMouseEnter = _handlerRef$current.mouseEnter,
|
|
31
|
+
listenerDoubleClick = _handlerRef$current.doubleClick;
|
|
32
|
+
document.removeEventListener('mouseup', listenerMouseUp);
|
|
33
|
+
document.removeEventListener('mousedown', listenerMouseDown);
|
|
34
|
+
document.removeEventListener('dblclick', listenerDoubleClick);
|
|
35
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseover', listenerMouseOver);
|
|
36
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseleave', listenerMouseLeave);
|
|
37
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseenter', listenerMouseEnter);
|
|
38
|
+
};
|
|
39
|
+
}, []);
|
|
25
40
|
useEffect(function () {
|
|
26
41
|
if (!listenElement) return;
|
|
27
42
|
var debounceOver = debounce(mouseOver, 10);
|
|
28
43
|
var wrappedMouseUp = mouseUp;
|
|
29
44
|
var wrappedMouseDown = function wrappedMouseDown(e) {
|
|
30
|
-
if (!listenElement.contains(e.target)) {
|
|
45
|
+
if (!(listenElement !== null && listenElement !== void 0 && listenElement.contains(e.target))) {
|
|
31
46
|
loseFocus(e);
|
|
32
47
|
return;
|
|
33
48
|
}
|
|
34
49
|
mouseDown(e);
|
|
35
50
|
};
|
|
36
51
|
var wrappedMouseDoubleClick = wrapper(doubleClick);
|
|
52
|
+
handlerRef.current = {
|
|
53
|
+
mouseUp: wrappedMouseUp,
|
|
54
|
+
mouseDown: wrappedMouseDown,
|
|
55
|
+
doubleClick: wrappedMouseDoubleClick,
|
|
56
|
+
mouseOver: debounceOver,
|
|
57
|
+
mouseLeave: mouseLeave,
|
|
58
|
+
mouseEnter: mouseEnter,
|
|
59
|
+
loseFocus: loseFocus
|
|
60
|
+
};
|
|
37
61
|
document.addEventListener('mouseup', wrappedMouseUp);
|
|
38
62
|
document.addEventListener('mousedown', wrappedMouseDown);
|
|
39
63
|
document.addEventListener('dblclick', wrappedMouseDoubleClick);
|
|
40
|
-
listenElement.addEventListener('mouseover', debounceOver);
|
|
41
|
-
listenElement.addEventListener('mouseleave', mouseLeave);
|
|
42
|
-
listenElement.addEventListener('mouseenter', mouseEnter);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
listenElement.removeEventListener('mouseenter', mouseEnter);
|
|
47
|
-
document.removeEventListener('mousedown', wrappedMouseUp);
|
|
48
|
-
document.removeEventListener('mouseup', wrappedMouseDown);
|
|
49
|
-
document.removeEventListener('dblclick', wrappedMouseDoubleClick);
|
|
50
|
-
};
|
|
51
|
-
}, [listenElement, mouseUp, mouseDown, mouseOver, mouseLeave, doubleClick, loseFocus]);
|
|
52
|
-
};
|
|
64
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseover', debounceOver);
|
|
65
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseleave', mouseLeave);
|
|
66
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseenter', mouseEnter);
|
|
67
|
+
}, [listenElement]);
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=useMouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["debounce","useCallback","useEffect","useRef","useMouse","handler","listenElement","mouseUp","mouseDown","mouseOver","mouseLeave","mouseEnter","doubleClick","loseFocus","handlerRef","wrapper","handle","e","contains","target","current","_handlerRef$current","listenerMouseUp","listenerMouseDown","listenerMouseOver","listenerMouseLeave","listenerMouseEnter","listenerDoubleClick","document","removeEventListener","debounceOver","wrappedMouseUp","wrappedMouseDown","wrappedMouseDoubleClick","addEventListener"],"sources":["../../src/hooks/useMouse.tsx"],"sourcesContent":["import { debounce } from 'lodash';\nimport { useCallback, useEffect, useRef } from 'react';\n\ntype MouseHandler = {\n mouseUp: (value: MouseEvent) => void;\n mouseDown: (value: MouseEvent) => void;\n mouseOver: (value: MouseEvent) => void;\n mouseLeave: (value: MouseEvent) => void;\n mouseEnter: (value: MouseEvent) => void;\n doubleClick: (value: MouseEvent) => void;\n loseFocus: (value: MouseEvent) => void;\n};\n\nexport const useMouse = (\n handler: MouseHandler,\n listenElement: HTMLSpanElement | null,\n) => {\n const {\n mouseUp,\n mouseDown,\n mouseOver,\n mouseLeave,\n mouseEnter,\n doubleClick,\n loseFocus,\n } = handler;\n const handlerRef = useRef<MouseHandler | null>();\n\n // todo\n const wrapper = useCallback(\n (handle: (e: MouseEvent) => void) => {\n return (e: MouseEvent) => {\n if (!(listenElement as any).contains(e.target as HTMLElement)) {\n return;\n }\n handle(e);\n };\n },\n [listenElement],\n );\n\n useEffect(\n () => () => {\n if (!handlerRef.current) return;\n const {\n mouseUp: listenerMouseUp,\n mouseDown: listenerMouseDown,\n mouseOver: listenerMouseOver,\n mouseLeave: listenerMouseLeave,\n mouseEnter: listenerMouseEnter,\n doubleClick: listenerDoubleClick,\n } = handlerRef.current;\n document.removeEventListener('mouseup', listenerMouseUp);\n document.removeEventListener('mousedown', listenerMouseDown);\n document.removeEventListener('dblclick', listenerDoubleClick);\n listenElement?.removeEventListener('mouseover', listenerMouseOver);\n listenElement?.removeEventListener('mouseleave', listenerMouseLeave);\n listenElement?.removeEventListener('mouseenter', listenerMouseEnter);\n },\n [],\n );\n useEffect(() => {\n if (!listenElement) return;\n const debounceOver = debounce(mouseOver, 10);\n const wrappedMouseUp = mouseUp;\n const wrappedMouseDown = (e: MouseEvent) => {\n if (!listenElement?.contains(e.target as HTMLElement)) {\n loseFocus(e);\n return;\n }\n mouseDown(e);\n };\n const wrappedMouseDoubleClick = wrapper(doubleClick);\n handlerRef.current = {\n mouseUp: wrappedMouseUp,\n mouseDown: wrappedMouseDown,\n doubleClick: wrappedMouseDoubleClick,\n mouseOver: debounceOver,\n mouseLeave: mouseLeave,\n mouseEnter: mouseEnter,\n loseFocus,\n };\n\n document.addEventListener('mouseup', wrappedMouseUp);\n document.addEventListener('mousedown', wrappedMouseDown);\n document.addEventListener('dblclick', wrappedMouseDoubleClick);\n listenElement?.addEventListener('mouseover', debounceOver);\n listenElement?.addEventListener('mouseleave', mouseLeave);\n listenElement?.addEventListener('mouseenter', mouseEnter);\n }, [listenElement]);\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useState","useSetState","initialState","arguments","length","undefined","_useState","_useState2","_slicedToArray","state","setState","setMergeState","patch","prevState","_objectSpread"],"sources":["../../src/hooks/useSetState.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nconst useSetState = <T extends object>(\n initialState: T = {} as T,\n): [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void] => {\n const [state, setState] = useState<T>(initialState);\n\n const setMergeState = useCallback(\n (patch: Partial<T> | ((arg0: T) => Partial<T>)) => {\n setState((prevState) => ({\n ...prevState,\n ...(typeof patch === 'function' ? patch(prevState) : patch),\n }));\n },\n [],\n );\n\n return [state, setMergeState];\n};\n\nexport { useSetState };\n"],"mappings":";;;;;;;;;;;;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAE7C,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAEuD;EAAA,IADtEC,YAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEpB,IAAAG,SAAA,GAA0BN,QAAQ,CAAIE,YAAY,CAAC;IAAAK,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA5CG,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAMI,aAAa,GAAGZ,WAAW,CAC/B,UAACa,KAA6C,EAAK;IACjDF,QAAQ,CAAC,UAACG,SAAS;MAAA,OAAAC,aAAA,CAAAA,aAAA,KACdD,SAAS,GACR,OAAOD,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACC,SAAS,CAAC,GAAGD,KAAK;IAAA,CAC1D,CAAC;EACL,CAAC,EACD,EACF,CAAC;EAED,OAAO,CAACH,KAAK,EAAEE,aAAa,CAAC;AAC/B,CAAC;AAED,SAASV,WAAW"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","SheetEventContext","undefined","useSheetEvent"],"sources":["../../src/hooks/useSheetEvent.ts"],"sourcesContent":["import Events from 'events';\nimport { createContext, useContext } from 'react';\n\nexport const SheetEventContext = createContext<Events | undefined>(undefined);\n\nexport function useSheetEvent() {\n return useContext(SheetEventContext)!;\n}\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAEjD,OAAO,IAAMC,iBAAiB,gBAAGF,aAAa,CAAqBG,SAAS,CAAC;AAE7E,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,OAAOH,UAAU,CAACC,iBAAiB,CAAC;AACtC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./core/editor";
|
|
2
2
|
export { default as Sheet } from "./core/sheet";
|
|
3
3
|
export { default as Table } from "./core/table";
|
|
4
|
-
export { useSheetEvent } from "./hooks/useSheetEvent";
|
|
4
|
+
export { useSheetEvent } from "./hooks/useSheetEvent";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","Sheet","Table","useSheetEvent"],"sources":["../src/index.ts"],"sourcesContent":["export * from './core/editor';\nexport { default as Sheet } from './core/sheet';\nexport { default as Table } from './core/table';\nexport { useSheetEvent } from './hooks/useSheetEvent';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,KAAK;AACzB,SAASD,OAAO,IAAIE,KAAK;AACzB,SAASC,aAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatPrecision","value","precision","arguments","length","undefined","Number","isNaN","b","Math","pow","res","round","toFixed","thousandsSeparator","_String$split","String","split","_String$split2","_slicedToArray","integer","decimal","formattedData","replace","concat"],"sources":["../../src/standardUtils/index.ts"],"sourcesContent":["type ValueParams = string | number | null | undefined;\n\nexport const formatPrecision = (value: ValueParams, precision = 2) => {\n if (Number.isNaN(Number(value)) || value === null || value === 0) {\n return '0';\n }\n\n const b = 10 ** precision;\n const res = Math.round(Number(value) * b) / b;\n\n return res.toFixed(precision);\n};\n\n/**\n * 千位分隔符\n * @param value 需要千分符格式化的数据\n * @returns 含千分符的字符串\n */\nexport const thousandsSeparator = (value: string | number) => {\n const [integer, decimal] = String(value).split('.');\n let formattedData = integer.replace(/(\\d{1,3})(?=(\\d{3})+$)/g, '$1,');\n if (decimal && decimal.length) {\n formattedData += `.${decimal}`;\n }\n return formattedData;\n};\n"],"mappings":";;;;;;AAEA,OAAO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAkB,EAAoB;EAAA,IAAlBC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAC/D,IAAIG,MAAM,CAACC,KAAK,CAACD,MAAM,CAACL,KAAK,CAAC,CAAC,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,CAAC,EAAE;IAChE,OAAO,GAAG;EACZ;EAEA,IAAMO,CAAC,GAAAC,IAAA,CAAAC,GAAA,CAAG,EAAE,EAAIR,SAAS;EACzB,IAAMS,GAAG,GAAGF,IAAI,CAACG,KAAK,CAACN,MAAM,CAACL,KAAK,CAAC,GAAGO,CAAC,CAAC,GAAGA,CAAC;EAE7C,OAAOG,GAAG,CAACE,OAAO,CAACX,SAAS,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMY,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIb,KAAsB,EAAK;EAC5D,IAAAc,aAAA,GAA2BC,MAAM,CAACf,KAAK,CAAC,CAACgB,KAAK,CAAC,GAAG,CAAC;IAAAC,cAAA,GAAAC,cAAA,CAAAJ,aAAA;IAA5CK,OAAO,GAAAF,cAAA;IAAEG,OAAO,GAAAH,cAAA;EACvB,IAAII,aAAa,GAAGF,OAAO,CAACG,OAAO,CAAC,yBAAyB,EAAE,KAAK,CAAC;EACrE,IAAIF,OAAO,IAAIA,OAAO,CAACjB,MAAM,EAAE;IAC7BkB,aAAa,QAAAE,MAAA,CAAQH,OAAO,CAAE;EAChC;EACA,OAAOC,aAAa;AACtB,CAAC"}
|
package/dist/type/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SheetType","_SheetTableType","SheetTableType"],"sources":["../../src/type/index.ts"],"sourcesContent":["export * as SheetType from './sheet';\nexport * as SheetTableType from './sheetTable';\n"],"mappings":";uBAAYA,SAAS;AAAA,YAAAC,eAAA;AAAA,SAAAA,eAAA,IACTC,cAAc"}
|
package/dist/type/sheet.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CellAlign"],"sources":["../../src/type/sheet.ts"],"sourcesContent":["import type { EventEmitter } from 'events';\nimport { SheetTableType } from '.';\n\nexport enum CellAlign {\n left = 'left',\n center = 'center',\n right = 'right',\n unset = 'unset',\n}\n\nexport type Cell = {\n id: string;\n key?: string;\n readonly?: boolean;\n component?: CellViewer;\n editable?: boolean;\n colSpan?: number;\n rowSpan?: number;\n width?: number;\n record?: Record<string, unknown>;\n disableEvents?: boolean;\n dataEditor?: CellEditor;\n valueViewer?: CellViewer;\n className?: string;\n align?: CellAlign;\n fixed?: Omit<CellAlign, 'center'>;\n value?: string | number | null;\n};\n\nexport type CellViewerProps = {\n value: unknown;\n record?: Record<string, unknown>;\n row?: number;\n col?: number;\n cell?: Cell;\n};\n\nexport type CellEditorProps = {\n value: unknown;\n cell?: Cell;\n onChange: (value: unknown) => void;\n onConfirm: (value: unknown) => void;\n} & CellViewerProps;\n\nexport type CellEditor = React.FC<CellEditorProps> & {\n checker?: (value: unknown) => boolean;\n formatter?: (value: unknown) => unknown;\n};\nexport type CellViewer = React.FC<CellViewerProps>;\n\nexport type CellPosition = {\n row: number;\n col: number;\n};\n\nexport type CellData = {\n id: string;\n cell: Cell;\n row: number;\n col: number;\n value?: string;\n};\n\nexport type CellNavigable = (\n cell?: Cell,\n row?: number,\n col?: number,\n) => boolean;\nexport type CellChangeHandler = (\n cells: CellData[],\n additions?: CellData[],\n) => void;\n\nexport type RowGroup = {\n groupName: string;\n groupStart: number;\n groupEnd: number;\n};\nexport type RowGroupConfig = {\n groups: RowGroup[];\n groupOpen: boolean[];\n};\nexport type MenuRenderProps = {\n position?: { top: number; left: number };\n cell?: CellPosition;\n onContextMenu?: (event: any) => void;\n};\n\nexport type SheetInstance = {\n zoomTo: (row?: number) => void;\n pushToHistory: (value: OperateHistory) => void;\n selectRow: (row?: number) => void;\n popHistory: () => OperateHistory;\n};\n\nexport type SheetProps = {\n sheetInstance?: React.MutableRefObject<SheetInstance | null>;\n sheetRenderer?: any;\n rowRenderer?: any;\n className?: string;\n data: Cell[][];\n freePaste?: boolean;\n virtualized?: boolean;\n\n groupConfig?: RowGroupConfig;\n\n onCellsChanged?: CellChangeHandler;\n menuRenderer?: React.FC<MenuRenderProps>;\n onContextMenu?: (event: any) => void;\n\n scroll?: { x?: number | string; y?: number | string };\n rowClassName?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n children?: any[];\n};\n\nexport type SheetShell = Pick<SheetTableType.TableProps, 'columns'> & {\n className?: string;\n showGroup?: boolean;\n showSelect?: boolean;\n controlWidth?: number;\n controlProps?: {\n check?: {\n checked: boolean;\n indeterminate?: boolean;\n };\n group?: {\n open: boolean;\n };\n };\n};\n\nexport type SheetRow = {\n row: number;\n cells: Cell[];\n selected: boolean;\n children: React.ElementType;\n};\n\n// todo\nexport type windowAssertion = {\n clipboardData?: {\n getData?: (type: string) => string;\n setData?: (type: string, data: string) => string;\n };\n};\n\nexport type refAssertion = {\n contains?: (target: EventTarget | null) => boolean;\n focus?: () => boolean;\n} & HTMLSpanElement;\n\nexport type AttributesRenderer = (\n cell: Cell,\n row: number,\n col: number,\n) => Record<string, string>;\n\nexport type CellProps = {\n row: number;\n col: number;\n cell: Cell;\n cellRenderer?: React.ElementType;\n dataEditor?: React.ElementType;\n valueViewer?: React.ElementType;\n attributesRenderer?: AttributesRenderer;\n};\n\nexport type UpdateStateType = {\n eventBus: EventEmitter;\n start: CellPosition;\n end: CellPosition;\n selecting: boolean;\n forceEdit: boolean;\n clear: CellPosition;\n editing: CellPosition & { value?: string };\n history: OperateHistory[];\n freePaste?: boolean;\n data: Cell[][];\n mouseDown: boolean;\n lastSelected?: {\n start?: CellPosition;\n end?: CellPosition;\n };\n groupConfig?: {\n groups: RowGroup[];\n groupOpen: boolean[];\n };\n lastFocus: { id: string; col: number }[];\n lastEditing: CellPosition & { confirm?: boolean };\n cellChangeHandler: (cells: CellData[], additions?: CellData[]) => void;\n};\nexport type UpdateFocus = (start: CellPosition, end: CellPosition) => void;\n\nexport type Options<T = any> = {\n value: string;\n label: string;\n} & T;\n\nexport type OptionsType = Options<{\n disabled?: boolean;\n children?: OptionsType[];\n}>;\n\nexport type OperateHistory = {\n changes: Partial<CellData>[];\n type: OperateType;\n\n rowInfo?: {\n newRow?: number;\n deleteRow?: number;\n };\n extraInfo?: Record<string, unknown>;\n};\n\nexport type OperateType =\n // 前三个Type 直接调用 onCellChange\n | 'Edit'\n | 'Paste'\n | 'Delete'\n // 后三个单独Event 处理\n | 'DeleteRow'\n | 'NewRow'\n | 'Custom';\n"],"mappings":"AAGA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAyIrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { SheetType } from '.';
|
|
3
3
|
export declare type refAssertion = {
|
|
4
4
|
contains?: (target: EventTarget | null) => boolean;
|
|
@@ -10,7 +10,7 @@ export declare type ColumnProps = {
|
|
|
10
10
|
fixed?: Omit<CellFixed, 'center'>;
|
|
11
11
|
width?: string | number;
|
|
12
12
|
dataIndex?: string;
|
|
13
|
-
title: string;
|
|
13
|
+
title: string | ReactNode | ReactNode[];
|
|
14
14
|
key?: string;
|
|
15
15
|
editable?: boolean;
|
|
16
16
|
readonly?: boolean | ((value: unknown, record: Record<string, unknown>, index: number) => boolean);
|
package/dist/type/sheetTable.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=sheetTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/type/sheetTable.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { SheetType } from '.';\n\nexport type refAssertion = {\n contains?: (target: EventTarget | null) => boolean;\n focus?: () => boolean;\n} & HTMLTableSectionElement;\n\nexport type CellFixed = SheetType.CellAlign;\n\nexport type ColumnProps = {\n align?: SheetType.CellAlign;\n fixed?: Omit<CellFixed, 'center'>;\n width?: string | number;\n dataIndex?: string;\n title: string | ReactNode | ReactNode[];\n key?: string;\n editable?: boolean;\n readonly?:\n | boolean\n | ((\n value: unknown,\n record: Record<string, unknown>,\n index: number,\n ) => boolean);\n render?: SheetType.CellViewer;\n editor?: SheetType.CellEditor;\n};\nexport type TableChange = {\n row: number;\n id: string;\n key: string;\n value: unknown;\n};\nexport type TableRowSelection = {\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n};\nexport type TableGroupConfig = {\n defaultOpen: boolean;\n};\nexport type TableProps = {\n className?: string;\n sheetInstance?: React.MutableRefObject<SheetType.SheetInstance | null>;\n columns: ColumnProps[];\n virtualized?: boolean;\n dataSource: Record<string, unknown>[];\n rowClassName?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n rowKey?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n scroll?: { x?: number | string; y?: number | string };\n sticky?: boolean;\n draggable?: boolean;\n rowSelection?: {\n rowSelected: string[];\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n };\n groupConfig?: {\n rowGroup: TableGroupConfig;\n onChange: (value: TableGroupConfig) => void;\n };\n\n onChange: (changes: TableChange[]) => void;\n handleAdd?: () => void;\n eventHandler?: Record<\n 'btn-click' | 'cell-edit' | 'cell-switch' | string,\n undefined | ((value: unknown) => void)\n >;\n};\n"],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhenliang/sheet",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "A react library developed with dumi",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"@commitlint/cli": "^17.1.2",
|
|
57
57
|
"@commitlint/config-conventional": "^17.1.0",
|
|
58
58
|
"@types/lodash": "^4.14.195",
|
|
59
|
-
"@types/react": "^
|
|
60
|
-
"@types/react-dom": "^
|
|
59
|
+
"@types/react": "^17.0.0",
|
|
60
|
+
"@types/react-dom": "^17.0.0",
|
|
61
61
|
"@umijs/lint": "^4.0.0",
|
|
62
62
|
"dumi": "^2.2.0",
|
|
63
63
|
"eslint": "^8.23.0",
|
package/README_PROJECT.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# @zhenliang/sheet
|
|
2
|
-
|
|
3
|
-
[](https://npmjs.org/package/@zhenliang/sheet)
|
|
4
|
-
[](https://npmjs.org/package/@zhenliang/sheet)
|
|
5
|
-
|
|
6
|
-
A react library developed with dumi
|
|
7
|
-
|
|
8
|
-
## Usage
|
|
9
|
-
|
|
10
|
-
TODO
|
|
11
|
-
|
|
12
|
-
## Options
|
|
13
|
-
|
|
14
|
-
TODO
|
|
15
|
-
|
|
16
|
-
## Development
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
# install dependencies
|
|
20
|
-
$ pnpm install
|
|
21
|
-
|
|
22
|
-
# develop library by docs demo
|
|
23
|
-
$ pnpm start
|
|
24
|
-
|
|
25
|
-
# build library source code
|
|
26
|
-
$ pnpm run build
|
|
27
|
-
|
|
28
|
-
# build library source code in watch mode
|
|
29
|
-
$ pnpm run build:watch
|
|
30
|
-
|
|
31
|
-
# build docs
|
|
32
|
-
$ pnpm run docs:build
|
|
33
|
-
|
|
34
|
-
# check your project for potential problems
|
|
35
|
-
$ pnpm run doctor
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## LICENSE
|
|
39
|
-
|
|
40
|
-
MIT
|