m2mui-datasheet 4.0.0 → 4.0.1

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 (76) hide show
  1. package/Cell.d.ts +5 -4
  2. package/Cell.js +14 -28
  3. package/Cell.js.map +1 -1
  4. package/Controller.d.ts +5 -1
  5. package/Controller.js +2 -8
  6. package/Controller.js.map +1 -1
  7. package/CustomCell.js +4 -5
  8. package/CustomCell.js.map +1 -1
  9. package/DataSheet.d.ts +2 -4
  10. package/DataSheet.js +21 -39
  11. package/DataSheet.js.map +1 -1
  12. package/DataSheetCheckbox.d.ts +4 -1
  13. package/DataSheetCheckbox.js +6 -14
  14. package/DataSheetCheckbox.js.map +1 -1
  15. package/DataSheetInput.d.ts +3 -1
  16. package/DataSheetInput.js +1 -5
  17. package/DataSheetInput.js.map +1 -1
  18. package/DataSheetSelect.d.ts +5 -1
  19. package/DataSheetSelect.js +1 -5
  20. package/DataSheetSelect.js.map +1 -1
  21. package/InnerElement.d.ts +1 -1
  22. package/InnerElement.js +13 -24
  23. package/InnerElement.js.map +1 -1
  24. package/README.md +1 -78
  25. package/cjs/Cell.js +11 -29
  26. package/cjs/Cell.js.map +1 -1
  27. package/cjs/Controller.js +2 -13
  28. package/cjs/Controller.js.map +1 -1
  29. package/cjs/CustomCell.js +5 -16
  30. package/cjs/CustomCell.js.map +1 -1
  31. package/cjs/DataSheet.js +55 -55
  32. package/cjs/DataSheet.js.map +1 -1
  33. package/cjs/DataSheetCheckbox.js +3 -13
  34. package/cjs/DataSheetCheckbox.js.map +1 -1
  35. package/cjs/DataSheetInput.js +2 -11
  36. package/cjs/DataSheetInput.js.map +1 -1
  37. package/cjs/DataSheetSelect.js +2 -11
  38. package/cjs/DataSheetSelect.js.map +1 -1
  39. package/cjs/InnerElement.js +8 -24
  40. package/cjs/InnerElement.js.map +1 -1
  41. package/cjs/index.js +0 -6
  42. package/cjs/index.js.map +1 -1
  43. package/cjs/useOnClickOutside.js +3 -11
  44. package/cjs/useOnClickOutside.js.map +1 -1
  45. package/esm/Cell.js +14 -28
  46. package/esm/Cell.js.map +1 -1
  47. package/esm/Controller.js +2 -8
  48. package/esm/Controller.js.map +1 -1
  49. package/esm/CustomCell.js +4 -5
  50. package/esm/CustomCell.js.map +1 -1
  51. package/esm/DataSheet.js +21 -39
  52. package/esm/DataSheet.js.map +1 -1
  53. package/esm/DataSheetCheckbox.js +6 -14
  54. package/esm/DataSheetCheckbox.js.map +1 -1
  55. package/esm/DataSheetInput.js +1 -5
  56. package/esm/DataSheetInput.js.map +1 -1
  57. package/esm/DataSheetSelect.js +1 -5
  58. package/esm/DataSheetSelect.js.map +1 -1
  59. package/esm/InnerElement.js +13 -24
  60. package/esm/InnerElement.js.map +1 -1
  61. package/esm/index.js.map +1 -1
  62. package/esm/useOnClickOutside.js +3 -8
  63. package/esm/useOnClickOutside.js.map +1 -1
  64. package/index.js.map +1 -1
  65. package/package.json +24 -44
  66. package/types/Cell.d.ts +5 -4
  67. package/types/Controller.d.ts +5 -1
  68. package/types/DataSheet.d.ts +2 -4
  69. package/types/DataSheetCheckbox.d.ts +4 -1
  70. package/types/DataSheetInput.d.ts +3 -1
  71. package/types/DataSheetSelect.d.ts +5 -1
  72. package/types/InnerElement.d.ts +1 -1
  73. package/types/useOnClickOutside.d.ts +1 -1
  74. package/useOnClickOutside.d.ts +1 -1
  75. package/useOnClickOutside.js +3 -8
  76. package/useOnClickOutside.js.map +1 -1
package/DataSheet.js CHANGED
@@ -1,38 +1,32 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
2
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
-
5
3
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
-
4
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
7
5
  import { Controller, DownloadButton } from "./Controller";
8
6
  import { CustomCell } from "./CustomCell";
9
- import { VariableSizeGrid as Grid } from "react-window";
10
7
  import { InnerElement, InnerElementContext } from "./InnerElement";
8
+ import { VariableSizeGrid } from "react-window";
11
9
  import { useOnClickOutside } from "./useOnClickOutside";
12
10
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
13
11
  import { jsx as ___EmotionJSX } from "@emotion/react";
14
-
12
+ var Grid = VariableSizeGrid;
15
13
  var paste = /*#__PURE__*/function () {
16
14
  var _ref = _asyncToGenerator(function* () {
17
15
  var text = yield navigator.clipboard.readText();
18
16
  return text;
19
17
  });
20
-
21
18
  return function paste() {
22
19
  return _ref.apply(this, arguments);
23
20
  };
24
21
  }();
25
-
26
22
  var copy = /*#__PURE__*/function () {
27
23
  var _ref2 = _asyncToGenerator(function* (text) {
28
24
  yield navigator.clipboard.writeText(text);
29
25
  });
30
-
31
26
  return function copy(_x) {
32
27
  return _ref2.apply(this, arguments);
33
28
  };
34
29
  }();
35
-
36
30
  export var DataSheet = _ref3 => {
37
31
  var {
38
32
  data,
@@ -55,6 +49,7 @@ export var DataSheet = _ref3 => {
55
49
  }, [data, columns]);
56
50
  var history = useRef([]);
57
51
  useEffect(() => {
52
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
58
53
  history.current.push(JSON.parse(JSON.stringify(data)));
59
54
  }, [data]);
60
55
  var handleChangeCheckbox = useCallback(event => {
@@ -68,6 +63,7 @@ export var DataSheet = _ref3 => {
68
63
  var {
69
64
  key
70
65
  } = columns[y];
66
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
71
67
  var copy = JSON.parse(JSON.stringify(data));
72
68
  var {
73
69
  checked
@@ -88,6 +84,7 @@ export var DataSheet = _ref3 => {
88
84
  var {
89
85
  key
90
86
  } = columns[y];
87
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
91
88
  var copy = JSON.parse(JSON.stringify(data));
92
89
  var {
93
90
  value
@@ -97,10 +94,10 @@ export var DataSheet = _ref3 => {
97
94
  });
98
95
  history.current.push(copy);
99
96
  }, [columns, data]);
97
+
100
98
  /**
101
99
  * Select
102
100
  */
103
-
104
101
  var {
105
102
  current: initialSelection
106
103
  } = useRef({
@@ -141,11 +138,8 @@ export var DataSheet = _ref3 => {
141
138
  row: _row,
142
139
  column: _column
143
140
  } = event.currentTarget.dataset;
144
-
145
141
  var _x2 = parseInt(_row, 10);
146
-
147
142
  var _y = parseInt(_column, 10);
148
-
149
143
  setSelection(prev => {
150
144
  if (prev.active === true) return prev;
151
145
  return {
@@ -172,7 +166,6 @@ export var DataSheet = _ref3 => {
172
166
  var y = parseInt(column, 10);
173
167
  setSelection(prev => {
174
168
  if (prev.active === false) return prev;
175
-
176
169
  if (prev.type === "cell") {
177
170
  return _extends({}, prev, {
178
171
  end: {
@@ -181,7 +174,6 @@ export var DataSheet = _ref3 => {
181
174
  }
182
175
  });
183
176
  }
184
-
185
177
  if (prev.type === "column") {
186
178
  return _extends({}, prev, {
187
179
  end: {
@@ -190,7 +182,6 @@ export var DataSheet = _ref3 => {
190
182
  }
191
183
  });
192
184
  }
193
-
194
185
  if (prev.type === "row") {
195
186
  return _extends({}, prev, {
196
187
  end: {
@@ -199,7 +190,6 @@ export var DataSheet = _ref3 => {
199
190
  }
200
191
  });
201
192
  }
202
-
203
193
  return prev;
204
194
  });
205
195
  }, []);
@@ -227,8 +217,8 @@ export var DataSheet = _ref3 => {
227
217
  });
228
218
  }
229
219
  }, [handleShiftKeyUp]);
230
- /** Column */
231
220
 
221
+ /** Column */
232
222
  var handleSelectColumn = useCallback(event => {
233
223
  var {
234
224
  column
@@ -287,8 +277,8 @@ export var DataSheet = _ref3 => {
287
277
  });
288
278
  });
289
279
  }, []);
290
- /** Row */
291
280
 
281
+ /** Row */
292
282
  var handleSelectRow = useCallback(event => {
293
283
  var {
294
284
  row
@@ -347,6 +337,7 @@ export var DataSheet = _ref3 => {
347
337
  });
348
338
  });
349
339
  }, []);
340
+
350
341
  /** All */
351
342
 
352
343
  var handleSelectAll = useCallback(() => {
@@ -383,10 +374,10 @@ export var DataSheet = _ref3 => {
383
374
  var negY = current.x <= start.x && current.x >= end.x;
384
375
  return posX && posY || negX && posY || negX && negY || posX && negY;
385
376
  }, [selection]);
377
+
386
378
  /**
387
379
  * Keycode
388
380
  */
389
-
390
381
  var handleKeyDown = useCallback(event => {
391
382
  switch (event.key) {
392
383
  case "ArrowUp":
@@ -406,7 +397,6 @@ export var DataSheet = _ref3 => {
406
397
  });
407
398
  break;
408
399
  }
409
-
410
400
  case "ArrowRight":
411
401
  setSelection(prev => {
412
402
  if (prev.start.y === columns.length - 1) return prev;
@@ -422,7 +412,6 @@ export var DataSheet = _ref3 => {
422
412
  });
423
413
  });
424
414
  break;
425
-
426
415
  case "ArrowDown":
427
416
  setSelection(prev => {
428
417
  if (prev.start.x === data.length - 1) return prev;
@@ -438,7 +427,6 @@ export var DataSheet = _ref3 => {
438
427
  });
439
428
  });
440
429
  break;
441
-
442
430
  case "ArrowLeft":
443
431
  setSelection(prev => {
444
432
  if (prev.start.y === 0) return prev;
@@ -454,7 +442,6 @@ export var DataSheet = _ref3 => {
454
442
  });
455
443
  });
456
444
  break;
457
-
458
445
  default:
459
446
  break;
460
447
  }
@@ -464,7 +451,6 @@ export var DataSheet = _ref3 => {
464
451
  var _ref5 = _asyncToGenerator(function* () {
465
452
  if (selection.start.x > -1 && selection.start.y > -1) {
466
453
  var text = yield paste();
467
-
468
454
  if (text) {
469
455
  var minX = Math.min(selection.start.x, selection.end.x);
470
456
  var minY = Math.min(selection.start.y, selection.end.y);
@@ -472,45 +458,42 @@ export var DataSheet = _ref3 => {
472
458
  var rowLength = dataToInsert.length;
473
459
  var columnLength = dataToInsert[0].length;
474
460
  var _copy = [...data];
475
-
476
461
  for (var i = 0; i < rowLength; i++) {
477
462
  for (var j = 0; j < columnLength; j++) {
478
463
  var column = columns[minY + j];
479
464
  if (column === undefined) continue;
480
465
  var {
481
- key: _key,
466
+ key,
482
467
  readonly,
483
468
  type
484
469
  } = column;
485
-
486
- if (_key && _copy[minX + i] && !readonly) {
470
+ if (key !== undefined && _copy[minX + i] !== undefined && !readonly) {
487
471
  var value = dataToInsert[i][j];
488
-
489
472
  if (type === "checkbox") {
490
- _copy[minX + i][_key] = value === "false" ? false : value === "true" ? true : value;
473
+ _copy[minX + i][key] = value === "false" ? false : value === "true" ? true : value;
491
474
  } else {
492
- _copy[minX + i][_key] = value;
475
+ _copy[minX + i][key] = value;
493
476
  }
494
477
  }
495
478
  }
496
479
  }
497
-
498
480
  if (onSave) {
499
481
  onSave(_copy);
500
482
  }
501
483
  }
502
484
  }
503
485
  });
504
-
505
486
  return function getClipBoardText() {
506
487
  return _ref5.apply(this, arguments);
507
488
  };
508
489
  }();
509
490
 
491
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
510
492
  document.addEventListener("paste", getClipBoardText, {
511
493
  capture: true
512
494
  });
513
495
  return () => {
496
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
514
497
  document.removeEventListener("paste", getClipBoardText);
515
498
  };
516
499
  }, [columns, data, onSave, selection.end.x, selection.end.y, selection.start.x, selection.start.y]);
@@ -529,22 +512,21 @@ export var DataSheet = _ref3 => {
529
512
  return row[key];
530
513
  }).join("\t");
