@rowsncolumns/grid 9.0.3 → 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.
- package/LICENSE.md +100 -0
- package/Readme.md +53 -59
- package/dist/cjs/Cell.d.ts +35 -0
- package/dist/cjs/Cell.d.ts.map +1 -0
- package/dist/cjs/Cell.js +29 -0
- package/dist/{CellOverlay.d.ts → cjs/CellOverlay.d.ts} +5 -5
- package/dist/cjs/CellOverlay.d.ts.map +1 -0
- package/dist/cjs/CellOverlay.js +126 -0
- package/dist/cjs/Context.d.ts +8 -0
- package/dist/cjs/Context.d.ts.map +1 -0
- package/dist/cjs/Context.js +13 -0
- package/dist/{FillHandle.d.ts → cjs/FillHandle.d.ts} +2 -1
- package/dist/cjs/FillHandle.d.ts.map +1 -0
- package/dist/cjs/FillHandle.js +26 -0
- package/dist/cjs/Grid.d.ts +558 -0
- package/dist/cjs/Grid.d.ts.map +1 -0
- package/dist/cjs/Grid.js +2446 -0
- package/dist/{GridLine.d.ts → cjs/GridLine.d.ts} +2 -1
- package/dist/cjs/GridLine.d.ts.map +1 -0
- package/dist/cjs/GridLine.js +10 -0
- package/dist/cjs/Image.d.ts +11 -0
- package/dist/cjs/Image.d.ts.map +1 -0
- package/dist/cjs/Image.js +57 -0
- package/dist/cjs/MemoizedGrid.d.ts +49 -0
- package/dist/cjs/MemoizedGrid.d.ts.map +1 -0
- package/dist/cjs/MemoizedGrid.js +105 -0
- package/dist/cjs/Selection.d.ts +5 -0
- package/dist/cjs/Selection.d.ts.map +1 -0
- package/dist/cjs/Selection.js +10 -0
- package/dist/{helpers.d.ts → cjs/helpers.d.ts} +59 -39
- package/dist/cjs/helpers.d.ts.map +1 -0
- package/dist/cjs/helpers.js +1409 -0
- package/dist/{hooks → cjs/hooks}/useCopyPaste.d.ts +3 -2
- package/dist/cjs/hooks/useCopyPaste.d.ts.map +1 -0
- package/dist/cjs/hooks/useCopyPaste.js +230 -0
- package/dist/{hooks → cjs/hooks}/useEditable.d.ts +21 -8
- package/dist/cjs/hooks/useEditable.d.ts.map +1 -0
- package/dist/cjs/hooks/useEditable.js +491 -0
- package/dist/{hooks → cjs/hooks}/useFilter.d.ts +3 -2
- package/dist/cjs/hooks/useFilter.d.ts.map +1 -0
- package/dist/cjs/hooks/useFilter.js +97 -0
- package/dist/{hooks → cjs/hooks}/useImage.d.ts +1 -0
- package/dist/cjs/hooks/useImage.d.ts.map +1 -0
- package/dist/cjs/hooks/useImage.js +80 -0
- package/dist/{hooks → cjs/hooks}/usePagination.d.ts +3 -2
- package/dist/cjs/hooks/usePagination.d.ts.map +1 -0
- package/dist/cjs/hooks/usePagination.js +53 -0
- package/dist/{hooks → cjs/hooks}/useSizer.d.ts +28 -29
- package/dist/cjs/hooks/useSizer.d.ts.map +1 -0
- package/dist/cjs/hooks/useSizer.js +176 -0
- package/dist/{hooks → cjs/hooks}/useTooltip.d.ts +2 -1
- package/dist/cjs/hooks/useTooltip.d.ts.map +1 -0
- package/dist/cjs/hooks/useTooltip.js +82 -0
- package/dist/{hooks → cjs/hooks}/useUndo.d.ts +2 -1
- package/dist/cjs/hooks/useUndo.d.ts.map +1 -0
- package/dist/cjs/hooks/useUndo.js +87 -0
- package/dist/cjs/index.d.ts +19 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/{types.d.ts → cjs/types.d.ts} +8 -3
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/{types.js → cjs/types.js} +7 -8
- package/dist/cjs/utils.d.ts +9 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +58 -0
- package/dist/cjs/vitest.config.d.ts +3 -0
- package/dist/cjs/vitest.config.d.ts.map +1 -0
- package/dist/cjs/vitest.config.js +24 -0
- package/dist/esm/Cell.d.ts +35 -0
- package/dist/esm/Cell.d.ts.map +1 -0
- package/dist/esm/Cell.js +24 -0
- package/dist/esm/CellOverlay.d.ts +21 -0
- package/dist/esm/CellOverlay.d.ts.map +1 -0
- package/dist/esm/CellOverlay.js +120 -0
- package/dist/esm/Context.d.ts +8 -0
- package/dist/esm/Context.d.ts.map +1 -0
- package/dist/esm/Context.js +9 -0
- package/dist/esm/FillHandle.d.ts +8 -0
- package/dist/esm/FillHandle.d.ts.map +1 -0
- package/dist/{FillHandle.js → esm/FillHandle.js} +5 -11
- package/dist/esm/Grid.d.ts +558 -0
- package/dist/esm/Grid.d.ts.map +1 -0
- package/dist/esm/Grid.js +2451 -0
- package/dist/esm/GridLine.d.ts +5 -0
- package/dist/esm/GridLine.d.ts.map +1 -0
- package/dist/esm/GridLine.js +7 -0
- package/dist/esm/Image.d.ts +11 -0
- package/dist/esm/Image.d.ts.map +1 -0
- package/dist/esm/Image.js +53 -0
- package/dist/esm/MemoizedGrid.d.ts +49 -0
- package/dist/esm/MemoizedGrid.d.ts.map +1 -0
- package/dist/esm/MemoizedGrid.js +98 -0
- package/dist/esm/Selection.d.ts +5 -0
- package/dist/esm/Selection.d.ts.map +1 -0
- package/dist/esm/Selection.js +7 -0
- package/dist/esm/helpers.d.ts +281 -0
- package/dist/esm/helpers.d.ts.map +1 -0
- package/dist/esm/helpers.js +1260 -0
- package/dist/esm/hooks/useCopyPaste.d.ts +53 -0
- package/dist/esm/hooks/useCopyPaste.d.ts.map +1 -0
- package/dist/{hooks → esm/hooks}/useCopyPaste.js +40 -46
- package/dist/esm/hooks/useEditable.d.ts +253 -0
- package/dist/esm/hooks/useEditable.d.ts.map +1 -0
- package/dist/esm/hooks/useEditable.js +482 -0
- package/dist/esm/hooks/useFilter.d.ts +69 -0
- package/dist/esm/hooks/useFilter.d.ts.map +1 -0
- package/dist/{hooks → esm/hooks}/useFilter.js +22 -42
- package/dist/esm/hooks/useImage.d.ts +13 -0
- package/dist/esm/hooks/useImage.d.ts.map +1 -0
- package/dist/esm/hooks/useImage.js +76 -0
- package/dist/esm/hooks/usePagination.d.ts +69 -0
- package/dist/esm/hooks/usePagination.d.ts.map +1 -0
- package/dist/esm/hooks/usePagination.js +47 -0
- package/dist/esm/hooks/useSizer.d.ts +114 -0
- package/dist/esm/hooks/useSizer.d.ts.map +1 -0
- package/dist/esm/hooks/useSizer.js +176 -0
- package/dist/esm/hooks/useTooltip.d.ts +43 -0
- package/dist/esm/hooks/useTooltip.d.ts.map +1 -0
- package/dist/esm/hooks/useTooltip.js +80 -0
- package/dist/esm/hooks/useUndo.d.ts +36 -0
- package/dist/esm/hooks/useUndo.d.ts.map +1 -0
- package/dist/{hooks → esm/hooks}/useUndo.js +16 -25
- package/dist/esm/index.d.ts +19 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/esm/types.d.ts +70 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +68 -0
- package/dist/esm/utils.d.ts +9 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +104 -0
- package/dist/esm/vitest.config.d.ts +3 -0
- package/dist/esm/vitest.config.d.ts.map +1 -0
- package/dist/esm/vitest.config.js +22 -0
- package/package.json +28 -29
- package/dist/Cell.d.ts +0 -23
- package/dist/Cell.js +0 -55
- package/dist/Cell.js.map +0 -1
- package/dist/CellOverlay.js +0 -116
- package/dist/CellOverlay.js.map +0 -1
- package/dist/FillHandle.js.map +0 -1
- package/dist/Grid.d.ts +0 -385
- package/dist/Grid.js +0 -1684
- package/dist/Grid.js.map +0 -1
- package/dist/GridLine.js +0 -13
- package/dist/GridLine.js.map +0 -1
- package/dist/Image.d.ts +0 -8
- package/dist/Image.js +0 -50
- package/dist/Image.js.map +0 -1
- package/dist/Selection.d.ts +0 -4
- package/dist/Selection.js +0 -9
- package/dist/Selection.js.map +0 -1
- package/dist/helpers.js +0 -1033
- package/dist/helpers.js.map +0 -1
- package/dist/hooks/useCopyPaste.js.map +0 -1
- package/dist/hooks/useEditable.js +0 -477
- package/dist/hooks/useEditable.js.map +0 -1
- package/dist/hooks/useFilter.js.map +0 -1
- package/dist/hooks/useImage.js +0 -42
- package/dist/hooks/useImage.js.map +0 -1
- package/dist/hooks/usePagination.js +0 -73
- package/dist/hooks/usePagination.js.map +0 -1
- package/dist/hooks/useSelection.d.ts +0 -175
- package/dist/hooks/useSelection.js +0 -980
- package/dist/hooks/useSelection.js.map +0 -1
- package/dist/hooks/useSizer.js +0 -150
- package/dist/hooks/useSizer.js.map +0 -1
- package/dist/hooks/useTooltip.js +0 -106
- package/dist/hooks/useTooltip.js.map +0 -1
- package/dist/hooks/useTouch.d.ts +0 -21
- package/dist/hooks/useTouch.js +0 -73
- package/dist/hooks/useTouch.js.map +0 -1
- package/dist/hooks/useUndo.js.map +0 -1
- package/dist/index.d.ts +0 -25
- package/dist/index.js +0 -61
- package/dist/index.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -8
- package/dist/utils.js +0 -153
- package/dist/utils.js.map +0 -1
- package/src/Cell.tsx +0 -100
- package/src/CellOverlay.tsx +0 -191
- package/src/FillHandle.tsx +0 -37
- package/src/Grid.tsx +0 -2677
- package/src/GridLine.tsx +0 -23
- package/src/Image.tsx +0 -43
- package/src/Selection.tsx +0 -9
- package/src/helpers.ts +0 -1455
- package/src/hooks/useCopyPaste.ts +0 -265
- package/src/hooks/useEditable.tsx +0 -945
- package/src/hooks/useFilter.tsx +0 -233
- package/src/hooks/useImage.ts +0 -57
- package/src/hooks/usePagination.tsx +0 -153
- package/src/hooks/useSelection.ts +0 -1437
- package/src/hooks/useSizer.ts +0 -312
- package/src/hooks/useTooltip.tsx +0 -172
- package/src/hooks/useTouch.ts +0 -116
- package/src/hooks/useUndo.ts +0 -134
- package/src/index.tsx +0 -46
- package/src/tests/Grid.spec.tsx +0 -47
- package/src/tests/helpers.test.ts +0 -292
- package/src/tests/usePagination.test.ts +0 -28
- package/src/tests/useSelection.test.ts +0 -27
- package/src/tests/useUndo.test.ts +0 -73
- package/src/types.ts +0 -69
- package/src/utils.tsx +0 -287
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Cell, CellRenderer } from "./Cell";
|
|
2
|
+
import { CellOverlay, CellRenderer as CellOverlayRenderer } from "./CellOverlay";
|
|
3
|
+
import Grid from "./Grid";
|
|
4
|
+
import useFilter from "./hooks/useFilter";
|
|
5
|
+
import useUndo from "./hooks/useUndo";
|
|
6
|
+
import { Image } from "./Image";
|
|
7
|
+
import Selection from "./Selection";
|
|
8
|
+
export { Grid, CellRenderer, Cell, CellOverlay, useUndo, useFilter, CellOverlayRenderer, Image, Selection, };
|
|
9
|
+
export * from "./Grid";
|
|
10
|
+
export * from "./helpers";
|
|
11
|
+
export * from "./hooks/useFilter";
|
|
12
|
+
export * from "./hooks/useUndo";
|
|
13
|
+
export * from "./hooks/useTooltip";
|
|
14
|
+
export * from "./hooks/useEditable";
|
|
15
|
+
export * from "./types";
|
|
16
|
+
export type { ImageProps } from "./Image";
|
|
17
|
+
export * from "./utils";
|
|
18
|
+
export * from "./Context";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,YAAY,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,SAAS,GACV,CAAC;AACF,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Selection = exports.Image = exports.CellOverlayRenderer = exports.useFilter = exports.useUndo = exports.CellOverlay = exports.Cell = exports.CellRenderer = exports.Grid = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var Cell_1 = require("./Cell");
|
|
6
|
+
Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return Cell_1.Cell; } });
|
|
7
|
+
Object.defineProperty(exports, "CellRenderer", { enumerable: true, get: function () { return Cell_1.CellRenderer; } });
|
|
8
|
+
var CellOverlay_1 = require("./CellOverlay");
|
|
9
|
+
Object.defineProperty(exports, "CellOverlay", { enumerable: true, get: function () { return CellOverlay_1.CellOverlay; } });
|
|
10
|
+
Object.defineProperty(exports, "CellOverlayRenderer", { enumerable: true, get: function () { return CellOverlay_1.CellRenderer; } });
|
|
11
|
+
var Grid_1 = tslib_1.__importDefault(require("./Grid"));
|
|
12
|
+
exports.Grid = Grid_1.default;
|
|
13
|
+
var useFilter_1 = tslib_1.__importDefault(require("./hooks/useFilter"));
|
|
14
|
+
exports.useFilter = useFilter_1.default;
|
|
15
|
+
var useUndo_1 = tslib_1.__importDefault(require("./hooks/useUndo"));
|
|
16
|
+
exports.useUndo = useUndo_1.default;
|
|
17
|
+
var Image_1 = require("./Image");
|
|
18
|
+
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return Image_1.Image; } });
|
|
19
|
+
var Selection_1 = tslib_1.__importDefault(require("./Selection"));
|
|
20
|
+
exports.Selection = Selection_1.default;
|
|
21
|
+
tslib_1.__exportStar(require("./Grid"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./helpers"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./hooks/useFilter"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./hooks/useUndo"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./hooks/useTooltip"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./hooks/useEditable"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./utils"), exports);
|
|
29
|
+
tslib_1.__exportStar(require("./Context"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../../cell.tsx","../../celloverlay.tsx","../../context.tsx","../../fillhandle.tsx","../../grid.tsx","../../gridline.tsx","../../image.tsx","../../memoizedgrid.tsx","../../selection.tsx","../../helpers.ts","../../index.tsx","../../types.ts","../../utils.tsx","../../vitest.config.ts","../../hooks/usecopypaste.ts","../../hooks/useeditable.tsx","../../hooks/usefilter.tsx","../../hooks/useimage.ts","../../hooks/usepagination.tsx","../../hooks/usesizer.ts","../../hooks/usetooltip.tsx","../../hooks/useundo.ts"],"version":"5.8.3"}
|
|
@@ -58,8 +58,13 @@ export declare enum MimeType {
|
|
|
58
58
|
json = "application/json"
|
|
59
59
|
}
|
|
60
60
|
export declare enum MouseButtonCodes {
|
|
61
|
-
"left" =
|
|
62
|
-
"middle" =
|
|
63
|
-
"right" =
|
|
61
|
+
"left" = 0,
|
|
62
|
+
"middle" = 1,
|
|
63
|
+
"right" = 2
|
|
64
64
|
}
|
|
65
65
|
export type SelectionPolicy = "single" | "range" | "multiple";
|
|
66
|
+
export type RowRange = {
|
|
67
|
+
start: number;
|
|
68
|
+
end: number;
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,KAAK;IACV,IAAI,KAAK;IACT,EAAE,KAAK;IACP,IAAI,KAAK;IACT,MAAM,KAAK;IACX,GAAG,IAAI;IACP,IAAI,KAAK;IACT,MAAM,KAAK;IACX,SAAS,IAAI;IACb,KAAK,KAAK;IACV,CAAC,KAAK;IACN,KAAK,KAAK;IACV,GAAG,KAAK;IACR,CAAC,KAAK;IACN,IAAI,KAAK;IACT,GAAG,KAAK;IACR,QAAQ,KAAK;IACb,MAAM,KAAK;IACX,CAAC,KAAK;IACN,QAAQ,KAAK;IACb,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,UAAU,MAAM;IAChB,KAAK,KAAK;IACV,UAAU,MAAM;IAChB,OAAO,MAAM;IACb,KAAK,KAAK;IACV,MAAM,KAAK;IACX,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,GAAG,MAAM;IACT,GAAG,MAAM;IACT,GAAG,MAAM;CACV;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,QAAQ;IAClB,IAAI,cAAc;IAClB,GAAG,aAAa;IAChB,KAAK,eAAe;IACpB,IAAI,qBAAqB;CAC1B;AAED,oBAAY,gBAAgB;IAC1B,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,OAAO,IAAI;CACZ;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC"}
|
|
@@ -48,25 +48,24 @@ var KeyCodes;
|
|
|
48
48
|
KeyCodes[KeyCodes["F10"] = 121] = "F10";
|
|
49
49
|
KeyCodes[KeyCodes["F11"] = 122] = "F11";
|
|
50
50
|
KeyCodes[KeyCodes["F12"] = 123] = "F12";
|
|
51
|
-
})(KeyCodes
|
|
51
|
+
})(KeyCodes || (exports.KeyCodes = KeyCodes = {}));
|
|
52
52
|
var Direction;
|
|
53
53
|
(function (Direction) {
|
|
54
54
|
Direction["Up"] = "UP";
|
|
55
55
|
Direction["Down"] = "DOWN";
|
|
56
56
|
Direction["Left"] = "LEFT";
|
|
57
57
|
Direction["Right"] = "RIGHT";
|
|
58
|
-
})(Direction
|
|
58
|
+
})(Direction || (exports.Direction = Direction = {}));
|
|
59
59
|
var MimeType;
|
|
60
60
|
(function (MimeType) {
|
|
61
61
|
MimeType["html"] = "text/html";
|
|
62
62
|
MimeType["csv"] = "text/csv";
|
|
63
63
|
MimeType["plain"] = "text/plain";
|
|
64
64
|
MimeType["json"] = "application/json";
|
|
65
|
-
})(MimeType
|
|
65
|
+
})(MimeType || (exports.MimeType = MimeType = {}));
|
|
66
66
|
var MouseButtonCodes;
|
|
67
67
|
(function (MouseButtonCodes) {
|
|
68
|
-
MouseButtonCodes[MouseButtonCodes["left"] =
|
|
69
|
-
MouseButtonCodes[MouseButtonCodes["middle"] =
|
|
70
|
-
MouseButtonCodes[MouseButtonCodes["right"] =
|
|
71
|
-
})(MouseButtonCodes
|
|
72
|
-
//# sourceMappingURL=types.js.map
|
|
68
|
+
MouseButtonCodes[MouseButtonCodes["left"] = 0] = "left";
|
|
69
|
+
MouseButtonCodes[MouseButtonCodes["middle"] = 1] = "middle";
|
|
70
|
+
MouseButtonCodes[MouseButtonCodes["right"] = 2] = "right";
|
|
71
|
+
})(MouseButtonCodes || (exports.MouseButtonCodes = MouseButtonCodes = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SelectionProps } from "./Grid";
|
|
3
|
+
/**
|
|
4
|
+
* Create Pure HTML boxes
|
|
5
|
+
* @param param0
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare const createHTMLBox: ({ x, y, width, height, fill, stroke, strokeLeftColor, strokeTopColor, strokeRightColor, strokeBottomColor, strokeWidth, strokeTopWidth, strokeRightWidth, strokeBottomWidth, strokeLeftWidth, index, strokeStyle, fillOpacity, draggable, isDragging, borderCoverWidth, children, ...props }: SelectionProps) => React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,8RAwB3B,cAAc,sBA4IhB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createHTMLBox = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
/**
|
|
7
|
+
* Create Pure HTML boxes
|
|
8
|
+
* @param param0
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
var createHTMLBox = function (_a) {
|
|
12
|
+
var _b = _a.x, x = _b === void 0 ? 0 : _b, _c = _a.y, y = _c === void 0 ? 0 : _c, _d = _a.width, width = _d === void 0 ? 0 : _d, _e = _a.height, height = _e === void 0 ? 0 : _e, fill = _a.fill, stroke = _a.stroke, _f = _a.strokeLeftColor, strokeLeftColor = _f === void 0 ? stroke : _f, _g = _a.strokeTopColor, strokeTopColor = _g === void 0 ? stroke : _g, _h = _a.strokeRightColor, strokeRightColor = _h === void 0 ? stroke : _h, _j = _a.strokeBottomColor, strokeBottomColor = _j === void 0 ? stroke : _j, _k = _a.strokeWidth, strokeWidth = _k === void 0 ? 0 : _k, _l = _a.strokeTopWidth, strokeTopWidth = _l === void 0 ? strokeWidth : _l, _m = _a.strokeRightWidth, strokeRightWidth = _m === void 0 ? strokeWidth : _m, _o = _a.strokeBottomWidth, strokeBottomWidth = _o === void 0 ? strokeWidth : _o, _p = _a.strokeLeftWidth, strokeLeftWidth = _p === void 0 ? strokeWidth : _p, index = _a.index, _q = _a.strokeStyle, strokeStyle = _q === void 0 ? "solid" : _q, _r = _a.fillOpacity, fillOpacity = _r === void 0 ? 1 : _r, draggable = _a.draggable, isDragging = _a.isDragging, _s = _a.borderCoverWidth, borderCoverWidth = _s === void 0 ? 5 : _s, children = _a.children, props = tslib_1.__rest(_a, ["x", "y", "width", "height", "fill", "stroke", "strokeLeftColor", "strokeTopColor", "strokeRightColor", "strokeBottomColor", "strokeWidth", "strokeTopWidth", "strokeRightWidth", "strokeBottomWidth", "strokeLeftWidth", "index", "strokeStyle", "fillOpacity", "draggable", "isDragging", "borderCoverWidth", "children"]);
|
|
13
|
+
var lineStyles = {
|
|
14
|
+
borderWidth: 0,
|
|
15
|
+
position: "absolute",
|
|
16
|
+
pointerEvents: "none",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Border cover is so that there is enough
|
|
20
|
+
* draggable handle area for the user.
|
|
21
|
+
* Default is 5px
|
|
22
|
+
*/
|
|
23
|
+
var showBorderCover = draggable;
|
|
24
|
+
var borderCoverStyle = {
|
|
25
|
+
position: "absolute",
|
|
26
|
+
pointerEvents: draggable ? "auto" : "none",
|
|
27
|
+
cursor: draggable ? (isDragging ? "grabbing" : "grab") : "initial",
|
|
28
|
+
};
|
|
29
|
+
width = width - Math.floor(strokeWidth / 2);
|
|
30
|
+
height = height - Math.floor(strokeWidth / 2);
|
|
31
|
+
var lines = [
|
|
32
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: width, height: strokeTopWidth, borderColor: strokeTopColor, borderTopWidth: strokeTopWidth, borderStyle: strokeStyle }), key: "top" }, props)),
|
|
33
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x + width, "px, ").concat(y, "px, 0)"), width: strokeRightWidth, height: height, borderColor: strokeRightColor, borderRightWidth: strokeRightWidth, borderStyle: strokeStyle }), key: "right" }, props)),
|
|
34
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y + height, "px, 0)"), width: width + strokeTopWidth, height: strokeBottomWidth, borderColor: strokeBottomColor, borderBottomWidth: strokeBottomWidth, borderStyle: strokeStyle }), key: "bottom" }, props)),
|
|
35
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: strokeLeftWidth, height: height, borderColor: strokeLeftColor, borderLeftWidth: strokeLeftWidth, borderStyle: strokeStyle }), key: "left" }, props)),
|
|
36
|
+
];
|
|
37
|
+
var borderCovers = [
|
|
38
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: width, height: 5 }), key: "top" }, props)),
|
|
39
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x + width - borderCoverWidth + strokeRightWidth, "px, ").concat(y, "px, 0)"), width: borderCoverWidth, height: height }), key: "right" }, props)),
|
|
40
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y + height - borderCoverWidth + strokeBottomWidth, "px, 0)"), width: width + strokeTopWidth, height: borderCoverWidth }), key: "bottom" }, props)),
|
|
41
|
+
react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: borderCoverWidth, height: height }), key: "left" }, props)),
|
|
42
|
+
];
|
|
43
|
+
return (react_1.default.createElement(react_1.default.Fragment, { key: index },
|
|
44
|
+
fill && (react_1.default.createElement("div", { style: {
|
|
45
|
+
position: "absolute",
|
|
46
|
+
transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"),
|
|
47
|
+
height: height,
|
|
48
|
+
width: width,
|
|
49
|
+
backgroundColor: fill,
|
|
50
|
+
opacity: fillOpacity,
|
|
51
|
+
userSelect: "none",
|
|
52
|
+
pointerEvents: "none",
|
|
53
|
+
} })),
|
|
54
|
+
lines,
|
|
55
|
+
showBorderCover && borderCovers,
|
|
56
|
+
children));
|
|
57
|
+
};
|
|
58
|
+
exports.createHTMLBox = createHTMLBox;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../vitest.config.ts"],"names":[],"mappings":";AAGA,wBAsBG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// vitest.config.ts
|
|
4
|
+
var config_1 = require("vitest/config");
|
|
5
|
+
exports.default = (0, config_1.defineConfig)({
|
|
6
|
+
test: {
|
|
7
|
+
globals: true,
|
|
8
|
+
environment: "jsdom",
|
|
9
|
+
// ✅ correct location for deps.inline
|
|
10
|
+
deps: {
|
|
11
|
+
inline: ["konva", "react-konva"],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
// Ensure Vite bundles these for SSR-style test runs
|
|
15
|
+
ssr: {
|
|
16
|
+
noExternal: ["konva", "react-konva"],
|
|
17
|
+
},
|
|
18
|
+
// Prefer the ESM build of react-konva (avoid its CJS wrapper that requires konva)
|
|
19
|
+
resolve: {
|
|
20
|
+
alias: {
|
|
21
|
+
"react-konva": "react-konva/es/ReactKonvaCore.js",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RendererProps } from "./Grid";
|
|
3
|
+
export interface CellProps extends RendererProps {
|
|
4
|
+
value?: string;
|
|
5
|
+
color?: string;
|
|
6
|
+
padding?: number;
|
|
7
|
+
bold?: boolean;
|
|
8
|
+
italic?: boolean;
|
|
9
|
+
strikethrough?: boolean;
|
|
10
|
+
underline?: boolean;
|
|
11
|
+
lineHeight?: number;
|
|
12
|
+
textDecoration?: string;
|
|
13
|
+
verticalAlignment?: string;
|
|
14
|
+
horizontalAlignment?: string;
|
|
15
|
+
fontFamily?: string;
|
|
16
|
+
fontSize?: number;
|
|
17
|
+
wrapStrategy?: string;
|
|
18
|
+
scale?: number;
|
|
19
|
+
backgroundColor?: string;
|
|
20
|
+
image?: string;
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Default cell component
|
|
25
|
+
* @param props
|
|
26
|
+
*/
|
|
27
|
+
declare const Cell: React.FC<CellProps>;
|
|
28
|
+
/**
|
|
29
|
+
* Default CellRenderer
|
|
30
|
+
* @param props
|
|
31
|
+
*/
|
|
32
|
+
declare const CellRenderer: (props: RendererProps) => React.JSX.Element;
|
|
33
|
+
export default CellRenderer;
|
|
34
|
+
export { CellRenderer, Cell };
|
|
35
|
+
//# sourceMappingURL=Cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgD5B,CAAC;AAIH;;;GAGG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,aAAa,sBAEzC,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/esm/Cell.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { memo } from "react";
|
|
2
|
+
import { Group, Text } from "react-konva";
|
|
3
|
+
import { isNull } from "./helpers";
|
|
4
|
+
/**
|
|
5
|
+
* Default cell component
|
|
6
|
+
* @param props
|
|
7
|
+
*/
|
|
8
|
+
const Cell = memo((props) => {
|
|
9
|
+
const { x = 0, y = 0, width, height, value, horizontalAlignment = "left", verticalAlignment = "bottom", color = "#333", padding = 3, fontFamily = "Arial", fontSize = 12, children, wrapStrategy = "none", bold, italic, textDecoration, lineHeight = 1, } = props;
|
|
10
|
+
const textStyle = `${bold ? "bold" : "normal"} ${italic ? "italic" : "normal"}`;
|
|
11
|
+
return (React.createElement(Group, null,
|
|
12
|
+
isNull(value) ? null : (React.createElement(Text, { x: x, y: y, height: height, width: width, text: value, fill: color, verticalAlign: verticalAlignment, align: horizontalAlignment, fontFamily: fontFamily, fontStyle: textStyle, textDecoration: textDecoration, padding: padding, wrap: wrapStrategy, fontSize: fontSize, hitStrokeWidth: 0, lineHeight: lineHeight })),
|
|
13
|
+
children));
|
|
14
|
+
});
|
|
15
|
+
Cell.displayName = "Cell";
|
|
16
|
+
/**
|
|
17
|
+
* Default CellRenderer
|
|
18
|
+
* @param props
|
|
19
|
+
*/
|
|
20
|
+
const CellRenderer = (props) => {
|
|
21
|
+
return React.createElement(Cell, { ...props });
|
|
22
|
+
};
|
|
23
|
+
export default CellRenderer;
|
|
24
|
+
export { CellRenderer, Cell };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { CellProps } from "./Cell";
|
|
3
|
+
import type { RendererProps } from "./Grid";
|
|
4
|
+
export type StrokeCellProps = Omit<CellProps, "key" | "rowIndex" | "columnIndex">;
|
|
5
|
+
/**
|
|
6
|
+
* Offset helps multiple borders to align properly
|
|
7
|
+
* @param width
|
|
8
|
+
*/
|
|
9
|
+
export declare const getOffsetFromWidth: (width: number) => number;
|
|
10
|
+
/**
|
|
11
|
+
* Only used for strokes
|
|
12
|
+
*/
|
|
13
|
+
declare const CellOverlay: React.FC<StrokeCellProps>;
|
|
14
|
+
/**
|
|
15
|
+
* Default CellRenderer
|
|
16
|
+
* @param props
|
|
17
|
+
*/
|
|
18
|
+
declare const CellRenderer: (props: RendererProps) => React.JSX.Element | null;
|
|
19
|
+
export default CellRenderer;
|
|
20
|
+
export { CellRenderer, CellOverlay };
|
|
21
|
+
//# sourceMappingURL=CellOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellOverlay.d.ts","sourceRoot":"","sources":["../../CellOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAK5C,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,SAAS,EACT,KAAK,GAAG,UAAU,GAAG,aAAa,CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAE/C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgJzC,CAAC;AAEH;;;GAGG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,aAAa,6BAmEzC,CAAC;AAGF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React, { memo } from "react";
|
|
2
|
+
import { Shape } from "react-konva";
|
|
3
|
+
/* Array placeholder */
|
|
4
|
+
const EMPTY_ARRAY = [];
|
|
5
|
+
/**
|
|
6
|
+
* Offset helps multiple borders to align properly
|
|
7
|
+
* @param width
|
|
8
|
+
*/
|
|
9
|
+
export const getOffsetFromWidth = (width) => {
|
|
10
|
+
return width / 2 - 0.5;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Only used for strokes
|
|
14
|
+
*/
|
|
15
|
+
const CellOverlay = memo((props) => {
|
|
16
|
+
const { x, y, width, height, strokeTopColor, strokeRightColor, strokeBottomColor, strokeLeftColor, strokeDiagonalUpColor, strokeDiagonalDownColor, strokeTopDash = EMPTY_ARRAY, strokeRightDash = EMPTY_ARRAY, strokeBottomDash = EMPTY_ARRAY, strokeLeftDash = EMPTY_ARRAY, strokeDiagonalUpDash = EMPTY_ARRAY, strokeDiagonalDownDash = EMPTY_ARRAY, strokeTopWidth = 0, strokeRightWidth = 0, strokeBottomWidth = 0, strokeLeftWidth = 0, strokeDiagonalUpWidth = 0, strokeDiagonalDownWidth = 0, lineCap, } = props;
|
|
17
|
+
const userStroke = strokeTopColor ||
|
|
18
|
+
strokeRightColor ||
|
|
19
|
+
strokeBottomColor ||
|
|
20
|
+
strokeLeftColor ||
|
|
21
|
+
strokeDiagonalUpColor ||
|
|
22
|
+
strokeDiagonalDownColor;
|
|
23
|
+
if (!userStroke)
|
|
24
|
+
return null;
|
|
25
|
+
return (React.createElement(Shape, { x: x, y: y, width: width, height: height, listening: false, perfectDrawEnabled: false, sceneFunc: (context, shape) => {
|
|
26
|
+
/* Top border */
|
|
27
|
+
if (strokeTopColor) {
|
|
28
|
+
context.beginPath();
|
|
29
|
+
context.moveTo(strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0, 0.5);
|
|
30
|
+
context.lineTo(shape.width() +
|
|
31
|
+
(strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1), 0.5);
|
|
32
|
+
context.setAttr("strokeStyle", strokeTopColor);
|
|
33
|
+
context.setAttr("lineWidth", strokeTopWidth);
|
|
34
|
+
context.setAttr("lineCap", lineCap);
|
|
35
|
+
context.setLineDash(strokeTopDash);
|
|
36
|
+
context.stroke();
|
|
37
|
+
}
|
|
38
|
+
/* Bottom border */
|
|
39
|
+
if (strokeBottomColor) {
|
|
40
|
+
context.beginPath();
|
|
41
|
+
context.moveTo(strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0, shape.height() + 0.5);
|
|
42
|
+
context.lineTo(shape.width() +
|
|
43
|
+
(strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1), shape.height() + 0.5);
|
|
44
|
+
context.setAttr("lineWidth", strokeBottomWidth);
|
|
45
|
+
context.setAttr("strokeStyle", strokeBottomColor);
|
|
46
|
+
context.setAttr("lineCap", lineCap);
|
|
47
|
+
context.setLineDash(strokeBottomDash);
|
|
48
|
+
context.stroke();
|
|
49
|
+
}
|
|
50
|
+
/* Left border */
|
|
51
|
+
if (strokeLeftColor) {
|
|
52
|
+
context.beginPath();
|
|
53
|
+
context.moveTo(0.5, strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0);
|
|
54
|
+
context.lineTo(0.5, shape.height() +
|
|
55
|
+
(strokeBottomColor
|
|
56
|
+
? getOffsetFromWidth(strokeBottomWidth) + 1
|
|
57
|
+
: 1));
|
|
58
|
+
context.setAttr("strokeStyle", strokeLeftColor);
|
|
59
|
+
context.setAttr("lineWidth", strokeLeftWidth);
|
|
60
|
+
context.setAttr("lineCap", lineCap);
|
|
61
|
+
context.setLineDash(strokeLeftDash);
|
|
62
|
+
context.stroke();
|
|
63
|
+
}
|
|
64
|
+
/* Right border */
|
|
65
|
+
if (strokeRightColor) {
|
|
66
|
+
context.beginPath();
|
|
67
|
+
context.moveTo(shape.width() + 0.5, strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0);
|
|
68
|
+
context.lineTo(shape.width() + 0.5, shape.height() +
|
|
69
|
+
(strokeBottomColor
|
|
70
|
+
? getOffsetFromWidth(strokeBottomWidth) + 1
|
|
71
|
+
: 1));
|
|
72
|
+
context.setAttr("strokeStyle", strokeRightColor);
|
|
73
|
+
context.setAttr("lineWidth", strokeRightWidth);
|
|
74
|
+
context.setAttr("lineCap", lineCap);
|
|
75
|
+
context.setLineDash(strokeRightDash);
|
|
76
|
+
context.stroke();
|
|
77
|
+
}
|
|
78
|
+
/* Diagonal: top-left to bottom-right (diagonalDown) */
|
|
79
|
+
if (strokeDiagonalDownColor) {
|
|
80
|
+
context.beginPath();
|
|
81
|
+
context.moveTo(0, 0);
|
|
82
|
+
context.lineTo(shape.width(), shape.height());
|
|
83
|
+
context.setAttr("strokeStyle", strokeDiagonalDownColor);
|
|
84
|
+
context.setAttr("lineWidth", strokeDiagonalDownWidth);
|
|
85
|
+
context.setAttr("lineCap", lineCap);
|
|
86
|
+
context.setLineDash(strokeDiagonalDownDash);
|
|
87
|
+
context.stroke();
|
|
88
|
+
}
|
|
89
|
+
/* Diagonal: bottom-left to top-right (diagonalUp) */
|
|
90
|
+
if (strokeDiagonalUpColor) {
|
|
91
|
+
context.beginPath();
|
|
92
|
+
context.moveTo(0, shape.height());
|
|
93
|
+
context.lineTo(shape.width(), 0);
|
|
94
|
+
context.setAttr("strokeStyle", strokeDiagonalUpColor);
|
|
95
|
+
context.setAttr("lineWidth", strokeDiagonalUpWidth);
|
|
96
|
+
context.setAttr("lineCap", lineCap);
|
|
97
|
+
context.setLineDash(strokeDiagonalUpDash);
|
|
98
|
+
context.stroke();
|
|
99
|
+
}
|
|
100
|
+
} }));
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Default CellRenderer
|
|
104
|
+
* @param props
|
|
105
|
+
*/
|
|
106
|
+
const CellRenderer = (props) => {
|
|
107
|
+
const { x, y, width, height, stroke, strokeTopColor = stroke, strokeRightColor = stroke, strokeBottomColor = stroke, strokeLeftColor = stroke, strokeDiagonalUpColor, strokeDiagonalDownColor, strokeDash = EMPTY_ARRAY, strokeTopDash = EMPTY_ARRAY, strokeRightDash = EMPTY_ARRAY, strokeBottomDash = EMPTY_ARRAY, strokeLeftDash = EMPTY_ARRAY, strokeDiagonalUpDash = EMPTY_ARRAY, strokeDiagonalDownDash = EMPTY_ARRAY, strokeWidth = 1, strokeTopWidth = strokeWidth, strokeRightWidth = strokeWidth, strokeBottomWidth = strokeWidth, strokeLeftWidth = strokeWidth, strokeDiagonalUpWidth = strokeWidth, strokeDiagonalDownWidth = strokeWidth, lineCap = "butt", key, } = props;
|
|
108
|
+
const userStroke = strokeTopColor ||
|
|
109
|
+
strokeRightColor ||
|
|
110
|
+
strokeBottomColor ||
|
|
111
|
+
strokeLeftColor ||
|
|
112
|
+
strokeDiagonalUpColor ||
|
|
113
|
+
strokeDiagonalDownColor;
|
|
114
|
+
if (!userStroke)
|
|
115
|
+
return null;
|
|
116
|
+
return (React.createElement(CellOverlay, { key: key, x: x, y: y, width: width, height: height, strokeTopColor: strokeTopColor, strokeRightColor: strokeRightColor, strokeBottomColor: strokeBottomColor, strokeLeftColor: strokeLeftColor, strokeDiagonalUpColor: strokeDiagonalUpColor, strokeDiagonalDownColor: strokeDiagonalDownColor, strokeDash: strokeDash, strokeTopDash: strokeTopDash, strokeRightDash: strokeRightDash, strokeBottomDash: strokeBottomDash, strokeLeftDash: strokeLeftDash, strokeDiagonalUpDash: strokeDiagonalUpDash, strokeDiagonalDownDash: strokeDiagonalDownDash, strokeTopWidth: strokeTopWidth, strokeRightWidth: strokeRightWidth, strokeBottomWidth: strokeBottomWidth, strokeLeftWidth: strokeLeftWidth, strokeDiagonalUpWidth: strokeDiagonalUpWidth, strokeDiagonalDownWidth: strokeDiagonalDownWidth, lineCap: lineCap }));
|
|
117
|
+
};
|
|
118
|
+
CellOverlay.displayName = "CellOverlay";
|
|
119
|
+
export default CellRenderer;
|
|
120
|
+
export { CellRenderer, CellOverlay };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CellInterface, CellPosition } from "./Grid";
|
|
2
|
+
type GridContext = {
|
|
3
|
+
getCellOffsetFromCoords(coords: CellInterface, readonly?: boolean): CellPosition | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const GridContext: import("react").Context<GridContext | undefined>;
|
|
6
|
+
export declare const useGridContext: () => GridContext;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=Context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../Context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE1D,KAAK,WAAW,GAAG;IACjB,uBAAuB,CACrB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,OAAO,GACjB,YAAY,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,WAAW,kDAAoD,CAAC;AAE7E,eAAO,MAAM,cAAc,mBAM1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
export const GridContext = createContext(undefined);
|
|
3
|
+
export const useGridContext = () => {
|
|
4
|
+
const contextValue = useContext(GridContext);
|
|
5
|
+
if (!contextValue) {
|
|
6
|
+
throw "Wrap your grid in GridContext.Provider";
|
|
7
|
+
}
|
|
8
|
+
return contextValue;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FillHandle.d.ts","sourceRoot":"","sources":["../../FillHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4BrC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
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
|
-
const react_1 = __importDefault(require("react"));
|
|
1
|
+
import React from "react";
|
|
7
2
|
/**
|
|
8
3
|
* Fill handle component
|
|
9
4
|
*/
|
|
10
5
|
const FillHandle = ({ x = 0, y = 0, stroke, strokeWidth = 1, size = 8, borderColor, ...props }) => {
|
|
11
6
|
if (x === 0 || y === 0)
|
|
12
7
|
return null;
|
|
13
|
-
return (
|
|
8
|
+
return (React.createElement("div", { style: {
|
|
14
9
|
position: "absolute",
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
transform: `translate3d(${x - size / 2}px, ${y - size / 2}px, 0)`,
|
|
11
|
+
transformOrigin: "0, 0",
|
|
17
12
|
width: size,
|
|
18
13
|
height: size,
|
|
19
14
|
border: `${strokeWidth}px ${borderColor} solid`,
|
|
@@ -24,5 +19,4 @@ const FillHandle = ({ x = 0, y = 0, stroke, strokeWidth = 1, size = 8, borderCol
|
|
|
24
19
|
pointerEvents: "all",
|
|
25
20
|
}, ...props }));
|
|
26
21
|
};
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=FillHandle.js.map
|
|
22
|
+
export default FillHandle;
|