glide-data-grid-cells-fork 6.0.4-alpha8

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 (120) 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 +235 -0
  17. package/dist/cjs/cells/dropdown-cell.js.map +1 -0
  18. package/dist/cjs/cells/links-cell.css +1 -0
  19. package/dist/cjs/cells/links-cell.js +281 -0
  20. package/dist/cjs/cells/links-cell.js.map +1 -0
  21. package/dist/cjs/cells/multi-select-cell.css +2 -0
  22. package/dist/cjs/cells/multi-select-cell.js +485 -0
  23. package/dist/cjs/cells/multi-select-cell.js.map +1 -0
  24. package/dist/cjs/cells/range-cell.js +113 -0
  25. package/dist/cjs/cells/range-cell.js.map +1 -0
  26. package/dist/cjs/cells/sparkline-cell.js +116 -0
  27. package/dist/cjs/cells/sparkline-cell.js.map +1 -0
  28. package/dist/cjs/cells/spinner-cell.js +24 -0
  29. package/dist/cjs/cells/spinner-cell.js.map +1 -0
  30. package/dist/cjs/cells/star-cell.css +1 -0
  31. package/dist/cjs/cells/star-cell.js +124 -0
  32. package/dist/cjs/cells/star-cell.js.map +1 -0
  33. package/dist/cjs/cells/tags-cell.css +1 -0
  34. package/dist/cjs/cells/tags-cell.js +152 -0
  35. package/dist/cjs/cells/tags-cell.js.map +1 -0
  36. package/dist/cjs/cells/tree-view-cell.js +57 -0
  37. package/dist/cjs/cells/tree-view-cell.js.map +1 -0
  38. package/dist/cjs/cells/user-profile-cell.js +81 -0
  39. package/dist/cjs/cells/user-profile-cell.js.map +1 -0
  40. package/dist/cjs/draw-fns.js +32 -0
  41. package/dist/cjs/draw-fns.js.map +1 -0
  42. package/dist/cjs/index.js +49 -0
  43. package/dist/cjs/index.js.map +1 -0
  44. package/dist/dts/cells/article-cell-editor.d.ts +4 -0
  45. package/dist/dts/cells/article-cell-editor.d.ts.map +1 -0
  46. package/dist/dts/cells/article-cell-types.d.ts +7 -0
  47. package/dist/dts/cells/article-cell-types.d.ts.map +1 -0
  48. package/dist/dts/cells/article-cell.d.ts +4 -0
  49. package/dist/dts/cells/article-cell.d.ts.map +1 -0
  50. package/dist/dts/cells/button-cell.d.ts +16 -0
  51. package/dist/dts/cells/button-cell.d.ts.map +1 -0
  52. package/dist/dts/cells/date-picker-cell.d.ts +18 -0
  53. package/dist/dts/cells/date-picker-cell.d.ts.map +1 -0
  54. package/dist/dts/cells/dropdown-cell.d.ts +14 -0
  55. package/dist/dts/cells/dropdown-cell.d.ts.map +1 -0
  56. package/dist/dts/cells/links-cell.d.ts +19 -0
  57. package/dist/dts/cells/links-cell.d.ts.map +1 -0
  58. package/dist/dts/cells/multi-select-cell.d.ts +43 -0
  59. package/dist/dts/cells/multi-select-cell.d.ts.map +1 -0
  60. package/dist/dts/cells/range-cell.d.ts +13 -0
  61. package/dist/dts/cells/range-cell.d.ts.map +1 -0
  62. package/dist/dts/cells/sparkline-cell.d.ts +13 -0
  63. package/dist/dts/cells/sparkline-cell.d.ts.map +1 -0
  64. package/dist/dts/cells/spinner-cell.d.ts +7 -0
  65. package/dist/dts/cells/spinner-cell.d.ts.map +1 -0
  66. package/dist/dts/cells/star-cell.d.ts +8 -0
  67. package/dist/dts/cells/star-cell.d.ts.map +1 -0
  68. package/dist/dts/cells/tags-cell.d.ts +12 -0
  69. package/dist/dts/cells/tags-cell.d.ts.map +1 -0
  70. package/dist/dts/cells/tree-view-cell.d.ts +15 -0
  71. package/dist/dts/cells/tree-view-cell.d.ts.map +1 -0
  72. package/dist/dts/cells/user-profile-cell.d.ts +11 -0
  73. package/dist/dts/cells/user-profile-cell.d.ts.map +1 -0
  74. package/dist/dts/draw-fns.d.ts +8 -0
  75. package/dist/dts/draw-fns.d.ts.map +1 -0
  76. package/dist/dts/index.d.ts +17 -0
  77. package/dist/dts/index.d.ts.map +1 -0
  78. package/dist/esm/cells/article-cell-editor.css +1 -0
  79. package/dist/esm/cells/article-cell-editor.js +62 -0
  80. package/dist/esm/cells/article-cell-editor.js.map +1 -0
  81. package/dist/esm/cells/article-cell-types.js +2 -0
  82. package/dist/esm/cells/article-cell-types.js.map +1 -0
  83. package/dist/esm/cells/article-cell.js +46 -0
  84. package/dist/esm/cells/article-cell.js.map +1 -0
  85. package/dist/esm/cells/button-cell.js +92 -0
  86. package/dist/esm/cells/button-cell.js.map +1 -0
  87. package/dist/esm/cells/date-picker-cell.css +1 -0
  88. package/dist/esm/cells/date-picker-cell.js +126 -0
  89. package/dist/esm/cells/date-picker-cell.js.map +1 -0
  90. package/dist/esm/cells/dropdown-cell.css +3 -0
  91. package/dist/esm/cells/dropdown-cell.js +199 -0
  92. package/dist/esm/cells/dropdown-cell.js.map +1 -0
  93. package/dist/esm/cells/links-cell.css +1 -0
  94. package/dist/esm/cells/links-cell.js +245 -0
  95. package/dist/esm/cells/links-cell.js.map +1 -0
  96. package/dist/esm/cells/multi-select-cell.css +2 -0
  97. package/dist/esm/cells/multi-select-cell.js +441 -0
  98. package/dist/esm/cells/multi-select-cell.js.map +1 -0
  99. package/dist/esm/cells/range-cell.js +88 -0
  100. package/dist/esm/cells/range-cell.js.map +1 -0
  101. package/dist/esm/cells/sparkline-cell.js +114 -0
  102. package/dist/esm/cells/sparkline-cell.js.map +1 -0
  103. package/dist/esm/cells/spinner-cell.js +22 -0
  104. package/dist/esm/cells/spinner-cell.js.map +1 -0
  105. package/dist/esm/cells/star-cell.css +1 -0
  106. package/dist/esm/cells/star-cell.js +88 -0
  107. package/dist/esm/cells/star-cell.js.map +1 -0
  108. package/dist/esm/cells/tags-cell.css +1 -0
  109. package/dist/esm/cells/tags-cell.js +116 -0
  110. package/dist/esm/cells/tags-cell.js.map +1 -0
  111. package/dist/esm/cells/tree-view-cell.js +55 -0
  112. package/dist/esm/cells/tree-view-cell.js.map +1 -0
  113. package/dist/esm/cells/user-profile-cell.js +56 -0
  114. package/dist/esm/cells/user-profile-cell.js.map +1 -0
  115. package/dist/esm/draw-fns.js +28 -0
  116. package/dist/esm/draw-fns.js.map +1 -0
  117. package/dist/esm/index.js +30 -0
  118. package/dist/esm/index.js.map +1 -0
  119. package/dist/index.css +8 -0
  120. package/package.json +71 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.allCells = exports.MultiSelectCell = exports.TreeViewCell = exports.ButtonCell = exports.LinksCell = exports.DatePickerCell = exports.SpinnerCell = exports.RangeCell = exports.ArticleCell = exports.DropdownCell = exports.UserProfileCell = exports.TagsCell = exports.SparklineCell = exports.StarCell = void 0;