531
514
  }).join("\n");
532
-
533
515
  if (result) {
534
516
  yield copy(result);
535
517
  }
536
518
  }
537
519
  });
538
-
539
520
  return function handleCopy() {
540
521
  return _ref6.apply(this, arguments);
541
522
  };
542
523
  }();
543
-
524
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
544
525
  document.addEventListener("copy", handleCopy, {
545
526
  capture: true
546
527
  });
547
528
  return () => {
529
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
548
530
  document.removeEventListener("copy", handleCopy);
549
531
  };
550
532
  }, [columns, data, selection.end.x, selection.end.y, selection.start.x, selection.start.y]);
@@ -560,7 +542,7 @@ export var DataSheet = _ref3 => {
560
542
  style: {
561
543
  maxWidth: width
562
544
  }
563
- }, onDownload ? ___EmotionJSX(DownloadButton, {
545
+ }, ___EmotionJSX(DownloadButton, {
564
546
  onClick: () => {
565
547
  var result = [columns.map(column => column.title)].concat(data.map(row => {
566
548
  return columns.map(_ref7 => {
@@ -572,7 +554,7 @@ export var DataSheet = _ref3 => {
572
554
  }));
573
555
  onDownload(result);
574
556
  }
575
- }) : null) : null, ___EmotionJSX(InnerElementContext.Provider, {
557
+ })) : null, ___EmotionJSX(InnerElementContext.Provider, {
576
558
  value: {
577
559
  handleSelectAll,
578
560
  handleSelectColumn,
package/DataSheet.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DataSheet.js","names":["Controller","DownloadButton","CustomCell","VariableSizeGrid","Grid","InnerElement","InnerElementContext","useOnClickOutside","React","useCallback","useEffect","useMemo","useRef","useState","paste","text","navigator","clipboard","readText","copy","writeText","DataSheet","data","columns","width","height","onSave","onDownload","rows","map","row","key","value","history","current","push","JSON","parse","stringify","handleChangeCheckbox","event","element","currentTarget","column","dataset","x","parseInt","y","checked","handleChangeDataEditor","initialSelection","type","active","start","end","ref","selection","setSelection","handleClickOutside","handleMouseDown","shiftKey","prev","handleMouseOver","handleShiftKeyUp","document","removeEventListener","handleMouseUp","addEventListener","capture","handleSelectColumn","length","handleMouseDownColumn","handleMouseOverColumn","handleMouseUpColumn","handleSelectRow","handleMouseDownRow","handleMouseOverRow","handleMouseUpRow","handleSelectAll","passive","isSelection","posX","negX","posY","negY","handleKeyDown","getClipBoardText","minX","Math","min","minY","dataToInsert","split","rowLength","columnLength","i","j","undefined","readonly","handleCopy","maxX","max","maxY","selectedKeys","splice","e","selectedData","result","join","isSelectColumn","index","isSelectRow","maxWidth","title","concat"],"sources":["../../src/DataSheet.tsx"],"sourcesContent":["import { Controller, DownloadButton } from \"./Controller\";\nimport { CustomCell } from \"./CustomCell\";\nimport { VariableSizeGrid as Grid } from \"react-window\";\nimport { InnerElement, InnerElementContext } from \"./InnerElement\";\nimport { useOnClickOutside } from \"./useOnClickOutside\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nconst paste = async () => {\n const text = await navigator.clipboard.readText();\n return text;\n};\n\nconst copy = async (text: string) => {\n await navigator.clipboard.writeText(text);\n};\n\nexport type DataRow = {\n [key: string]: string | undefined | boolean | number;\n};\n\nexport type DataColumn<R extends DataRow> = {\n [S in keyof R]: {\n key: S;\n title: string;\n Header?: (props: { title: string }) => React.ReactElement | null;\n type?: \"number\" | \"date\" | \"text\" | \"select\" | \"checkbox\";\n readonly?: boolean;\n validator?: (props: { row: R }) => boolean | string;\n // formatter?: (value: R[S], props: { row: R }) => string\n list?: string[] | ((props: { row: R }) => string[]);\n width: number;\n };\n}[keyof R];\n\nexport interface DataSheetProps<R extends DataRow = DataRow> {\n width: number;\n height: number;\n readonly columns: DataColumn<R>[];\n readonly data: R[];\n readonly onSave?: (data: R[]) => void;\n readonly onDownload?: (data: string[][]) => void;\n}\n\nexport const DataSheet = <R extends DataRow>({\n data,\n columns,\n width,\n height,\n onSave,\n onDownload,\n}: DataSheetProps<R>) => {\n const rows = useMemo(() => {\n return data.map((row) => {\n return columns.map(({ key }) => {\n const value = row[key];\n return value;\n });\n });\n }, [data, columns]);\n\n const history = useRef<typeof data[]>([]);\n\n useEffect(() => {\n history.current.push(JSON.parse(JSON.stringify(data)));\n }, [data]);\n\n const handleChangeCheckbox = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const element = event.currentTarget;\n const { row, column } = element.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n const { key } = columns[y];\n const copy: R[] = JSON.parse(JSON.stringify(data));\n const { checked } = element;\n copy[x] = {\n ...copy[x],\n [key]: checked,\n };\n history.current.push(copy);\n },\n [data, columns]\n );\n\n const handleChangeDataEditor = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>) => {\n const element = event.currentTarget;\n const { row, column } = element.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n const { key } = columns[y];\n const copy: R[] = JSON.parse(JSON.stringify(data));\n const { value } = element;\n copy[x] = {\n ...copy[x],\n [key]: value,\n };\n history.current.push(copy);\n },\n [columns, data]\n );\n\n /**\n * Select\n */\n const { current: initialSelection } = useRef<{\n type: \"cell\" | \"column\" | \"row\" | \"all\";\n active: boolean;\n start: {\n x: number;\n y: number;\n };\n end: {\n x: number;\n y: number;\n };\n }>({\n type: \"cell\",\n active: false,\n start: { x: -1, y: -1 },\n end: { x: -1, y: -1 },\n });\n const ref = useRef<HTMLTableElement>(null);\n\n const [selection, setSelection] = useState(initialSelection);\n\n const handleClickOutside = useCallback(() => {\n setSelection(initialSelection);\n }, [initialSelection]);\n useOnClickOutside(ref, handleClickOutside);\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLTableDataCellElement, MouseEvent>) => {\n if (event.shiftKey) {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => ({\n ...prev,\n type: \"cell\",\n end: { x, y },\n }));\n } else {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => {\n if (prev.active === true) return prev;\n return {\n type: \"cell\",\n active: true,\n start: { x, y },\n end: { x, y },\n };\n });\n }\n },\n []\n );\n\n const handleMouseOver = useCallback(\n (event: React.MouseEvent<HTMLTableDataCellElement, MouseEvent>) => {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => {\n if (prev.active === false) return prev;\n if (prev.type === \"cell\") {\n return {\n ...prev,\n end: {\n x,\n y,\n },\n };\n }\n if (prev.type === \"column\") {\n return {\n ...prev,\n end: {\n x: prev.end.x,\n y,\n },\n };\n }\n if (prev.type === \"row\") {\n return {\n ...prev,\n end: {\n x,\n y: prev.end.y,\n },\n };\n }\n return prev;\n });\n },\n []\n );\n\n const handleShiftKeyUp = useCallback(() => {\n setSelection((prev) => ({\n ...prev,\n active: false,\n }));\n document.removeEventListener(\"keyup\", handleShiftKeyUp);\n }, []);\n\n const handleMouseUp = useCallback(\n (event: MouseEvent) => {\n if (event.shiftKey) {\n setSelection((prev) => {\n return {\n ...prev,\n active: true,\n };\n });\n document.addEventListener(\"keyup\", handleShiftKeyUp, {\n capture: true,\n });\n } else {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }\n },\n [handleShiftKeyUp]\n );\n\n /** Column */\n const handleSelectColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n const y = parseInt(column!, 10);\n setSelection({\n type: \"column\",\n active: false,\n start: {\n x: 0,\n y,\n },\n end: {\n x: data.length - 1,\n y,\n },\n });\n },\n [data.length]\n );\n const handleMouseDownColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n\n const y = parseInt(column!, 10);\n setSelection({\n type: \"column\",\n active: true,\n start: {\n x: 0,\n y,\n },\n end: {\n x: data.length - 1,\n y,\n },\n });\n },\n [data.length]\n );\n const handleMouseOverColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n const y = parseInt(column!, 10);\n\n setSelection((prev) => {\n if (prev.active === false || prev.type !== \"column\") return prev;\n return {\n ...prev,\n end: {\n x: data.length - 1,\n y,\n },\n };\n });\n },\n [data.length]\n );\n const handleMouseUpColumn = useCallback(() => {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }, []);\n\n /** Row */\n const handleSelectRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection({\n type: \"row\",\n active: false,\n start: {\n x,\n y: 0,\n },\n end: {\n x,\n y: columns.length - 1,\n },\n });\n },\n [columns.length]\n );\n const handleMouseDownRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection({\n type: \"row\",\n active: true,\n start: {\n x,\n y: 0,\n },\n end: {\n x,\n y: columns.length - 1,\n },\n });\n },\n [columns.length]\n );\n const handleMouseOverRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection((prev) => {\n if (prev.active === false || prev.type !== \"row\") return prev;\n return {\n ...prev,\n end: {\n x,\n y: columns.length - 1,\n },\n };\n });\n },\n [columns.length]\n );\n const handleMouseUpRow = useCallback(() => {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }, []);\n\n /** All */\n\n const handleSelectAll = useCallback(() => {\n setSelection({\n type: \"all\",\n active: false,\n start: {\n x: 0,\n y: 0,\n },\n end: {\n x: data.length - 1,\n y: columns.length - 1,\n },\n });\n }, [data.length, columns.length]);\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleMouseUp, { passive: true });\n return () => {\n document.removeEventListener(\"mouseup\", handleMouseUp);\n document.removeEventListener(\"keyup\", handleShiftKeyUp);\n };\n }, [handleMouseUp, handleShiftKeyUp]);\n const isSelection = useCallback(\n (current: { x: number; y: number }) => {\n const { start, end } = selection;\n\n const posX = current.y >= start.y && current.y <= end.y;\n const negX = current.y <= start.y && current.y >= end.y;\n const posY = current.x >= start.x && current.x <= end.x;\n const negY = current.x <= start.x && current.x >= end.x;\n\n return (\n (posX && posY) || (negX && posY) || (negX && negY) || (posX && negY)\n );\n },\n [selection]\n );\n\n /**\n * Keycode\n */\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case \"ArrowUp\": {\n setSelection((prev) => {\n if (prev.start.x === 0) return prev;\n return {\n ...prev,\n start: { x: prev.start.x - 1, y: prev.start.y },\n end: { x: prev.start.x - 1, y: prev.start.y },\n };\n });\n break;\n }\n case \"ArrowRight\":\n setSelection((prev) => {\n if (prev.start.y === columns.length - 1) return prev;\n return {\n ...prev,\n start: { x: prev.start.x, y: prev.start.y + 1 },\n end: { x: prev.start.x, y: prev.start.y + 1 },\n };\n });\n break;\n case \"ArrowDown\":\n setSelection((prev) => {\n if (prev.start.x === data.length - 1) return prev;\n return {\n ...prev,\n start: { x: prev.start.x + 1, y: prev.start.y },\n end: { x: prev.start.x + 1, y: prev.start.y },\n };\n });\n break;\n case \"ArrowLeft\":\n setSelection((prev) => {\n if (prev.start.y === 0) return prev;\n return {\n ...prev,\n start: { x: prev.start.x, y: prev.start.y - 1 },\n end: { x: prev.start.x, y: prev.start.y - 1 },\n };\n });\n break;\n default:\n break;\n }\n },\n [columns.length, data.length]\n );\n\n useEffect(() => {\n const getClipBoardText = async () => {\n if (selection.start.x > -1 && selection.start.y > -1) {\n const text = await paste();\n if (text) {\n const minX = Math.min(selection.start.x, selection.end.x);\n const minY = Math.min(selection.start.y, selection.end.y);\n const dataToInsert = text.split(/\\n/g).map((row) => row.split(/\\t/g));\n const rowLength = dataToInsert.length;\n const columnLength = dataToInsert[0].length;\n const copy = [...data];\n for (let i = 0; i < rowLength; i++) {\n for (let j = 0; j < columnLength; j++) {\n const column = columns[minY + j];\n if (column === undefined) continue;\n const { key, readonly, type } = column;\n if (key && copy[minX + i] && !readonly) {\n const value = dataToInsert[i][j];\n if (type === \"checkbox\") {\n copy[minX + i][key] = (\n value === \"false\" ? false : value === \"true\" ? true : value\n ) as R[keyof R];\n } else {\n copy[minX + i][key] = value as R[keyof R];\n }\n }\n }\n }\n if (onSave) {\n onSave(copy);\n }\n }\n }\n };\n\n document.addEventListener(\"paste\", getClipBoardText, { capture: true });\n return () => {\n document.removeEventListener(\"paste\", getClipBoardText);\n };\n }, [\n columns,\n data,\n onSave,\n selection.end.x,\n selection.end.y,\n selection.start.x,\n selection.start.y,\n ]);\n\n useEffect(() => {\n const handleCopy = async () => {\n if (selection.start.x > -1 && selection.start.y > -1) {\n const minX = Math.min(selection.start.x, selection.end.x);\n const maxX = Math.max(selection.start.x, selection.end.x);\n const minY = Math.min(selection.start.y, selection.end.y);\n const maxY = Math.max(selection.start.y, selection.end.y);\n const selectedKeys = [...columns]\n .splice(minY, maxY - minY + 1)\n .map((e) => e.key);\n const selectedData = [...data].splice(minX, maxX - minX + 1);\n\n const result = selectedData\n .map((row) => {\n return selectedKeys\n .map((key) => {\n return row[key];\n })\n .join(\"\\t\");\n })\n .join(\"\\n\");\n if (result) {\n await copy(result);\n }\n }\n };\n document.addEventListener(\"copy\", handleCopy, { capture: true });\n return () => {\n document.removeEventListener(\"copy\", handleCopy);\n };\n }, [\n columns,\n data,\n selection.end.x,\n selection.end.y,\n selection.start.x,\n selection.start.y,\n ]);\n\n const isSelectColumn = useCallback(\n (index: number) => {\n if (selection.type !== \"column\") return false;\n return (\n (selection.start.y <= index && index <= selection.end.y) ||\n (selection.start.y >= index && index >= selection.end.y)\n );\n },\n [selection.end.y, selection.start.y, selection.type]\n );\n const isSelectRow = useCallback(\n (index: number) => {\n if (selection.type !== \"row\") return false;\n return (\n (selection.start.x <= index && index <= selection.end.x) ||\n (selection.start.x >= index && index >= selection.end.x)\n );\n },\n [selection.end.x, selection.start.x, selection.type]\n );\n\n return (\n <div>\n {onDownload ? (\n <Controller style={{ maxWidth: width }}>\n {onDownload ? (\n <DownloadButton\n onClick={() => {\n const result = [columns.map((column) => column.title)].concat(\n data.map((row) => {\n return columns.map(({ key }) => {\n return row[key] as string;\n });\n })\n );\n onDownload(result);\n }}\n />\n ) : null}\n </Controller>\n ) : null}\n\n <InnerElementContext.Provider\n value={{\n handleSelectAll,\n handleSelectColumn,\n handleMouseDownColumn,\n handleMouseOverColumn,\n handleMouseUpColumn,\n isSelectColumn,\n handleKeyDown,\n columns: columns as DataColumn<DataRow>[],\n }}\n >\n <Grid\n style={{ maxWidth: \"100%\" }}\n innerElementType={InnerElement}\n innerRef={ref}\n columnCount={columns.length + 1}\n rowCount={data.length}\n height={height}\n width={width}\n columnWidth={(index) => (index === 0 ? 32 : columns[index - 1].width)}\n rowHeight={() => 24}\n itemData={{\n columns,\n handleSelectRow,\n handleMouseDownRow,\n handleMouseOverRow,\n handleMouseUpRow,\n isSelectRow,\n rows,\n handleChangeDataEditor,\n isSelection,\n data,\n handleMouseDown,\n handleMouseOver,\n handleChangeCheckbox,\n }}\n >\n {CustomCell}\n </Grid>\n </InnerElementContext.Provider>\n </div>\n );\n};\n"],"mappings":";;;;;;AAAA,SAASA,UAAT,EAAqBC,cAArB,QAA2C,cAA3C;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,gBAAgB,IAAIC,IAA7B,QAAyC,cAAzC;AACA,SAASC,YAAT,EAAuBC,mBAAvB,QAAkD,gBAAlD;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,OAAOC,KAAP,IACEC,WADF,EAEEC,SAFF,EAGEC,OAHF,EAIEC,MAJF,EAKEC,QALF,QAMO,OANP;;;AAQA,IAAMC,KAAK;EAAA,6BAAG,aAAY;IACxB,IAAMC,IAAI,SAASC,SAAS,CAACC,SAAV,CAAoBC,QAApB,EAAnB;IACA,OAAOH,IAAP;EACD,CAHU;;EAAA,gBAALD,KAAK;IAAA;EAAA;AAAA,GAAX;;AAKA,IAAMK,IAAI;EAAA,8BAAG,WAAOJ,IAAP,EAAwB;IACnC,MAAMC,SAAS,CAACC,SAAV,CAAoBG,SAApB,CAA8BL,IAA9B,CAAN;EACD,CAFS;;EAAA,gBAAJI,IAAI;IAAA;EAAA;AAAA,GAAV;;AA+BA,OAAO,IAAME,SAAS,GAAG,SAOA;EAAA,IAPoB;IAC3CC,IAD2C;IAE3CC,OAF2C;IAG3CC,KAH2C;IAI3CC,MAJ2C;IAK3CC,MAL2C;IAM3CC;EAN2C,CAOpB;EACvB,IAAMC,IAAI,GAAGjB,OAAO,CAAC,MAAM;IACzB,OAAOW,IAAI,CAACO,GAAL,CAAUC,GAAD,IAAS;MACvB,OAAOP,OAAO,CAACM,GAAR,CAAY,SAAa;QAAA,IAAZ;UAAEE;QAAF,CAAY;QAC9B,IAAMC,KAAK,GAAGF,GAAG,CAACC,GAAD,CAAjB;QACA,OAAOC,KAAP;MACD,CAHM,CAAP;IAID,CALM,CAAP;EAMD,CAPmB,EAOjB,CAACV,IAAD,EAAOC,OAAP,CAPiB,CAApB;EASA,IAAMU,OAAO,GAAGrB,MAAM,CAAgB,EAAhB,CAAtB;EAEAF,SAAS,CAAC,MAAM;IACduB,OAAO,CAACC,OAAR,CAAgBC,IAAhB,CAAqBC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAehB,IAAf,CAAX,CAArB;EACD,CAFQ,EAEN,CAACA,IAAD,CAFM,CAAT;EAIA,IAAMiB,oBAAoB,GAAG9B,WAAW,CACrC+B,KAAD,IAAgD;IAC9C,IAAMC,OAAO,GAAGD,KAAK,CAACE,aAAtB;IACA,IAAM;MAAEZ,GAAF;MAAOa;IAAP,IAAkBF,OAAO,CAACG,OAAhC;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA,IAAMiB,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IACA,IAAM;MAAEZ;IAAF,IAAUR,OAAO,CAACwB,CAAD,CAAvB;IACA,IAAM5B,IAAS,GAAGiB,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAehB,IAAf,CAAX,CAAlB;IACA,IAAM;MAAE0B;IAAF,IAAcP,OAApB;IACAtB,IAAI,CAAC0B,CAAD,CAAJ,gBACK1B,IAAI,CAAC0B,CAAD,CADT;MAEE,CAACd,GAAD,GAAOiB;IAFT;IAIAf,OAAO,CAACC,OAAR,CAAgBC,IAAhB,CAAqBhB,IAArB;EACD,CAdqC,EAetC,CAACG,IAAD,EAAOC,OAAP,CAfsC,CAAxC;EAkBA,IAAM0B,sBAAsB,GAAGxC,WAAW,CACvC+B,KAAD,IAAoE;IAClE,IAAMC,OAAO,GAAGD,KAAK,CAACE,aAAtB;IACA,IAAM;MAAEZ,GAAF;MAAOa;IAAP,IAAkBF,OAAO,CAACG,OAAhC;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA,IAAMiB,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IACA,IAAM;MAAEZ;IAAF,IAAUR,OAAO,CAACwB,CAAD,CAAvB;IACA,IAAM5B,IAAS,GAAGiB,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAehB,IAAf,CAAX,CAAlB;IACA,IAAM;MAAEU;IAAF,IAAYS,OAAlB;IACAtB,IAAI,CAAC0B,CAAD,CAAJ,gBACK1B,IAAI,CAAC0B,CAAD,CADT;MAEE,CAACd,GAAD,GAAOC;IAFT;IAIAC,OAAO,CAACC,OAAR,CAAgBC,IAAhB,CAAqBhB,IAArB;EACD,CAduC,EAexC,CAACI,OAAD,EAAUD,IAAV,CAfwC,CAA1C;EAkBA;AACF;AACA;;EACE,IAAM;IAAEY,OAAO,EAAEgB;EAAX,IAAgCtC,MAAM,CAWzC;IACDuC,IAAI,EAAE,MADL;IAEDC,MAAM,EAAE,KAFP;IAGDC,KAAK,EAAE;MAAER,CAAC,EAAE,CAAC,CAAN;MAASE,CAAC,EAAE,CAAC;IAAb,CAHN;IAIDO,GAAG,EAAE;MAAET,CAAC,EAAE,CAAC,CAAN;MAASE,CAAC,EAAE,CAAC;IAAb;EAJJ,CAXyC,CAA5C;EAiBA,IAAMQ,GAAG,GAAG3C,MAAM,CAAmB,IAAnB,CAAlB;EAEA,IAAM,CAAC4C,SAAD,EAAYC,YAAZ,IAA4B5C,QAAQ,CAACqC,gBAAD,CAA1C;EAEA,IAAMQ,kBAAkB,GAAGjD,WAAW,CAAC,MAAM;IAC3CgD,YAAY,CAACP,gBAAD,CAAZ;EACD,CAFqC,EAEnC,CAACA,gBAAD,CAFmC,CAAtC;EAGA3C,iBAAiB,CAACgD,GAAD,EAAMG,kBAAN,CAAjB;EAEA,IAAMC,eAAe,GAAGlD,WAAW,CAChC+B,KAAD,IAAmE;IACjE,IAAIA,KAAK,CAACoB,QAAV,EAAoB;MAClB,IAAM;QAAE9B,GAAF;QAAOa;MAAP,IAAkBH,KAAK,CAACE,aAAN,CAAoBE,OAA5C;MACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;MACA,IAAMiB,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;MACAc,YAAY,CAAEI,IAAD,iBACRA,IADQ;QAEXV,IAAI,EAAE,MAFK;QAGXG,GAAG,EAAE;UAAET,CAAF;UAAKE;QAAL;MAHM,EAAD,CAAZ;IAKD,CATD,MASO;MACL,IAAM;QAAEjB,GAAG,EAAHA,IAAF;QAAOa,MAAM,EAANA;MAAP,IAAkBH,KAAK,CAACE,aAAN,CAAoBE,OAA5C;;MACA,IAAMC,GAAC,GAAGC,QAAQ,CAAChB,IAAD,EAAO,EAAP,CAAlB;;MACA,IAAMiB,EAAC,GAAGD,QAAQ,CAACH,OAAD,EAAU,EAAV,CAAlB;;MACAc,YAAY,CAAEI,IAAD,IAAU;QACrB,IAAIA,IAAI,CAACT,MAAL,KAAgB,IAApB,EAA0B,OAAOS,IAAP;QAC1B,OAAO;UACLV,IAAI,EAAE,MADD;UAELC,MAAM,EAAE,IAFH;UAGLC,KAAK,EAAE;YAAER,CAAC,EAADA,GAAF;YAAKE,CAAC,EAADA;UAAL,CAHF;UAILO,GAAG,EAAE;YAAET,CAAC,EAADA,GAAF;YAAKE,CAAC,EAADA;UAAL;QAJA,CAAP;MAMD,CARW,CAAZ;IASD;EACF,CAzBgC,EA0BjC,EA1BiC,CAAnC;EA6BA,IAAMe,eAAe,GAAGrD,WAAW,CAChC+B,KAAD,IAAmE;IACjE,IAAM;MAAEV,GAAF;MAAOa;IAAP,IAAkBH,KAAK,CAACE,aAAN,CAAoBE,OAA5C;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA,IAAMiB,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IACAc,YAAY,CAAEI,IAAD,IAAU;MACrB,IAAIA,IAAI,CAACT,MAAL,KAAgB,KAApB,EAA2B,OAAOS,IAAP;;MAC3B,IAAIA,IAAI,CAACV,IAAL,KAAc,MAAlB,EAA0B;QACxB,oBACKU,IADL;UAEEP,GAAG,EAAE;YACHT,CADG;YAEHE;UAFG;QAFP;MAOD;;MACD,IAAIc,IAAI,CAACV,IAAL,KAAc,QAAlB,EAA4B;QAC1B,oBACKU,IADL;UAEEP,GAAG,EAAE;YACHT,CAAC,EAAEgB,IAAI,CAACP,GAAL,CAAST,CADT;YAEHE;UAFG;QAFP;MAOD;;MACD,IAAIc,IAAI,CAACV,IAAL,KAAc,KAAlB,EAAyB;QACvB,oBACKU,IADL;UAEEP,GAAG,EAAE;YACHT,CADG;YAEHE,CAAC,EAAEc,IAAI,CAACP,GAAL,CAASP;UAFT;QAFP;MAOD;;MACD,OAAOc,IAAP;IACD,CA9BW,CAAZ;EA+BD,CApCgC,EAqCjC,EArCiC,CAAnC;EAwCA,IAAME,gBAAgB,GAAGtD,WAAW,CAAC,MAAM;IACzCgD,YAAY,CAAEI,IAAD,iBACRA,IADQ;MAEXT,MAAM,EAAE;IAFG,EAAD,CAAZ;IAIAY,QAAQ,CAACC,mBAAT,CAA6B,OAA7B,EAAsCF,gBAAtC;EACD,CANmC,EAMjC,EANiC,CAApC;EAQA,IAAMG,aAAa,GAAGzD,WAAW,CAC9B+B,KAAD,IAAuB;IACrB,IAAIA,KAAK,CAACoB,QAAV,EAAoB;MAClBH,YAAY,CAAEI,IAAD,IAAU;QACrB,oBACKA,IADL;UAEET,MAAM,EAAE;QAFV;MAID,CALW,CAAZ;MAMAY,QAAQ,CAACG,gBAAT,CAA0B,OAA1B,EAAmCJ,gBAAnC,EAAqD;QACnDK,OAAO,EAAE;MAD0C,CAArD;IAGD,CAVD,MAUO;MACLX,YAAY,CAAEI,IAAD,IAAU;QACrB,oBACKA,IADL;UAEET,MAAM,EAAE;QAFV;MAID,CALW,CAAZ;IAMD;EACF,CApB8B,EAqB/B,CAACW,gBAAD,CArB+B,CAAjC;EAwBA;;EACA,IAAMM,kBAAkB,GAAG5D,WAAW,CACnC+B,KAAD,IAAyD;IACvD,IAAM;MAAEG;IAAF,IAAaH,KAAK,CAACE,aAAN,CAAoBE,OAAvC;IACA,IAAMG,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IACAc,YAAY,CAAC;MACXN,IAAI,EAAE,QADK;MAEXC,MAAM,EAAE,KAFG;MAGXC,KAAK,EAAE;QACLR,CAAC,EAAE,CADE;QAELE;MAFK,CAHI;MAOXO,GAAG,EAAE;QACHT,CAAC,EAAEvB,IAAI,CAACgD,MAAL,GAAc,CADd;QAEHvB;MAFG;IAPM,CAAD,CAAZ;EAYD,CAhBmC,EAiBpC,CAACzB,IAAI,CAACgD,MAAN,CAjBoC,CAAtC;EAmBA,IAAMC,qBAAqB,GAAG9D,WAAW,CACtC+B,KAAD,IAAyD;IACvD,IAAM;MAAEG;IAAF,IAAaH,KAAK,CAACE,aAAN,CAAoBE,OAAvC;IAEA,IAAMG,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IACAc,YAAY,CAAC;MACXN,IAAI,EAAE,QADK;MAEXC,MAAM,EAAE,IAFG;MAGXC,KAAK,EAAE;QACLR,CAAC,EAAE,CADE;QAELE;MAFK,CAHI;MAOXO,GAAG,EAAE;QACHT,CAAC,EAAEvB,IAAI,CAACgD,MAAL,GAAc,CADd;QAEHvB;MAFG;IAPM,CAAD,CAAZ;EAYD,CAjBsC,EAkBvC,CAACzB,IAAI,CAACgD,MAAN,CAlBuC,CAAzC;EAoBA,IAAME,qBAAqB,GAAG/D,WAAW,CACtC+B,KAAD,IAAyD;IACvD,IAAM;MAAEG;IAAF,IAAaH,KAAK,CAACE,aAAN,CAAoBE,OAAvC;IACA,IAAMG,CAAC,GAAGD,QAAQ,CAACH,MAAD,EAAU,EAAV,CAAlB;IAEAc,YAAY,CAAEI,IAAD,IAAU;MACrB,IAAIA,IAAI,CAACT,MAAL,KAAgB,KAAhB,IAAyBS,IAAI,CAACV,IAAL,KAAc,QAA3C,EAAqD,OAAOU,IAAP;MACrD,oBACKA,IADL;QAEEP,GAAG,EAAE;UACHT,CAAC,EAAEvB,IAAI,CAACgD,MAAL,GAAc,CADd;UAEHvB;QAFG;MAFP;IAOD,CATW,CAAZ;EAUD,CAfsC,EAgBvC,CAACzB,IAAI,CAACgD,MAAN,CAhBuC,CAAzC;EAkBA,IAAMG,mBAAmB,GAAGhE,WAAW,CAAC,MAAM;IAC5CgD,YAAY,CAAEI,IAAD,IAAU;MACrB,oBACKA,IADL;QAEET,MAAM,EAAE;MAFV;IAID,CALW,CAAZ;EAMD,CAPsC,EAOpC,EAPoC,CAAvC;EASA;;EACA,IAAMsB,eAAe,GAAGjE,WAAW,CAChC+B,KAAD,IAAyD;IACvD,IAAM;MAAEV;IAAF,IAAUU,KAAK,CAACE,aAAN,CAAoBE,OAApC;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA2B,YAAY,CAAC;MACXN,IAAI,EAAE,KADK;MAEXC,MAAM,EAAE,KAFG;MAGXC,KAAK,EAAE;QACLR,CADK;QAELE,CAAC,EAAE;MAFE,CAHI;MAOXO,GAAG,EAAE;QACHT,CADG;QAEHE,CAAC,EAAExB,OAAO,CAAC+C,MAAR,GAAiB;MAFjB;IAPM,CAAD,CAAZ;EAYD,CAhBgC,EAiBjC,CAAC/C,OAAO,CAAC+C,MAAT,CAjBiC,CAAnC;EAmBA,IAAMK,kBAAkB,GAAGlE,WAAW,CACnC+B,KAAD,IAAyD;IACvD,IAAM;MAAEV;IAAF,IAAUU,KAAK,CAACE,aAAN,CAAoBE,OAApC;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA2B,YAAY,CAAC;MACXN,IAAI,EAAE,KADK;MAEXC,MAAM,EAAE,IAFG;MAGXC,KAAK,EAAE;QACLR,CADK;QAELE,CAAC,EAAE;MAFE,CAHI;MAOXO,GAAG,EAAE;QACHT,CADG;QAEHE,CAAC,EAAExB,OAAO,CAAC+C,MAAR,GAAiB;MAFjB;IAPM,CAAD,CAAZ;EAYD,CAhBmC,EAiBpC,CAAC/C,OAAO,CAAC+C,MAAT,CAjBoC,CAAtC;EAmBA,IAAMM,kBAAkB,GAAGnE,WAAW,CACnC+B,KAAD,IAAyD;IACvD,IAAM;MAAEV;IAAF,IAAUU,KAAK,CAACE,aAAN,CAAoBE,OAApC;IACA,IAAMC,CAAC,GAAGC,QAAQ,CAAChB,GAAD,EAAO,EAAP,CAAlB;IACA2B,YAAY,CAAEI,IAAD,IAAU;MACrB,IAAIA,IAAI,CAACT,MAAL,KAAgB,KAAhB,IAAyBS,IAAI,CAACV,IAAL,KAAc,KAA3C,EAAkD,OAAOU,IAAP;MAClD,oBACKA,IADL;QAEEP,GAAG,EAAE;UACHT,CADG;UAEHE,CAAC,EAAExB,OAAO,CAAC+C,MAAR,GAAiB;QAFjB;MAFP;IAOD,CATW,CAAZ;EAUD,CAdmC,EAepC,CAAC/C,OAAO,CAAC+C,MAAT,CAfoC,CAAtC;EAiBA,IAAMO,gBAAgB,GAAGpE,WAAW,CAAC,MAAM;IACzCgD,YAAY,CAAEI,IAAD,IAAU;MACrB,oBACKA,IADL;QAEET,MAAM,EAAE;MAFV;IAID,CALW,CAAZ;EAMD,CAPmC,EAOjC,EAPiC,CAApC;EASA;;EAEA,IAAM0B,eAAe,GAAGrE,WAAW,CAAC,MAAM;IACxCgD,YAAY,CAAC;MACXN,IAAI,EAAE,KADK;MAEXC,MAAM,EAAE,KAFG;MAGXC,KAAK,EAAE;QACLR,CAAC,EAAE,CADE;QAELE,CAAC,EAAE;MAFE,CAHI;MAOXO,GAAG,EAAE;QACHT,CAAC,EAAEvB,IAAI,CAACgD,MAAL,GAAc,CADd;QAEHvB,CAAC,EAAExB,OAAO,CAAC+C,MAAR,GAAiB;MAFjB;IAPM,CAAD,CAAZ;EAYD,CAbkC,EAahC,CAAChD,IAAI,CAACgD,MAAN,EAAc/C,OAAO,CAAC+C,MAAtB,CAbgC,CAAnC;EAcA5D,SAAS,CAAC,MAAM;IACdsD,QAAQ,CAACG,gBAAT,CAA0B,SAA1B,EAAqCD,aAArC,EAAoD;MAAEa,OAAO,EAAE;IAAX,CAApD;IACA,OAAO,MAAM;MACXf,QAAQ,CAACC,mBAAT,CAA6B,SAA7B,EAAwCC,aAAxC;MACAF,QAAQ,CAACC,mBAAT,CAA6B,OAA7B,EAAsCF,gBAAtC;IACD,CAHD;EAID,CANQ,EAMN,CAACG,aAAD,EAAgBH,gBAAhB,CANM,CAAT;EAOA,IAAMiB,WAAW,GAAGvE,WAAW,CAC5ByB,OAAD,IAAuC;IACrC,IAAM;MAAEmB,KAAF;MAASC;IAAT,IAAiBE,SAAvB;IAEA,IAAMyB,IAAI,GAAG/C,OAAO,CAACa,CAAR,IAAaM,KAAK,CAACN,CAAnB,IAAwBb,OAAO,CAACa,CAAR,IAAaO,GAAG,CAACP,CAAtD;IACA,IAAMmC,IAAI,GAAGhD,OAAO,CAACa,CAAR,IAAaM,KAAK,CAACN,CAAnB,IAAwBb,OAAO,CAACa,CAAR,IAAaO,GAAG,CAACP,CAAtD;IACA,IAAMoC,IAAI,GAAGjD,OAAO,CAACW,CAAR,IAAaQ,KAAK,CAACR,CAAnB,IAAwBX,OAAO,CAACW,CAAR,IAAaS,GAAG,CAACT,CAAtD;IACA,IAAMuC,IAAI,GAAGlD,OAAO,CAACW,CAAR,IAAaQ,KAAK,CAACR,CAAnB,IAAwBX,OAAO,CAACW,CAAR,IAAaS,GAAG,CAACT,CAAtD;IAEA,OACGoC,IAAI,IAAIE,IAAT,IAAmBD,IAAI,IAAIC,IAA3B,IAAqCD,IAAI,IAAIE,IAA7C,IAAuDH,IAAI,IAAIG,IADjE;EAGD,CAZ4B,EAa7B,CAAC5B,SAAD,CAb6B,CAA/B;EAgBA;AACF;AACA;;EACE,IAAM6B,aAAa,GAAG5E,WAAW,CAC9B+B,KAAD,IAAgD;IAC9C,QAAQA,KAAK,CAACT,GAAd;MACE,KAAK,SAAL;QAAgB;UACd0B,YAAY,CAAEI,IAAD,IAAU;YACrB,IAAIA,IAAI,CAACR,KAAL,CAAWR,CAAX,KAAiB,CAArB,EAAwB,OAAOgB,IAAP;YACxB,oBACKA,IADL;cAEER,KAAK,EAAE;gBAAER,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAX,GAAe,CAApB;gBAAuBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN;cAArC,CAFT;cAGEO,GAAG,EAAE;gBAAET,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAX,GAAe,CAApB;gBAAuBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN;cAArC;YAHP;UAKD,CAPW,CAAZ;UAQA;QACD;;MACD,KAAK,YAAL;QACEU,YAAY,CAAEI,IAAD,IAAU;UACrB,IAAIA,IAAI,CAACR,KAAL,CAAWN,CAAX,KAAiBxB,OAAO,CAAC+C,MAAR,GAAiB,CAAtC,EAAyC,OAAOT,IAAP;UACzC,oBACKA,IADL;YAEER,KAAK,EAAE;cAAER,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAhB;cAAmBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN,CAAX,GAAe;YAArC,CAFT;YAGEO,GAAG,EAAE;cAAET,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAhB;cAAmBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN,CAAX,GAAe;YAArC;UAHP;QAKD,CAPW,CAAZ;QAQA;;MACF,KAAK,WAAL;QACEU,YAAY,CAAEI,IAAD,IAAU;UACrB,IAAIA,IAAI,CAACR,KAAL,CAAWR,CAAX,KAAiBvB,IAAI,CAACgD,MAAL,GAAc,CAAnC,EAAsC,OAAOT,IAAP;UACtC,oBACKA,IADL;YAEER,KAAK,EAAE;cAAER,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAX,GAAe,CAApB;cAAuBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN;YAArC,CAFT;YAGEO,GAAG,EAAE;cAAET,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAX,GAAe,CAApB;cAAuBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN;YAArC;UAHP;QAKD,CAPW,CAAZ;QAQA;;MACF,KAAK,WAAL;QACEU,YAAY,CAAEI,IAAD,IAAU;UACrB,IAAIA,IAAI,CAACR,KAAL,CAAWN,CAAX,KAAiB,CAArB,EAAwB,OAAOc,IAAP;UACxB,oBACKA,IADL;YAEER,KAAK,EAAE;cAAER,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAhB;cAAmBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN,CAAX,GAAe;YAArC,CAFT;YAGEO,GAAG,EAAE;cAAET,CAAC,EAAEgB,IAAI,CAACR,KAAL,CAAWR,CAAhB;cAAmBE,CAAC,EAAEc,IAAI,CAACR,KAAL,CAAWN,CAAX,GAAe;YAArC;UAHP;QAKD,CAPW,CAAZ;QAQA;;MACF;QACE;IA3CJ;EA6CD,CA/C8B,EAgD/B,CAACxB,OAAO,CAAC+C,MAAT,EAAiBhD,IAAI,CAACgD,MAAtB,CAhD+B,CAAjC;EAmDA5D,SAAS,CAAC,MAAM;IACd,IAAM4E,gBAAgB;MAAA,8BAAG,aAAY;QACnC,IAAI9B,SAAS,CAACH,KAAV,CAAgBR,CAAhB,GAAoB,CAAC,CAArB,IAA0BW,SAAS,CAACH,KAAV,CAAgBN,CAAhB,GAAoB,CAAC,CAAnD,EAAsD;UACpD,IAAMhC,IAAI,SAASD,KAAK,EAAxB;;UACA,IAAIC,IAAJ,EAAU;YACR,IAAMwE,IAAI,GAAGC,IAAI,CAACC,GAAL,CAASjC,SAAS,CAACH,KAAV,CAAgBR,CAAzB,EAA4BW,SAAS,CAACF,GAAV,CAAcT,CAA1C,CAAb;YACA,IAAM6C,IAAI,GAAGF,IAAI,CAACC,GAAL,CAASjC,SAAS,CAACH,KAAV,CAAgBN,CAAzB,EAA4BS,SAAS,CAACF,GAAV,CAAcP,CAA1C,CAAb;YACA,IAAM4C,YAAY,GAAG5E,IAAI,CAAC6E,KAAL,CAAW,KAAX,EAAkB/D,GAAlB,CAAuBC,GAAD,IAASA,GAAG,CAAC8D,KAAJ,CAAU,KAAV,CAA/B,CAArB;YACA,IAAMC,SAAS,GAAGF,YAAY,CAACrB,MAA/B;YACA,IAAMwB,YAAY,GAAGH,YAAY,CAAC,CAAD,CAAZ,CAAgBrB,MAArC;YACA,IAAMnD,KAAI,GAAG,CAAC,GAAGG,IAAJ,CAAb;;YACA,KAAK,IAAIyE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAApB,EAA+BE,CAAC,EAAhC,EAAoC;cAClC,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,YAApB,EAAkCE,CAAC,EAAnC,EAAuC;gBACrC,IAAMrD,MAAM,GAAGpB,OAAO,CAACmE,IAAI,GAAGM,CAAR,CAAtB;gBACA,IAAIrD,MAAM,KAAKsD,SAAf,EAA0B;gBAC1B,IAAM;kBAAElE,GAAG,EAAHA,IAAF;kBAAOmE,QAAP;kBAAiB/C;gBAAjB,IAA0BR,MAAhC;;gBACA,IAAIZ,IAAG,IAAIZ,KAAI,CAACoE,IAAI,GAAGQ,CAAR,CAAX,IAAyB,CAACG,QAA9B,EAAwC;kBACtC,IAAMlE,KAAK,GAAG2D,YAAY,CAACI,CAAD,CAAZ,CAAgBC,CAAhB,CAAd;;kBACA,IAAI7C,IAAI,KAAK,UAAb,EAAyB;oBACvBhC,KAAI,CAACoE,IAAI,GAAGQ,CAAR,CAAJ,CAAehE,IAAf,IACEC,KAAK,KAAK,OAAV,GAAoB,KAApB,GAA4BA,KAAK,KAAK,MAAV,GAAmB,IAAnB,GAA0BA,KADxD;kBAGD,CAJD,MAIO;oBACLb,KAAI,CAACoE,IAAI,GAAGQ,CAAR,CAAJ,CAAehE,IAAf,IAAsBC,KAAtB;kBACD;gBACF;cACF;YACF;;YACD,IAAIN,MAAJ,EAAY;cACVA,MAAM,CAACP,KAAD,CAAN;YACD;UACF;QACF;MACF,CAhCqB;;MAAA,gBAAhBmE,gBAAgB;QAAA;MAAA;IAAA,GAAtB;;IAkCAtB,QAAQ,CAACG,gBAAT,CAA0B,OAA1B,EAAmCmB,gBAAnC,EAAqD;MAAElB,OAAO,EAAE;IAAX,CAArD;IACA,OAAO,MAAM;MACXJ,QAAQ,CAACC,mBAAT,CAA6B,OAA7B,EAAsCqB,gBAAtC;IACD,CAFD;EAGD,CAvCQ,EAuCN,CACD/D,OADC,EAEDD,IAFC,EAGDI,MAHC,EAID8B,SAAS,CAACF,GAAV,CAAcT,CAJb,EAKDW,SAAS,CAACF,GAAV,CAAcP,CALb,EAMDS,SAAS,CAACH,KAAV,CAAgBR,CANf,EAODW,SAAS,CAACH,KAAV,CAAgBN,CAPf,CAvCM,CAAT;EAiDArC,SAAS,CAAC,MAAM;IACd,IAAMyF,UAAU;MAAA,8BAAG,aAAY;QAC7B,IAAI3C,SAAS,CAACH,KAAV,CAAgBR,CAAhB,GAAoB,CAAC,CAArB,IAA0BW,SAAS,CAACH,KAAV,CAAgBN,CAAhB,GAAoB,CAAC,CAAnD,EAAsD;UACpD,IAAMwC,IAAI,GAAGC,IAAI,CAACC,GAAL,CAASjC,SAAS,CAACH,KAAV,CAAgBR,CAAzB,EAA4BW,SAAS,CAACF,GAAV,CAAcT,CAA1C,CAAb;UACA,IAAMuD,IAAI,GAAGZ,IAAI,CAACa,GAAL,CAAS7C,SAAS,CAACH,KAAV,CAAgBR,CAAzB,EAA4BW,SAAS,CAACF,GAAV,CAAcT,CAA1C,CAAb;UACA,IAAM6C,IAAI,GAAGF,IAAI,CAACC,GAAL,CAASjC,SAAS,CAACH,KAAV,CAAgBN,CAAzB,EAA4BS,SAAS,CAACF,GAAV,CAAcP,CAA1C,CAAb;UACA,IAAMuD,IAAI,GAAGd,IAAI,CAACa,GAAL,CAAS7C,SAAS,CAACH,KAAV,CAAgBN,CAAzB,EAA4BS,SAAS,CAACF,GAAV,CAAcP,CAA1C,CAAb;UACA,IAAMwD,YAAY,GAAG,CAAC,GAAGhF,OAAJ,EAClBiF,MADkB,CACXd,IADW,EACLY,IAAI,GAAGZ,IAAP,GAAc,CADT,EAElB7D,GAFkB,CAEb4E,CAAD,IAAOA,CAAC,CAAC1E,GAFK,CAArB;UAGA,IAAM2E,YAAY,GAAG,CAAC,GAAGpF,IAAJ,EAAUkF,MAAV,CAAiBjB,IAAjB,EAAuBa,IAAI,GAAGb,IAAP,GAAc,CAArC,CAArB;UAEA,IAAMoB,MAAM,GAAGD,YAAY,CACxB7E,GADY,CACPC,GAAD,IAAS;YACZ,OAAOyE,YAAY,CAChB1E,GADI,CACCE,GAAD,IAAS;cACZ,OAAOD,GAAG,CAACC,GAAD,CAAV;YACD,CAHI,EAIJ6E,IAJI,CAIC,IAJD,CAAP;UAKD,CAPY,EAQZA,IARY,CAQP,IARO,CAAf;;UASA,IAAID,MAAJ,EAAY;YACV,MAAMxF,IAAI,CAACwF,MAAD,CAAV;UACD;QACF;MACF,CAxBe;;MAAA,gBAAVR,UAAU;QAAA;MAAA;IAAA,GAAhB;;IAyBAnC,QAAQ,CAACG,gBAAT,CAA0B,MAA1B,EAAkCgC,UAAlC,EAA8C;MAAE/B,OAAO,EAAE;IAAX,CAA9C;IACA,OAAO,MAAM;MACXJ,QAAQ,CAACC,mBAAT,CAA6B,MAA7B,EAAqCkC,UAArC;IACD,CAFD;EAGD,CA9BQ,EA8BN,CACD5E,OADC,EAEDD,IAFC,EAGDkC,SAAS,CAACF,GAAV,CAAcT,CAHb,EAIDW,SAAS,CAACF,GAAV,CAAcP,CAJb,EAKDS,SAAS,CAACH,KAAV,CAAgBR,CALf,EAMDW,SAAS,CAACH,KAAV,CAAgBN,CANf,CA9BM,CAAT;EAuCA,IAAM8D,cAAc,GAAGpG,WAAW,CAC/BqG,KAAD,IAAmB;IACjB,IAAItD,SAAS,CAACL,IAAV,KAAmB,QAAvB,EAAiC,OAAO,KAAP;IACjC,OACGK,SAAS,CAACH,KAAV,CAAgBN,CAAhB,IAAqB+D,KAArB,IAA8BA,KAAK,IAAItD,SAAS,CAACF,GAAV,CAAcP,CAAtD,IACCS,SAAS,CAACH,KAAV,CAAgBN,CAAhB,IAAqB+D,KAArB,IAA8BA,KAAK,IAAItD,SAAS,CAACF,GAAV,CAAcP,CAFxD;EAID,CAP+B,EAQhC,CAACS,SAAS,CAACF,GAAV,CAAcP,CAAf,EAAkBS,SAAS,CAACH,KAAV,CAAgBN,CAAlC,EAAqCS,SAAS,CAACL,IAA/C,CARgC,CAAlC;EAUA,IAAM4D,WAAW,GAAGtG,WAAW,CAC5BqG,KAAD,IAAmB;IACjB,IAAItD,SAAS,CAACL,IAAV,KAAmB,KAAvB,EAA8B,OAAO,KAAP;IAC9B,OACGK,SAAS,CAACH,KAAV,CAAgBR,CAAhB,IAAqBiE,KAArB,IAA8BA,KAAK,IAAItD,SAAS,CAACF,GAAV,CAAcT,CAAtD,IACCW,SAAS,CAACH,KAAV,CAAgBR,CAAhB,IAAqBiE,KAArB,IAA8BA,KAAK,IAAItD,SAAS,CAACF,GAAV,CAAcT,CAFxD;EAID,CAP4B,EAQ7B,CAACW,SAAS,CAACF,GAAV,CAAcT,CAAf,EAAkBW,SAAS,CAACH,KAAV,CAAgBR,CAAlC,EAAqCW,SAAS,CAACL,IAA/C,CAR6B,CAA/B;EAWA,OACE,2BACGxB,UAAU,GACT,cAAC,UAAD;IAAY,KAAK,EAAE;MAAEqF,QAAQ,EAAExF;IAAZ;EAAnB,GACGG,UAAU,GACT,cAAC,cAAD;IACE,OAAO,EAAE,MAAM;MACb,IAAMgF,MAAM,GAAG,CAACpF,OAAO,CAACM,GAAR,CAAac,MAAD,IAAYA,MAAM,CAACsE,KAA/B,CAAD,EAAwCC,MAAxC,CACb5F,IAAI,CAACO,GAAL,CAAUC,GAAD,IAAS;QAChB,OAAOP,OAAO,CAACM,GAAR,CAAY,SAAa;UAAA,IAAZ;YAAEE;UAAF,CAAY;UAC9B,OAAOD,GAAG,CAACC,GAAD,CAAV;QACD,CAFM,CAAP;MAGD,CAJD,CADa,CAAf;MAOAJ,UAAU,CAACgF,MAAD,CAAV;IACD;EAVH,EADS,GAaP,IAdN,CADS,GAiBP,IAlBN,EAoBE,cAAC,mBAAD,CAAqB,QAArB;IACE,KAAK,EAAE;MACL7B,eADK;MAELT,kBAFK;MAGLE,qBAHK;MAILC,qBAJK;MAKLC,mBALK;MAMLoC,cANK;MAOLxB,aAPK;MAQL9D,OAAO,EAAEA;IARJ;EADT,GAYE,cAAC,IAAD;IACE,KAAK,EAAE;MAAEyF,QAAQ,EAAE;IAAZ,CADT;IAEE,gBAAgB,EAAE3G,YAFpB;IAGE,QAAQ,EAAEkD,GAHZ;IAIE,WAAW,EAAEhC,OAAO,CAAC+C,MAAR,GAAiB,CAJhC;IAKE,QAAQ,EAAEhD,IAAI,CAACgD,MALjB;IAME,MAAM,EAAE7C,MANV;IAOE,KAAK,EAAED,KAPT;IAQE,WAAW,EAAGsF,KAAD,IAAYA,KAAK,KAAK,CAAV,GAAc,EAAd,GAAmBvF,OAAO,CAACuF,KAAK,GAAG,CAAT,CAAP,CAAmBtF,KARjE;IASE,SAAS,EAAE,MAAM,EATnB;IAUE,QAAQ,EAAE;MACRD,OADQ;MAERmD,eAFQ;MAGRC,kBAHQ;MAIRC,kBAJQ;MAKRC,gBALQ;MAMRkC,WANQ;MAORnF,IAPQ;MAQRqB,sBARQ;MASR+B,WATQ;MAUR1D,IAVQ;MAWRqC,eAXQ;MAYRG,eAZQ;MAaRvB;IAbQ;EAVZ,GA0BGrC,UA1BH,CAZF,CApBF,CADF;AAgED,CA3kBM"}
1
+ {"version":3,"file":"DataSheet.js","names":["Controller","DownloadButton","CustomCell","InnerElement","InnerElementContext","VariableSizeGrid","useOnClickOutside","React","useCallback","useEffect","useMemo","useRef","useState","jsx","___EmotionJSX","Grid","paste","_ref","_asyncToGenerator","text","navigator","clipboard","readText","apply","arguments","copy","_ref2","writeText","_x","DataSheet","_ref3","data","columns","width","height","onSave","onDownload","rows","map","row","_ref4","key","value","history","current","push","JSON","parse","stringify","handleChangeCheckbox","event","element","currentTarget","column","dataset","x","parseInt","y","checked","_extends","handleChangeDataEditor","initialSelection","type","active","start","end","ref","selection","setSelection","handleClickOutside","handleMouseDown","shiftKey","prev","handleMouseOver","handleShiftKeyUp","document","removeEventListener","handleMouseUp","addEventListener","capture","handleSelectColumn","length","handleMouseDownColumn","handleMouseOverColumn","handleMouseUpColumn","handleSelectRow","handleMouseDownRow","handleMouseOverRow","handleMouseUpRow","handleSelectAll","passive","isSelection","posX","negX","posY","negY","handleKeyDown","getClipBoardText","_ref5","minX","Math","min","minY","dataToInsert","split","rowLength","columnLength","i","j","undefined","readonly","handleCopy","_ref6","maxX","max","maxY","selectedKeys","splice","e","selectedData","result","join","isSelectColumn","index","isSelectRow","style","maxWidth","onClick","title","concat","_ref7","Provider","innerElementType","innerRef","columnCount","rowCount","columnWidth","rowHeight","itemData"],"sources":["../../src/DataSheet.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Controller, DownloadButton } from \"./Controller\";\nimport { CustomCell } from \"./CustomCell\";\nimport { InnerElement, InnerElementContext } from \"./InnerElement\";\nimport { VariableSizeGrid, VariableSizeGridProps } from \"react-window\";\nimport { useOnClickOutside } from \"./useOnClickOutside\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nconst Grid = VariableSizeGrid as unknown as (\n props: Omit<VariableSizeGridProps, \"children\"> & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: any;\n },\n) => JSX.Element;\n\nconst paste = async () => {\n const text = await navigator.clipboard.readText();\n return text;\n};\n\nconst copy = async (text: string) => {\n await navigator.clipboard.writeText(text);\n};\n\nexport type DataRow = Record<string, string | undefined | boolean | number>;\n\nexport type DataColumn<R extends DataRow> = {\n [S in keyof R]: {\n key: S;\n title: string;\n Header?: (props: { title: string }) => React.ReactElement | null;\n type?: \"number\" | \"date\" | \"text\" | \"select\" | \"checkbox\";\n readonly?: boolean;\n validator?: (props: { row: R }) => boolean | string;\n // formatter?: (value: R[S], props: { row: R }) => string\n list?: string[] | ((props: { row: R }) => string[]);\n width: number;\n };\n}[keyof R];\n\nexport interface DataSheetProps<R extends DataRow = DataRow> {\n width: number;\n height: number;\n readonly columns: DataColumn<R>[];\n readonly data: R[];\n readonly onSave?: (data: R[]) => void;\n readonly onDownload?: (data: string[][]) => void;\n}\n\nexport const DataSheet = <R extends DataRow>({\n data,\n columns,\n width,\n height,\n onSave,\n onDownload,\n}: DataSheetProps<R>) => {\n const rows = useMemo(() => {\n return data.map((row) => {\n return columns.map(({ key }) => {\n const value = row[key];\n return value;\n });\n });\n }, [data, columns]);\n\n const history = useRef<(typeof data)[]>([]);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n history.current.push(JSON.parse(JSON.stringify(data)));\n }, [data]);\n\n const handleChangeCheckbox = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const element = event.currentTarget;\n const { row, column } = element.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n const { key } = columns[y];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const copy: R[] = JSON.parse(JSON.stringify(data));\n const { checked } = element;\n copy[x] = {\n ...copy[x],\n [key]: checked,\n };\n history.current.push(copy);\n },\n [data, columns],\n );\n\n const handleChangeDataEditor = useCallback(\n (event: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>) => {\n const element = event.currentTarget;\n const { row, column } = element.dataset;\n const x = parseInt(row!, 10);\n\n const y = parseInt(column!, 10);\n const { key } = columns[y];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const copy: R[] = JSON.parse(JSON.stringify(data));\n const { value } = element;\n copy[x] = {\n ...copy[x],\n [key]: value,\n };\n history.current.push(copy);\n },\n [columns, data],\n );\n\n /**\n * Select\n */\n const { current: initialSelection } = useRef<{\n type: \"cell\" | \"column\" | \"row\" | \"all\";\n active: boolean;\n start: {\n x: number;\n y: number;\n };\n end: {\n x: number;\n y: number;\n };\n }>({\n type: \"cell\",\n active: false,\n start: { x: -1, y: -1 },\n end: { x: -1, y: -1 },\n });\n const ref = useRef<HTMLTableElement>(null);\n\n const [selection, setSelection] = useState(initialSelection);\n\n const handleClickOutside = useCallback(() => {\n setSelection(initialSelection);\n }, [initialSelection]);\n useOnClickOutside(ref, handleClickOutside);\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLTableDataCellElement, MouseEvent>) => {\n if (event.shiftKey) {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => ({\n ...prev,\n type: \"cell\",\n end: { x, y },\n }));\n } else {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => {\n if (prev.active === true) return prev;\n return {\n type: \"cell\",\n active: true,\n start: { x, y },\n end: { x, y },\n };\n });\n }\n },\n [],\n );\n\n const handleMouseOver = useCallback(\n (event: React.MouseEvent<HTMLTableDataCellElement, MouseEvent>) => {\n const { row, column } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n const y = parseInt(column!, 10);\n setSelection((prev) => {\n if (prev.active === false) return prev;\n if (prev.type === \"cell\") {\n return {\n ...prev,\n end: {\n x,\n y,\n },\n };\n }\n if (prev.type === \"column\") {\n return {\n ...prev,\n end: {\n x: prev.end.x,\n y,\n },\n };\n }\n if (prev.type === \"row\") {\n return {\n ...prev,\n end: {\n x,\n y: prev.end.y,\n },\n };\n }\n return prev;\n });\n },\n [],\n );\n\n const handleShiftKeyUp = useCallback(() => {\n setSelection((prev) => ({\n ...prev,\n active: false,\n }));\n document.removeEventListener(\"keyup\", handleShiftKeyUp);\n }, []);\n\n const handleMouseUp = useCallback(\n (event: MouseEvent) => {\n if (event.shiftKey) {\n setSelection((prev) => {\n return {\n ...prev,\n active: true,\n };\n });\n document.addEventListener(\"keyup\", handleShiftKeyUp, {\n capture: true,\n });\n } else {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }\n },\n [handleShiftKeyUp],\n );\n\n /** Column */\n const handleSelectColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n const y = parseInt(column!, 10);\n setSelection({\n type: \"column\",\n active: false,\n start: {\n x: 0,\n y,\n },\n end: {\n x: data.length - 1,\n y,\n },\n });\n },\n [data.length],\n );\n const handleMouseDownColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n\n const y = parseInt(column!, 10);\n setSelection({\n type: \"column\",\n active: true,\n start: {\n x: 0,\n y,\n },\n end: {\n x: data.length - 1,\n y,\n },\n });\n },\n [data.length],\n );\n const handleMouseOverColumn = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { column } = event.currentTarget.dataset;\n const y = parseInt(column!, 10);\n\n setSelection((prev) => {\n if (prev.active === false || prev.type !== \"column\") return prev;\n return {\n ...prev,\n end: {\n x: data.length - 1,\n y,\n },\n };\n });\n },\n [data.length],\n );\n const handleMouseUpColumn = useCallback(() => {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }, []);\n\n /** Row */\n const handleSelectRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection({\n type: \"row\",\n active: false,\n start: {\n x,\n y: 0,\n },\n end: {\n x,\n y: columns.length - 1,\n },\n });\n },\n [columns.length],\n );\n const handleMouseDownRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection({\n type: \"row\",\n active: true,\n start: {\n x,\n y: 0,\n },\n end: {\n x,\n y: columns.length - 1,\n },\n });\n },\n [columns.length],\n );\n const handleMouseOverRow = useCallback(\n (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n const { row } = event.currentTarget.dataset;\n const x = parseInt(row!, 10);\n setSelection((prev) => {\n if (prev.active === false || prev.type !== \"row\") return prev;\n return {\n ...prev,\n end: {\n x,\n y: columns.length - 1,\n },\n };\n });\n },\n [columns.length],\n );\n const handleMouseUpRow = useCallback(() => {\n setSelection((prev) => {\n return {\n ...prev,\n active: false,\n };\n });\n }, []);\n\n /** All */\n\n const handleSelectAll = useCallback(() => {\n setSelection({\n type: \"all\",\n active: false,\n start: {\n x: 0,\n y: 0,\n },\n end: {\n x: data.length - 1,\n y: columns.length - 1,\n },\n });\n }, [data.length, columns.length]);\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleMouseUp, { passive: true });\n return () => {\n document.removeEventListener(\"mouseup\", handleMouseUp);\n document.removeEventListener(\"keyup\", handleShiftKeyUp);\n };\n }, [handleMouseUp, handleShiftKeyUp]);\n const isSelection = useCallback(\n (current: { x: number; y: number }) => {\n const { start, end } = selection;\n\n const posX = current.y >= start.y && current.y <= end.y;\n const negX = current.y <= start.y && current.y >= end.y;\n const posY = current.x >= start.x && current.x <= end.x;\n const negY = current.x <= start.x && current.x >= end.x;\n\n return (\n (posX && posY) || (negX && posY) || (negX && negY) || (posX && negY)\n );\n },\n [selection],\n );\n\n /**\n * Keycode\n */\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case \"ArrowUp\": {\n setSelection((prev) => {\n if (prev.start.x === 0) return prev;\n return {\n ...prev,\n start: { x: prev.start.x - 1, y: prev.start.y },\n end: { x: prev.start.x - 1, y: prev.start.y },\n };\n });\n break;\n }\n case \"ArrowRight\":\n setSelection((prev) => {\n if (prev.start.y === columns.length - 1) return prev;\n return {\n ...prev,\n start: { x: prev.start.x, y: prev.start.y + 1 },\n end: { x: prev.start.x, y: prev.start.y + 1 },\n };\n });\n break;\n case \"ArrowDown\":\n setSelection((prev) => {\n if (prev.start.x === data.length - 1) return prev;\n return {\n ...prev,\n start: { x: prev.start.x + 1, y: prev.start.y },\n end: { x: prev.start.x + 1, y: prev.start.y },\n };\n });\n break;\n case \"ArrowLeft\":\n setSelection((prev) => {\n if (prev.start.y === 0) return prev;\n return {\n ...prev,\n start: { x: prev.start.x, y: prev.start.y - 1 },\n end: { x: prev.start.x, y: prev.start.y - 1 },\n };\n });\n break;\n default:\n break;\n }\n },\n [columns.length, data.length],\n );\n\n useEffect(() => {\n const getClipBoardText = async () => {\n if (selection.start.x > -1 && selection.start.y > -1) {\n const text = await paste();\n if (text) {\n const minX = Math.min(selection.start.x, selection.end.x);\n const minY = Math.min(selection.start.y, selection.end.y);\n const dataToInsert = text.split(/\\n/g).map((row) => row.split(/\\t/g));\n const rowLength = dataToInsert.length;\n const columnLength = dataToInsert[0].length;\n const copy = [...data];\n for (let i = 0; i < rowLength; i++) {\n for (let j = 0; j < columnLength; j++) {\n const column = columns[minY + j];\n if (column === undefined) continue;\n const { key, readonly, type } = column;\n if (\n key !== undefined &&\n copy[minX + i] !== undefined &&\n !readonly\n ) {\n const value = dataToInsert[i][j];\n if (type === \"checkbox\") {\n copy[minX + i][key] = (\n value === \"false\" ? false : value === \"true\" ? true : value\n ) as R[keyof R];\n } else {\n copy[minX + i][key] = value as R[keyof R];\n }\n }\n }\n }\n if (onSave) {\n onSave(copy);\n }\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n document.addEventListener(\"paste\", getClipBoardText, { capture: true });\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n document.removeEventListener(\"paste\", getClipBoardText);\n };\n }, [\n columns,\n data,\n onSave,\n selection.end.x,\n selection.end.y,\n selection.start.x,\n selection.start.y,\n ]);\n\n useEffect(() => {\n const handleCopy = async () => {\n if (selection.start.x > -1 && selection.start.y > -1) {\n const minX = Math.min(selection.start.x, selection.end.x);\n const maxX = Math.max(selection.start.x, selection.end.x);\n const minY = Math.min(selection.start.y, selection.end.y);\n const maxY = Math.max(selection.start.y, selection.end.y);\n const selectedKeys = [...columns]\n .splice(minY, maxY - minY + 1)\n .map((e) => e.key);\n const selectedData = [...data].splice(minX, maxX - minX + 1);\n\n const result = selectedData\n .map((row) => {\n return selectedKeys\n .map((key) => {\n return row[key];\n })\n .join(\"\\t\");\n })\n .join(\"\\n\");\n if (result) {\n await copy(result);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n document.addEventListener(\"copy\", handleCopy, { capture: true });\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n document.removeEventListener(\"copy\", handleCopy);\n };\n }, [\n columns,\n data,\n selection.end.x,\n selection.end.y,\n selection.start.x,\n selection.start.y,\n ]);\n\n const isSelectColumn = useCallback(\n (index: number) => {\n if (selection.type !== \"column\") return false;\n return (\n (selection.start.y <= index && index <= selection.end.y) ||\n (selection.start.y >= index && index >= selection.end.y)\n );\n },\n [selection.end.y, selection.start.y, selection.type],\n );\n const isSelectRow = useCallback(\n (index: number) => {\n if (selection.type !== \"row\") return false;\n return (\n (selection.start.x <= index && index <= selection.end.x) ||\n (selection.start.x >= index && index >= selection.end.x)\n );\n },\n [selection.end.x, selection.start.x, selection.type],\n );\n\n return (\n <div>\n {onDownload ? (\n <Controller style={{ maxWidth: width }}>\n <DownloadButton\n onClick={() => {\n const result = [columns.map((column) => column.title)].concat(\n data.map((row) => {\n return columns.map(({ key }) => {\n return row[key] as string;\n });\n }),\n );\n onDownload(result);\n }}\n />\n </Controller>\n ) : null}\n\n <InnerElementContext.Provider\n value={{\n handleSelectAll,\n handleSelectColumn,\n handleMouseDownColumn,\n handleMouseOverColumn,\n handleMouseUpColumn,\n isSelectColumn,\n handleKeyDown,\n columns: columns as DataColumn<DataRow>[],\n }}\n >\n <Grid\n style={{ maxWidth: \"100%\" }}\n innerElementType={InnerElement}\n innerRef={ref}\n columnCount={columns.length + 1}\n rowCount={data.length}\n height={height}\n width={width}\n columnWidth={(index) => (index === 0 ? 32 : columns[index - 1].width)}\n rowHeight={() => 24}\n itemData={{\n columns,\n handleSelectRow,\n handleMouseDownRow,\n handleMouseOverRow,\n handleMouseUpRow,\n isSelectRow,\n rows,\n handleChangeDataEditor,\n isSelection,\n data,\n handleMouseDown,\n handleMouseOver,\n handleChangeCheckbox,\n }}\n >\n {CustomCell}\n </Grid>\n </InnerElementContext.Provider>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,5 @@
1
1
  import React from "react";
2
- export declare const DataSheetCheckbox: React.FC<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>>;
2
+ export interface DataSheetCheckboxProps extends React.ComponentPropsWithoutRef<"input"> {
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare const DataSheetCheckbox: React.MemoExoticComponent<({ style, className, ...props }: DataSheetCheckboxProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
@@ -1,42 +1,34 @@
1
1
  var _excluded = ["style", "className"];
2
-
3
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
-
5
3
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
-
7
4
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
8
-
9
5
  import { css } from "@emotion/react";
10
6
  import React from "react";
11
7
  import { jsx as ___EmotionJSX } from "@emotion/react";
12
-
13
8
  var _ref = process.env.NODE_ENV === "production" ? {
14
9
  name: "e0dnmk",
15
10
  styles: "cursor:pointer"
16
11
  } : {
17
12
  name: "z3s2sf-DataSheetCheckbox",
18
13
  styles: "cursor:pointer;label:DataSheetCheckbox;",
19
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRDaGVja2JveC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkJnQiIsImZpbGUiOiIuLi8uLi9zcmMvRGF0YVNoZWV0Q2hlY2tib3gudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgY29uc3QgRGF0YVNoZWV0Q2hlY2tib3g6IFJlYWN0LkZDPFxuICBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICBSZWFjdC5JbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIEhUTUxJbnB1dEVsZW1lbnRcbiAgPlxuPiA9IFJlYWN0Lm1lbW8oKHsgc3R5bGUsIGNsYXNzTmFtZSwgLi4ucHJvcHMgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsYWJlbFxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICBvdXRsaW5lOiAwcHg7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGB9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgPC9sYWJlbD5cbiAgKTtcbn0pO1xuIl19 */",
14
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRDaGVja2JveC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JrQiIsImZpbGUiOiIuLi8uLi9zcmMvRGF0YVNoZWV0Q2hlY2tib3gudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNoZWV0Q2hlY2tib3hQcm9wc1xuICBleHRlbmRzIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImlucHV0XCI+IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBEYXRhU2hlZXRDaGVja2JveCA9IFJlYWN0Lm1lbW8oXG4gICh7IHN0eWxlLCBjbGFzc05hbWUsIC4uLnByb3BzIH06IERhdGFTaGVldENoZWNrYm94UHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPGxhYmVsXG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBgfVxuICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgLz5cbiAgICAgIDwvbGFiZWw+XG4gICAgKTtcbiAgfSxcbik7XG4iXX0= */",
20
15
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
16
  };
22
-
23
17
  var _ref2 = process.env.NODE_ENV === "production" ? {
24
18
  name: "j7kruw",
25
19
  styles: "box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0px;text-align:inherit;cursor:pointer;user-select:none;background-color:transparent;border:0px;outline:0px"
26
20
  } : {
27
21
  name: "1yokeco-DataSheetCheckbox",
28
22
  styles: "box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0px;text-align:inherit;cursor:pointer;user-select:none;background-color:transparent;border:0px;outline:0px;label:DataSheetCheckbox;",
29
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRDaGVja2JveC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWWMiLCJmaWxlIjoiLi4vLi4vc3JjL0RhdGFTaGVldENoZWNrYm94LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IGNvbnN0IERhdGFTaGVldENoZWNrYm94OiBSZWFjdC5GQzxcbiAgUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBIVE1MSW5wdXRFbGVtZW50XG4gID5cbj4gPSBSZWFjdC5tZW1vKCh7IHN0eWxlLCBjbGFzc05hbWUsIC4uLnByb3BzIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8bGFiZWxcbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBgfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgIDwvbGFiZWw+XG4gICk7XG59KTtcbiJdfQ== */",
23
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRDaGVja2JveC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY2dCIiwiZmlsZSI6Ii4uLy4uL3NyYy9EYXRhU2hlZXRDaGVja2JveC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2hlZXRDaGVja2JveFByb3BzXG4gIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPFwiaW5wdXRcIj4ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IERhdGFTaGVldENoZWNrYm94ID0gUmVhY3QubWVtbyhcbiAgKHsgc3R5bGUsIGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogRGF0YVNoZWV0Q2hlY2tib3hQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8bGFiZWxcbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgICBvdXRsaW5lOiAwcHg7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGB9XG4gICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAvPlxuICAgICAgPC9sYWJlbD5cbiAgICApO1xuICB9LFxuKTtcbiJdfQ== */",
30
24
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
31
25
  };
32
-
33
26
  export var DataSheetCheckbox = /*#__PURE__*/React.memo(_ref3 => {
34
27
  var {
35
- style,
36
- className
37
- } = _ref3,
38
- props = _objectWithoutPropertiesLoose(_ref3, _excluded);
39
-
28
+ style,
29
+ className
30
+ } = _ref3,
31
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded);
40
32
  return ___EmotionJSX("label", {
41
33
  style: style,
42
34
  className: className,
@@ -1 +1 @@
1
- {"version":3,"file":"DataSheetCheckbox.js","names":["css","React","DataSheetCheckbox","memo","style","className","props"],"sources":["../../src/DataSheetCheckbox.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\nexport const DataSheetCheckbox: React.FC<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >\n> = React.memo(({ style, className, ...props }) => {\n return (\n <label\n style={style}\n className={className}\n css={css`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 0px;\n text-align: inherit;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 0px;\n outline: 0px;\n `}\n >\n <input\n css={css`\n cursor: pointer;\n `}\n {...props}\n />\n </label>\n );\n});\n"],"mappings":";;;;;;;;AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,KAAP,MAAkB,OAAlB;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,IAAMC,iBAKZ,gBAAGD,KAAK,CAACE,IAAN,CAAW,SAAoC;EAAA,IAAnC;IAAEC,KAAF;IAASC;EAAT,CAAmC;EAAA,IAAZC,KAAY;;EACjD,OACE;IACE,KAAK,EAAEF,KADT;IAEE,SAAS,EAAEC,SAFb;IAGE,GAAG;EAHL,GAmBE;IACE,GAAG;EADL,GAIMC,KAJN,EAnBF,CADF;AA4BD,CA7BG,CALG"}
1
+ {"version":3,"file":"DataSheetCheckbox.js","names":["css","React","jsx","___EmotionJSX","_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","DataSheetCheckbox","memo","_ref3","style","className","props","_objectWithoutPropertiesLoose","_excluded","_extends"],"sources":["../../src/DataSheetCheckbox.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\n\nexport interface DataSheetCheckboxProps\n extends React.ComponentPropsWithoutRef<\"input\"> {\n children?: React.ReactNode;\n}\n\nexport const DataSheetCheckbox = React.memo(\n ({ style, className, ...props }: DataSheetCheckboxProps) => {\n return (\n <label\n style={style}\n className={className}\n css={css`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 0px;\n text-align: inherit;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 0px;\n outline: 0px;\n `}\n >\n <input\n css={css`\n cursor: pointer;\n `}\n {...props}\n />\n </label>\n );\n },\n);\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,GAAA,IAAAC,aAAA;AAAA,IAAAC,IAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA;AAAA,IAAAC,KAAA,GAAAR,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA;AAO1B,OAAO,IAAME,iBAAiB,gBAAGb,KAAK,CAACc,IAAI,CACzCC,KAAA,IAA4D;EAAA,IAA3D;MAAEC,KAAK;MAAEC;IAA4C,CAAC,GAAAF,KAAA;IAA/BG,KAAK,GAAAC,6BAAA,CAAAJ,KAAA,EAAAK,SAAA;EAC3B,OACElB,aAAA;IACEc,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBlB,GAAG,EAAAa;EAcD,GAEFV,aAAA,UAAAmB,QAAA;IACEtB,GAAG,EAAAI;EAED,GACEe,KAAK,CACV,CACI,CAAC;AAEZ,CACF,CAAC","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  import React from "react";
2
- export declare const DataSheetInput: React.FC<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>>;
2
+ type DataSheetInputProps = React.ComponentPropsWithoutRef<"input">;
3
+ export declare const DataSheetInput: React.MemoExoticComponent<(props: DataSheetInputProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
4
+ export {};
package/DataSheetInput.js CHANGED
@@ -1,21 +1,17 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
2
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
4
-
5
3
  import { css } from "@emotion/react";
6
4
  import React from "react";
7
5
  import { jsx as ___EmotionJSX } from "@emotion/react";
8
-
9
6
  var _ref = process.env.NODE_ENV === "production" ? {
10
7
  name: "1ftiey0",
11
8
  styles: "box-sizing:border-box;width:100%;height:100%;padding:0px;font:inherit;text-align:inherit;background-color:transparent;border:0px;border:1px solid transparent;outline:0px;&:focus{border:1px solid #2185d0;}&[readonly]::selection{background-color:transparent;}"
12
9
  } : {
13
10
  name: "a2yzbv-DataSheetInput",
14
11
  styles: "box-sizing:border-box;width:100%;height:100%;padding:0px;font:inherit;text-align:inherit;background-color:transparent;border:0px;border:1px solid transparent;outline:0px;&:focus{border:1px solid #2185d0;}&[readonly]::selection{background-color:transparent;};label:DataSheetInput;",
15
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRJbnB1dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYWMiLCJmaWxlIjoiLi4vLi4vc3JjL0RhdGFTaGVldElucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IGNvbnN0IERhdGFTaGVldElucHV0OiBSZWFjdC5GQzxcbiAgUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBIVE1MSW5wdXRFbGVtZW50XG4gID5cbj4gPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICByZXR1cm4gKFxuICAgIDxpbnB1dFxuICAgICAgey4uLnByb3BzfVxuICAgICAgey4uLihwcm9wcy5yZWFkT25seSA/IHsgdmFsdWU6IHByb3BzLmRlZmF1bHRWYWx1ZSB9IDoge30pfVxuICAgICAgcmVhZE9ubHk9e2ZhbHNlfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE4NWQwO1xuICAgICAgICB9XG4gICAgICAgICZbcmVhZG9ubHldOjpzZWxlY3Rpb24ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIC8+XG4gICk7XG59KTtcbiJdfQ== */",
12
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRhU2hlZXRJbnB1dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV2MiLCJmaWxlIjoiLi4vLi4vc3JjL0RhdGFTaGVldElucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIERhdGFTaGVldElucHV0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8XCJpbnB1dFwiPjtcblxuZXhwb3J0IGNvbnN0IERhdGFTaGVldElucHV0ID0gUmVhY3QubWVtbygocHJvcHM6IERhdGFTaGVldElucHV0UHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8aW5wdXRcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHsuLi4ocHJvcHMucmVhZE9ubHkgPyB7IHZhbHVlOiBwcm9wcy5kZWZhdWx0VmFsdWUgfSA6IHt9KX1cbiAgICAgIHJlYWRPbmx5PXtmYWxzZX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIG91dGxpbmU6IDBweDtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzIxODVkMDtcbiAgICAgICAgfVxuICAgICAgICAmW3JlYWRvbmx5XTo6c2VsZWN0aW9uIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufSk7XG4iXX0= */",
16
13
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
17
14
  };
18
-
19
15
  export var DataSheetInput = /*#__PURE__*/React.memo(props => {
20
16
  return ___EmotionJSX("input", _extends({}, props, props.readOnly ? {
21
17
  value: props.defaultValue
@@ -1 +1 @@
1
- {"version":3,"file":"DataSheetInput.js","names":["css","React","DataSheetInput","memo","props","readOnly","value","defaultValue"],"sources":["../../src/DataSheetInput.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\nexport const DataSheetInput: React.FC<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >\n> = React.memo((props) => {\n return (\n <input\n {...props}\n {...(props.readOnly ? { value: props.defaultValue } : {})}\n readOnly={false}\n css={css`\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 0px;\n font: inherit;\n text-align: inherit;\n background-color: transparent;\n border: 0px;\n border: 1px solid transparent;\n outline: 0px;\n &:focus {\n border: 1px solid #2185d0;\n }\n &[readonly]::selection {\n background-color: transparent;\n }\n `}\n />\n );\n});\n"],"mappings":";;;;AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,KAAP,MAAkB,OAAlB;;;;;;;;;;;;;AACA,OAAO,IAAMC,cAKZ,gBAAGD,KAAK,CAACE,IAAN,CAAYC,KAAD,IAAW;EACxB,OACE,oCACMA,KADN,EAEOA,KAAK,CAACC,QAAN,GAAiB;IAAEC,KAAK,EAAEF,KAAK,CAACG;EAAf,CAAjB,GAAiD,EAFxD;IAGE,QAAQ,EAAE,KAHZ;IAIE,GAAG;EAJL,GADF;AAyBD,CA1BG,CALG"}
1
+ {"version":3,"file":"DataSheetInput.js","names":["css","React","jsx","___EmotionJSX","_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","DataSheetInput","memo","props","_extends","readOnly","value","defaultValue"],"sources":["../../src/DataSheetInput.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\n\ntype DataSheetInputProps = React.ComponentPropsWithoutRef<\"input\">;\n\nexport const DataSheetInput = React.memo((props: DataSheetInputProps) => {\n return (\n <input\n {...props}\n {...(props.readOnly ? { value: props.defaultValue } : {})}\n readOnly={false}\n css={css`\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: 0px;\n font: inherit;\n text-align: inherit;\n background-color: transparent;\n border: 0px;\n border: 1px solid transparent;\n outline: 0px;\n &:focus {\n border: 1px solid #2185d0;\n }\n &[readonly]::selection {\n background-color: transparent;\n }\n `}\n />\n );\n});\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,GAAA,IAAAC,aAAA;AAAA,IAAAC,IAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA;AAI1B,OAAO,IAAMC,cAAc,gBAAGZ,KAAK,CAACa,IAAI,CAAEC,KAA0B,IAAK;EACvE,OACEZ,aAAA,UAAAa,QAAA,KACMD,KAAK,EACJA,KAAK,CAACE,QAAQ,GAAG;IAAEC,KAAK,EAAEH,KAAK,CAACI;EAAa,CAAC,GAAG,CAAC,CAAC;IACxDF,QAAQ,EAAE,KAAM;IAChBjB,GAAG,EAAAI;EAiBD,EACH,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -1,2 +1,6 @@
1
1
  import React from "react";
2
- export declare const DataSheetSelect: React.FC<React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>>;
2
+ interface DataSheetSelectProps extends React.ComponentPropsWithoutRef<"select"> {
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare const DataSheetSelect: React.MemoExoticComponent<(props: DataSheetSelectProps) => import("@emotion/react/jsx-runtime").JSX.Element>;
6
+ export {};