glide-data-grid-cells-fork 6.0.4-alpha10

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 (128) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +65 -0
  3. package/dist/cjs/cells/article-cell-editor.css +1 -0
  4. package/dist/cjs/cells/article-cell-editor.js +98 -0
  5. package/dist/cjs/cells/article-cell-editor.js.map +1 -0
  6. package/dist/cjs/cells/article-cell-types.js +3 -0
  7. package/dist/cjs/cells/article-cell-types.js.map +1 -0
  8. package/dist/cjs/cells/article-cell.js +71 -0
  9. package/dist/cjs/cells/article-cell.js.map +1 -0
  10. package/dist/cjs/cells/button-cell.js +94 -0
  11. package/dist/cjs/cells/button-cell.js.map +1 -0
  12. package/dist/cjs/cells/date-picker-cell.css +1 -0
  13. package/dist/cjs/cells/date-picker-cell.js +138 -0
  14. package/dist/cjs/cells/date-picker-cell.js.map +1 -0
  15. package/dist/cjs/cells/dropdown-cell.css +3 -0
  16. package/dist/cjs/cells/dropdown-cell.js +237 -0
  17. package/dist/cjs/cells/dropdown-cell.js.map +1 -0
  18. package/dist/cjs/cells/input-dropdown-cell.css +3 -0
  19. package/dist/cjs/cells/input-dropdown-cell.js +245 -0
  20. package/dist/cjs/cells/input-dropdown-cell.js.map +1 -0
  21. package/dist/cjs/cells/links-cell.css +1 -0
  22. package/dist/cjs/cells/links-cell.js +281 -0
  23. package/dist/cjs/cells/links-cell.js.map +1 -0
  24. package/dist/cjs/cells/multi-select-cell.css +2 -0
  25. package/dist/cjs/cells/multi-select-cell.js +485 -0
  26. package/dist/cjs/cells/multi-select-cell.js.map +1 -0
  27. package/dist/cjs/cells/range-cell.js +113 -0
  28. package/dist/cjs/cells/range-cell.js.map +1 -0
  29. package/dist/cjs/cells/sparkline-cell.js +116 -0
  30. package/dist/cjs/cells/sparkline-cell.js.map +1 -0
  31. package/dist/cjs/cells/spinner-cell.js +24 -0
  32. package/dist/cjs/cells/spinner-cell.js.map +1 -0
  33. package/dist/cjs/cells/star-cell.css +1 -0
  34. package/dist/cjs/cells/star-cell.js +124 -0
  35. package/dist/cjs/cells/star-cell.js.map +1 -0
  36. package/dist/cjs/cells/tags-cell.css +1 -0
  37. package/dist/cjs/cells/tags-cell.js +152 -0
  38. package/dist/cjs/cells/tags-cell.js.map +1 -0
  39. package/dist/cjs/cells/tree-view-cell.js +57 -0
  40. package/dist/cjs/cells/tree-view-cell.js.map +1 -0
  41. package/dist/cjs/cells/user-profile-cell.js +81 -0
  42. package/dist/cjs/cells/user-profile-cell.js.map +1 -0
  43. package/dist/cjs/draw-fns.js +32 -0
  44. package/dist/cjs/draw-fns.js.map +1 -0
  45. package/dist/cjs/index.js +52 -0
  46. package/dist/cjs/index.js.map +1 -0
  47. package/dist/dts/cells/article-cell-editor.d.ts +4 -0
  48. package/dist/dts/cells/article-cell-editor.d.ts.map +1 -0
  49. package/dist/dts/cells/article-cell-types.d.ts +7 -0
  50. package/dist/dts/cells/article-cell-types.d.ts.map +1 -0
  51. package/dist/dts/cells/article-cell.d.ts +4 -0
  52. package/dist/dts/cells/article-cell.d.ts.map +1 -0
  53. package/dist/dts/cells/button-cell.d.ts +16 -0
  54. package/dist/dts/cells/button-cell.d.ts.map +1 -0
  55. package/dist/dts/cells/date-picker-cell.d.ts +18 -0
  56. package/dist/dts/cells/date-picker-cell.d.ts.map +1 -0
  57. package/dist/dts/cells/dropdown-cell.d.ts +13 -0
  58. package/dist/dts/cells/dropdown-cell.d.ts.map +1 -0
  59. package/dist/dts/cells/input-dropdown-cell.d.ts +14 -0
  60. package/dist/dts/cells/input-dropdown-cell.d.ts.map +1 -0
  61. package/dist/dts/cells/links-cell.d.ts +19 -0
  62. package/dist/dts/cells/links-cell.d.ts.map +1 -0
  63. package/dist/dts/cells/multi-select-cell.d.ts +42 -0
  64. package/dist/dts/cells/multi-select-cell.d.ts.map +1 -0
  65. package/dist/dts/cells/range-cell.d.ts +13 -0
  66. package/dist/dts/cells/range-cell.d.ts.map +1 -0
  67. package/dist/dts/cells/sparkline-cell.d.ts +13 -0
  68. package/dist/dts/cells/sparkline-cell.d.ts.map +1 -0
  69. package/dist/dts/cells/spinner-cell.d.ts +7 -0
  70. package/dist/dts/cells/spinner-cell.d.ts.map +1 -0
  71. package/dist/dts/cells/star-cell.d.ts +8 -0
  72. package/dist/dts/cells/star-cell.d.ts.map +1 -0
  73. package/dist/dts/cells/tags-cell.d.ts +12 -0
  74. package/dist/dts/cells/tags-cell.d.ts.map +1 -0
  75. package/dist/dts/cells/tree-view-cell.d.ts +14 -0
  76. package/dist/dts/cells/tree-view-cell.d.ts.map +1 -0
  77. package/dist/dts/cells/user-profile-cell.d.ts +11 -0
  78. package/dist/dts/cells/user-profile-cell.d.ts.map +1 -0
  79. package/dist/dts/draw-fns.d.ts +8 -0
  80. package/dist/dts/draw-fns.d.ts.map +1 -0
  81. package/dist/dts/index.d.ts +18 -0
  82. package/dist/dts/index.d.ts.map +1 -0
  83. package/dist/esm/cells/article-cell-editor.css +1 -0
  84. package/dist/esm/cells/article-cell-editor.js +62 -0
  85. package/dist/esm/cells/article-cell-editor.js.map +1 -0
  86. package/dist/esm/cells/article-cell-types.js +2 -0
  87. package/dist/esm/cells/article-cell-types.js.map +1 -0
  88. package/dist/esm/cells/article-cell.js +46 -0
  89. package/dist/esm/cells/article-cell.js.map +1 -0
  90. package/dist/esm/cells/button-cell.js +92 -0
  91. package/dist/esm/cells/button-cell.js.map +1 -0
  92. package/dist/esm/cells/date-picker-cell.css +1 -0
  93. package/dist/esm/cells/date-picker-cell.js +126 -0
  94. package/dist/esm/cells/date-picker-cell.js.map +1 -0
  95. package/dist/esm/cells/dropdown-cell.css +3 -0
  96. package/dist/esm/cells/dropdown-cell.js +201 -0
  97. package/dist/esm/cells/dropdown-cell.js.map +1 -0
  98. package/dist/esm/cells/input-dropdown-cell.css +3 -0
  99. package/dist/esm/cells/input-dropdown-cell.js +209 -0
  100. package/dist/esm/cells/input-dropdown-cell.js.map +1 -0
  101. package/dist/esm/cells/links-cell.css +1 -0
  102. package/dist/esm/cells/links-cell.js +245 -0
  103. package/dist/esm/cells/links-cell.js.map +1 -0
  104. package/dist/esm/cells/multi-select-cell.css +2 -0
  105. package/dist/esm/cells/multi-select-cell.js +441 -0
  106. package/dist/esm/cells/multi-select-cell.js.map +1 -0
  107. package/dist/esm/cells/range-cell.js +88 -0
  108. package/dist/esm/cells/range-cell.js.map +1 -0
  109. package/dist/esm/cells/sparkline-cell.js +114 -0
  110. package/dist/esm/cells/sparkline-cell.js.map +1 -0
  111. package/dist/esm/cells/spinner-cell.js +22 -0
  112. package/dist/esm/cells/spinner-cell.js.map +1 -0
  113. package/dist/esm/cells/star-cell.css +1 -0
  114. package/dist/esm/cells/star-cell.js +88 -0
  115. package/dist/esm/cells/star-cell.js.map +1 -0
  116. package/dist/esm/cells/tags-cell.css +1 -0
  117. package/dist/esm/cells/tags-cell.js +116 -0
  118. package/dist/esm/cells/tags-cell.js.map +1 -0
  119. package/dist/esm/cells/tree-view-cell.js +55 -0
  120. package/dist/esm/cells/tree-view-cell.js.map +1 -0
  121. package/dist/esm/cells/user-profile-cell.js +56 -0
  122. package/dist/esm/cells/user-profile-cell.js.map +1 -0
  123. package/dist/esm/draw-fns.js +28 -0
  124. package/dist/esm/draw-fns.js.map +1 -0
  125. package/dist/esm/index.js +32 -0
  126. package/dist/esm/index.js.map +1 -0
  127. package/dist/index.css +9 -0
  128. package/package.json +71 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 typeguard, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,65 @@
