@rowsncolumns/grid 9.0.4 → 13.2.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +53 -59
  3. package/dist/cjs/Cell.d.ts +35 -0
  4. package/dist/cjs/Cell.d.ts.map +1 -0
  5. package/dist/cjs/Cell.js +29 -0
  6. package/dist/{CellOverlay.d.ts → cjs/CellOverlay.d.ts} +5 -5
  7. package/dist/cjs/CellOverlay.d.ts.map +1 -0
  8. package/dist/cjs/CellOverlay.js +126 -0
  9. package/dist/cjs/Context.d.ts +8 -0
  10. package/dist/cjs/Context.d.ts.map +1 -0
  11. package/dist/cjs/Context.js +13 -0
  12. package/dist/{FillHandle.d.ts → cjs/FillHandle.d.ts} +2 -1
  13. package/dist/cjs/FillHandle.d.ts.map +1 -0
  14. package/dist/cjs/FillHandle.js +26 -0
  15. package/dist/cjs/Grid.d.ts +558 -0
  16. package/dist/cjs/Grid.d.ts.map +1 -0
  17. package/dist/cjs/Grid.js +2446 -0
  18. package/dist/{GridLine.d.ts → cjs/GridLine.d.ts} +2 -1
  19. package/dist/cjs/GridLine.d.ts.map +1 -0
  20. package/dist/cjs/GridLine.js +10 -0
  21. package/dist/cjs/Image.d.ts +11 -0
  22. package/dist/cjs/Image.d.ts.map +1 -0
  23. package/dist/cjs/Image.js +57 -0
  24. package/dist/cjs/MemoizedGrid.d.ts +49 -0
  25. package/dist/cjs/MemoizedGrid.d.ts.map +1 -0
  26. package/dist/cjs/MemoizedGrid.js +105 -0
  27. package/dist/cjs/Selection.d.ts +5 -0
  28. package/dist/cjs/Selection.d.ts.map +1 -0
  29. package/dist/cjs/Selection.js +10 -0
  30. package/dist/{helpers.d.ts → cjs/helpers.d.ts} +59 -39
  31. package/dist/cjs/helpers.d.ts.map +1 -0
  32. package/dist/cjs/helpers.js +1409 -0
  33. package/dist/{hooks → cjs/hooks}/useCopyPaste.d.ts +3 -2
  34. package/dist/cjs/hooks/useCopyPaste.d.ts.map +1 -0
  35. package/dist/cjs/hooks/useCopyPaste.js +230 -0
  36. package/dist/{hooks → cjs/hooks}/useEditable.d.ts +21 -8
  37. package/dist/cjs/hooks/useEditable.d.ts.map +1 -0
  38. package/dist/cjs/hooks/useEditable.js +491 -0
  39. package/dist/{hooks → cjs/hooks}/useFilter.d.ts +3 -2
  40. package/dist/cjs/hooks/useFilter.d.ts.map +1 -0
  41. package/dist/cjs/hooks/useFilter.js +97 -0
  42. package/dist/{hooks → cjs/hooks}/useImage.d.ts +1 -0
  43. package/dist/cjs/hooks/useImage.d.ts.map +1 -0
  44. package/dist/cjs/hooks/useImage.js +80 -0
  45. package/dist/{hooks → cjs/hooks}/usePagination.d.ts +3 -2
  46. package/dist/cjs/hooks/usePagination.d.ts.map +1 -0
  47. package/dist/cjs/hooks/usePagination.js +53 -0
  48. package/dist/{hooks → cjs/hooks}/useSizer.d.ts +28 -29
  49. package/dist/cjs/hooks/useSizer.d.ts.map +1 -0
  50. package/dist/cjs/hooks/useSizer.js +176 -0
  51. package/dist/{hooks → cjs/hooks}/useTooltip.d.ts +2 -1
  52. package/dist/cjs/hooks/useTooltip.d.ts.map +1 -0
  53. package/dist/cjs/hooks/useTooltip.js +82 -0
  54. package/dist/{hooks → cjs/hooks}/useUndo.d.ts +2 -1
  55. package/dist/cjs/hooks/useUndo.d.ts.map +1 -0
  56. package/dist/cjs/hooks/useUndo.js +87 -0
  57. package/dist/cjs/index.d.ts +19 -0
  58. package/dist/cjs/index.d.ts.map +1 -0
  59. package/dist/cjs/index.js +29 -0
  60. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  61. package/dist/{types.d.ts → cjs/types.d.ts} +8 -3
  62. package/dist/cjs/types.d.ts.map +1 -0
  63. package/dist/{types.js → cjs/types.js} +7 -8
  64. package/dist/cjs/utils.d.ts +9 -0
  65. package/dist/cjs/utils.d.ts.map +1 -0
  66. package/dist/cjs/utils.js +58 -0
  67. package/dist/cjs/vitest.config.d.ts +3 -0
  68. package/dist/cjs/vitest.config.d.ts.map +1 -0
  69. package/dist/cjs/vitest.config.js +24 -0
  70. package/dist/esm/Cell.d.ts +35 -0
  71. package/dist/esm/Cell.d.ts.map +1 -0
  72. package/dist/esm/Cell.js +24 -0
  73. package/dist/esm/CellOverlay.d.ts +21 -0
  74. package/dist/esm/CellOverlay.d.ts.map +1 -0
  75. package/dist/esm/CellOverlay.js +120 -0
  76. package/dist/esm/Context.d.ts +8 -0
  77. package/dist/esm/Context.d.ts.map +1 -0
  78. package/dist/esm/Context.js +9 -0
  79. package/dist/esm/FillHandle.d.ts +8 -0
  80. package/dist/esm/FillHandle.d.ts.map +1 -0
  81. package/dist/{FillHandle.js → esm/FillHandle.js} +5 -11
  82. package/dist/esm/Grid.d.ts +558 -0
  83. package/dist/esm/Grid.d.ts.map +1 -0
  84. package/dist/esm/Grid.js +2451 -0
  85. package/dist/esm/GridLine.d.ts +5 -0
  86. package/dist/esm/GridLine.d.ts.map +1 -0
  87. package/dist/esm/GridLine.js +7 -0
  88. package/dist/esm/Image.d.ts +11 -0
  89. package/dist/esm/Image.d.ts.map +1 -0
  90. package/dist/esm/Image.js +53 -0
  91. package/dist/esm/MemoizedGrid.d.ts +49 -0
  92. package/dist/esm/MemoizedGrid.d.ts.map +1 -0
  93. package/dist/esm/MemoizedGrid.js +98 -0
  94. package/dist/esm/Selection.d.ts +5 -0
  95. package/dist/esm/Selection.d.ts.map +1 -0
  96. package/dist/esm/Selection.js +7 -0
  97. package/dist/esm/helpers.d.ts +281 -0
  98. package/dist/esm/helpers.d.ts.map +1 -0
  99. package/dist/esm/helpers.js +1260 -0
  100. package/dist/esm/hooks/useCopyPaste.d.ts +53 -0
  101. package/dist/esm/hooks/useCopyPaste.d.ts.map +1 -0
  102. package/dist/{hooks → esm/hooks}/useCopyPaste.js +40 -46
  103. package/dist/esm/hooks/useEditable.d.ts +253 -0
  104. package/dist/esm/hooks/useEditable.d.ts.map +1 -0
  105. package/dist/esm/hooks/useEditable.js +482 -0
  106. package/dist/esm/hooks/useFilter.d.ts +69 -0
  107. package/dist/esm/hooks/useFilter.d.ts.map +1 -0
  108. package/dist/{hooks → esm/hooks}/useFilter.js +22 -42
  109. package/dist/esm/hooks/useImage.d.ts +13 -0
  110. package/dist/esm/hooks/useImage.d.ts.map +1 -0
  111. package/dist/esm/hooks/useImage.js +76 -0
  112. package/dist/esm/hooks/usePagination.d.ts +69 -0
  113. package/dist/esm/hooks/usePagination.d.ts.map +1 -0
  114. package/dist/esm/hooks/usePagination.js +47 -0
  115. package/dist/esm/hooks/useSizer.d.ts +114 -0
  116. package/dist/esm/hooks/useSizer.d.ts.map +1 -0
  117. package/dist/esm/hooks/useSizer.js +176 -0
  118. package/dist/esm/hooks/useTooltip.d.ts +43 -0
  119. package/dist/esm/hooks/useTooltip.d.ts.map +1 -0
  120. package/dist/esm/hooks/useTooltip.js +80 -0
  121. package/dist/esm/hooks/useUndo.d.ts +36 -0
  122. package/dist/esm/hooks/useUndo.d.ts.map +1 -0
  123. package/dist/{hooks → esm/hooks}/useUndo.js +16 -25
  124. package/dist/esm/index.d.ts +19 -0
  125. package/dist/esm/index.d.ts.map +1 -0
  126. package/dist/esm/index.js +17 -0
  127. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  128. package/dist/esm/types.d.ts +70 -0
  129. package/dist/esm/types.d.ts.map +1 -0
  130. package/dist/esm/types.js +68 -0
  131. package/dist/esm/utils.d.ts +9 -0
  132. package/dist/esm/utils.d.ts.map +1 -0
  133. package/dist/esm/utils.js +104 -0
  134. package/dist/esm/vitest.config.d.ts +3 -0
  135. package/dist/esm/vitest.config.d.ts.map +1 -0
  136. package/dist/esm/vitest.config.js +22 -0
  137. package/package.json +28 -29
  138. package/dist/Cell.d.ts +0 -23
  139. package/dist/Cell.js +0 -55
  140. package/dist/Cell.js.map +0 -1
  141. package/dist/CellOverlay.js +0 -116
  142. package/dist/CellOverlay.js.map +0 -1
  143. package/dist/FillHandle.js.map +0 -1
  144. package/dist/Grid.d.ts +0 -385
  145. package/dist/Grid.js +0 -1684
  146. package/dist/Grid.js.map +0 -1
  147. package/dist/GridLine.js +0 -13
  148. package/dist/GridLine.js.map +0 -1
  149. package/dist/Image.d.ts +0 -8
  150. package/dist/Image.js +0 -50
  151. package/dist/Image.js.map +0 -1
  152. package/dist/Selection.d.ts +0 -4
  153. package/dist/Selection.js +0 -9
  154. package/dist/Selection.js.map +0 -1
  155. package/dist/helpers.js +0 -1033
  156. package/dist/helpers.js.map +0 -1
  157. package/dist/hooks/useCopyPaste.js.map +0 -1
  158. package/dist/hooks/useEditable.js +0 -477
  159. package/dist/hooks/useEditable.js.map +0 -1
  160. package/dist/hooks/useFilter.js.map +0 -1
  161. package/dist/hooks/useImage.js +0 -42
  162. package/dist/hooks/useImage.js.map +0 -1
  163. package/dist/hooks/usePagination.js +0 -73
  164. package/dist/hooks/usePagination.js.map +0 -1
  165. package/dist/hooks/useSelection.d.ts +0 -175
  166. package/dist/hooks/useSelection.js +0 -982
  167. package/dist/hooks/useSelection.js.map +0 -1
  168. package/dist/hooks/useSizer.js +0 -150
  169. package/dist/hooks/useSizer.js.map +0 -1
  170. package/dist/hooks/useTooltip.js +0 -106
  171. package/dist/hooks/useTooltip.js.map +0 -1
  172. package/dist/hooks/useTouch.d.ts +0 -21
  173. package/dist/hooks/useTouch.js +0 -73
  174. package/dist/hooks/useTouch.js.map +0 -1
  175. package/dist/hooks/useUndo.js.map +0 -1
  176. package/dist/index.d.ts +0 -25
  177. package/dist/index.js +0 -61
  178. package/dist/index.js.map +0 -1
  179. package/dist/types.js.map +0 -1
  180. package/dist/utils.d.ts +0 -8
  181. package/dist/utils.js +0 -153
  182. package/dist/utils.js.map +0 -1
  183. package/src/Cell.tsx +0 -100
  184. package/src/CellOverlay.tsx +0 -191
  185. package/src/FillHandle.tsx +0 -37
  186. package/src/Grid.tsx +0 -2677
  187. package/src/GridLine.tsx +0 -23
  188. package/src/Image.tsx +0 -43
  189. package/src/Selection.tsx +0 -9
  190. package/src/helpers.ts +0 -1455
  191. package/src/hooks/useCopyPaste.ts +0 -265
  192. package/src/hooks/useEditable.tsx +0 -945
  193. package/src/hooks/useFilter.tsx +0 -233
  194. package/src/hooks/useImage.ts +0 -57
  195. package/src/hooks/usePagination.tsx +0 -153
  196. package/src/hooks/useSelection.ts +0 -1440
  197. package/src/hooks/useSizer.ts +0 -312
  198. package/src/hooks/useTooltip.tsx +0 -172
  199. package/src/hooks/useTouch.ts +0 -116
  200. package/src/hooks/useUndo.ts +0 -134
  201. package/src/index.tsx +0 -46
  202. package/src/tests/Grid.spec.tsx +0 -47
  203. package/src/tests/helpers.test.ts +0 -292
  204. package/src/tests/usePagination.test.ts +0 -28
  205. package/src/tests/useSelection.test.ts +0 -27
  206. package/src/tests/useUndo.test.ts +0 -73
  207. package/src/types.ts +0 -69
  208. package/src/utils.tsx +0 -287