7
+ const star_cell_js_1 = __importDefault(require("./cells/star-cell.js"));
8
+ exports.StarCell = star_cell_js_1.default;
9
+ const sparkline_cell_js_1 = __importDefault(require("./cells/sparkline-cell.js"));
10
+ exports.SparklineCell = sparkline_cell_js_1.default;
11
+ const tags_cell_js_1 = __importDefault(require("./cells/tags-cell.js"));
12
+ exports.TagsCell = tags_cell_js_1.default;
13
+ const user_profile_cell_js_1 = __importDefault(require("./cells/user-profile-cell.js"));
14
+ exports.UserProfileCell = user_profile_cell_js_1.default;
15
+ const dropdown_cell_js_1 = __importDefault(require("./cells/dropdown-cell.js"));
16
+ exports.DropdownCell = dropdown_cell_js_1.default;
17
+ const article_cell_js_1 = __importDefault(require("./cells/article-cell.js"));
18
+ exports.ArticleCell = article_cell_js_1.default;
19
+ const range_cell_js_1 = __importDefault(require("./cells/range-cell.js"));
20
+ exports.RangeCell = range_cell_js_1.default;
21
+ const spinner_cell_js_1 = __importDefault(require("./cells/spinner-cell.js"));
22
+ exports.SpinnerCell = spinner_cell_js_1.default;
23
+ const date_picker_cell_js_1 = __importDefault(require("./cells/date-picker-cell.js"));
24
+ exports.DatePickerCell = date_picker_cell_js_1.default;
25
+ const links_cell_js_1 = __importDefault(require("./cells/links-cell.js"));
26
+ exports.LinksCell = links_cell_js_1.default;
27
+ const button_cell_js_1 = __importDefault(require("./cells/button-cell.js"));
28
+ exports.ButtonCell = button_cell_js_1.default;
29
+ const tree_view_cell_js_1 = __importDefault(require("./cells/tree-view-cell.js"));
30
+ exports.TreeViewCell = tree_view_cell_js_1.default;
31
+ const multi_select_cell_js_1 = __importDefault(require("./cells/multi-select-cell.js"));
32
+ exports.MultiSelectCell = multi_select_cell_js_1.default;
33
+ const cells = [
34
+ star_cell_js_1.default,
35
+ sparkline_cell_js_1.default,
36
+ tags_cell_js_1.default,
37
+ user_profile_cell_js_1.default,
38
+ dropdown_cell_js_1.default,
39
+ article_cell_js_1.default,
40
+ spinner_cell_js_1.default,
41
+ range_cell_js_1.default,
42
+ date_picker_cell_js_1.default,
43
+ links_cell_js_1.default,
44
+ button_cell_js_1.default,
45
+ tree_view_cell_js_1.default,
46
+ multi_select_cell_js_1.default,
47
+ ];
48
+ exports.allCells = cells;
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAuE;AAgC/C,mBAhCjB,sBAAgB,CAgCS;AA/BhC,kFAAsF;AAgCzD,wBAhCtB,2BAAqB,CAgCc;AA/B1C,wEAAuE;AAgC/C,mBAhCjB,sBAAgB,CAgCS;AA/BhC,wFAA6F;AAgC9D,0BAhCxB,8BAAuB,CAgCgB;AA/B9C,gFAAmF;AAgCvD,uBAhCrB,0BAAoB,CAgCa;AA/BxC,8EAA0D;AAgC/B,sBAhCpB,yBAAmB,CAgCY;AA9BtC,0EAA0E;AA+BjD,oBA/BlB,uBAAiB,CA+BU;AA9BlC,8EAAgF;AA+BrD,sBA/BpB,yBAAmB,CA+BY;AA9BtC,sFAAsF;AA+B5D,yBA/BnB,6BAAkB,CA+Be;AA9BxC,0EAA0E;AA+BjD,oBA/BlB,uBAAiB,CA+BU;AA9BlC,4EAA6E;AA+BnD,qBA/BnB,wBAAkB,CA+BW;AA9BpC,kFAAoF;AA+BxD,uBA/BrB,2BAAoB,CA+Ba;AA9BxC,wFAA6F;AA+B9D,0BA/BxB,8BAAuB,CA+BgB;AA7B9C,MAAM,KAAK,GAAG;IACV,sBAAgB;IAChB,2BAAqB;IACrB,sBAAgB;IAChB,8BAAuB;IACvB,0BAAoB;IACpB,yBAAmB;IACnB,yBAAmB;IACnB,uBAAiB;IACjB,6BAAkB;IAClB,uBAAiB;IACjB,wBAAkB;IAClB,2BAAoB;IACpB,8BAAuB;CAC1B,CAAC;AAgBW,yBAAQ"}
@@ -0,0 +1,4 @@
1
+ import type { ProvideEditorComponent } from "@glideapps/glide-data-grid";
2
+ import type { ArticleCell } from "./article-cell-types.js";
3
+ declare const ArticleCellEditor: ProvideEditorComponent<ArticleCell>;
4
+ export default ArticleCellEditor;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell-editor.d.ts","sourceRoot":"","sources":["../../../src/cells/article-cell-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAIzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,QAAA,MAAM,iBAAiB,EAAE,sBAAsB,CAAC,WAAW,CAyD1D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CustomCell } from "@glideapps/glide-data-grid";
2
+ interface ArticleCellProps {
3
+ readonly kind: "article-cell";
4
+ readonly markdown: string;
5
+ }
6
+ export type ArticleCell = CustomCell<ArticleCellProps>;
7
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell-types.d.ts","sourceRoot":"","sources":["../../../src/cells/article-cell-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,UAAU,gBAAgB;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ArticleCell } from "./article-cell-types.js";
2
+ import { type CustomRenderer } from "@glideapps/glide-data-grid";
3
+ declare const renderer: CustomRenderer<ArticleCell>;
4
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/article-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,KAAK,cAAc,EAAqC,MAAM,4BAA4B,CAAC;AAIpG,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,WAAW,CAkDzC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ type PackedColor = string | readonly [normal: string, hover: string];
3
+ interface ButtonCellProps {
4
+ readonly kind: "button-cell";
5
+ readonly title: string;
6
+ readonly onClick?: () => void;
7
+ readonly backgroundColor?: PackedColor;
8
+ readonly color?: PackedColor;
9
+ readonly borderColor?: PackedColor;
10
+ readonly borderRadius?: number;
11
+ }
12
+ export type ButtonCell = CustomCell<ButtonCellProps> & {
13
+ readonly: true;
14
+ };
15
+ declare const renderer: CustomRenderer<ButtonCell>;
16
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/button-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,cAAc,EAMtB,MAAM,4BAA4B,CAAC;AAGpC,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAErE,UAAU,eAAe;IACrB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AA8B1E,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,UAAU,CA8ExC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
3
+ export declare const StyledInputBox: import("@linaria/react").StyledComponent<React.ClassAttributes<HTMLInputElement> & React.InputHTMLAttributes<HTMLInputElement> & Record<never, unknown>>;
4
+ export interface DatePickerCellProps {
5
+ readonly kind: "date-picker-cell";
6
+ readonly date: Date | undefined | null;
7
+ readonly displayDate: string;
8
+ readonly format: DateKind;
9
+ readonly timezoneOffset?: number;
10
+ readonly min?: string | Date;
11
+ readonly max?: string | Date;
12
+ readonly step?: string;
13
+ }
14
+ export type DateKind = "date" | "time" | "datetime-local";
15
+ export declare const formatValueForHTMLInput: (dateKind: DateKind, date: Date | undefined | null) => string;
16
+ export type DatePickerCell = CustomCell<DatePickerCellProps>;
17
+ declare const renderer: CustomRenderer<DatePickerCell>;
18
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/date-picker-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACH,KAAK,UAAU,EACf,KAAK,cAAc,EAKtB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,cAAc,0JAW1B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAElC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAEvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAG1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAGjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAE1D,eAAO,MAAM,uBAAuB,aAAc,QAAQ,QAAQ,IAAI,GAAG,SAAS,GAAG,IAAI,KAAG,MAe3F,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAoE7D,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,cAAc,CAqC5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ type DropdownOption = string | {
3
+ value: string;
4
+ label: string;
5
+ } | undefined | null;
6
+ export type DropdownCell = CustomCell<DropdownCellProps>;
7
+ interface DropdownCellProps {
8
+ readonly kind: "dropdown-cell";
9
+ readonly value: string | undefined | null;
10
+ readonly allowedValues: readonly DropdownOption[];
11
+ readonly fetchOptions?: (input: string) => Promise<DropdownOption[]>;
12
+ }
13
+ declare const renderer: CustomRenderer<DropdownCell>;
14
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/dropdown-cell.tsx"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,cAAc,EAKtB,MAAM,4BAA4B,CAAC;AAUpC,KAAK,cAAc,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,CAAC;AAEnF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAgCzD,UAAU,iBAAiB;IACvB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACxE;AA2HD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,YAAY,CA4C1C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface LinksCellProps {
3
+ readonly kind: "links-cell";
4
+ /**
5
+ * Used to hand tune the position of the underline as this is not a native canvas capability, it can need tweaking
6
+ * for different fonts.
7
+ */
8
+ readonly underlineOffset?: number;
9
+ readonly maxLinks?: number;
10
+ readonly navigateOn?: "click" | "control-click";
11
+ readonly links: readonly {
12
+ readonly title: string;
13
+ readonly href?: string;
14
+ readonly onClick?: () => void;
15
+ }[];
16
+ }
17
+ export type LinksCell = CustomCell<LinksCellProps>;
18
+ declare const renderer: CustomRenderer<LinksCell>;
19
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/links-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,cAAc,EAItB,MAAM,4BAA4B,CAAC;AAIpC,UAAU,cAAc;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACjC,EAAE,CAAC;CACP;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAsCnD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,SAAS,CAqIvC,CAAC;AA6KF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ type SelectOption = {
3
+ value: string;
4
+ label?: string;
5
+ color?: string;
6
+ };
7
+ interface MultiSelectCellProps {
8
+ readonly kind: "multi-select-cell";
9
+ readonly values: string[] | undefined | null;
10
+ readonly options?: readonly (SelectOption | string)[];
11
+ readonly allowCreation?: boolean;
12
+ readonly allowDuplicates?: boolean;
13
+ }
14
+ /**
15
+ * Prepares the options for usage with the react-select component.
16
+ *
17
+ * @param options The options to prepare.
18
+ * @returns The prepared options in the format required by react-select.
19
+ */
20
+ export declare const prepareOptions: (options: readonly (string | SelectOption)[]) => {
21
+ value: string;
22
+ label?: string;
23
+ color?: string;
24
+ }[];
25
+ /**
26
+ * Resolve a list values to values compatible with react-select.
27
+ * If allowDuplicates is true, the values will be prefixed with a numbered prefix to
28
+ * make sure that all values are unique.
29
+ *
30
+ * @param values The values to resolve.
31
+ * @param options The options to use for the resolution.
32
+ * @param allowDuplicates If true, the values can contain duplicates.
33
+ * @returns The list of values compatible with react-select.
34
+ */
35
+ export declare const resolveValues: (values: string[] | null | undefined, options: readonly SelectOption[], allowDuplicates?: boolean) => {
36
+ value: string;
37
+ label?: string;
38
+ color?: string;
39
+ }[];
40
+ export type MultiSelectCell = CustomCell<MultiSelectCellProps>;
41
+ declare const renderer: CustomRenderer<MultiSelectCell>;
42
+ export default renderer;
43
+ //# sourceMappingURL=multi-select-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/multi-select-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,cAAc,EAQtB,MAAM,4BAA4B,CAAC;AAMpC,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,UAAU,oBAAoB;IAC1B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAO7C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;IAEtD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACtC;AAiCD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YACd,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,KAC5C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAYnD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,WACd,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,WAC1B,SAAS,YAAY,EAAE,oBACd,OAAO,KAC1B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAkBnD,CAAC;AAUF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAwP/D,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,eAAe,CA6H7C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface RangeCellProps {
3
+ readonly kind: "range-cell";
4
+ readonly value: number;
5
+ readonly min: number;
6
+ readonly max: number;
7
+ readonly step: number;
8
+ readonly label?: string;
9
+ readonly measureLabel?: string;
10
+ }
11
+ export type RangeCell = CustomCell<RangeCellProps>;
12
+ declare const renderer: CustomRenderer<RangeCell>;
13
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/range-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAEf,KAAK,cAAc,EAGtB,MAAM,4BAA4B,CAAC;AAIpC,UAAU,cAAc;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAcnD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,SAAS,CA8GvC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type CustomCell, type Item, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface SparklineCellProps {
3
+ readonly kind: "sparkline-cell";
4
+ readonly graphKind?: "line" | "bar" | "area";
5
+ readonly values: readonly number[];
6
+ readonly displayValues?: readonly string[];
7
+ readonly yAxis: Item;
8
+ readonly color?: string;
9
+ readonly hideAxis?: boolean;
10
+ }
11
+ export type SparklineCell = CustomCell<SparklineCellProps>;
12
+ declare const renderer: CustomRenderer<SparklineCell>;
13
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/sparkline-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,IAAI,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAExH,UAAU,kBAAkB;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAE3D,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,aAAa,CA6H3C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface SpinnerCellProps {
3
+ readonly kind: "spinner-cell";
4
+ }
5
+ export type SpinnerCell = CustomCell<SpinnerCellProps>;
6
+ declare const renderer: CustomRenderer<SpinnerCell>;
7
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/spinner-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAEhG,UAAU,gBAAgB;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEvD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,WAAW,CAwBzC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface StarCellProps {
3
+ readonly kind: "star-cell";
4
+ readonly rating: number;
5
+ }
6
+ export type StarCell = CustomCell<StarCellProps>;
7
+ declare const renderer: CustomRenderer<StarCell>;
8
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"star-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/star-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAI3G,UAAU,aAAa;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AAiEjD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAoDtC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface TagsCellProps {
3
+ readonly kind: "tags-cell";
4
+ readonly tags: readonly string[];
5
+ readonly possibleTags: readonly {
6
+ tag: string;
7
+ color: string;
8
+ }[];
9
+ }
10
+ export type TagsCell = CustomCell<TagsCellProps>;
11
+ declare const renderer: CustomRenderer<TagsCell>;
12
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/tags-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EAGf,KAAK,cAAc,EAGtB,MAAM,4BAA4B,CAAC;AAKpC,UAAU,aAAa;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC5B,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACP;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AA8DjD,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAkGtC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface TreeViewCellProps {
3
+ readonly kind: "tree-view-cell";
4
+ readonly text: string;
5
+ readonly isOpen: boolean;
6
+ readonly canOpen: boolean;
7
+ readonly depth: number;
8
+ readonly onClickOpener?: (cell: TreeViewCell) => TreeViewCell | undefined;
9
+ }
10
+ export type TreeViewCell = CustomCell<TreeViewCellProps> & {
11
+ readonly: true;
12
+ };
13
+ declare const renderer: CustomRenderer<TreeViewCell>;
14
+ export default renderer;
15
+ //# sourceMappingURL=tree-view-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-view-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/tree-view-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,cAAc,EAItB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,iBAAiB;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,GAAG,SAAS,CAAC;CAC7E;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAa9E,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,YAAY,CAoD1C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type CustomCell, type CustomRenderer } from "@glideapps/glide-data-grid";
2
+ interface UserProfileCellProps {
3
+ readonly kind: "user-profile-cell";
4
+ readonly image: string;
5
+ readonly initial: string;
6
+ readonly tint: string;
7
+ readonly name?: string;
8
+ }
9
+ export type UserProfileCell = CustomCell<UserProfileCellProps>;
10
+ declare const renderer: CustomRenderer<UserProfileCell>;
11
+ export default renderer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-profile-cell.d.ts","sourceRoot":"","sources":["../../../src/cells/user-profile-cell.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EAGf,KAAK,cAAc,EAGtB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,oBAAoB;IAC1B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAE/D,QAAA,MAAM,QAAQ,EAAE,cAAc,CAAC,eAAe,CA4E7C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface CornerRadius {
2
+ tl: number;
3
+ tr: number;
4
+ bl: number;
5
+ br: number;
6
+ }
7
+ export declare function roundedRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number | CornerRadius): void;
8
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-fns.d.ts","sourceRoot":"","sources":["../../src/draw-fns.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CACvB,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,YAAY,QA6BhC"}
@@ -0,0 +1,17 @@
1
+ import StarCellRenderer, { type StarCell } from "./cells/star-cell.js";
2
+ import SparklineCellRenderer, { type SparklineCell } from "./cells/sparkline-cell.js";
3
+ import TagsCellRenderer, { type TagsCell } from "./cells/tags-cell.js";
4
+ import UserProfileCellRenderer, { type UserProfileCell } from "./cells/user-profile-cell.js";
5
+ import DropdownCellRenderer, { type DropdownCell } from "./cells/dropdown-cell.js";
6
+ import ArticleCellRenderer from "./cells/article-cell.js";
7
+ import type { ArticleCell } from "./cells/article-cell-types.js";
8
+ import RangeCellRenderer, { type RangeCell } from "./cells/range-cell.js";
9
+ import SpinnerCellRenderer, { type SpinnerCell } from "./cells/spinner-cell.js";
10
+ import DatePickerRenderer, { type DatePickerCell } from "./cells/date-picker-cell.js";
11
+ import LinksCellRenderer, { type LinksCell } from "./cells/links-cell.js";
12
+ import ButtonCellRenderer, { type ButtonCell } from "./cells/button-cell.js";
13
+ import TreeViewCellRenderer, { type TreeViewCell } from "./cells/tree-view-cell.js";
14
+ import MultiSelectCellRenderer, { type MultiSelectCell } from "./cells/multi-select-cell.js";
15
+ declare const cells: (import("@glideapps/glide-data-grid").CustomRenderer<StarCell> | import("@glideapps/glide-data-grid").CustomRenderer<SparklineCell> | import("@glideapps/glide-data-grid").CustomRenderer<TagsCell> | import("@glideapps/glide-data-grid").CustomRenderer<UserProfileCell> | import("@glideapps/glide-data-grid").CustomRenderer<DropdownCell> | import("@glideapps/glide-data-grid").CustomRenderer<ArticleCell> | import("@glideapps/glide-data-grid").CustomRenderer<RangeCell> | import("@glideapps/glide-data-grid").CustomRenderer<SpinnerCell> | import("@glideapps/glide-data-grid").CustomRenderer<DatePickerCell> | import("@glideapps/glide-data-grid").CustomRenderer<LinksCell> | import("@glideapps/glide-data-grid").CustomRenderer<ButtonCell> | import("@glideapps/glide-data-grid").CustomRenderer<TreeViewCell> | import("@glideapps/glide-data-grid").CustomRenderer<MultiSelectCell>)[];
16
+ export { StarCellRenderer as StarCell, SparklineCellRenderer as SparklineCell, TagsCellRenderer as TagsCell, UserProfileCellRenderer as UserProfileCell, DropdownCellRenderer as DropdownCell, ArticleCellRenderer as ArticleCell, RangeCellRenderer as RangeCell, SpinnerCellRenderer as SpinnerCell, DatePickerRenderer as DatePickerCell, LinksCellRenderer as LinksCell, ButtonCellRenderer as ButtonCell, TreeViewCellRenderer as TreeViewCell, MultiSelectCellRenderer as MultiSelectCell, cells as allCells, };
17
+ export type { StarCell as StarCellType, SparklineCell as SparklineCellType, TagsCell as TagsCellType, UserProfileCell as UserProfileCellType, DropdownCell as DropdownCellType, ArticleCell as ArticleCellType, RangeCell as RangeCellType, SpinnerCell as SpinnerCellType, DatePickerCell as DatePickerType, LinksCell as LinksCellType, ButtonCell as ButtonCellType, TreeViewCell as TreeViewCellType, MultiSelectCell as MultiSelectCellType, };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,qBAAqB,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,gBAAgB,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,uBAAuB,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,oBAAoB,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,iBAAiB,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,mBAAmB,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,kBAAkB,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,iBAAiB,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,kBAAkB,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,oBAAoB,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,uBAAuB,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE7F,QAAA,MAAM,KAAK,82BAcV,CAAC;AAEF,OAAO,EACH,gBAAgB,IAAI,QAAQ,EAC5B,qBAAqB,IAAI,aAAa,EACtC,gBAAgB,IAAI,QAAQ,EAC5B,uBAAuB,IAAI,eAAe,EAC1C,oBAAoB,IAAI,YAAY,EACpC,mBAAmB,IAAI,WAAW,EAClC,iBAAiB,IAAI,SAAS,EAC9B,mBAAmB,IAAI,WAAW,EAClC,kBAAkB,IAAI,cAAc,EACpC,iBAAiB,IAAI,SAAS,EAC9B,kBAAkB,IAAI,UAAU,EAChC,oBAAoB,IAAI,YAAY,EACpC,uBAAuB,IAAI,eAAe,EAC1C,KAAK,IAAI,QAAQ,GACpB,CAAC;AAEF,YAAY,EACR,QAAQ,IAAI,YAAY,EACxB,aAAa,IAAI,iBAAiB,EAClC,QAAQ,IAAI,YAAY,EACxB,eAAe,IAAI,mBAAmB,EACtC,YAAY,IAAI,gBAAgB,EAChC,WAAW,IAAI,eAAe,EAC9B,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,EAC9B,cAAc,IAAI,cAAc,EAChC,SAAS,IAAI,aAAa,EAC1B,UAAU,IAAI,cAAc,EAC5B,YAAY,IAAI,gBAAgB,EAChC,eAAe,IAAI,mBAAmB,GACzC,CAAC"}
@@ -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,62 @@
1
+ import * as React from "react";
2
+ import { Editor, Viewer } from "@toast-ui/react-editor";
3
+ import { styled } from "@linaria/react";
4
+ const Wrapper = /*#__PURE__*/styled('div')({
5
+ name: "Wrapper",
6
+ class: "gdg-w1hnqk7o",
7
+ propsAsIs: false
8
+ });
9
+ const ArticleCellEditor = p => {
10
+ const [tempValue, setTempValue] = React.useState(p.value.data.markdown);
11
+ const onKeyDown = React.useCallback(e => {
12
+ e.stopPropagation();
13
+ }, []);
14
+ const onSave = React.useCallback(() => {
15
+ p.onFinishedEditing({
16
+ ...p.value,
17
+ data: {
18
+ ...p.value.data,
19
+ markdown: tempValue
20
+ }
21
+ });
22
+ }, [p, tempValue]);
23
+ const onClose = React.useCallback(() => {
24
+ p.onFinishedEditing(undefined);
25
+ }, [p]);
26
+ if (p.value.readonly) {
27
+ return React.createElement(Wrapper, {
28
+ id: "gdg-markdown-readonly",
29
+ onKeyDown: onKeyDown,
30
+ style: {
31
+ height: "75vh",
32
+ padding: "35px"
33
+ }
34
+ }, React.createElement(Viewer, {
35
+ initialValue: p.value.data.markdown,
36
+ usageStatistics: false
37
+ }));
38
+ }
39
+ return React.createElement(Wrapper, {
40
+ id: "gdg-markdown-wysiwyg",
41
+ onKeyDown: onKeyDown
42
+ }, React.createElement(Editor, {
43
+ initialEditType: "wysiwyg",
44
+ autofocus: true,
45
+ initialValue: p.value.data.markdown,
46
+ hideModeSwitch: true,
47
+ onChange: setTempValue,
48
+ height: "75vh",
49
+ usageStatistics: false,
50
+ toolbarItems: [["heading", "bold", "italic", "strike"], ["hr", "quote"], ["ul", "ol", "task", "indent", "outdent"], ["table", "link"], ["code", "codeblock"]]
51
+ }), React.createElement("div", {
52
+ className: "gdg-footer"
53
+ }, React.createElement("button", {
54
+ className: "gdg-close-button",
55
+ onClick: onClose
56
+ }, "Close"), React.createElement("button", {
57
+ className: "gdg-save-button",
58
+ onClick: onSave
59
+ }, "Save")));
60
+ };
61
+ export default ArticleCellEditor;
62
+
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-cell-editor.js","sourceRoot":"","sources":["../../../src/cells/article-cell-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,MAAM,OAAO,GAAG,MAAM,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,MAAM,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,MAAM,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,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# 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,46 @@
1
+ import * as React from "react";
2
+ import { getMiddleCenterBias, GridCellKind } from "@glideapps/glide-data-grid";
3
+ const ArticleCellEditor = React.lazy(async () => await import("./article-cell-editor.js"));
4
+ const renderer = {
5
+ kind: GridCellKind.Custom,
6
+ isMatch: (c) => c.data.kind === "article-cell",
7
+ draw: (args, cell) => {
8
+ const { ctx, theme, rect } = args;
9
+ const { markdown } = cell.data;
10
+ let data = markdown;
11
+ if (data.includes("\n")) {
12
+ // new lines are rare and split is relatively expensive compared to the search
13
+ // it pays off to not do the split contantly.
14
+ data = data.split(/\r?\n/)[0];
15
+ }
16
+ const max = rect.width / 4; // no need to round, slice will just truncate this
17
+ if (data.length > max) {
18
+ data = data.slice(0, max);
19
+ }
20
+ ctx.fillStyle = theme.textDark;
21
+ ctx.fillText(data, rect.x + theme.cellHorizontalPadding, rect.y + rect.height / 2 + getMiddleCenterBias(ctx, theme));
22
+ return true;
23
+ },
24
+ provideEditor: () => ({
25
+ editor: p => {
26
+ return (React.createElement(React.Suspense, { fallback: null },
27
+ React.createElement(ArticleCellEditor, { ...p })));
28
+ },
29
+ styleOverride: {
30
+ position: "fixed",
31
+ left: "12.5vw",
32
+ top: "12.5vh",
33
+ width: "75vw",
34
+ borderRadius: "9px",
35
+ maxWidth: "unset",
36
+ maxHeight: "unset",
37
+ },
38
+ disablePadding: true,
39
+ }),
40
+ onPaste: (val, d) => ({
41
+ ...d,
42
+ markdown: val,
43
+ }),
44
+ };
45
+ export default renderer;
46
+ //# 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,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAuB,mBAAmB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEpG,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,YAAY,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,mBAAmB,CAAC,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,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { getMiddleCenterBias, GridCellKind, interpolateColors, } from "@glideapps/glide-data-grid";
2
+ import { roundedRect } from "../draw-fns.js";
3
+ function unpackColor(color, theme, hoverAmount) {
4
+ if (typeof color === "string") {
5
+ if (theme[color] !== undefined)
6
+ return theme[color];
7
+ return color;
8
+ }
9
+ let [normal, hover] = color;
10
+ if (theme[normal] !== undefined)
11
+ normal = theme[normal];
12
+ if (theme[hover] !== undefined)
13
+ hover = theme[hover];
14
+ return interpolateColors(normal, hover, hoverAmount);
15
+ }
16
+ function getIsHovered(bounds, posX, posY, theme) {
17
+ const x = Math.floor(bounds.x + theme.cellHorizontalPadding + 1);
18
+ const y = Math.floor(bounds.y + theme.cellVerticalPadding + 1);
19
+ const width = Math.ceil(bounds.width - theme.cellHorizontalPadding * 2 - 1);
20
+ const height = Math.ceil(bounds.height - theme.cellVerticalPadding * 2 - 1);
21
+ return (posX !== undefined &&
22
+ posY !== undefined &&
23
+ posX + bounds.x >= x &&
24
+ posX + bounds.x < x + width &&
25
+ posY + bounds.y >= y &&
26
+ posY + bounds.y < y + height);
27
+ }
28
+ const renderer = {
29
+ kind: GridCellKind.Custom,
30
+ isMatch: (c) => c.data.kind === "button-cell",
31
+ needsHoverPosition: true,
32
+ needsHover: true,
33
+ onSelect: a => a.preventDefault(),
34
+ onClick: a => {
35
+ const { cell, theme, bounds, posX, posY } = a;
36
+ if (getIsHovered(bounds, posX, posY, theme))
37
+ cell.data.onClick?.();
38
+ return undefined;
39
+ },
40
+ drawPrep: args => {
41
+ const { ctx } = args;
42
+ ctx.textAlign = "center";
43
+ return {
44
+ deprep: a => {
45
+ a.ctx.textAlign = "start";
46
+ },
47
+ };
48
+ },
49
+ draw: (args, cell) => {
50
+ const { ctx, theme, rect, hoverX, hoverY, frameTime, drawState } = args;
51
+ const { title, backgroundColor, color, borderColor, borderRadius } = cell.data;
52
+ const x = Math.floor(rect.x + theme.cellHorizontalPadding + 1);
53
+ const y = Math.floor(rect.y + theme.cellVerticalPadding + 1);
54
+ const width = Math.ceil(rect.width - theme.cellHorizontalPadding * 2 - 1);
55
+ const height = Math.ceil(rect.height - theme.cellVerticalPadding * 2 - 1);
56
+ if (width <= 0 || height <= 0)
57
+ return true;
58
+ const isHovered = getIsHovered(rect, hoverX, hoverY, theme);
59
+ // eslint-disable-next-line prefer-const
60
+ let [state, setState] = drawState;
61
+ if (isHovered)
62
+ args.overrideCursor?.("pointer");
63
+ state ??= { hovered: false, animationStartTime: 0 };
64
+ if (isHovered !== state.hovered) {
65
+ state = { ...state, hovered: isHovered, animationStartTime: frameTime };
66
+ setState(state);
67
+ }
68
+ const progress = Math.min(1, (frameTime - state.animationStartTime) / 200);
69
+ const hoverAmount = isHovered ? progress : 1 - progress;
70
+ if (progress < 1)
71
+ args.requestAnimationFrame?.();
72
+ if (backgroundColor !== undefined) {
73
+ ctx.beginPath();
74
+ roundedRect(ctx, x, y, width, height, borderRadius ?? theme.roundingRadius ?? 0);
75
+ ctx.fillStyle = unpackColor(backgroundColor, theme, hoverAmount);
76
+ ctx.fill();
77
+ }
78
+ if (borderColor !== undefined) {
79
+ ctx.beginPath();
80
+ roundedRect(ctx, x + 0.5, y + 0.5, width - 1, height - 1, borderRadius ?? theme.roundingRadius ?? 0);
81
+ ctx.strokeStyle = unpackColor(borderColor, theme, hoverAmount);
82
+ ctx.lineWidth = 1;
83
+ ctx.stroke();
84
+ }
85
+ ctx.fillStyle = unpackColor(color ?? theme.accentColor, theme, hoverAmount);
86
+ ctx.fillText(title, x + width / 2, y + height / 2 + getMiddleCenterBias(ctx, theme.baseFontFull));
87
+ return true;
88
+ },
89
+ provideEditor: undefined,
90
+ };
91
+ export default renderer;
92
+ //# sourceMappingURL=button-cell.js.map