1
+ <h1 align="center">
2
+ <img src="https://raw.githubusercontent.com/glideapps/glide-data-grid/master/icon.png" width="224px"/><br/>
3
+ <b>Glide Data Grid Cells</b>
4
+ </h1>
5
+ <p align="center">Additional cells and features for Glide Data Grid</p>
6
+
7
+ [![Version](https://img.shields.io/npm/v/glide-data-grid-fork-cells?color=blue&label=latest&style=for-the-badge)](https://github.com/glideapps/glide-data-grid/releases)
8
+ [![React 16+](https://img.shields.io/badge/React-16+-00ADD8?style=for-the-badge&logo=react)](https://reactjs.org)
9
+ [![npm bundle size](https://img.shields.io/bundlephobia/minzip/glide-data-grid-fork-cells?color=success&label=bundle&style=for-the-badge)](https://bundlephobia.com/package/glide-data-grid-fork-cells)
10
+ [![License](https://img.shields.io/github/license/glideapps/glide-data-grid?color=red&style=for-the-badge)](https://github.com/glideapps/glide-data-grid/blob/main/LICENSE)
11
+ [![Made By Glide](https://img.shields.io/badge/❤_Made_by-Glide-11CCE5?style=for-the-badge&logo=none)](https://www.glideapps.com/jobs)
12
+
13
+ ![Data Grid](https://raw.githubusercontent.com/glideapps/glide-data-grid/master/data-grid.jpg)
14
+
15
+ Current cells
16
+
17
+ - Star (Rating) Cell
18
+ - Sparklines
19
+ - Article
20
+ - Dropdown
21
+ - Range
22
+ - User profile
23
+ - Tags
24
+
25
+ # Usage
26
+
27
+ Step 1: Add the extra cells to your grid.
28
+
29
+ ```tsx
30
+ import { useExtraCells } from "glide-data-grid-fork-cells";
31
+
32
+ const Grid = () => {
33
+ const { customRenderers } = useExtraCells();
34
+ return <DataEditor customRenderers={customRenderers} {...rest} />;
35
+ };
36
+ ```
37
+
38
+ Step 2: Use the cells in your `getCellContent` callback
39
+
40
+ ```ts
41
+ import type { StarCell } from "glide-data-grid-fork-cells";
42
+
43
+ const getCellContent = React.useCallback(() => {
44
+ const starCell: StarCell = {
45
+ kind: GridCellKind.Custom,
46
+ allowOverlay: true,
47
+ copyData: "4 out of 5",
48
+ data: {
49
+ kind: "star-cell",
50
+ label: "Test",
51
+ rating: 4,
52
+ },
53
+ };
54
+
55
+ return starCell;
56
+ }, []);
57
+ ```
58
+
59
+ ## Note on ArticleCell
60
+
61
+ The ArticleCell uses `@toast-ui/editor` to provide its editor. To make sure it works correctly your project will need to import the css file it depends on.
62
+
63
+ ```
64
+ import "@toast-ui/editor/dist/toastui-editor.css";
65
+ ```
@@ -0,0 +1 @@
1
+ .gdg-w1hnqk7o .gdg-footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;padding:20px;}.gdg-w1hnqk7o .gdg-footer button{border:none;padding:8px 16px;font-size:14px;font-weight:500;font-family:var(--gdg-font-family);cursor:pointer;border-radius:var(--gdg-rounding-radius,9px);}.gdg-w1hnqk7o .gdg-save-button{background-color:var(--gdg-accent-color);color:var(--gdg-accent-fg);}.gdg-w1hnqk7o .gdg-close-button{background-color:var(--gdg-bg-header);color:var(--gdg-text-medium);margin-right:8px;}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
20
+ Object.defineProperty(o, "default", {
21
+ enumerable: true,
22
+ value: v
23
+ });
24
+ } : function (o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = this && this.__importStar || function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
37
+ const React = __importStar(require("react"));
38
+ const react_editor_1 = require("@toast-ui/react-editor");
39
+ const react_1 = require("@linaria/react");
40
+ const Wrapper = /*#__PURE__*/react_1.styled('div')({
41
+ name: "Wrapper",
42
+ class: "gdg-w1hnqk7o",
43
+ propsAsIs: false
44
+ });
45
+ const ArticleCellEditor = p => {
46
+ const [tempValue, setTempValue] = React.useState(p.value.data.markdown);
47
+ const onKeyDown = React.useCallback(e => {
48
+ e.stopPropagation();
49
+ }, []);
50
+ const onSave = React.useCallback(() => {
51
+ p.onFinishedEditing({
52
+ ...p.value,
53
+ data: {
54
+ ...p.value.data,
55
+ markdown: tempValue
56
+ }
57
+ });
58
+ }, [p, tempValue]);
59
+ const onClose = React.useCallback(() => {
60
+ p.onFinishedEditing(undefined);
61
+ }, [p]);
62
+ if (p.value.readonly) {
63
+ return React.createElement(Wrapper, {
64
+ id: "gdg-markdown-readonly",
65
+ onKeyDown: onKeyDown,
66
+ style: {
67
+ height: "75vh",
68
+ padding: "35px"
69
+ }
70
+ }, React.createElement(react_editor_1.Viewer, {
71
+ initialValue: p.value.data.markdown,
72
+ usageStatistics: false
73
+ }));
74
+ }
75
+ return React.createElement(Wrapper, {
76
+ id: "gdg-markdown-wysiwyg",
77
+ onKeyDown: onKeyDown
78
+ }, React.createElement(react_editor_1.Editor, {
79
+ initialEditType: "wysiwyg",
80
+ autofocus: true,
81
+ initialValue: p.value.data.markdown,
82
+ hideModeSwitch: true,
83
+ onChange: setTempValue,
84
+ height: "75vh",
85
+ usageStatistics: false,
86
+ toolbarItems: [["heading", "bold", "italic", "strike"], ["hr", "quote"], ["ul", "ol", "task", "indent", "outdent"], ["table", "link"], ["code", "codeblock"]]
87
+ }), React.createElement("div", {
88
+ className: "gdg-footer"
89
+ }, React.createElement("button", {
90
+ className: "gdg-close-button",
91
+ onClick: onClose
92
+ }, "Close"), React.createElement("button", {
93
+ className: "gdg-save-button",
94
+ onClick: onSave
95
+ }, "Save")));
96
+ };
97
+ exports.default = ArticleCellEditor;
98
+
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell-editor.js","sourceRoot":"","sources":["../../../src/cells/article-cell-editor.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAC/B,yDAAwD;AACxD,0CAAwC;AAGxC,MAAM,OAAO,GAAG,cAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BzB,CAAC;AAEF,MAAM,iBAAiB,GAAwC,CAAC,CAAC,EAAE;IAC/D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAsB,EAAE,EAAE;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,CAAC,CAAC,iBAAiB,CAAC;YAChB,GAAG,CAAC,CAAC,KAAK;YACV,IAAI,EAAE;gBACF,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI;gBACf,QAAQ,EAAE,SAAS;aACtB;SACJ,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACnC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAER,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QAClB,OAAO,CACH,oBAAC,OAAO,IAAC,EAAE,EAAC,uBAAuB,EAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;YAChG,oBAAC,qBAAM,IAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,GAAI,CACjE,CACb,CAAC;KACL;IAED,OAAO,CACH,oBAAC,OAAO,IAAC,EAAE,EAAC,sBAAsB,EAAC,SAAS,EAAE,SAAS;QACnD,oBAAC,qBAAM,IACH,eAAe,EAAC,SAAS,EACzB,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EACnC,cAAc,EAAE,IAAI,EACpB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAC,MAAM,EACb,eAAe,EAAE,KAAK,EACtB,YAAY,EAAE;gBACV,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBACvC,CAAC,IAAI,EAAE,OAAO,CAAC;gBACf,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACzC,CAAC,OAAO,EAAE,MAAM,CAAC;gBACjB,CAAC,MAAM,EAAE,WAAW,CAAC;aACxB,GACH;QACF,6BAAK,SAAS,EAAC,YAAY;YACvB,gCAAQ,SAAS,EAAC,kBAAkB,EAAC,OAAO,EAAE,OAAO,YAE5C;YACT,gCAAQ,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,MAAM,WAE1C,CACP,CACA,CACb,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=article-cell-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell-types.js","sourceRoot":"","sources":["../../../src/cells/article-cell-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const React = __importStar(require("react"));
27
+ const glide_data_grid_fork_1 = require("glide-data-grid-fork");
28
+ const ArticleCellEditor = React.lazy(async () => await import("./article-cell-editor.js"));
29
+ const renderer = {
30
+ kind: glide_data_grid_fork_1.GridCellKind.Custom,
31
+ isMatch: (c) => c.data.kind === "article-cell",
32
+ draw: (args, cell) => {
33
+ const { ctx, theme, rect } = args;
34
+ const { markdown } = cell.data;
35
+ let data = markdown;
36
+ if (data.includes("\n")) {
37
+ // new lines are rare and split is relatively expensive compared to the search
38
+ // it pays off to not do the split contantly.
39
+ data = data.split(/\r?\n/)[0];
40
+ }
41
+ const max = rect.width / 4; // no need to round, slice will just truncate this
42
+ if (data.length > max) {
43
+ data = data.slice(0, max);
44
+ }
45
+ ctx.fillStyle = theme.textDark;
46
+ ctx.fillText(data, rect.x + theme.cellHorizontalPadding, rect.y + rect.height / 2 + (0, glide_data_grid_fork_1.getMiddleCenterBias)(ctx, theme));
47
+ return true;
48
+ },
49
+ provideEditor: () => ({
50
+ editor: p => {
51
+ return (React.createElement(React.Suspense, { fallback: null },
52
+ React.createElement(ArticleCellEditor, { ...p })));
53
+ },
54
+ styleOverride: {
55
+ position: "fixed",
56
+ left: "12.5vw",
57
+ top: "12.5vh",
58
+ width: "75vw",
59
+ borderRadius: "9px",
60
+ maxWidth: "unset",
61
+ maxHeight: "unset",
62
+ },
63
+ disablePadding: true,
64
+ }),
65
+ onPaste: (val, d) => ({
66
+ ...d,
67
+ markdown: val,
68
+ }),
69
+ };
70
+ exports.default = renderer;
71
+ //# sourceMappingURL=article-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell.js","sourceRoot":"","sources":["../../../src/cells/article-cell.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAC/B,+DAA8F;AAE9F,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE3F,MAAM,QAAQ,GAAgC;IAC1C,IAAI,EAAE,mCAAY,CAAC,MAAM;IACzB,OAAO,EAAE,CAAC,CAAC,EAAoB,EAAE,CAAE,CAAC,CAAC,IAAY,CAAC,IAAI,KAAK,cAAc;IACzE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACjB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE/B,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACrB,8EAA8E;YAC9E,6CAA6C;YAC7C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,kDAAkD;QAC9E,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACnB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC7B;QAED,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,GAAG,CAAC,QAAQ,CACR,IAAI,EACJ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,qBAAqB,EACpC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAA,0CAAmB,EAAC,GAAG,EAAE,KAAK,CAAC,CAC7D,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QAClB,MAAM,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,CACH,oBAAC,KAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI;gBAC1B,oBAAC,iBAAiB,OAAK,CAAC,GAAI,CACf,CACpB,CAAC;QACN,CAAC;QACD,aAAa,EAAE;YACX,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;SACrB;QACD,cAAc,EAAE,IAAI;KACvB,CAAC;IACF,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,GAAG,CAAC;QACJ,QAAQ,EAAE,GAAG;KAChB,CAAC;CACL,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const glide_data_grid_fork_1 = require("glide-data-grid-fork");
4
+ const draw_fns_js_1 = require("../draw-fns.js");
5
+ function unpackColor(color, theme, hoverAmount) {
6
+ if (typeof color === "string") {
7
+ if (theme[color] !== undefined)
8
+ return theme[color];
9
+ return color;
10
+ }
11
+ let [normal, hover] = color;
12
+ if (theme[normal] !== undefined)
13
+ normal = theme[normal];
14
+ if (theme[hover] !== undefined)
15
+ hover = theme[hover];
16
+ return (0, glide_data_grid_fork_1.interpolateColors)(normal, hover, hoverAmount);
17
+ }
18
+ function getIsHovered(bounds, posX, posY, theme) {
19
+ const x = Math.floor(bounds.x + theme.cellHorizontalPadding + 1);
20
+ const y = Math.floor(bounds.y + theme.cellVerticalPadding + 1);
21
+ const width = Math.ceil(bounds.width - theme.cellHorizontalPadding * 2 - 1);
22
+ const height = Math.ceil(bounds.height - theme.cellVerticalPadding * 2 - 1);
23
+ return (posX !== undefined &&
24
+ posY !== undefined &&
25
+ posX + bounds.x >= x &&
26
+ posX + bounds.x < x + width &&
27
+ posY + bounds.y >= y &&
28
+ posY + bounds.y < y + height);
29
+ }
30
+ const renderer = {
31
+ kind: glide_data_grid_fork_1.GridCellKind.Custom,
32
+ isMatch: (c) => c.data.kind === "button-cell",
33
+ needsHoverPosition: true,
34
+ needsHover: true,
35
+ onSelect: a => a.preventDefault(),
36
+ onClick: a => {
37
+ const { cell, theme, bounds, posX, posY } = a;
38
+ if (getIsHovered(bounds, posX, posY, theme))
39
+ cell.data.onClick?.();
40
+ return undefined;
41
+ },
42
+ drawPrep: args => {
43
+ const { ctx } = args;
44
+ ctx.textAlign = "center";
45
+ return {
46
+ deprep: a => {
47
+ a.ctx.textAlign = "start";
48
+ },
49
+ };
50
+ },
51
+ draw: (args, cell) => {
52
+ const { ctx, theme, rect, hoverX, hoverY, frameTime, drawState } = args;
53
+ const { title, backgroundColor, color, borderColor, borderRadius } = cell.data;
54
+ const x = Math.floor(rect.x + theme.cellHorizontalPadding + 1);
55
+ const y = Math.floor(rect.y + theme.cellVerticalPadding + 1);
56
+ const width = Math.ceil(rect.width - theme.cellHorizontalPadding * 2 - 1);
57
+ const height = Math.ceil(rect.height - theme.cellVerticalPadding * 2 - 1);
58
+ if (width <= 0 || height <= 0)
59
+ return true;
60
+ const isHovered = getIsHovered(rect, hoverX, hoverY, theme);
61
+ // eslint-disable-next-line prefer-const
62
+ let [state, setState] = drawState;
63
+ if (isHovered)
64
+ args.overrideCursor?.("pointer");
65
+ state ??= { hovered: false, animationStartTime: 0 };
66
+ if (isHovered !== state.hovered) {
67
+ state = { ...state, hovered: isHovered, animationStartTime: frameTime };
68
+ setState(state);
69
+ }
70
+ const progress = Math.min(1, (frameTime - state.animationStartTime) / 200);
71
+ const hoverAmount = isHovered ? progress : 1 - progress;
72
+ if (progress < 1)
73
+ args.requestAnimationFrame?.();
74
+ if (backgroundColor !== undefined) {
75
+ ctx.beginPath();
76
+ (0, draw_fns_js_1.roundedRect)(ctx, x, y, width, height, borderRadius ?? theme.roundingRadius ?? 0);
77
+ ctx.fillStyle = unpackColor(backgroundColor, theme, hoverAmount);
78
+ ctx.fill();
79
+ }
80
+ if (borderColor !== undefined) {
81
+ ctx.beginPath();
82
+ (0, draw_fns_js_1.roundedRect)(ctx, x + 0.5, y + 0.5, width - 1, height - 1, borderRadius ?? theme.roundingRadius ?? 0);
83
+ ctx.strokeStyle = unpackColor(borderColor, theme, hoverAmount);
84
+ ctx.lineWidth = 1;
85
+ ctx.stroke();
86
+ }
87
+ ctx.fillStyle = unpackColor(color ?? theme.accentColor, theme, hoverAmount);
88
+ ctx.fillText(title, x + width / 2, y + height / 2 + (0, glide_data_grid_fork_1.getMiddleCenterBias)(ctx, theme.baseFontFull));
89
+ return true;
90
+ },
91
+ provideEditor: undefined,
92
+ };
93
+ exports.default = renderer;
94
+ //# sourceMappingURL=button-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-cell.js","sourceRoot":"","sources":["../../../src/cells/button-cell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .gdg-d1wtovjx{min-height:26px;border:none;outline:none;background-color:transparent;font-size:var(--gdg-editor-font-size);font-family:var(--gdg-font-family);color:var(--gdg-text-dark);}.gdg-d1wtovjx::-webkit-calendar-picker-indicator{background-color:white;}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ var __importDefault = this && this.__importDefault || function (mod) {
4
+ return mod && mod.__esModule ? mod : {
5
+ "default": mod
6
+ };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports.formatValueForHTMLInput = exports.StyledInputBox = void 0;
12
+ const react_1 = __importDefault(require("react"));
13
+ const react_2 = require("@linaria/react");
14
+ const glide_data_grid_fork_1 = require("glide-data-grid-fork");
15
+ exports.StyledInputBox = /*#__PURE__*/react_2.styled('input')({
16
+ name: "date-picker-cell0",
17
+ class: "gdg-d1wtovjx",
18
+ propsAsIs: false
19
+ });
20
+ const formatValueForHTMLInput = (dateKind, date) => {
21
+ if (date === undefined || date === null) {
22
+ return "";
23
+ }
24
+ const isoDate = date.toISOString();
25
+ switch (dateKind) {
26
+ case "date":
27
+ return isoDate.split("T")[0];
28
+ case "datetime-local":
29
+ return isoDate.replace("Z", "");
30
+ case "time":
31
+ return isoDate.split("T")[1].replace("Z", "");
32
+ default:
33
+ throw new Error(`Unknown date kind ${dateKind}`);
34
+ }
35
+ };
36
+ exports.formatValueForHTMLInput = formatValueForHTMLInput;
37
+ const Editor = cell => {
38
+ const cellData = cell.value.data;
39
+ const {
40
+ format,
41
+ displayDate
42
+ } = cellData;
43
+ const step = cellData.step !== undefined && !Number.isNaN(Number(cellData.step)) ? Number(cellData.step) : undefined;
44
+ const minValue = cellData.min instanceof Date ? (0, exports.formatValueForHTMLInput)(format, cellData.min) : cellData.min;
45
+ const maxValue = cellData.max instanceof Date ? (0, exports.formatValueForHTMLInput)(format, cellData.max) : cellData.max;
46
+ let date = cellData.date;
47
+ // Convert timezone offset to milliseconds
48
+ const timezoneOffsetMs = cellData.timezoneOffset ? cellData.timezoneOffset * 60 * 1000 : 0;
49
+ if (timezoneOffsetMs && date) {
50
+ // Adjust based on the timezone offset
51
+ date = new Date(date.getTime() + timezoneOffsetMs);
52
+ }
53
+ const value = (0, exports.formatValueForHTMLInput)(format, date);
54
+ if (cell.value.readonly) {
55
+ return react_1.default.createElement(glide_data_grid_fork_1.TextCellEntry, {
56
+ highlight: true,
57
+ autoFocus: false,
58
+ disabled: true,
59
+ value: displayDate ?? "",
60
+ onChange: () => undefined
61
+ });
62
+ }
63
+ return react_1.default.createElement(exports.StyledInputBox, {
64
+ "data-testid": "date-picker-cell",
65
+ required: true,
66
+ type: format,
67
+ defaultValue: value,
68
+ min: minValue,
69
+ max: maxValue,
70
+ step: step,
71
+ autoFocus: true,
72
+ onChange: event => {
73
+ if (isNaN(event.target.valueAsNumber)) {
74
+ // The user has cleared the date, contribute as undefined
75
+ cell.onChange({
76
+ ...cell.value,
77
+ data: {
78
+ ...cell.value.data,
79
+ date: undefined
80
+ }
81
+ });
82
+ } else {
83
+ cell.onChange({
84
+ ...cell.value,
85
+ data: {
86
+ ...cell.value.data,
87
+ // use valueAsNumber because valueAsDate is null for "datetime-local"
88
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#technical_summary
89
+ date: new Date(event.target.valueAsNumber - timezoneOffsetMs)
90
+ }
91
+ });
92
+ }
93
+ }
94
+ });
95
+ };
96
+ const renderer = {
97
+ kind: glide_data_grid_fork_1.GridCellKind.Custom,
98
+ isMatch: cell => cell.data.kind === "date-picker-cell",
99
+ draw: (args, cell) => {
100
+ const {
101
+ displayDate
102
+ } = cell.data;
103
+ (0, glide_data_grid_fork_1.drawTextCell)(args, displayDate, cell.contentAlign);
104
+ return true;
105
+ },
106
+ measure: (ctx, cell, theme) => {
107
+ const {
108
+ displayDate
109
+ } = cell.data;
110
+ return ctx.measureText(displayDate).width + theme.cellHorizontalPadding * 2;
111
+ },
112
+ provideEditor: () => ({
113
+ editor: Editor
114
+ }),
115
+ onPaste: (v, d) => {
116
+ let parseDateTimestamp = NaN;
117
+ // We only try to parse the value if it is not empty/undefined/null:
118
+ if (v) {
119
+ // Support for unix timestamps (milliseconds since 1970-01-01):
120
+ parseDateTimestamp = Number(v).valueOf();
121
+ if (Number.isNaN(parseDateTimestamp)) {
122
+ // Support for parsing ISO 8601 date strings:
123
+ parseDateTimestamp = Date.parse(v);
124
+ if (d.format === "time" && Number.isNaN(parseDateTimestamp)) {
125
+ // The pasted value was not a valid date string
126
+ // Try to interpret value as time string instead (HH:mm:ss)
127
+ parseDateTimestamp = Date.parse(`1970-01-01T${v}Z`);
128
+ }
129
+ }
130
+ }
131
+ return {
132
+ ...d,
133
+ date: Number.isNaN(parseDateTimestamp) ? undefined : new Date(parseDateTimestamp)
134
+ };
135
+ }
136
+ };
137
+ exports.default = renderer;
138
+
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker-cell.js","sourceRoot":"","sources":["../../../src/cells/date-picker-cell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ .gdg-wghi2zc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}.gdg-wghi2zc .glide-select{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);}
2
+ .gdg-p13nj8j0{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);color:var(--gdg-text-dark);}.gdg-p13nj8j0 > div{border-radius:4px;border:1px solid var(--gdg-border-color);}
3
+ .gdg-r6sia3g{display:"flex";margin:auto 8.5px;padding-bottom:3px;}