m2mui-datasheet 2.1.0 → 4.0.0

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 (122) hide show
  1. package/{dist/types/Cell.d.ts → Cell.d.ts} +1 -1
  2. package/Cell.js +95 -0
  3. package/Cell.js.map +1 -0
  4. package/{dist/types/Controller.d.ts → Controller.d.ts} +0 -0
  5. package/Controller.js +56 -0
  6. package/Controller.js.map +1 -0
  7. package/{dist/types/CustomCell.d.ts → CustomCell.d.ts} +0 -0
  8. package/{dist/esm/CustomCell.js → CustomCell.js} +12 -3
  9. package/CustomCell.js.map +1 -0
  10. package/DataSheet.d.ts +31 -0
  11. package/{dist/esm/DataSheet.js → DataSheet.js} +3 -5
  12. package/DataSheet.js.map +1 -0
  13. package/{dist/types/DataSheetCheckbox.d.ts → DataSheetCheckbox.d.ts} +0 -0
  14. package/DataSheetCheckbox.js +48 -0
  15. package/DataSheetCheckbox.js.map +1 -0
  16. package/{dist/types/DataSheetInput.d.ts → DataSheetInput.d.ts} +0 -0
  17. package/DataSheetInput.js +27 -0
  18. package/DataSheetInput.js.map +1 -0
  19. package/{dist/types/DataSheetSelect.d.ts → DataSheetSelect.d.ts} +0 -0
  20. package/DataSheetSelect.js +24 -0
  21. package/DataSheetSelect.js.map +1 -0
  22. package/InnerElement.d.ts +16 -0
  23. package/InnerElement.js +110 -0
  24. package/InnerElement.js.map +1 -0
  25. package/README.md +74 -76
  26. package/cjs/Cell.js +105 -0
  27. package/cjs/Cell.js.map +1 -0
  28. package/cjs/Controller.js +68 -0
  29. package/cjs/Controller.js.map +1 -0
  30. package/{dist/cjs → cjs}/CustomCell.js +12 -4
  31. package/cjs/CustomCell.js.map +1 -0
  32. package/{dist/cjs → cjs}/DataSheet.js +3 -5
  33. package/cjs/DataSheet.js.map +1 -0
  34. package/cjs/DataSheetCheckbox.js +51 -0
  35. package/cjs/DataSheetCheckbox.js.map +1 -0
  36. package/cjs/DataSheetInput.js +36 -0
  37. package/cjs/DataSheetInput.js.map +1 -0
  38. package/cjs/DataSheetSelect.js +33 -0
  39. package/cjs/DataSheetSelect.js.map +1 -0
  40. package/cjs/InnerElement.js +115 -0
  41. package/cjs/InnerElement.js.map +1 -0
  42. package/{dist/cjs → cjs}/index.js +0 -0
  43. package/cjs/index.js.map +1 -0
  44. package/{dist/cjs → cjs}/useOnClickOutside.js +0 -0
  45. package/cjs/useOnClickOutside.js.map +1 -0
  46. package/esm/Cell.js +95 -0
  47. package/esm/Cell.js.map +1 -0
  48. package/esm/Controller.js +56 -0
  49. package/esm/Controller.js.map +1 -0
  50. package/esm/CustomCell.js +123 -0
  51. package/esm/CustomCell.js.map +1 -0
  52. package/esm/DataSheet.js +615 -0
  53. package/esm/DataSheet.js.map +1 -0
  54. package/esm/DataSheetCheckbox.js +48 -0
  55. package/esm/DataSheetCheckbox.js.map +1 -0
  56. package/esm/DataSheetInput.js +27 -0
  57. package/esm/DataSheetInput.js.map +1 -0
  58. package/esm/DataSheetSelect.js +24 -0
  59. package/esm/DataSheetSelect.js.map +1 -0
  60. package/esm/InnerElement.js +110 -0
  61. package/esm/InnerElement.js.map +1 -0
  62. package/{dist/esm → esm}/index.js +0 -0
  63. package/esm/index.js.map +1 -0
  64. package/{dist/esm → esm}/useOnClickOutside.js +0 -0
  65. package/esm/useOnClickOutside.js.map +1 -0
  66. package/{dist/types/index.d.ts → index.d.ts} +0 -0
  67. package/index.js +4 -0
  68. package/index.js.map +1 -0
  69. package/package.json +89 -111
  70. package/types/Cell.d.ts +10 -0
  71. package/types/Controller.d.ts +3 -0
  72. package/types/CustomCell.d.ts +3 -0
  73. package/types/DataSheet.d.ts +31 -0
  74. package/types/DataSheetCheckbox.d.ts +2 -0
  75. package/types/DataSheetInput.d.ts +2 -0
  76. package/types/DataSheetSelect.d.ts +2 -0
  77. package/types/InnerElement.d.ts +16 -0
  78. package/types/index.d.ts +3 -0
  79. package/{dist/types → types}/useOnClickOutside.d.ts +0 -0
  80. package/useOnClickOutside.d.ts +1 -0
  81. package/useOnClickOutside.js +26 -0
  82. package/useOnClickOutside.js.map +1 -0
  83. package/CHANGELOG.md +0 -89
  84. package/dist/cjs/Cell.js +0 -105
  85. package/dist/cjs/Cell.js.map +0 -1
  86. package/dist/cjs/Controller.js +0 -68
  87. package/dist/cjs/Controller.js.map +0 -1
  88. package/dist/cjs/CustomCell.js.map +0 -1
  89. package/dist/cjs/DataSheet.js.map +0 -1
  90. package/dist/cjs/DataSheetCheckbox.js +0 -49
  91. package/dist/cjs/DataSheetCheckbox.js.map +0 -1
  92. package/dist/cjs/DataSheetInput.js +0 -33
  93. package/dist/cjs/DataSheetInput.js.map +0 -1
  94. package/dist/cjs/DataSheetSelect.js +0 -33
  95. package/dist/cjs/DataSheetSelect.js.map +0 -1
  96. package/dist/cjs/DataSheetText.js +0 -34
  97. package/dist/cjs/DataSheetText.js.map +0 -1
  98. package/dist/cjs/InnerElement.js +0 -114
  99. package/dist/cjs/InnerElement.js.map +0 -1
  100. package/dist/cjs/index.js.map +0 -1
  101. package/dist/cjs/useOnClickOutside.js.map +0 -1
  102. package/dist/esm/Cell.js +0 -93
  103. package/dist/esm/Cell.js.map +0 -1
  104. package/dist/esm/Controller.js +0 -56
  105. package/dist/esm/Controller.js.map +0 -1
  106. package/dist/esm/CustomCell.js.map +0 -1
  107. package/dist/esm/DataSheet.js.map +0 -1
  108. package/dist/esm/DataSheetCheckbox.js +0 -40
  109. package/dist/esm/DataSheetCheckbox.js.map +0 -1
  110. package/dist/esm/DataSheetInput.js +0 -24
  111. package/dist/esm/DataSheetInput.js.map +0 -1
  112. package/dist/esm/DataSheetSelect.js +0 -24
  113. package/dist/esm/DataSheetSelect.js.map +0 -1
  114. package/dist/esm/DataSheetText.js +0 -25
  115. package/dist/esm/DataSheetText.js.map +0 -1
  116. package/dist/esm/InnerElement.js +0 -106
  117. package/dist/esm/InnerElement.js.map +0 -1
  118. package/dist/esm/index.js.map +0 -1
  119. package/dist/esm/useOnClickOutside.js.map +0 -1
  120. package/dist/types/DataSheet.d.ts +0 -30
  121. package/dist/types/DataSheetText.d.ts +0 -4
  122. package/dist/types/InnerElement.d.ts +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cell.js","names":["css","React","Cell","memo","readonly","selected","invalid","title","style","props","cursor","border","boxShadow","background","color","prev","next","value","onClick","ColumnHeadCell","RowHeadCell"],"sources":["../../src/Cell.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\nexport interface CellProps\n extends React.DetailedHTMLProps<\n React.TdHTMLAttributes<HTMLTableDataCellElement>,\n HTMLTableDataCellElement\n > {\n readonly?: boolean;\n selected?: boolean;\n invalid?: boolean | string;\n value?: unknown;\n}\n\nexport const Cell: React.FC<CellProps> = React.memo(\n ({\n readonly = false,\n selected = false,\n invalid = false,\n title,\n value: _value,\n style = {},\n ...props\n }) => {\n return (\n <div\n {...props}\n data-element=\"cell\"\n title={typeof invalid === \"string\" ? invalid : title}\n style={{\n ...style,\n cursor: typeof invalid === \"string\" ? \"help\" : \"cursor\",\n ...(selected\n ? {\n border: `1px double #2185d0`,\n boxShadow: `inset 0 -100px 0 rgba(33, 133, 208, 0.15)`,\n }\n : {}),\n ...(invalid\n ? {\n background: `rgba(208, 33, 33, 0.3)`,\n }\n : {}),\n ...(readonly\n ? {\n background: `#f8f9fa`,\n color: `#5f6368`,\n }\n : {}),\n }}\n css={css`\n position: relative;\n box-sizing: border-box;\n height: 24px;\n padding: 0px;\n overflow: scroll;\n text-align: right;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n background-color: unset;\n background-color: white;\n border: 1px solid #e1e3e3;\n -ms-overflow-style: none;\n scrollbar-width: none;\n &::-webkit-scrollbar {\n display: none;\n }\n `}\n />\n );\n },\n (prev, next) =>\n prev.selected === next.selected &&\n prev.value === next.value &&\n next.onClick === prev.onClick\n);\n\nexport const ColumnHeadCell: React.FC<CellProps> = React.memo(\n (props) => {\n return (\n <Cell\n {...props}\n data-selected={props.selected}\n css={[\n css`\n flex-shrink: 0;\n font-size: 10px;\n line-height: 24px;\n color: #5f6368;\n text-align: center;\n cursor: pointer;\n background-color: #f8f9fa;\n transition: 0.2s;\n `,\n props.selected\n ? css`\n color: #f8f9fa;\n background-color: #5f6368;\n `\n : null,\n ]}\n />\n );\n },\n (prev, next) =>\n prev.selected === next.selected &&\n prev.value === next.value &&\n next.onClick === prev.onClick\n);\n\nexport const RowHeadCell: React.FC<CellProps> = React.memo(\n ({ ...props }) => {\n return (\n <ColumnHeadCell\n {...props}\n css={css`\n width: 24px;\n font-family: monospace !important;\n line-height: 24px;\n `}\n />\n );\n },\n (prev, next) =>\n prev.selected === next.selected &&\n prev.value === next.value &&\n next.onClick === prev.onClick\n);\n"],"mappings":";;;;;;;;AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,KAAP,MAAkB,OAAlB;;;;;;;;;;;;;AAYA,OAAO,IAAMC,IAAyB,gBAAGD,KAAK,CAACE,IAAN,CACvC,SAQM;EAAA,IARL;IACCC,QAAQ,GAAG,KADZ;IAECC,QAAQ,GAAG,KAFZ;IAGCC,OAAO,GAAG,KAHX;IAICC,KAJD;IAMCC,KAAK,GAAG;EANT,CAQK;EAAA,IADDC,KACC;;EACJ,OACE,kCACMA,KADN;IAEE,gBAAa,MAFf;IAGE,KAAK,EAAE,OAAOH,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCC,KAHjD;IAIE,KAAK,eACAC,KADA;MAEHE,MAAM,EAAE,OAAOJ,OAAP,KAAmB,QAAnB,GAA8B,MAA9B,GAAuC;IAF5C,GAGCD,QAAQ,GACR;MACEM,MAAM,sBADR;MAEEC,SAAS;IAFX,CADQ,GAKR,EARD,EASCN,OAAO,GACP;MACEO,UAAU;IADZ,CADO,GAIP,EAbD,EAcCT,QAAQ,GACR;MACES,UAAU,WADZ;MAEEC,KAAK;IAFP,CADQ,GAKR,EAnBD,CAJP;IAyBE,GAAG;EAzBL,GADF;AA+CD,CAzDsC,EA0DvC,CAACC,IAAD,EAAOC,IAAP,KACED,IAAI,CAACV,QAAL,KAAkBW,IAAI,CAACX,QAAvB,IACAU,IAAI,CAACE,KAAL,KAAeD,IAAI,CAACC,KADpB,IAEAD,IAAI,CAACE,OAAL,KAAiBH,IAAI,CAACG,OA7De,CAAlC;;;;;;;;;;;;;;;;;;;;;;AAgEP,OAAO,IAAMC,cAAmC,gBAAGlB,KAAK,CAACE,IAAN,CAChDM,KAAD,IAAW;EACT,OACE,cAAC,IAAD,eACMA,KADN;IAEE,iBAAeA,KAAK,CAACJ,QAFvB;IAGE,GAAG,UAWDI,KAAK,CAACJ,QAAN,WAKI,IAhBH;EAHL,GADF;AAwBD,CA1BgD,EA2BjD,CAACU,IAAD,EAAOC,IAAP,KACED,IAAI,CAACV,QAAL,KAAkBW,IAAI,CAACX,QAAvB,IACAU,IAAI,CAACE,KAAL,KAAeD,IAAI,CAACC,KADpB,IAEAD,IAAI,CAACE,OAAL,KAAiBH,IAAI,CAACG,OA9ByB,CAA5C;;;;;;;;;;;;AAiCP,OAAO,IAAME,WAAgC,gBAAGnB,KAAK,CAACE,IAAN,CAC9C,SAAkB;EAAA,IAAZM,KAAY;;EAChB,OACE,cAAC,cAAD,eACMA,KADN;IAEE,GAAG;EAFL,GADF;AAUD,CAZ6C,EAa9C,CAACM,IAAD,EAAOC,IAAP,KACED,IAAI,CAACV,QAAL,KAAkBW,IAAI,CAACX,QAAvB,IACAU,IAAI,CAACE,KAAL,KAAeD,IAAI,CAACC,KADpB,IAEAD,IAAI,CAACE,OAAL,KAAiBH,IAAI,CAACG,OAhBsB,CAAzC"}
@@ -0,0 +1,56 @@
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
+ 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
+ import { css } from "@emotion/react";
6
+ import React from "react";
7
+ import { jsx as ___EmotionJSX } from "@emotion/react";
8
+
9
+ var _ref2 = process.env.NODE_ENV === "production" ? {
10
+ name: "17ncf2e",
11
+ styles: "box-sizing:border-box;display:flex;justify-content:flex-end;background-color:#f8f9fa;border-top:1px solid #e1e3e3;border-right:1px solid #e1e3e3;border-left:1px solid #e1e3e3"
12
+ } : {
13
+ name: "1h7ldop-Controller",
14
+ styles: "box-sizing:border-box;display:flex;justify-content:flex-end;background-color:#f8f9fa;border-top:1px solid #e1e3e3;border-right:1px solid #e1e3e3;border-left:1px solid #e1e3e3;label:Controller;",
15
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRYyIsImZpbGUiOiIuLi8uLi9zcmMvQ29udHJvbGxlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IENvbnRyb2xsZXI6IFJlYWN0LkZDPFJlYWN0LkhUTUxQcm9wczxIVE1MRGl2RWxlbWVudD4+ID0gKFxuICBwcm9wc1xuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTFlM2UzO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlM2UzO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUzZTM7XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgRG93bmxvYWRCdXR0b24gPSAoXG4gIHByb3BzOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICBSZWFjdC5CdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4sXG4gICAgSFRNTEJ1dHRvbkVsZW1lbnRcbiAgPlxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9e2BDU1blvaLlvI/jgafjg4fjg7zjgr/jgpLjg4Djgqbjg7Pjg63jg7zjg4njgZfjgb7jgZnjgIJcbkN0cmzjgb7jgZ/jga9Db21tYW5k44KS5oq844GX44Gq44GM44KJ44Kv44Oq44OD44Kv44GZ44KL44GT44Go44Gn5ZCN5YmN44KS5LuY44GR44Gm44OA44Km44Oz44Ot44O844OJ44Gn44GN44G+44GZ44CCYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycztcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UxZTNlMztcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBlbmFibGVCYWNrZ3JvdW5kPVwibmV3IDAgMCAyNCAyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0cHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgZmlsbD1cIiMwMDAwMDBcIlxuICAgICAgPlxuICAgICAgICA8Zz5cbiAgICAgICAgICA8cmVjdCBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjI0XCIgd2lkdGg9XCIyNFwiIC8+XG4gICAgICAgIDwvZz5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGggZD1cIk01LDIwaDE0di0ySDVWMjB6IE0xOSw5aC00VjNIOXY2SDVsNyw3TDE5LDl6XCIgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9idXR0b24+XG4gICk7XG59O1xuIl19 */",
16
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
17
+ };
18
+
19
+ export var Controller = props => {
20
+ return ___EmotionJSX("div", _extends({
21
+ css: _ref2
22
+ }, props));
23
+ };
24
+
25
+ var _ref = process.env.NODE_ENV === "production" ? {
26
+ name: "1nlr1g4",
27
+ styles: "box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0px;margin:0px;cursor:pointer;background-color:#f8f9fa;border:none;outline:none;transition:0.2s;appearance:none;&:hover{background-color:#e1e3e3;}"
28
+ } : {
29
+ name: "1xvqni3-DownloadButton",
30
+ styles: "box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0px;margin:0px;cursor:pointer;background-color:#f8f9fa;border:none;outline:none;transition:0.2s;appearance:none;&:hover{background-color:#e1e3e3;};label:DownloadButton;",
31
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQ2MiLCJmaWxlIjoiLi4vLi4vc3JjL0NvbnRyb2xsZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBDb250cm9sbGVyOiBSZWFjdC5GQzxSZWFjdC5IVE1MUHJvcHM8SFRNTERpdkVsZW1lbnQ+PiA9IChcbiAgcHJvcHNcbikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTNlMztcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTNlMztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTFlM2UzO1xuICAgICAgYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IERvd25sb2FkQnV0dG9uID0gKFxuICBwcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxuICAgIEhUTUxCdXR0b25FbGVtZW50XG4gID5cbikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHRpdGxlPXtgQ1NW5b2i5byP44Gn44OH44O844K/44KS44OA44Km44Oz44Ot44O844OJ44GX44G+44GZ44CCXG5DdHJs44G+44Gf44GvQ29tbWFuZOOCkuaKvOOBl+OBquOBjOOCieOCr+ODquODg+OCr+OBmeOCi+OBk+OBqOOBp+WQjeWJjeOCkuS7mOOBkeOBpuODgOOCpuODs+ODreODvOODieOBp+OBjeOBvuOBmeOAgmB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnM7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWUzZTM7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZW5hYmxlQmFja2dyb3VuZD1cIm5ldyAwIDAgMjQgMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgIHdpZHRoPVwiMjRweFwiXG4gICAgICAgIGZpbGw9XCIjMDAwMDAwXCJcbiAgICAgID5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHJlY3QgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIiAvPlxuICAgICAgICA8L2c+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNSwyMGgxNHYtMkg1VjIweiBNMTksOWgtNFYzSDl2Nkg1bDcsN0wxOSw5elwiIC8+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICApO1xufTtcbiJdfQ== */",
32
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
33
+ };
34
+
35
+ export var DownloadButton = props => {
36
+ return ___EmotionJSX("button", _extends({
37
+ title: "CSV\u5F62\u5F0F\u3067\u30C7\u30FC\u30BF\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002\nCtrl\u307E\u305F\u306FCommand\u3092\u62BC\u3057\u306A\u304C\u3089\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u3067\u540D\u524D\u3092\u4ED8\u3051\u3066\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3067\u304D\u307E\u3059\u3002"
38
+ }, props, {
39
+ type: "button",
40
+ css: _ref
41
+ }), ___EmotionJSX("svg", {
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ enableBackground: "new 0 0 24 24",
44
+ height: "24px",
45
+ viewBox: "0 0 24 24",
46
+ width: "24px",
47
+ fill: "#000000"
48
+ }, ___EmotionJSX("g", null, ___EmotionJSX("rect", {
49
+ fill: "none",
50
+ height: "24",
51
+ width: "24"
52
+ })), ___EmotionJSX("g", null, ___EmotionJSX("path", {
53
+ d: "M5,20h14v-2H5V20z M19,9h-4V3H9v6H5l7,7L19,9z"
54
+ }))));
55
+ };
56
+ //# sourceMappingURL=Controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controller.js","names":["css","React","Controller","props","DownloadButton"],"sources":["../../src/Controller.tsx"],"sourcesContent":["import { css } from \"@emotion/react\";\nimport React from \"react\";\n\nexport const Controller: React.FC<React.HTMLProps<HTMLDivElement>> = (\n props\n) => {\n return (\n <div\n css={css`\n box-sizing: border-box;\n display: flex;\n justify-content: flex-end;\n background-color: #f8f9fa;\n border-top: 1px solid #e1e3e3;\n border-right: 1px solid #e1e3e3;\n border-left: 1px solid #e1e3e3;\n `}\n {...props}\n />\n );\n};\n\nexport const DownloadButton = (\n props: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n) => {\n return (\n <button\n title={`CSV形式でデータをダウンロードします。\nCtrlまたはCommandを押しながらクリックすることで名前を付けてダウンロードできます。`}\n {...props}\n type=\"button\"\n css={css`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0px;\n margin: 0px;\n cursor: pointer;\n background-color: #f8f9fa;\n border: none;\n outline: none;\n transition: 0.2s;\n appearance: none;\n &:hover {\n background-color: #e1e3e3;\n }\n `}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n enableBackground=\"new 0 0 24 24\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <g>\n <rect fill=\"none\" height=\"24\" width=\"24\" />\n </g>\n <g>\n <path d=\"M5,20h14v-2H5V20z M19,9h-4V3H9v6H5l7,7L19,9z\" />\n </g>\n </svg>\n </button>\n );\n};\n"],"mappings":";;;;AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,KAAP,MAAkB,OAAlB;;;;;;;;;;;;;AAEA,OAAO,IAAMC,UAAqD,GAChEC,KADmE,IAEhE;EACH,OACE;IACE,GAAG;EADL,GAUMA,KAVN,EADF;AAcD,CAjBM;;;;;;;;;;;;AAmBP,OAAO,IAAMC,cAAc,GACzBD,KAD4B,IAKzB;EACH,OACE;IACE,KAAK;EADP,GAGMA,KAHN;IAIE,IAAI,EAAC,QAJP;IAKE,GAAG;EALL,IAyBE;IACE,KAAK,EAAC,4BADR;IAEE,gBAAgB,EAAC,eAFnB;IAGE,MAAM,EAAC,MAHT;IAIE,OAAO,EAAC,WAJV;IAKE,KAAK,EAAC,MALR;IAME,IAAI,EAAC;EANP,GAQE,yBACE;IAAM,IAAI,EAAC,MAAX;IAAkB,MAAM,EAAC,IAAzB;IAA8B,KAAK,EAAC;EAApC,EADF,CARF,EAWE,yBACE;IAAM,CAAC,EAAC;EAAR,EADF,CAXF,CAzBF,CADF;AA2CD,CAjDM"}
@@ -0,0 +1,123 @@
1
+ import { Cell, RowHeadCell } from "./Cell";
2
+ import { DataSheetCheckbox } from "./DataSheetCheckbox";
3
+ import { DataSheetInput } from "./DataSheetInput";
4
+ import { DataSheetSelect } from "./DataSheetSelect";
5
+ import { areEqual } from "react-window";
6
+ import React from "react";
7
+ import { jsx as ___EmotionJSX } from "@emotion/react";
8
+ export var CustomCell = /*#__PURE__*/React.memo(_ref => {
9
+ var {
10
+ columnIndex,
11
+ rowIndex,
12
+ style,
13
+ data: {
14
+ columns,
15
+ handleSelectRow,
16
+ handleMouseDownRow,
17
+ handleMouseOverRow,
18
+ handleMouseUpRow,
19
+ isSelectRow,
20
+ rows,
21
+ handleChangeDataEditor,
22
+ isSelection,
23
+ data,
24
+ handleMouseDown,
25
+ handleMouseOver,
26
+ handleChangeCheckbox
27
+ }
28
+ } = _ref;
29
+ var x = rowIndex;
30
+ var y = columnIndex - 1;
31
+
32
+ if (y === -1) {
33
+ return ___EmotionJSX(RowHeadCell, {
34
+ title: x + "\u884C\u76EE\u3092\u9078\u629E",
35
+ "data-row": x,
36
+ "data-column": 0,
37
+ onClick: handleSelectRow,
38
+ onMouseDown: handleMouseDownRow,
39
+ onMouseOver: handleMouseOverRow,
40
+ onMouseUp: handleMouseUpRow,
41
+ selected: isSelectRow(x),
42
+ style: style
43
+ }, x);
44
+ }
45
+
46
+ var row = rows[x];
47
+ var cell = row[y];
48
+ var {
49
+ readonly = false,
50
+ type,
51
+ list,
52
+ key,
53
+ validator,
54
+ formatter
55
+ } = columns[y];
56
+ var selected = isSelection({
57
+ x: x,
58
+ y: y
59
+ });
60
+
61
+ var makeOptions = () => list ? typeof list === "function" ? list({
62
+ row: data[x]
63
+ }).map((option, i) => ___EmotionJSX("option", {
64
+ value: option,
65
+ key: option + "-" + i
66
+ }, option)) : list.map((option, i) => ___EmotionJSX("option", {
67
+ value: option,
68
+ key: option + "-" + i
69
+ }, option)) : null;
70
+
71
+ var displayValue = cell === undefined ? "" : formatter ? formatter(cell, {
72
+ row: data[y]
73
+ }) : "" + cell;
74
+ return ___EmotionJSX(Cell, {
75
+ style: style,
76
+ title: displayValue,
77
+ invalid: cell !== undefined && validator ? validator({
78
+ row: data[x]
79
+ }) : false,
80
+ readonly: readonly,
81
+ selected: selected,
82
+ "data-row": x,
83
+ "data-column": y,
84
+ value: cell,
85
+ key: "row-" + x + "-cell-" + y,
86
+ onMouseDown: handleMouseDown,
87
+ onMouseOver: handleMouseOver
88
+ }, readonly || type === undefined ? ___EmotionJSX(DataSheetInput, {
89
+ type: type,
90
+ defaultValue: displayValue,
91
+ list: "" + key,
92
+ key: x + "-" + y + "-" + cell,
93
+ "data-row": x,
94
+ "data-column": y,
95
+ onChange: handleChangeDataEditor,
96
+ readOnly: readonly
97
+ }) : type === "checkbox" ? ___EmotionJSX(DataSheetCheckbox, {
98
+ type: type,
99
+ "data-row": x,
100
+ "data-column": y,
101
+ onChange: handleChangeCheckbox,
102
+ key: x + "-" + y + "-" + cell,
103
+ defaultChecked: typeof cell === "boolean" ? cell : undefined
104
+ }) : type === "select" ? ___EmotionJSX(DataSheetSelect, {
105
+ "data-row": x,
106
+ "data-column": y,
107
+ defaultValue: cell,
108
+ key: x + "-" + y + "-" + cell,
109
+ onChange: handleChangeDataEditor
110
+ }, makeOptions()) : ___EmotionJSX(React.Fragment, null, ___EmotionJSX(DataSheetInput, {
111
+ type: type,
112
+ defaultValue: cell,
113
+ list: "" + key,
114
+ key: x + "-" + y + "-" + cell,
115
+ "data-row": x,
116
+ "data-column": y,
117
+ onChange: handleChangeDataEditor,
118
+ readOnly: readonly
119
+ }), list ? ___EmotionJSX("datalist", {
120
+ id: key
121
+ }, makeOptions()) : null));
122
+ }, areEqual);
123
+ //# sourceMappingURL=CustomCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomCell.js","names":["Cell","RowHeadCell","DataSheetCheckbox","DataSheetInput","DataSheetSelect","areEqual","React","CustomCell","memo","columnIndex","rowIndex","style","data","columns","handleSelectRow","handleMouseDownRow","handleMouseOverRow","handleMouseUpRow","isSelectRow","rows","handleChangeDataEditor","isSelection","handleMouseDown","handleMouseOver","handleChangeCheckbox","x","y","row","cell","readonly","type","list","key","validator","formatter","selected","makeOptions","map","option","i","displayValue","undefined"],"sources":["../../src/CustomCell.tsx"],"sourcesContent":["import { Cell, RowHeadCell } from \"./Cell\";\nimport { ComponentType } from \"react\";\nimport { DataSheetCheckbox } from \"./DataSheetCheckbox\";\nimport { DataSheetInput } from \"./DataSheetInput\";\nimport { DataSheetSelect } from \"./DataSheetSelect\";\nimport { GridChildComponentProps, areEqual } from \"react-window\";\nimport React from \"react\";\n\nexport const CustomCell: ComponentType<GridChildComponentProps> = React.memo(\n ({\n columnIndex,\n rowIndex,\n style,\n data: {\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 const x = rowIndex;\n const y = columnIndex - 1;\n if (y === -1) {\n return (\n <RowHeadCell\n title={`${x}行目を選択`}\n data-row={x}\n data-column={0}\n onClick={handleSelectRow}\n onMouseDown={handleMouseDownRow}\n onMouseOver={handleMouseOverRow}\n onMouseUp={handleMouseUpRow}\n selected={isSelectRow(x)}\n style={style}\n >\n {x}\n </RowHeadCell>\n );\n }\n const row = rows[x];\n const cell = row[y];\n\n const {\n readonly = false,\n type,\n list,\n key,\n validator,\n formatter,\n } = columns[y];\n\n const selected = isSelection({\n x: x,\n y: y,\n });\n const makeOptions = () =>\n list\n ? typeof list === \"function\"\n ? list({\n row: data[x],\n }).map((option: string, i: number) => (\n <option value={option} key={`${option}-${i}`}>\n {option}\n </option>\n ))\n : list.map((option: string, i: number) => (\n <option value={option} key={`${option}-${i}`}>\n {option}\n </option>\n ))\n : null;\n\n const displayValue =\n cell === undefined\n ? \"\"\n : formatter\n ? formatter(cell, {\n row: data[y],\n })\n : `${cell}`;\n return (\n <Cell\n style={style}\n title={displayValue}\n invalid={\n cell !== undefined && validator\n ? validator({\n row: data[x],\n })\n : false\n }\n readonly={readonly}\n selected={selected}\n data-row={x}\n data-column={y}\n value={cell}\n key={`row-${x}-cell-${y}`}\n onMouseDown={handleMouseDown}\n onMouseOver={handleMouseOver}\n >\n {readonly || type === undefined ? (\n <DataSheetInput\n type={type}\n defaultValue={displayValue}\n list={`${key}`}\n key={`${x}-${y}-${cell}`}\n data-row={x}\n data-column={y}\n onChange={handleChangeDataEditor}\n readOnly={readonly}\n />\n ) : type === \"checkbox\" ? (\n <DataSheetCheckbox\n type={type}\n data-row={x}\n data-column={y}\n onChange={handleChangeCheckbox}\n key={`${x}-${y}-${cell}`}\n defaultChecked={typeof cell === \"boolean\" ? cell : undefined}\n />\n ) : type === \"select\" ? (\n <DataSheetSelect\n data-row={x}\n data-column={y}\n defaultValue={cell as string}\n key={`${x}-${y}-${cell}`}\n onChange={handleChangeDataEditor}\n >\n {makeOptions()}\n </DataSheetSelect>\n ) : (\n <React.Fragment>\n <DataSheetInput\n type={type}\n defaultValue={cell}\n list={`${key}`}\n key={`${x}-${y}-${cell}`}\n data-row={x}\n data-column={y}\n onChange={handleChangeDataEditor}\n readOnly={readonly}\n />\n {list ? (\n <datalist id={key as string}>{makeOptions()}</datalist>\n ) : null}\n </React.Fragment>\n )}\n </Cell>\n );\n },\n areEqual\n);\n"],"mappings":"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"}