package/dist/utils.js DELETED
@@ -1,153 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createHTMLBox = exports.createCanvasBox = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const react_konva_1 = require("react-konva");
9
- /**
10
- * Create a box with custom top/right/bottom/left colors and widths
11
- * @param param0
12
- */
13
- const createCanvasBox = ({ x = 0, y = 0, width = 0, height = 0, fill, stroke, strokeLeftColor = stroke, strokeTopColor = stroke, strokeRightColor = stroke, strokeBottomColor = stroke, strokeWidth = 0, strokeTopWidth = strokeWidth, strokeRightWidth = strokeWidth, strokeBottomWidth = strokeWidth, strokeLeftWidth = strokeWidth, dash, dashEnabled, lineCap = "square", key, }) => {
14
- const commonProps = {
15
- perfectDrawEnabled: false,
16
- shadowForStrokeEnabled: false,
17
- hitStrokeWidth: 0,
18
- listening: false,
19
- };
20
- const composite = undefined;
21
- const lines = [
22
- react_1.default.createElement(react_konva_1.Line, { points: [x, y, x + width, y], stroke: strokeTopColor, strokeWidth: strokeTopWidth, dash: dash, dashEnabled: dashEnabled, lineCap: lineCap, key: "top", globalCompositeOperation: composite, ...commonProps }),
23
- react_1.default.createElement(react_konva_1.Line, { points: [x + width, y, x + width, y + height], stroke: strokeRightColor, strokeWidth: strokeRightWidth, dash: dash, dashEnabled: dashEnabled, lineCap: lineCap, key: "right", globalCompositeOperation: composite, ...commonProps }),
24
- react_1.default.createElement(react_konva_1.Line, { points: [x + width, y + height, x, y + height], stroke: strokeBottomColor, strokeWidth: strokeBottomWidth, dash: dash, dashEnabled: dashEnabled, lineCap: lineCap, key: "bottom", globalCompositeOperation: composite, ...commonProps }),
25
- react_1.default.createElement(react_konva_1.Line, { points: [x, y + height, x, y], stroke: strokeLeftColor, strokeWidth: strokeLeftWidth, dash: dash, dashEnabled: dashEnabled, lineCap: lineCap, key: "left", globalCompositeOperation: composite, ...commonProps }),
26
- ];
27
- return (react_1.default.createElement(react_1.default.Fragment, { key: key },
28
- fill && (react_1.default.createElement(react_konva_1.Rect, { globalCompositeOperation: composite, fill: fill, x: x, y: y, width: width, height: height, ...commonProps })),
29
- lines));
30
- };
31
- exports.createCanvasBox = createCanvasBox;
32
- const createHTMLBox = ({ x = 0, y = 0, width = 0, height = 0, fill, stroke, strokeLeftColor = stroke, strokeTopColor = stroke, strokeRightColor = stroke, strokeBottomColor = stroke, strokeWidth = 0, strokeTopWidth = strokeWidth, strokeRightWidth = strokeWidth, strokeBottomWidth = strokeWidth, strokeLeftWidth = strokeWidth, key, strokeStyle = "solid", fillOpacity = 1, draggable, isDragging, borderCoverWidth = 5, type, bounds, activeCell, ...props }) => {
33
- const lineStyles = {
34
- borderWidth: 0,
35
- position: "absolute",
36
- pointerEvents: "none",
37
- };
38
- /**
39
- * Border cover is so that there is enough
40
- * draggable handle area for the user.
41
- * Default is 5px
42
- */
43
- const showBorderCover = draggable;
44
- const borderCoverStyle = {
45
- position: "absolute",
46
- pointerEvents: draggable ? "auto" : "none",
47
- cursor: draggable ? (isDragging ? "grabbing" : "grab") : "initial",
48
- };
49
- width = width - Math.floor(strokeWidth / 2);
50
- height = height - Math.floor(strokeWidth / 2);
51
- // y = y - Math.ceil(strokeWidth / 2);
52
- const lines = [
53
- react_1.default.createElement("div", { style: {
54
- ...lineStyles,
55
- left: x,
56
- top: y,
57
- width: width,
58
- height: strokeTopWidth,
59
- borderColor: strokeTopColor,
60
- borderTopWidth: strokeTopWidth,
61
- borderStyle: strokeStyle,
62
- }, key: "top", ...props }),
63
- react_1.default.createElement("div", { style: {
64
- ...lineStyles,
65
- left: x + width,
66
- top: y,
67
- width: strokeRightWidth,
68
- height: height,
69
- borderColor: strokeRightColor,
70
- borderRightWidth: strokeRightWidth,
71
- borderStyle: strokeStyle,
72
- }, key: "right", ...props }),
73
- react_1.default.createElement("div", { style: {
74
- ...lineStyles,
75
- left: x,
76
- top: y + height,
77
- width: width + strokeTopWidth,
78
- height: strokeBottomWidth,
79
- borderColor: strokeBottomColor,
80
- borderBottomWidth: strokeBottomWidth,
81
- borderStyle: strokeStyle,
82
- }, key: "bottom", ...props }),
83
- react_1.default.createElement("div", { style: {
84
- ...lineStyles,
85
- left: x,
86
- top: y,
87
- width: strokeLeftWidth,
88
- height: height,
89
- borderColor: strokeLeftColor,
90
- borderLeftWidth: strokeLeftWidth,
91
- borderStyle: strokeStyle,
92
- }, key: "left", ...props }),
93
- ];
94
- const borderCovers = [
95
- react_1.default.createElement("div", { style: {
96
- ...borderCoverStyle,
97
- left: x,
98
- top: y,
99
- width: width,
100
- height: 5,
101
- }, key: "top", ...props }),
102
- react_1.default.createElement("div", { style: {
103
- ...borderCoverStyle,
104
- left: x + width - borderCoverWidth + strokeRightWidth,
105
- top: y,
106
- width: borderCoverWidth,
107
- height: height,
108
- }, key: "right", ...props }),
109
- react_1.default.createElement("div", { style: {
110
- ...borderCoverStyle,
111
- left: x,
112
- top: y + height - borderCoverWidth + strokeBottomWidth,
113
- width: width + strokeTopWidth,
114
- height: borderCoverWidth,
115
- }, key: "bottom", ...props }),
116
- react_1.default.createElement("div", { style: {
117
- ...borderCoverStyle,
118
- left: x,
119
- top: y,
120
- width: borderCoverWidth,
121
- height: height,
122
- }, key: "left", ...props }),
123
- ];
124
- /**
125
- * Display title component
126
- * Only if title is not null
127
- */
128
- const titleProps = {
129
- isDragging,
130
- x,
131
- y,
132
- stroke: strokeTopColor,
133
- width,
134
- bounds,
135
- strokeWidth,
136
- };
137
- return (react_1.default.createElement(react_1.default.Fragment, { key: key },
138
- fill && (react_1.default.createElement("div", { style: {
139
- position: "absolute",
140
- top: y,
141
- left: x,
142
- height,
143
- width,
144
- backgroundColor: fill,
145
- opacity: fillOpacity,
146
- userSelect: "none",
147
- pointerEvents: "none",
148
- } })),
149
- lines,
150
- showBorderCover && borderCovers));
151
- };
152
- exports.createHTMLBox = createHTMLBox;
153
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"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"}
package/src/Cell.tsx DELETED
@@ -1,100 +0,0 @@
1
- import React, { memo } from "react";
2
- import { RendererProps } from "./Grid";
3
- import { Group, Rect, Text } from "react-konva";
4
- import { KonvaEventObject } from "konva/lib/Node";
5
- import { isNull } from "./helpers";
6
-
7
- export interface CellProps extends RendererProps {
8
- value?: string;
9
- textColor?: string;
10
- padding?: number;
11
- fontWeight?: string;
12
- fontStyle?: string;
13
- onClick?: (e: KonvaEventObject<MouseEvent>) => void;
14
- }
15
-
16
- /**
17
- * Default cell component
18
- * @param props
19
- */
20
- const Cell: React.FC<CellProps> = memo((props) => {
21
- const {
22
- x = 0,
23
- y = 0,
24
- width,
25
- height,
26
- value,
27
- fill = "white",
28
- strokeWidth = 1,
29
- stroke = "#d9d9d9",
30
- align = "left",
31
- verticalAlign = "middle",
32
- textColor = "#333",
33
- padding = 5,
34
- fontFamily = "Arial",
35
- fontSize = 12,
36
- children,
37
- wrap = "none",
38
- fontWeight = "normal",
39
- fontStyle = "normal",
40
- textDecoration,
41
- alpha = 1,
42
- strokeEnabled = true,
43
- globalCompositeOperation = "multiply",
44
- isOverlay,
45
- ...rest
46
- } = props;
47
- if (isOverlay) return null;
48
- const fillEnabled = !!fill;
49
- const textStyle = `${fontWeight} ${fontStyle}`;
50
- return (
51
- <Group {...rest}>
52
- <Rect
53
- x={x + 0.5}
54
- y={y + 0.5}
55
- height={height}
56
- width={width}
57
- fill={fill}
58
- stroke={stroke}
59
- strokeWidth={strokeWidth}
60
- shadowForStrokeEnabled={false}
61
- strokeScaleEnabled={false}
62
- hitStrokeWidth={0}
63
- alpha={alpha}
64
- fillEnabled={fillEnabled}
65
- strokeEnabled={strokeEnabled}
66
- />
67
- {isNull(value) ? null : (
68
- <Text
69
- x={x}
70
- y={y}
71
- height={height}
72
- width={width}
73
- text={value}
74
- fill={textColor}
75
- verticalAlign={verticalAlign}
76
- align={align}
77
- fontFamily={fontFamily}
78
- fontStyle={textStyle}
79
- textDecoration={textDecoration}
80
- padding={padding}
81
- wrap={wrap}
82
- fontSize={fontSize}
83
- hitStrokeWidth={0}
84
- />
85
- )}
86
- {children}
87
- </Group>
88
- );
89
- });
90
-
91
- /**
92
- * Default CellRenderer
93
- * @param props
94
- */
95
- const CellRenderer = (props: RendererProps) => {
96
- return <Cell {...props} />;
97
- };
98
-
99
- export default CellRenderer;
100
- export { CellRenderer, Cell };
@@ -1,191 +0,0 @@
1
- import React, { memo } from "react";
2
- import { CellProps } from "./Cell";
3
- import { Shape } from "react-konva";
4
- import { RendererProps } from "./Grid";
5
-
6
- /* Array placeholder */
7
- const EMPTY_ARRAY: number[] = [];
8
-
9
- export interface StrokeCellProps
10
- extends Omit<CellProps, "key" | "rowIndex" | "columnIndex"> {}
11
-
12
- /**
13
- * Offset helps multiple borders to align properly
14
- * @param width
15
- */
16
- export const getOffsetFromWidth = (width: number) => {
17
- return width / 2 - 0.5;
18
- };
19
-
20
- /**
21
- * Only used for strokes
22
- */
23
- const CellOverlay: React.FC<StrokeCellProps> = memo(props => {
24
- const {
25
- x,
26
- y,
27
- width,
28
- height,
29
- strokeTopColor,
30
- strokeRightColor,
31
- strokeBottomColor,
32
- strokeLeftColor,
33
- strokeTopDash = EMPTY_ARRAY,
34
- strokeRightDash = EMPTY_ARRAY,
35
- strokeBottomDash = EMPTY_ARRAY,
36
- strokeLeftDash = EMPTY_ARRAY,
37
- strokeTopWidth,
38
- strokeRightWidth,
39
- strokeBottomWidth,
40
- strokeLeftWidth,
41
- lineCap
42
- } = props;
43
- const userStroke =
44
- strokeTopColor || strokeRightColor || strokeBottomColor || strokeLeftColor;
45
- if (!userStroke) return null;
46
- return (
47
- <Shape
48
- x={x}
49
- y={y}
50
- width={width}
51
- height={height}
52
- sceneFunc={(context, shape) => {
53
- /* Top border */
54
- if (strokeTopColor) {
55
- context.beginPath();
56
- context.moveTo(
57
- strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0,
58
- 0.5
59
- );
60
- context.lineTo(
61
- shape.width() +
62
- (strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1),
63
- 0.5
64
- );
65
- context.setAttr("strokeStyle", strokeTopColor);
66
- context.setAttr("lineWidth", strokeTopWidth);
67
- context.setAttr("lineCap", lineCap);
68
- context.setLineDash(strokeTopDash);
69
- context.stroke();
70
- }
71
- /* Bottom border */
72
- if (strokeBottomColor) {
73
- context.beginPath();
74
- context.moveTo(
75
- strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0,
76
- shape.height() + 0.5
77
- );
78
- context.lineTo(
79
- shape.width() +
80
- (strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1),
81
- shape.height() + 0.5
82
- );
83
- context.setAttr("lineWidth", strokeBottomWidth);
84
- context.setAttr("strokeStyle", strokeBottomColor);
85
- context.setAttr("lineCap", lineCap);
86
- context.setLineDash(strokeBottomDash);
87
- context.stroke();
88
- }
89
- /* Left border */
90
- if (strokeLeftColor) {
91
- context.beginPath();
92
- context.moveTo(
93
- 0.5,
94
- strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0
95
- );
96
- context.lineTo(
97
- 0.5,
98
- shape.height() +
99
- (strokeBottomColor
100
- ? getOffsetFromWidth(strokeBottomWidth) + 1
101
- : 1)
102
- );
103
- context.setAttr("strokeStyle", strokeLeftColor);
104
- context.setAttr("lineWidth", strokeLeftWidth);
105
- context.setAttr("lineCap", lineCap);
106
- context.setLineDash(strokeLeftDash);
107
- context.stroke();
108
- }
109
- /* Right border */
110
- if (strokeRightColor) {
111
- context.beginPath();
112
- context.moveTo(
113
- shape.width() + 0.5,
114
- strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0
115
- );
116
- context.lineTo(
117
- shape.width() + 0.5,
118
- shape.height() +
119
- (strokeBottomColor
120
- ? getOffsetFromWidth(strokeBottomWidth) + 1
121
- : 1)
122
- );
123
- context.setAttr("strokeStyle", strokeRightColor);
124
- context.setAttr("lineWidth", strokeRightWidth);
125
- context.setAttr("lineCap", lineCap);
126
- context.setLineDash(strokeRightDash);
127
- context.stroke();
128
- }
129
- }}
130
- />
131
- );
132
- });
133
-
134
- /**
135
- * Default CellRenderer
136
- * @param props
137
- */
138
- const CellRenderer = (props: RendererProps) => {
139
- const {
140
- x,
141
- y,
142
- width,
143
- height,
144
- stroke,
145
- strokeTopColor = stroke,
146
- strokeRightColor = stroke,
147
- strokeBottomColor = stroke,
148
- strokeLeftColor = stroke,
149
- strokeDash = EMPTY_ARRAY,
150
- strokeTopDash = EMPTY_ARRAY,
151
- strokeRightDash = EMPTY_ARRAY,
152
- strokeBottomDash = EMPTY_ARRAY,
153
- strokeLeftDash = EMPTY_ARRAY,
154
- strokeWidth = 1,
155
- strokeTopWidth = strokeWidth,
156
- strokeRightWidth = strokeWidth,
157
- strokeBottomWidth = strokeWidth,
158
- strokeLeftWidth = strokeWidth,
159
- lineCap = "butt",
160
- key
161
- } = props;
162
- const userStroke =
163
- strokeTopColor || strokeRightColor || strokeBottomColor || strokeLeftColor;
164
- if (!userStroke) return null;
165
- return (
166
- <CellOverlay
167
- key={key}
168
- x={x}
169
- y={y}
170
- width={width}
171
- height={height}
172
- strokeTopColor={strokeTopColor}
173
- strokeRightColor={strokeRightColor}
174
- strokeBottomColor={strokeBottomColor}
175
- strokeLeftColor={strokeLeftColor}
176
- strokeDash={strokeDash}
177
- strokeTopDash={strokeTopDash}
178
- strokeRightDash={strokeRightDash}
179
- strokeBottomDash={strokeBottomDash}
180
- strokeLeftDash={strokeLeftDash}
181
- strokeTopWidth={strokeTopWidth}
182
- strokeRightWidth={strokeRightWidth}
183
- strokeBottomWidth={strokeBottomWidth}
184
- strokeLeftWidth={strokeLeftWidth}
185
- lineCap={lineCap}
186
- />
187
- );
188
- };
189
-
190
- export default CellRenderer;
191
- export { CellRenderer, CellOverlay };
@@ -1,37 +0,0 @@
1
- import React from "react";
2
- import { ShapeConfig } from "konva/lib/Shape";
3
-
4
- /**
5
- * Fill handle component
6
- */
7
- const FillHandle: React.FC<ShapeConfig> = ({
8
- x = 0,
9
- y = 0,
10
- stroke,
11
- strokeWidth = 1,
12
- size = 8,
13
- borderColor,
14
- ...props
15
- }) => {
16
- if (x === 0 || y === 0) return null;
17
- return (
18
- <div
19
- style={{
20
- position: "absolute",
21
- left: x - size / 2,
22
- top: y - size / 2,
23
- width: size,
24
- height: size,
25
- border: `${strokeWidth}px ${borderColor} solid`,
26
- borderRightWidth: 0,
27
- borderBottomWidth: 0,
28
- background: stroke as string,
29
- cursor: "crosshair",
30
- pointerEvents: "all",
31
- }}
32
- {...props}
33
- />
34
- );
35
- };
36
-
37
- export default FillHandle;