@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BtnViewer","CheckViewer","EditViewer","GroupViewer","SwitchViewer"],"sources":["../../../src/core/viewer/index.ts"],"sourcesContent":["export { BtnViewer } from './btnViewer';\nexport { CheckViewer } from './checkViewer';\nexport { EditViewer } from './editViewer';\nexport { GroupViewer } from './groupViewer';\nexport { SwitchViewer } from './switchViewer';\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,WAAW;AACpB,SAASC,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSheetEvent","Switch","useCallback","jsx","_jsx","SwitchViewer","props","value","row","record","eventBus","handleChange","emit","checked","onChange"],"sources":["../../../../src/core/viewer/switchViewer/index.tsx"],"sourcesContent":["import { useSheetEvent } from '@zhenliang/sheet/hooks';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { Switch } from 'antd';\nimport { useCallback } from 'react';\n\nexport const SwitchViewer: SheetType.CellViewer = (props) => {\n const { value, row, record } = props;\n const eventBus = useSheetEvent();\n const handleChange = useCallback(() => {\n if (!eventBus) return;\n eventBus.emit('cell-switch', { row, record, value: !value });\n }, [eventBus, row, record, value]);\n return <Switch checked={value as boolean} onChange={handleChange} />;\n};\n"],"mappings":"AAAA,SAASA,aAAa;AAEtB,SAASC,MAAM,QAAQ,MAAM;AAC7B,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,OAAO,IAAMC,YAAkC,GAAG,SAArCA,YAAkCA,CAAIC,KAAK,EAAK;EAC3D,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;IACfA,QAAQ,CAACE,IAAI,CAAC,aAAa,EAAE;MAAEJ,GAAG,EAAHA,GAAG;MAAEC,MAAM,EAANA,MAAM;MAAEF,KAAK,EAAE,CAACA;IAAM,CAAC,CAAC;EAC9D,CAAC,EAAE,CAACG,QAAQ,EAAEF,GAAG,EAAEC,MAAM,EAAEF,KAAK,CAAC,CAAC;EAClC,oBAAOH,IAAA,CAACH,MAAM;IAACY,OAAO,EAAEN,KAAiB;IAACO,QAAQ,EAAEH;EAAa,CAAE,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Modal","cloneDeep","random","React","useCallback","useRef","useState","DateEditor","getCascaderEditor","getNumberEditor","getSelectEditor","Table","BtnViewer","EditViewer","SwitchViewer","jsx","_jsx","Precision2MoneyEditor","max","min","precision","addonAfter","Precision2Number","TypeSelector","value","label","CascaderSelector","children","columns","title","width","dataIndex","key","fixed","render","editor","readonly","record","row","editable","align","data","name","date","open","age","address1","address2","select","address","App","_useState","_useState2","_slicedToArray","state","setState","sheetInstance","handleChange","changes","newState","forEach","change","handleAdd","_sheetInstance$curren","current","pushToHistory","type","rowInfo","newRow","length","concat","_toConsumableArray","String","dataSource","scroll","x","onChange","eventHandler","reverse","_ref","console","log","splice","cellEdit","_ref2","cellValue","confirm","btnClick","_ref3","cellSwitch","_ref4","_objectSpread"],"sources":["../../src/example/antComponent.tsx"],"sourcesContent":["import { Modal } from 'antd';\nimport { cloneDeep, random } from 'lodash';\nimport React, { useCallback, useRef, useState } from 'react';\nimport {\n DateEditor,\n getCascaderEditor,\n getNumberEditor,\n getSelectEditor,\n} from '../core/editor';\nimport Table from '../core/table';\nimport { BtnViewer } from '../core/viewer/btnViewer';\nimport { EditViewer } from '../core/viewer/editViewer';\nimport { SwitchViewer } from '../core/viewer/switchViewer';\nimport { SheetTableType, SheetType } from '../type';\n\nconst Precision2MoneyEditor = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n addonAfter: '元',\n});\nconst Precision2Number = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n});\n\nconst TypeSelector = getSelectEditor([\n {\n value: '1',\n label: '111111',\n },\n {\n value: '2',\n label: '222222',\n },\n {\n value: '3',\n label: '333333',\n },\n]);\n\nconst CascaderSelector = getCascaderEditor([\n {\n value: 'zhejiang',\n label: 'Zhejiang',\n children: [\n {\n value: 'hangzhou',\n label: 'Hangzhou',\n children: [\n {\n value: 'xihu',\n label: 'West Lake',\n },\n ],\n },\n ],\n },\n {\n value: 'jiangsu',\n label: 'Jiangsu',\n children: [\n {\n value: 'nanjing',\n label: 'Nanjing',\n children: [\n {\n value: 'zhonghuamen',\n label: 'Zhong Hua Men',\n },\n ],\n },\n ],\n },\n]);\n\nconst columns: SheetTableType.ColumnProps[] = [\n {\n title: 'Full Name',\n width: 100,\n dataIndex: 'open',\n key: 'open',\n fixed: 'left',\n render: SwitchViewer,\n },\n {\n title: 'Age',\n width: 100,\n dataIndex: 'age',\n key: 'age',\n editor: Precision2Number,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'price',\n width: 100,\n dataIndex: 'price',\n key: 'price',\n editor: Precision2MoneyEditor,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'date',\n width: 150,\n dataIndex: 'date',\n key: 'date',\n editor: DateEditor,\n // fixed: 'left',\n },\n {\n title: 'select',\n width: 200,\n dataIndex: 'select',\n editor: TypeSelector,\n },\n {\n title: 'Column 2',\n width: 200,\n dataIndex: 'address1',\n key: '2',\n editor: CascaderSelector,\n },\n {\n title: 'Column 3',\n width: 200,\n dataIndex: 'address2',\n key: '3',\n editable: false,\n render: EditViewer,\n },\n { title: 'Column 4', width: 200, dataIndex: 'address3', key: '4' },\n { title: 'Column 5', width: 200, dataIndex: 'address4', key: '5' },\n { title: 'Column 6', width: 200, dataIndex: 'address5', key: '6' },\n { title: 'Column 7', width: 200, dataIndex: 'address6', key: '7' },\n { title: 'Column 8', width: 200, dataIndex: 'address7', key: '8' },\n {\n title: 'Action',\n align: 'center',\n key: 'operation',\n fixed: 'right',\n width: 150,\n render: BtnViewer,\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n date: '2020-01-01',\n open: true,\n age: 32,\n address1: 'West Lake',\n address2: '打开对话框1',\n select: '111111',\n address: 'New York Park',\n },\n {\n key: '2',\n name: 'Jim Green',\n open: false,\n date: '1990-01-01',\n address2: '打开对话框2',\n age: 40,\n select: '222222',\n address: 'London Park',\n },\n];\n\nconst App: React.FC = () => {\n const [state, setState] = useState(data);\n\n const sheetInstance = useRef<SheetType.SheetInstance | null>(null);\n const handleChange = useCallback(\n (changes: SheetTableType.TableChange[]) => {\n const newState: any = cloneDeep(state);\n changes.forEach((change) => {\n const { row, key, value } = change;\n newState[row][key] = value;\n });\n setState(newState);\n },\n [state],\n );\n const handleAdd = useCallback(() => {\n const newState: any = cloneDeep(state);\n sheetInstance.current?.pushToHistory({\n type: 'NewRow',\n changes: [],\n rowInfo: { newRow: newState.length },\n });\n setState([\n ...newState,\n {\n key: String(random()),\n name: 'new',\n open: false,\n date: '1990-01-01',\n address2: `打开对话框2${newState.length + 2}`,\n age: 40 + newState.length,\n select: '111111',\n address: 'London Park',\n },\n ]);\n }, [state]);\n return (\n <Table\n sheetInstance={sheetInstance}\n columns={columns}\n dataSource={state}\n scroll={{ x: '100%' }}\n onChange={handleChange}\n handleAdd={handleAdd}\n eventHandler={{\n reverse: (value: unknown) => {\n // 处理 行列删除自定义事件\n const { type, rowInfo } = value as SheetType.OperateHistory;\n if (type === 'Custom') {\n console.log('操作');\n } else if (type === 'NewRow') {\n const newState = [...state];\n newState.splice(rowInfo?.newRow as number, 1);\n setState(newState);\n }\n },\n 'cell-edit': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n Modal.confirm({\n title: `${row} - ${cellValue}编辑点什么`,\n });\n },\n 'btn-click': (value: unknown) => {\n const { row, type } = value as {\n row?: number;\n type: 'copy' | 'delete';\n };\n Modal.confirm({\n title: `${row} - ${type}提示点什么`,\n });\n },\n 'cell-switch': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n const newState = [...state];\n newState[row] = {\n ...newState[row],\n open: !cellValue,\n };\n\n setState(newState);\n },\n }}\n />\n );\n};\n\nexport default App;\n"],"mappings":"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"}
|
package/dist/example/basic.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Table","Space","Tag","React","useCallback","useState","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","columns","title","dataIndex","key","editable","render","_ref","value","children","_ref2","tags","record","map","tag","color","length","toUpperCase","_ref3","size","name","data","age","address","App","_useState","_useState2","_slicedToArray","dataSource","setData","onChange","changes","newData","_toConsumableArray","forEach","_ref4","_String","row","_objectSpread","_defineProperty","String","split"],"sources":["../../src/example/basic.tsx"],"sourcesContent":["import Table from '@zhenliang/sheet/core/table';\nimport type { SheetTableType } from '@zhenliang/sheet/type';\nimport { Space, Tag } from 'antd';\nimport 'antd/dist/antd.css';\nimport React, { useCallback, useState } from 'react';\n\nconst columns: SheetTableType.ColumnProps[] = [\n {\n title: 'Name',\n dataIndex: 'name',\n key: 'name',\n editable: false,\n render: ({ value }) => <a>{value as string}</a>,\n },\n {\n title: 'Age',\n dataIndex: 'age',\n key: 'age',\n },\n {\n title: 'Address',\n editable: false,\n dataIndex: 'address',\n key: 'address',\n },\n {\n title: 'Tags',\n key: 'tags',\n dataIndex: 'tags',\n render: ({ record: { tags } }: any) => (\n <>\n {(tags as string[])?.map((tag) => {\n let color = tag.length > 5 ? 'geekblue' : 'green';\n if (tag === 'loser') {\n color = 'volcano';\n }\n return (\n <Tag color={color} key={tag}>\n {tag.toUpperCase()}\n </Tag>\n );\n })}\n </>\n ),\n },\n {\n title: 'Action',\n key: 'action',\n editable: false,\n render: ({ record }: any) => (\n <Space size=\"middle\">\n <a>Invite {record.name as string}</a>\n <a>Delete</a>\n </Space>\n ),\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n age: 32,\n address: 'New York No. 1 Lake Park',\n tags: ['nice', 'developer'],\n },\n {\n key: '2',\n name: 'Jim Green',\n age: 42,\n address: 'London No. 1 Lake Park',\n tags: ['loser'],\n },\n {\n key: '3',\n name: 'Joe Black',\n age: 32,\n address: 'Sidney No. 1 Lake Park',\n tags: ['cool', 'teacher'],\n },\n];\n\nconst App: React.FC = () => {\n const [dataSource, setData] = useState(data);\n\n const onChange = useCallback(\n (changes: SheetTableType.TableChange[]) => {\n const newData = [...dataSource];\n changes.forEach(({ row, key, value }) => {\n newData[row] = {\n ...newData[row],\n [key]: key === 'tags' ? String(value as string)?.split(',') : value,\n };\n });\n setData(newData);\n },\n [dataSource],\n );\n\n return (\n <Table columns={columns} dataSource={dataSource} onChange={onChange} />\n );\n};\n\nexport default App;\n"],"mappings":"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"}
|
package/dist/example/ellipsis.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Table","jsx","_jsx","columns","title","dataIndex","key","render","_ref","value","children","width","data","name","age","address","tags","App","dataSource","onChange"],"sources":["../../src/example/ellipsis.tsx"],"sourcesContent":["import React from 'react';\nimport Table from '../core/table';\n\nconst columns: any = [\n {\n title: 'Name',\n dataIndex: 'name',\n key: 'name',\n render: ({ value }: { value: string }) => <a>{value}</a>,\n width: 150,\n },\n {\n title: 'Age',\n dataIndex: 'age',\n key: 'age',\n width: 80,\n },\n {\n title: 'Address',\n dataIndex: 'address',\n key: 'address 1',\n },\n {\n title: 'Long Column',\n dataIndex: 'address',\n key: 'address 2',\n },\n {\n title: 'Long Column Long Column',\n dataIndex: 'address',\n key: 'address 3',\n },\n {\n title: 'Long Column',\n dataIndex: 'address',\n key: 'address 4',\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n age: 32,\n address: 'New York No. 1 Lake Park, New York No. 1 Lake Park',\n tags: ['nice', 'developer'],\n },\n {\n key: '2',\n name: 'Jim Green',\n age: 42,\n address: 'London No. 2 Lake Park, London No. 2 Lake Park',\n tags: ['loser'],\n },\n {\n key: '3',\n name: 'Joe Black',\n age: 32,\n address: 'Sidney No. 1 Lake Park, Sidney No. 1 Lake Park',\n tags: ['cool', 'teacher'],\n },\n];\n\nconst App: React.FC = () => (\n <Table columns={columns} dataSource={data} onChange={() => {}} />\n);\n\nexport default App;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAElC,IAAMC,OAAY,GAAG,CACnB;EACEC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,MAAM;EACjBC,GAAG,EAAE,MAAM;EACXC,MAAM,EAAE,SAAAA,OAAAC,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAA,oBAA0BP,IAAA;MAAAQ,QAAA,EAAID;IAAK,CAAI,CAAC;EAAA;EACxDE,KAAK,EAAE;AACT,CAAC,EACD;EACEP,KAAK,EAAE,KAAK;EACZC,SAAS,EAAE,KAAK;EAChBC,GAAG,EAAE,KAAK;EACVK,KAAK,EAAE;AACT,CAAC,EACD;EACEP,KAAK,EAAE,SAAS;EAChBC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,EACD;EACEF,KAAK,EAAE,aAAa;EACpBC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,EACD;EACEF,KAAK,EAAE,yBAAyB;EAChCC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,EACD;EACEF,KAAK,EAAE,aAAa;EACpBC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,CACF;AAED,IAAMM,IAAI,GAAG,CACX;EACEN,GAAG,EAAE,GAAG;EACRO,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,oDAAoD;EAC7DC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW;AAC5B,CAAC,EACD;EACEV,GAAG,EAAE,GAAG;EACRO,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,gDAAgD;EACzDC,IAAI,EAAE,CAAC,OAAO;AAChB,CAAC,EACD;EACEV,GAAG,EAAE,GAAG;EACRO,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,gDAAgD;EACzDC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS;AAC1B,CAAC,CACF;AAED,IAAMC,GAAa,GAAG,SAAhBA,GAAaA,CAAA;EAAA,oBACjBf,IAAA,CAACF,KAAK;IAACG,OAAO,EAAEA,OAAQ;IAACe,UAAU,EAAEN,IAAK;IAACO,QAAQ,EAAE,SAAAA,SAAA,EAAM,CAAC;EAAE,CAAE,CAAC;AAAA,CAClE;AAED,eAAeF,GAAG"}
|
package/dist/example/fixed.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Table","jsx","_jsx","columns","title","width","dataIndex","key","fixed","render","children","data","name","age","address","App","dataSource","scroll","x","onChange"],"sources":["../../src/example/fixed.tsx"],"sourcesContent":["import React from 'react';\nimport Table from '../core/table';\n\nconst columns: any = [\n {\n title: 'Full Name',\n width: 100,\n dataIndex: 'name',\n key: 'name',\n fixed: 'left',\n },\n {\n title: 'Age',\n width: 100,\n dataIndex: 'age',\n key: 'age',\n // fixed: 'left',\n },\n {\n title: 'Column 1',\n\n width: 200,\n dataIndex: 'address',\n key: '1',\n },\n { title: 'Column 2', width: 200, dataIndex: 'address', key: '2' },\n { title: 'Column 3', width: 200, dataIndex: 'address', key: '3' },\n { title: 'Column 4', width: 200, dataIndex: 'address', key: '4' },\n { title: 'Column 5', width: 200, dataIndex: 'address', key: '5' },\n { title: 'Column 6', width: 200, dataIndex: 'address', key: '6' },\n { title: 'Column 7', width: 200, dataIndex: 'address', key: '7' },\n { title: 'Column 8', width: 200, dataIndex: 'address', key: '8' },\n {\n title: 'Action',\n key: 'operation',\n fixed: 'right',\n width: 100,\n render: () => <a>action</a>,\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n age: 32,\n address: 'New York Park',\n },\n {\n key: '2',\n name: 'Jim Green',\n age: 40,\n address: 'London Park',\n },\n];\n\nconst App: React.FC = () => (\n <Table\n columns={columns}\n dataSource={data}\n scroll={{ x: '100%' }}\n onChange={() => {}}\n />\n);\n\nexport default App;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAElC,IAAMC,OAAY,GAAG,CACnB;EACEC,KAAK,EAAE,WAAW;EAClBC,KAAK,EAAE,GAAG;EACVC,SAAS,EAAE,MAAM;EACjBC,GAAG,EAAE,MAAM;EACXC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,KAAK,EAAE,KAAK;EACZC,KAAK,EAAE,GAAG;EACVC,SAAS,EAAE,KAAK;EAChBC,GAAG,EAAE;EACL;AACF,CAAC,EACD;EACEH,KAAK,EAAE,UAAU;EAEjBC,KAAK,EAAE,GAAG;EACVC,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,EACD;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EAAEH,KAAK,EAAE,UAAU;EAAEC,KAAK,EAAE,GAAG;EAAEC,SAAS,EAAE,SAAS;EAAEC,GAAG,EAAE;AAAI,CAAC,EACjE;EACEH,KAAK,EAAE,QAAQ;EACfG,GAAG,EAAE,WAAW;EAChBC,KAAK,EAAE,OAAO;EACdH,KAAK,EAAE,GAAG;EACVI,MAAM,EAAE,SAAAA,OAAA;IAAA,oBAAMP,IAAA;MAAAQ,QAAA,EAAG;IAAM,CAAG,CAAC;EAAA;AAC7B,CAAC,CACF;AAED,IAAMC,IAAI,GAAG,CACX;EACEJ,GAAG,EAAE,GAAG;EACRK,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,EACD;EACEP,GAAG,EAAE,GAAG;EACRK,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,CACF;AAED,IAAMC,GAAa,GAAG,SAAhBA,GAAaA,CAAA;EAAA,oBACjBb,IAAA,CAACF,KAAK;IACJG,OAAO,EAAEA,OAAQ;IACjBa,UAAU,EAAEL,IAAK;IACjBM,MAAM,EAAE;MAAEC,CAAC,EAAE;IAAO,CAAE;IACtBC,QAAQ,EAAE,SAAAA,SAAA,EAAM,CAAC;EAAE,CACpB,CAAC;AAAA,CACH;AAED,eAAeJ,GAAG"}
|
package/dist/example/group.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Table","jsx","_jsx","columns","title","dataIndex","key","readonly","value","record","index","console","log","editable","render","children","data","name","age","address","App","draggable","scroll","x","dataSource","onChange"],"sources":["../../src/example/group.tsx"],"sourcesContent":["import Table from '../core/table';\n\nconst columns = [\n { title: 'Name', dataIndex: 'name', key: 'name' },\n { title: 'Age', dataIndex: 'age', key: 'age' },\n {\n title: 'Address',\n readonly: (value: unknown, record: any, index: number) => {\n console.log(index);\n return index % 2 === 0;\n },\n dataIndex: 'address',\n key: 'address',\n },\n {\n title: 'Action',\n dataIndex: '',\n key: 'x',\n editable: false,\n render: () => <a>Delete</a>,\n },\n];\n\nconst data = [\n {\n key: 1,\n name: 'John Brown',\n age: 32,\n address: 'New York No. 1 Lake Park',\n children: [{ key: '1-1' }, { key: '1-2' }],\n },\n {\n key: 2,\n name: 'Jim Green',\n age: 42,\n address: 'London No. 1 Lake Park',\n children: [{ key: '2-1' }, { key: '2-2' }],\n },\n {\n key: 3,\n name: 'Not Expandable',\n age: 29,\n address: 'Jiangsu No. 1 Lake Park',\n },\n {\n key: 4,\n name: 'Joe Black',\n age: 32,\n address: 'Sidney No. 1 Lake Park',\n children: [{ key: '4-1' }, { key: '4-2' }],\n },\n];\n\nconst App: React.FC = () => (\n <Table\n draggable\n scroll={{ x: '100%' }}\n columns={columns}\n // expandable={{\n // expandedRowRender: (record) => (\n // <p style={{ margin: 0 }}>{record.description}</p>\n // ),\n // rowExpandable: (record) => record.name !== 'Not Expandable',\n // }}\n dataSource={data}\n onChange={() => {}}\n />\n);\n\nexport default App;\n"],"mappings":"AAAA,OAAOA,KAAK;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAElC,IAAMC,OAAO,GAAG,CACd;EAAEC,KAAK,EAAE,MAAM;EAAEC,SAAS,EAAE,MAAM;EAAEC,GAAG,EAAE;AAAO,CAAC,EACjD;EAAEF,KAAK,EAAE,KAAK;EAAEC,SAAS,EAAE,KAAK;EAAEC,GAAG,EAAE;AAAM,CAAC,EAC9C;EACEF,KAAK,EAAE,SAAS;EAChBG,QAAQ,EAAE,SAAAA,SAACC,KAAc,EAAEC,MAAW,EAAEC,KAAa,EAAK;IACxDC,OAAO,CAACC,GAAG,CAACF,KAAK,CAAC;IAClB,OAAOA,KAAK,GAAG,CAAC,KAAK,CAAC;EACxB,CAAC;EACDL,SAAS,EAAE,SAAS;EACpBC,GAAG,EAAE;AACP,CAAC,EACD;EACEF,KAAK,EAAE,QAAQ;EACfC,SAAS,EAAE,EAAE;EACbC,GAAG,EAAE,GAAG;EACRO,QAAQ,EAAE,KAAK;EACfC,MAAM,EAAE,SAAAA,OAAA;IAAA,oBAAMZ,IAAA;MAAAa,QAAA,EAAG;IAAM,CAAG,CAAC;EAAA;AAC7B,CAAC,CACF;AAED,IAAMC,IAAI,GAAG,CACX;EACEV,GAAG,EAAE,CAAC;EACNW,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,0BAA0B;EACnCJ,QAAQ,EAAE,CAAC;IAAET,GAAG,EAAE;EAAM,CAAC,EAAE;IAAEA,GAAG,EAAE;EAAM,CAAC;AAC3C,CAAC,EACD;EACEA,GAAG,EAAE,CAAC;EACNW,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,wBAAwB;EACjCJ,QAAQ,EAAE,CAAC;IAAET,GAAG,EAAE;EAAM,CAAC,EAAE;IAAEA,GAAG,EAAE;EAAM,CAAC;AAC3C,CAAC,EACD;EACEA,GAAG,EAAE,CAAC;EACNW,IAAI,EAAE,gBAAgB;EACtBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,EACD;EACEb,GAAG,EAAE,CAAC;EACNW,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,wBAAwB;EACjCJ,QAAQ,EAAE,CAAC;IAAET,GAAG,EAAE;EAAM,CAAC,EAAE;IAAEA,GAAG,EAAE;EAAM,CAAC;AAC3C,CAAC,CACF;AAED,IAAMc,GAAa,GAAG,SAAhBA,GAAaA,CAAA;EAAA,oBACjBlB,IAAA,CAACF,KAAK;IACJqB,SAAS;IACTC,MAAM,EAAE;MAAEC,CAAC,EAAE;IAAO,CAAE;IACtBpB,OAAO,EAAEA;IACT;IACA;IACA;IACA;IACA;IACA;IAAA;IACAqB,UAAU,EAAER,IAAK;IACjBS,QAAQ,EAAE,SAAAA,SAAA,EAAM,CAAC;EAAE,CACpB,CAAC;AAAA,CACH;AAED,eAAeL,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Table","React","useCallback","useState","jsx","_jsx","columns","title","dataIndex","render","_ref","value","children","data","key","name","age","address","App","_useState","_useState2","_slicedToArray","dataSource","setData","onChange","changes","newData","_toConsumableArray","forEach","_ref2","row","_objectSpread","_defineProperty","split","handleRowChange","rowKey","rowSelection","rowSelected"],"sources":["../../src/example/selection.tsx"],"sourcesContent":["import Table from '@zhenliang/sheet/core/table';\nimport type { SheetTableType } from '@zhenliang/sheet/type';\nimport 'antd/dist/antd.css';\nimport React, { useCallback, useState } from 'react';\n\nconst columns: SheetTableType.ColumnProps[] = [\n {\n title: 'Name',\n dataIndex: 'name',\n render: ({ value }) => <a>{value as string}</a>,\n },\n {\n title: 'Age',\n dataIndex: 'age',\n },\n {\n title: 'Address',\n dataIndex: 'address',\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n age: 32,\n address: 'New York No. 1 Lake Park',\n },\n {\n key: '2',\n name: 'Jim Green',\n age: 42,\n address: 'London No. 1 Lake Park',\n },\n {\n key: '3',\n name: 'Joe Black',\n age: 32,\n address: 'Sidney No. 1 Lake Park',\n },\n {\n key: '4',\n name: 'Disabled User',\n age: 99,\n address: 'Sidney No. 1 Lake Park',\n },\n];\n\nconst App: React.FC = () => {\n const [dataSource, setData] = useState(data);\n\n const onChange = useCallback(\n (changes: SheetTableType.TableChange[]) => {\n const newData = [...dataSource];\n changes.forEach(({ row, key, value }) => {\n newData[row] = {\n ...newData[row],\n [key]: key === 'tags' ? (value as string).split(',') : value,\n };\n });\n setData(newData);\n },\n [dataSource],\n );\n const handleRowChange = useCallback(() => {}, []);\n\n return (\n <Table\n columns={columns}\n rowKey=\"key\"\n dataSource={dataSource}\n onChange={onChange}\n rowSelection={{ rowSelected: [], onChange: handleRowChange }}\n />\n );\n};\n\nexport default App;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK;AAEZ,OAAO,oBAAoB;AAC3B,OAAOC,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErD,IAAMC,OAAqC,GAAG,CAC5C;EACEC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,MAAM;EACjBC,MAAM,EAAE,SAAAA,OAAAC,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAA,oBAAON,IAAA;MAAAO,QAAA,EAAID;IAAK,CAAc,CAAC;EAAA;AACjD,CAAC,EACD;EACEJ,KAAK,EAAE,KAAK;EACZC,SAAS,EAAE;AACb,CAAC,EACD;EACED,KAAK,EAAE,SAAS;EAChBC,SAAS,EAAE;AACb,CAAC,CACF;AAED,IAAMK,IAAI,GAAG,CACX;EACEC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,EACD;EACEH,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,EACD;EACEH,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,EACD;EACEH,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,eAAe;EACrBC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE;AACX,CAAC,CACF;AAED,IAAMC,GAAa,GAAG,SAAhBA,GAAaA,CAAA,EAAS;EAC1B,IAAAC,SAAA,GAA8BhB,QAAQ,CAACU,IAAI,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAArCG,UAAU,GAAAF,UAAA;IAAEG,OAAO,GAAAH,UAAA;EAE1B,IAAMI,QAAQ,GAAGtB,WAAW,CAC1B,UAACuB,OAAqC,EAAK;IACzC,IAAMC,OAAO,GAAAC,kBAAA,CAAOL,UAAU,CAAC;IAC/BG,OAAO,CAACG,OAAO,CAAC,UAAAC,KAAA,EAAyB;MAAA,IAAtBC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEhB,GAAG,GAAAe,KAAA,CAAHf,GAAG;QAAEH,KAAK,GAAAkB,KAAA,CAALlB,KAAK;MAChCe,OAAO,CAACI,GAAG,CAAC,GAAAC,aAAA,CAAAA,aAAA,KACPL,OAAO,CAACI,GAAG,CAAC,OAAAE,eAAA,KACdlB,GAAG,EAAGA,GAAG,KAAK,MAAM,GAAIH,KAAK,CAAYsB,KAAK,CAAC,GAAG,CAAC,GAAGtB,KAAK,EAC7D;IACH,CAAC,CAAC;IACFY,OAAO,CAACG,OAAO,CAAC;EAClB,CAAC,EACD,CAACJ,UAAU,CACb,CAAC;EACD,IAAMY,eAAe,GAAGhC,WAAW,CAAC,YAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAEjD,oBACEG,IAAA,CAACL,KAAK;IACJM,OAAO,EAAEA,OAAQ;IACjB6B,MAAM,EAAC,KAAK;IACZb,UAAU,EAAEA,UAAW;IACvBE,QAAQ,EAAEA,QAAS;IACnBY,YAAY,EAAE;MAAEC,WAAW,EAAE,EAAE;MAAEb,QAAQ,EAAEU;IAAgB;EAAE,CAC9D,CAAC;AAEN,CAAC;AAED,eAAehB,GAAG"}
|
package/dist/example/sheet.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MinusCircleOutlined","PlusCircleOutlined","Sheet","Tooltip","cloneDeep","isNil","random","range","React","useCallback","useEffect","useMemo","useRef","useState","SheetEvent","DraggableShell","changeGroupConfig","useSheetEvent","jsx","_jsx","jsxs","_jsxs","ExcelIndexCell","_ref","value","row","record","eventBus","handleClick","emit","className","onClick","style","cursor","color","children","open","overlay","groups","trigger","grid","map","rowIndex","i","id","String","readonly","fixed","undefined","concat","valueViewer","includes","align","BasicSheet","_useState","_useState2","_slicedToArray","state","setState","sheetInstance","_useState3","groupStart","groupEnd","groupName","groupOpen","_useState4","groupConfig","setGroupConfig","handleNewRow","index","_sheetInstance$curren","_sheetInstance$curren2","newGrid","newRow","forEach","item","splice","current","pushToHistory","type","changes","rowInfo","extraInfo","newGroupConfig","add","selectRow","handleDeleteRow","_sheetInstance$curren3","deleteRow","remove","col","cell","handleReverse","_ref2","_toConsumableArray","_sheetInstance$curren4","_ref3","extraType","lastState","onCellsChanged","_ref4","_objectSpread","WrappedTableShell","columns","title","fromCharCode","width","MenuRender","props","position","handleMenu","onContextMenu","_ref5","top","left","background","padding","handleMenuClick","e","_ref6","console","log","length","performance","now","virtualized","data","scroll","x","y","sheetRenderer","menuRenderer","name","handler","_ref7","findIndex","_sheetInstance$curren5","display","_sheetInstance$curren6","zoomTo","_sheetInstance$curren7"],"sources":["../../src/example/sheet.tsx"],"sourcesContent":["import { MinusCircleOutlined, PlusCircleOutlined } from '@ant-design/icons';\nimport { Sheet } from '@zhenliang/sheet';\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { Tooltip } from 'antd';\nimport { cloneDeep, isNil, random, range } from 'lodash';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { SheetEvent } from '../core/sheet/Event';\nimport { DraggableShell } from '../core/shell/draggableShell';\nimport { changeGroupConfig } from '../core/util';\nimport { useSheetEvent } from '../hooks';\nimport './index.less';\n\nconst ExcelIndexCell: React.FC<{ value: string; row: number; record: any }> = ({\n value,\n row,\n record,\n}) => {\n const eventBus = useSheetEvent();\n const handleClick = useCallback(() => {\n eventBus.emit('onCellClick', { row });\n }, []);\n\n return (\n <span\n className=\"excel-index-cell\"\n onClick={handleClick}\n style={{\n cursor: 'pointer',\n color: record?.color,\n }}\n >\n {!isNil(record?.open) ? (\n record?.open ? (\n <MinusCircleOutlined />\n ) : (\n <Tooltip overlay={record.groups} trigger={['hover']}>\n <PlusCircleOutlined />\n </Tooltip>\n )\n ) : null}\n {value}\n </span>\n );\n};\n\nconst grid: SheetType.Cell[][] = range(1, 120).map((row, rowIndex) =>\n range(0, 26).map((i) => ({\n id: String(random(0, 1)),\n readonly: i === 0 ? true : false,\n fixed: i === 0 ? 'left' : undefined,\n value: i === 0 ? row : row > 15 || i > 10 ? '' : `${row}-${i}`,\n valueViewer: i === 0 ? ExcelIndexCell : undefined,\n record: [1, 7].includes(rowIndex)\n ? {\n open: true,\n color: 'inherit',\n groups: rowIndex === 1 ? [1, 2, 3, 4, 5] : [7, 8, 9],\n }\n : undefined,\n align: 'center',\n })),\n) as any;\n\nconst BasicSheet: React.FC = () => {\n const [state, setState] = useState<SheetType.Cell[][]>(grid);\n const sheetInstance = useRef<SheetType.SheetInstance | null>(null);\n const [groupConfig, setGroupConfig] = useState({\n groups: [\n { groupStart: 1, groupEnd: 5, groupName: 'group1' },\n { groupStart: 7, groupEnd: 9, groupName: 'group2' },\n ],\n groupOpen: [true, true],\n });\n\n const handleNewRow = useCallback(\n (index: number) => {\n const newGrid = cloneDeep(state);\n const newRow = cloneDeep(newGrid[0]);\n newRow.forEach((item) => {\n item.value = '';\n item.record = undefined;\n });\n newGrid.splice(index, 0, newRow);\n newGrid.forEach((row, index) => {\n row[0].value = index + 1;\n });\n sheetInstance.current?.pushToHistory({\n type: 'NewRow' as SheetType.OperateType,\n changes: [],\n rowInfo: {\n newRow: index + 1,\n },\n extraInfo: groupConfig,\n });\n const newGroupConfig = changeGroupConfig(groupConfig, { add: index });\n setState(newGrid);\n setGroupConfig(newGroupConfig);\n sheetInstance.current?.selectRow(index);\n },\n [state, groupConfig],\n );\n const handleDeleteRow = useCallback(\n (index: number) => {\n const newGrid = cloneDeep(state);\n const deleteRow = newGrid.splice(index - 1, 1);\n newGrid.forEach((row, index) => {\n row[0].value = index + 1;\n });\n\n const newGroupConfig = changeGroupConfig(groupConfig, { remove: index });\n\n sheetInstance.current?.pushToHistory({\n type: 'DeleteRow' as SheetType.OperateType,\n changes: deleteRow[0].map(\n (item, col) =>\n ({\n cell: item,\n row: index,\n col: col,\n } as any),\n ),\n rowInfo: {\n deleteRow: index,\n },\n extraInfo: groupConfig,\n });\n\n setGroupConfig(newGroupConfig);\n setState(newGrid);\n },\n [state],\n );\n const handleReverse = useCallback(\n (value: unknown) => {\n const { type, changes, rowInfo, extraInfo } =\n value as SheetType.OperateHistory;\n let newGrid = [...state];\n if (type === 'NewRow') {\n if (!rowInfo?.newRow && rowInfo?.newRow !== 0) return;\n newGrid.splice(rowInfo.newRow - 1, 1);\n newGrid.forEach((row, index) => {\n row[0].value = index + 1;\n });\n setState(newGrid);\n setGroupConfig(extraInfo as SheetType.RowGroupConfig);\n sheetInstance.current?.selectRow();\n } else if (type === 'DeleteRow') {\n if (!rowInfo?.deleteRow && rowInfo?.deleteRow !== 0) return;\n newGrid.splice(\n rowInfo.deleteRow - 1,\n 0,\n changes.map((item) => item.cell) as SheetType.Cell[],\n );\n newGrid.forEach((row, index) => {\n row[0].value = index + 1;\n });\n setState(newGrid);\n setGroupConfig(extraInfo as SheetType.RowGroupConfig);\n } else if (type === 'Custom') {\n const {\n groupConfig,\n extraType,\n state: lastState,\n } = extraInfo as {\n extraType: string;\n groupConfig: SheetType.RowGroupConfig;\n state: SheetType.Cell[][];\n };\n if (extraType === 'group') {\n setGroupConfig(groupConfig);\n setState(lastState);\n }\n }\n },\n [state, groupConfig],\n );\n\n const onCellsChanged = (changes: any) => {\n const newGrid = [...state];\n changes.forEach(({ row, col, value }: any) => {\n const newRow = [...newGrid[row]];\n newRow[col] = { ...newRow[col], value };\n newGrid[row] = newRow;\n });\n setState(newGrid);\n };\n\n const WrappedTableShell = useMemo(() => {\n return DraggableShell({\n columns: range(26).map((i) => {\n if (i > 26)\n return {\n title:\n String.fromCharCode(64 + i / 26) +\n String.fromCharCode(64 + (i % 26)),\n width: 100,\n align: 'center',\n };\n return {\n title: i === 0 ? '' : String.fromCharCode(64 + i),\n fixed: i === 0 ? 'left' : undefined,\n width: i === 0 ? 50 : 80,\n align: 'center',\n };\n }),\n className: 'baseTable',\n });\n }, []);\n\n const MenuRender = useCallback(\n (props: SheetType.MenuRenderProps) => {\n const { position, onContextMenu: handleMenu, cell } = props;\n const { top, left } = position || {};\n if (!cell) return null;\n return (\n <div\n className=\"harvest-menu\"\n style={{ top, left, background: 'white' }}\n >\n <div\n className=\"harvest-menu-item\"\n onClick={() =>\n handleMenu &&\n handleMenu({\n type: '1',\n row: cell.row + 1,\n })\n }\n style={{ padding: '5px 10px' }}\n >\n 向下插入行\n </div>\n <div\n className=\"harvest-menu-item\"\n onClick={() =>\n handleMenu &&\n handleMenu({\n type: '2',\n row: cell.row + 1,\n })\n }\n >\n 向上插入行{' '}\n </div>\n <div\n className=\"harvest-menu-item\"\n onClick={() =>\n handleMenu &&\n handleMenu({\n type: '3',\n row: cell.row + 1,\n })\n }\n >\n 删除行\n </div>\n </div>\n );\n },\n [handleNewRow],\n );\n const handleMenuClick = useCallback(\n (e: any) => {\n const { type, row } = e as { type: string; row: number };\n console.log('click', state.length);\n if (type === '1') {\n handleNewRow(row);\n }\n if (type === '2') {\n handleNewRow(row - 1);\n }\n if (type === '3') {\n handleDeleteRow(row);\n }\n },\n [state, groupConfig],\n );\n console.log('render', performance.now());\n useEffect(() => {\n console.log('rendered', performance.now());\n }, []);\n console.log(state.length);\n\n return (\n <Sheet\n sheetInstance={sheetInstance}\n className=\"excel-sheet\"\n virtualized\n data={state as any}\n groupConfig={groupConfig}\n scroll={{ x: '100%', y: '100vh' }}\n sheetRenderer={WrappedTableShell}\n menuRenderer={MenuRender}\n onCellsChanged={onCellsChanged}\n onContextMenu={handleMenuClick}\n >\n <SheetEvent\n name=\"onCellClick\"\n handler={(e: unknown) => {\n const { row } = e as { row: number };\n const index = groupConfig.groups.findIndex(\n (item) => item.groupStart === row,\n );\n if (index >= 0) {\n console.log('changed');\n const groupOpen = [...groupConfig.groupOpen];\n groupOpen[index] = !groupConfig.groupOpen[index];\n\n const newGrid = [...state];\n newGrid[row] = [...newGrid[row]];\n newGrid[row][0] = {\n ...(newGrid[row][0] as SheetType.Cell),\n record: {\n open: !!groupOpen[index],\n color: groupOpen[index] ? 'inherit' : 'green',\n },\n };\n setGroupConfig({\n ...groupConfig,\n groupOpen: groupOpen,\n });\n setState(newGrid);\n sheetInstance.current?.pushToHistory({\n type: 'Custom' as SheetType.OperateType,\n changes: [],\n extraInfo: {\n extraType: 'group',\n groupConfig,\n state,\n },\n });\n }\n }}\n />\n <SheetEvent name=\"reverse\" handler={handleReverse} />\n <div style={{ display: 'flex' }}>\n <div\n onClick={() => {\n sheetInstance.current?.zoomTo(0);\n }}\n >\n 回到顶部\n </div>\n <div\n onClick={() => {\n sheetInstance.current?.zoomTo();\n }}\n >\n 回到编辑行\n </div>\n </div>\n </Sheet>\n );\n};\n\nexport default BasicSheet;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: () =>
|
|
1
|
+
declare const _default: () => JSX.Element;
|
|
2
2
|
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getNumberEditor","getSelectEditor","Table","useCallback","useState","SwitchViewer","jsx","_jsx","RateValueInput","addonAfter","min","max","ValueInput","RateViewer","props","value","children","data","id","draftId","valuationType","termDiscountRate","reversionDiscountRate","vacancyDiscountRate","discountRate","exitCapRate","gfaUnitPrice","nlaUnitPrice","totalValuation","isEnabled","evaluateMethods","label","_useState","_useState2","_slicedToArray","state","columns","title","dataIndex","width","readonly","record","render","row","_evaluateMethods$find","find","item","editor","viewer","isNil","cellType","editable","Button","type","onClick","handleDelete","size","className","handleChange","dataSource","onChange"],"sources":["../../src/example/valuationAnalyze.tsx"],"sourcesContent":["import { getNumberEditor, getSelectEditor, Table } from '@zhenliang/sheet';\nimport { useCallback, useState } from 'react';\nimport { SwitchViewer } from '../core/viewer';\nimport { SheetTableType, SheetType } from '../type';\nconst RateValueInput = getNumberEditor({ addonAfter: '%', min: 0, max: 100 });\nconst ValueInput = getNumberEditor({ min: 0, max: 100000000 });\nconst RateViewer: SheetType.CellViewer = (props) => {\n const { value } = props;\n return <span>{(value as string) ? value + '%' : '-'}</span>;\n};\n\nconst data = [\n {\n id: 2443,\n draftId: '101601',\n valuationType: 2,\n termDiscountRate: null,\n reversionDiscountRate: null,\n vacancyDiscountRate: null,\n discountRate: 8.5,\n exitCapRate: 4.5,\n gfaUnitPrice: 107350.31545913525,\n nlaUnitPrice: 90130.38038659678,\n totalValuation: 1622707368.4802885,\n isEnabled: true,\n },\n {\n id: 2444,\n draftId: '101601',\n valuationType: 5,\n termDiscountRate: 4.5,\n reversionDiscountRate: 5.5,\n vacancyDiscountRate: 5.5,\n discountRate: null,\n exitCapRate: null,\n gfaUnitPrice: 89327.04427210477,\n nlaUnitPrice: 89327.04427210477,\n totalValuation: 1429232708.3536763,\n isEnabled: false,\n },\n];\n\nexport default () => {\n const evaluateMethods = [\n { label: 'DCF', value: 2 },\n { label: 'T&R', value: 5 },\n ];\n const [state] = useState(data);\n const columns: SheetTableType.ColumnProps[] = [\n {\n title: '默认使用',\n dataIndex: 'isEnabled',\n width: 66,\n // cellType: 'operate',\n readonly: (value, record) => !!record.valuationType,\n render: SwitchViewer,\n // component: (record: any, row: number, col: number) => (\n // <Switch\n // disabled={isNil(record.valuationType)}\n // checked={record.isEnabled}\n // onChange={handleSwitchChange(record, row)}\n // />\n // ),\n },\n {\n title: '评估方法',\n dataIndex: 'valuationType',\n width: 134,\n readonly: (value, record, row) => !row,\n render: ((props) => (\n <span>\n {evaluateMethods.find((item) => item.value === props.value)?.label}\n </span>\n )) as SheetType.CellViewer,\n editor: getSelectEditor(evaluateMethods),\n // calcReadOnly: (record, rowIndex) => !rowIndex,\n // getSelectOptions: (record: any) => {\n // if (record.valuationType === 2) {\n // return evaluateMethods.slice(0, 1);\n // }\n // return evaluateMethods.slice(1);\n // },\n },\n {\n title: '租期内折现率',\n dataIndex: 'termDiscountRate',\n width: 134,\n editor: RateValueInput,\n viewer: RateViewer,\n readonly: (value, record, row) => !row || isNil(record.valuationType),\n // calcReadOnly: (record, rowIndex) => !rowIndex || isNil(record.valuationType),\n },\n {\n title: '租期外折现率',\n dataIndex: 'reversionDiscountRate',\n width: 134,\n viewer: RateViewer,\n editor: RateValueInput,\n readonly: (value, record, row) => !row || isNil(record.valuationType),\n },\n {\n title: '空置面积折现率',\n dataIndex: 'vacancyDiscountRate',\n width: 134,\n viewer: RateViewer,\n editor: RateValueInput,\n readonly: (value, record, row) => !row || isNil(record.valuationType),\n },\n {\n title: '折现率',\n dataIndex: 'discountRate',\n width: 134,\n viewer: RateViewer,\n editor: RateValueInput,\n readonly: (value, record, row) => !row || isNil(record.valuationType),\n },\n {\n title: '退出资本化率',\n dataIndex: 'exitCapRate',\n width: 134,\n viewer: RateViewer,\n editor: RateValueInput,\n readonly: (value, record, row) => !row || isNil(record.valuationType),\n },\n {\n title: '估值单价/GFA',\n dataIndex: 'gfaUnitPrice',\n width: 134,\n editor: ValueInput,\n readonly: true,\n },\n {\n title: '估值单价/NLA',\n dataIndex: 'nlaUnitPrice',\n width: 134,\n editor: ValueInput,\n readonly: true,\n },\n {\n title: '估值',\n dataIndex: 'totalValuation',\n width: 134,\n editor: ValueInput,\n readonly: true,\n },\n {\n title: '操作',\n width: 62,\n dataIndex: 'id',\n cellType: 'operate',\n editable: false,\n render: ((props) => {\n const { row, record } = props;\n if (row) {\n return (\n <div>\n <Button\n type=\"link\"\n onClick={() => {\n handleDelete((record as { id: number }).id);\n // const infos = [{ id: record.id, row, extra: record }];\n // operateCb && operateCb(4, { row, infos });\n }}\n size=\"small\"\n >\n 删除\n </Button>\n </div>\n );\n }\n return <div className=\"value-viewer number-value-viewer\" />;\n }) as SheetType.CellViewer,\n\n // component: (record: any, row: number, col: number, operateCb?: ExcelTableType.OperateCollector) => {\n // if (row) {\n // return (\n // <div>\n // <Button\n // type=\"link\"\n // onClick={() => {\n // handleDelete(record.id);\n // const infos = [{ id: record.id, row, extra: record }];\n // operateCb && operateCb(4, { row, infos });\n // }}\n // size=\"small\"\n // >\n // 删除\n // </Button>\n // </div>\n // );\n // }\n // return <div className=\"value-viewer number-value-viewer\" />;\n // },\n },\n ];\n\n const handleChange = useCallback(() => {}, [state]);\n\n return <Table columns={columns} dataSource={state} onChange={handleChange} />;\n};\n"],"mappings":"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"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export { useKeyBoard } from "./useKeyboard";
|
|
|
3
3
|
export { useMiddlewareReducer } from "./useMiddlewareReducer";
|
|
4
4
|
export { useMouse } from "./useMouse";
|
|
5
5
|
export { useSetState } from "./useSetState";
|
|
6
|
-
export { SheetEventContext, useSheetEvent } from "./useSheetEvent";
|
|
6
|
+
export { SheetEventContext, useSheetEvent } from "./useSheetEvent";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEventBus","useKeyBoard","useMiddlewareReducer","useMouse","useSetState","SheetEventContext","useSheetEvent"],"sources":["../../src/hooks/index.ts"],"sourcesContent":["export { useEventBus } from './useEventBus';\nexport { useKeyBoard } from './useKeyboard';\nexport { useMiddlewareReducer } from './useMiddlewareReducer';\nexport type {\n Dispatch,\n FunctionAction,\n NormalAction,\n} from './useMiddlewareReducer';\nexport { useMouse } from './useMouse';\nexport { useSetState } from './useSetState';\nexport { SheetEventContext, useSheetEvent } from './useSheetEvent';\n"],"mappings":"AAAA,SAASA,WAAW;AACpB,SAASC,WAAW;AACpB,SAASC,oBAAoB;AAM7B,SAASC,QAAQ;AACjB,SAASC,WAAW;AACpB,SAASC,iBAAiB,EAAEC,aAAa"}
|
|
@@ -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
|
@@ -49,4 +49,5 @@ export var useMouse = function useMouse(handler, listenElement) {
|
|
|
49
49
|
document.removeEventListener('dblclick', wrappedMouseDoubleClick);
|
|
50
50
|
};
|
|
51
51
|
}, [listenElement, mouseUp, mouseDown, mouseOver, mouseLeave, doubleClick, loseFocus]);
|
|
52
|
-
};
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=useMouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["debounce","useCallback","useEffect","useMouse","handler","listenElement","mouseUp","mouseDown","mouseOver","mouseLeave","mouseEnter","doubleClick","loseFocus","wrapper","handle","e","contains","target","debounceOver","wrappedMouseUp","wrappedMouseDown","wrappedMouseDoubleClick","document","addEventListener","removeEventListener"],"sources":["../../src/hooks/useMouse.tsx"],"sourcesContent":["import { debounce } from 'lodash';\nimport { useCallback, useEffect } 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\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 // if (!listenElement) return;\n // }, [mouseUp]);\n useEffect(() => {\n if (!listenElement) return;\n\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\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 return () => {\n listenElement.removeEventListener('mouseover', debounceOver);\n listenElement.removeEventListener('mouseleave', mouseLeave);\n listenElement.removeEventListener('mouseenter', mouseEnter);\n\n document.removeEventListener('mousedown', wrappedMouseUp);\n document.removeEventListener('mouseup', wrappedMouseDown);\n document.removeEventListener('dblclick', wrappedMouseDoubleClick);\n };\n }, [\n listenElement,\n mouseUp,\n mouseDown,\n mouseOver,\n mouseLeave,\n doubleClick,\n loseFocus,\n ]);\n};\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAY9C,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CACnBC,OAAqB,EACrBC,aAAqC,EAClC;EACH,IACEC,OAAO,GAOLF,OAAO,CAPTE,OAAO;IACPC,SAAS,GAMPH,OAAO,CANTG,SAAS;IACTC,SAAS,GAKPJ,OAAO,CALTI,SAAS;IACTC,UAAU,GAIRL,OAAO,CAJTK,UAAU;IACVC,UAAU,GAGRN,OAAO,CAHTM,UAAU;IACVC,WAAW,GAETP,OAAO,CAFTO,WAAW;IACXC,SAAS,GACPR,OAAO,CADTQ,SAAS;;EAGX;EACA,IAAMC,OAAO,GAAGZ,WAAW,CACzB,UAACa,MAA+B,EAAK;IACnC,OAAO,UAACC,CAAa,EAAK;MACxB,IAAI,CAAEV,aAAa,CAASW,QAAQ,CAACD,CAAC,CAACE,MAAqB,CAAC,EAAE;QAC7D;MACF;MACAH,MAAM,CAACC,CAAC,CAAC;IACX,CAAC;EACH,CAAC,EACD,CAACV,aAAa,CAChB,CAAC;;EAED;EACA;EACA;EACAH,SAAS,CAAC,YAAM;IACd,IAAI,CAACG,aAAa,EAAE;IAEpB,IAAMa,YAAY,GAAGlB,QAAQ,CAACQ,SAAS,EAAE,EAAE,CAAC;IAC5C,IAAMW,cAAc,GAAGb,OAAO;IAC9B,IAAMc,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIL,CAAa,EAAK;MAC1C,IAAI,CAACV,aAAa,CAACW,QAAQ,CAACD,CAAC,CAACE,MAAqB,CAAC,EAAE;QACpDL,SAAS,CAACG,CAAC,CAAC;QACZ;MACF;MACAR,SAAS,CAACQ,CAAC,CAAC;IACd,CAAC;IACD,IAAMM,uBAAuB,GAAGR,OAAO,CAACF,WAAW,CAAC;IAEpDW,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEJ,cAAc,CAAC;IACpDG,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEH,gBAAgB,CAAC;IACxDE,QAAQ,CAACC,gBAAgB,CAAC,UAAU,EAAEF,uBAAuB,CAAC;IAC9DhB,aAAa,CAACkB,gBAAgB,CAAC,WAAW,EAAEL,YAAY,CAAC;IACzDb,aAAa,CAACkB,gBAAgB,CAAC,YAAY,EAAEd,UAAU,CAAC;IACxDJ,aAAa,CAACkB,gBAAgB,CAAC,YAAY,EAAEb,UAAU,CAAC;IACxD,OAAO,YAAM;MACXL,aAAa,CAACmB,mBAAmB,CAAC,WAAW,EAAEN,YAAY,CAAC;MAC5Db,aAAa,CAACmB,mBAAmB,CAAC,YAAY,EAAEf,UAAU,CAAC;MAC3DJ,aAAa,CAACmB,mBAAmB,CAAC,YAAY,EAAEd,UAAU,CAAC;MAE3DY,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEL,cAAc,CAAC;MACzDG,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,gBAAgB,CAAC;MACzDE,QAAQ,CAACE,mBAAmB,CAAC,UAAU,EAAEH,uBAAuB,CAAC;IACnE,CAAC;EACH,CAAC,EAAE,CACDhB,aAAa,EACbC,OAAO,EACPC,SAAS,EACTC,SAAS,EACTC,UAAU,EACVE,WAAW,EACXC,SAAS,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -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"}
|
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 { 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;\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.7",
|
|
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
|