@omegagrid/grid 0.10.2 → 0.10.5

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 (257) hide show
  1. package/dist/commands/editingCommands.d.ts +4 -0
  2. package/dist/commands/editingCommands.d.ts.map +1 -0
  3. package/dist/commands/editingCommands.js +74 -0
  4. package/dist/commands/editingCommands.js.map +1 -0
  5. package/dist/commands/groupCommands.d.ts +8 -0
  6. package/dist/commands/groupCommands.d.ts.map +1 -0
  7. package/dist/commands/groupCommands.js +7 -0
  8. package/dist/commands/groupCommands.js.map +1 -0
  9. package/dist/commands/index.d.ts +4 -0
  10. package/dist/commands/index.d.ts.map +1 -0
  11. package/dist/commands/index.js +9 -0
  12. package/dist/commands/index.js.map +1 -0
  13. package/dist/commands/navigationCommands.d.ts +5 -0
  14. package/dist/commands/navigationCommands.d.ts.map +1 -0
  15. package/dist/commands/navigationCommands.js +117 -0
  16. package/dist/commands/navigationCommands.js.map +1 -0
  17. package/dist/constants.d.ts +65 -0
  18. package/dist/constants.d.ts.map +1 -0
  19. package/dist/constants.js +8 -0
  20. package/dist/constants.js.map +1 -0
  21. package/dist/editors/baseEditor.d.ts +31 -0
  22. package/dist/editors/baseEditor.d.ts.map +1 -0
  23. package/dist/editors/baseEditor.js +112 -0
  24. package/dist/editors/baseEditor.js.map +1 -0
  25. package/dist/editors/calendarEditor.d.ts +12 -0
  26. package/dist/editors/calendarEditor.d.ts.map +1 -0
  27. package/dist/editors/calendarEditor.js +74 -0
  28. package/dist/editors/calendarEditor.js.map +1 -0
  29. package/dist/editors/checkboxEditor.d.ts +9 -0
  30. package/dist/editors/checkboxEditor.d.ts.map +1 -0
  31. package/dist/editors/checkboxEditor.js +32 -0
  32. package/dist/editors/checkboxEditor.js.map +1 -0
  33. package/dist/editors/dateEditor.d.ts +8 -0
  34. package/dist/editors/dateEditor.d.ts.map +1 -0
  35. package/dist/editors/dateEditor.js +37 -0
  36. package/dist/editors/dateEditor.js.map +1 -0
  37. package/dist/editors/dropdownEditor.d.ts +26 -0
  38. package/dist/editors/dropdownEditor.d.ts.map +1 -0
  39. package/dist/editors/dropdownEditor.js +142 -0
  40. package/dist/editors/dropdownEditor.js.map +1 -0
  41. package/dist/editors/formulaEditor.d.ts +21 -0
  42. package/dist/editors/formulaEditor.d.ts.map +1 -0
  43. package/dist/editors/formulaEditor.js +109 -0
  44. package/dist/editors/formulaEditor.js.map +1 -0
  45. package/dist/editors/index.d.ts +8 -0
  46. package/dist/editors/index.d.ts.map +1 -0
  47. package/dist/editors/index.js +19 -0
  48. package/dist/editors/index.js.map +1 -0
  49. package/dist/editors/numberEditor.d.ts +9 -0
  50. package/dist/editors/numberEditor.d.ts.map +1 -0
  51. package/dist/editors/numberEditor.js +37 -0
  52. package/dist/editors/numberEditor.js.map +1 -0
  53. package/dist/editors/textEditor.d.ts +15 -0
  54. package/dist/editors/textEditor.d.ts.map +1 -0
  55. package/dist/editors/textEditor.js +74 -0
  56. package/dist/editors/textEditor.js.map +1 -0
  57. package/dist/filters/NumberFilter.d.ts +8 -0
  58. package/dist/filters/NumberFilter.d.ts.map +1 -0
  59. package/dist/filters/NumberFilter.js +13 -0
  60. package/dist/filters/NumberFilter.js.map +1 -0
  61. package/dist/filters/baseFilter.d.ts +20 -0
  62. package/dist/filters/baseFilter.d.ts.map +1 -0
  63. package/dist/filters/baseFilter.js +47 -0
  64. package/dist/filters/baseFilter.js.map +1 -0
  65. package/dist/filters/checkboxFilter.d.ts +12 -0
  66. package/dist/filters/checkboxFilter.d.ts.map +1 -0
  67. package/dist/filters/checkboxFilter.js +67 -0
  68. package/dist/filters/checkboxFilter.js.map +1 -0
  69. package/dist/filters/dropdownFilter.d.ts +17 -0
  70. package/dist/filters/dropdownFilter.d.ts.map +1 -0
  71. package/dist/filters/dropdownFilter.js +116 -0
  72. package/dist/filters/dropdownFilter.js.map +1 -0
  73. package/dist/filters/filterFactory.d.ts +4 -0
  74. package/dist/filters/filterFactory.d.ts.map +1 -0
  75. package/dist/filters/filterFactory.js +39 -0
  76. package/dist/filters/filterFactory.js.map +1 -0
  77. package/dist/filters/index.d.ts +5 -0
  78. package/dist/filters/index.d.ts.map +1 -0
  79. package/dist/filters/index.js +5 -0
  80. package/dist/filters/index.js.map +1 -0
  81. package/dist/filters/textFilter.d.ts +17 -0
  82. package/dist/filters/textFilter.d.ts.map +1 -0
  83. package/dist/filters/textFilter.js +89 -0
  84. package/dist/filters/textFilter.js.map +1 -0
  85. package/dist/gridAdapter.d.ts +30 -0
  86. package/dist/gridAdapter.d.ts.map +1 -0
  87. package/dist/gridAdapter.js +11 -0
  88. package/dist/gridAdapter.js.map +1 -0
  89. package/dist/i18n/en-us.d.ts +4 -0
  90. package/dist/i18n/en-us.d.ts.map +1 -0
  91. package/dist/i18n/en-us.js +5 -0
  92. package/dist/i18n/en-us.js.map +1 -0
  93. package/dist/i18n/index.d.ts +5 -0
  94. package/dist/i18n/index.d.ts.map +1 -0
  95. package/dist/i18n/index.js +8 -0
  96. package/dist/i18n/index.js.map +1 -0
  97. package/dist/index.d.ts +7 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +7 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/renderers/ActionRenderer.d.ts +3 -0
  102. package/dist/renderers/ActionRenderer.d.ts.map +1 -0
  103. package/dist/renderers/ActionRenderer.js +68 -0
  104. package/dist/renderers/ActionRenderer.js.map +1 -0
  105. package/dist/renderers/BaseRenderer.d.ts +6 -0
  106. package/dist/renderers/BaseRenderer.d.ts.map +1 -0
  107. package/dist/renderers/BaseRenderer.js +56 -0
  108. package/dist/renderers/BaseRenderer.js.map +1 -0
  109. package/dist/renderers/CheckboxRenderer.d.ts +4 -0
  110. package/dist/renderers/CheckboxRenderer.d.ts.map +1 -0
  111. package/dist/renderers/CheckboxRenderer.js +22 -0
  112. package/dist/renderers/CheckboxRenderer.js.map +1 -0
  113. package/dist/renderers/DateTimeRenderer.d.ts +4 -0
  114. package/dist/renderers/DateTimeRenderer.d.ts.map +1 -0
  115. package/dist/renderers/DateTimeRenderer.js +21 -0
  116. package/dist/renderers/DateTimeRenderer.js.map +1 -0
  117. package/dist/renderers/DropdownRenderer.d.ts +4 -0
  118. package/dist/renderers/DropdownRenderer.d.ts.map +1 -0
  119. package/dist/renderers/DropdownRenderer.js +18 -0
  120. package/dist/renderers/DropdownRenderer.js.map +1 -0
  121. package/dist/renderers/GeneralRenderer.d.ts +4 -0
  122. package/dist/renderers/GeneralRenderer.d.ts.map +1 -0
  123. package/dist/renderers/GeneralRenderer.js +12 -0
  124. package/dist/renderers/GeneralRenderer.js.map +1 -0
  125. package/dist/renderers/HtmlRenderer.d.ts +4 -0
  126. package/dist/renderers/HtmlRenderer.d.ts.map +1 -0
  127. package/dist/renderers/HtmlRenderer.js +6 -0
  128. package/dist/renderers/HtmlRenderer.js.map +1 -0
  129. package/dist/renderers/NumberRenderer.d.ts +4 -0
  130. package/dist/renderers/NumberRenderer.d.ts.map +1 -0
  131. package/dist/renderers/NumberRenderer.js +14 -0
  132. package/dist/renderers/NumberRenderer.js.map +1 -0
  133. package/dist/renderers/SparklineRenderer.d.ts +3 -0
  134. package/dist/renderers/SparklineRenderer.d.ts.map +1 -0
  135. package/dist/renderers/SparklineRenderer.js +8 -0
  136. package/dist/renderers/SparklineRenderer.js.map +1 -0
  137. package/dist/renderers/TextRenderer.d.ts +4 -0
  138. package/dist/renderers/TextRenderer.d.ts.map +1 -0
  139. package/dist/renderers/TextRenderer.js +38 -0
  140. package/dist/renderers/TextRenderer.js.map +1 -0
  141. package/dist/renderers/index.d.ts +12 -0
  142. package/dist/renderers/index.d.ts.map +1 -0
  143. package/dist/renderers/index.js +32 -0
  144. package/dist/renderers/index.js.map +1 -0
  145. package/dist/types.d.ts +10 -0
  146. package/dist/types.d.ts.map +1 -0
  147. package/dist/types.js +2 -0
  148. package/dist/types.js.map +1 -0
  149. package/dist/ui/comment.d.ts +59 -0
  150. package/dist/ui/comment.d.ts.map +1 -0
  151. package/dist/ui/comment.js +284 -0
  152. package/dist/ui/comment.js.map +1 -0
  153. package/dist/ui/comment.style.d.ts +2 -0
  154. package/dist/ui/comment.style.d.ts.map +1 -0
  155. package/dist/ui/comment.style.js +108 -0
  156. package/dist/ui/comment.style.js.map +1 -0
  157. package/dist/ui/elementCache.d.ts +15 -0
  158. package/dist/ui/elementCache.d.ts.map +1 -0
  159. package/dist/ui/elementCache.js +57 -0
  160. package/dist/ui/elementCache.js.map +1 -0
  161. package/dist/ui/filterLabel.d.ts +10 -0
  162. package/dist/ui/filterLabel.d.ts.map +1 -0
  163. package/dist/ui/filterLabel.js +76 -0
  164. package/dist/ui/filterLabel.js.map +1 -0
  165. package/dist/ui/formulaInput.d.ts +56 -0
  166. package/dist/ui/formulaInput.d.ts.map +1 -0
  167. package/dist/ui/formulaInput.js +251 -0
  168. package/dist/ui/formulaInput.js.map +1 -0
  169. package/dist/ui/formulaInput.style.d.ts +2 -0
  170. package/dist/ui/formulaInput.style.d.ts.map +1 -0
  171. package/dist/ui/formulaInput.style.js +65 -0
  172. package/dist/ui/formulaInput.style.js.map +1 -0
  173. package/dist/ui/grid.d.ts +91 -0
  174. package/dist/ui/grid.d.ts.map +1 -0
  175. package/dist/ui/grid.editing.d.ts +61 -0
  176. package/dist/ui/grid.editing.d.ts.map +1 -0
  177. package/dist/ui/grid.editing.js +439 -0
  178. package/dist/ui/grid.editing.js.map +1 -0
  179. package/dist/ui/grid.events.d.ts +97 -0
  180. package/dist/ui/grid.events.d.ts.map +1 -0
  181. package/dist/ui/grid.events.js +581 -0
  182. package/dist/ui/grid.events.js.map +1 -0
  183. package/dist/ui/grid.filtering.d.ts +23 -0
  184. package/dist/ui/grid.filtering.d.ts.map +1 -0
  185. package/dist/ui/grid.filtering.js +68 -0
  186. package/dist/ui/grid.filtering.js.map +1 -0
  187. package/dist/ui/grid.js +297 -0
  188. package/dist/ui/grid.js.map +1 -0
  189. package/dist/ui/grid.menu.d.ts +43 -0
  190. package/dist/ui/grid.menu.d.ts.map +1 -0
  191. package/dist/ui/grid.menu.js +168 -0
  192. package/dist/ui/grid.menu.js.map +1 -0
  193. package/dist/ui/grid.objects.d.ts +24 -0
  194. package/dist/ui/grid.objects.d.ts.map +1 -0
  195. package/dist/ui/grid.objects.js +69 -0
  196. package/dist/ui/grid.objects.js.map +1 -0
  197. package/dist/ui/grid.rendering.d.ts +84 -0
  198. package/dist/ui/grid.rendering.d.ts.map +1 -0
  199. package/dist/ui/grid.rendering.js +471 -0
  200. package/dist/ui/grid.rendering.js.map +1 -0
  201. package/dist/ui/grid.selecting.d.ts +99 -0
  202. package/dist/ui/grid.selecting.d.ts.map +1 -0
  203. package/dist/ui/grid.selecting.js +319 -0
  204. package/dist/ui/grid.selecting.js.map +1 -0
  205. package/dist/ui/grid.sorting.d.ts +23 -0
  206. package/dist/ui/grid.sorting.d.ts.map +1 -0
  207. package/dist/ui/grid.sorting.js +47 -0
  208. package/dist/ui/grid.sorting.js.map +1 -0
  209. package/dist/ui/grid.style.d.ts +2 -0
  210. package/dist/ui/grid.style.d.ts.map +1 -0
  211. package/dist/ui/grid.style.js +39 -0
  212. package/dist/ui/grid.style.js.map +1 -0
  213. package/dist/ui/group.d.ts +71 -0
  214. package/dist/ui/group.d.ts.map +1 -0
  215. package/dist/ui/group.js +312 -0
  216. package/dist/ui/group.js.map +1 -0
  217. package/dist/ui/index.d.ts +19 -0
  218. package/dist/ui/index.d.ts.map +1 -0
  219. package/dist/ui/index.js +19 -0
  220. package/dist/ui/index.js.map +1 -0
  221. package/dist/ui/objectHost.d.ts +30 -0
  222. package/dist/ui/objectHost.d.ts.map +1 -0
  223. package/dist/ui/objectHost.js +114 -0
  224. package/dist/ui/objectHost.js.map +1 -0
  225. package/dist/ui/objectHost.style.d.ts +2 -0
  226. package/dist/ui/objectHost.style.d.ts.map +1 -0
  227. package/dist/ui/objectHost.style.js +43 -0
  228. package/dist/ui/objectHost.style.js.map +1 -0
  229. package/dist/ui/selector.d.ts +97 -0
  230. package/dist/ui/selector.d.ts.map +1 -0
  231. package/dist/ui/selector.js +489 -0
  232. package/dist/ui/selector.js.map +1 -0
  233. package/dist/ui/selector.style.d.ts +2 -0
  234. package/dist/ui/selector.style.d.ts.map +1 -0
  235. package/dist/ui/selector.style.js +107 -0
  236. package/dist/ui/selector.style.js.map +1 -0
  237. package/dist/ui/sortingArrow.d.ts +8 -0
  238. package/dist/ui/sortingArrow.d.ts.map +1 -0
  239. package/dist/ui/sortingArrow.js +42 -0
  240. package/dist/ui/sortingArrow.js.map +1 -0
  241. package/dist/ui/sparkline.d.ts +14 -0
  242. package/dist/ui/sparkline.d.ts.map +1 -0
  243. package/dist/ui/sparkline.js +111 -0
  244. package/dist/ui/sparkline.js.map +1 -0
  245. package/dist/ui/table.d.ts +122 -0
  246. package/dist/ui/table.d.ts.map +1 -0
  247. package/dist/ui/table.js +1063 -0
  248. package/dist/ui/table.js.map +1 -0
  249. package/dist/ui/table.styles.d.ts +2 -0
  250. package/dist/ui/table.styles.d.ts.map +1 -0
  251. package/dist/ui/table.styles.js +249 -0
  252. package/dist/ui/table.styles.js.map +1 -0
  253. package/dist/ui/tooltip.d.ts +9 -0
  254. package/dist/ui/tooltip.d.ts.map +1 -0
  255. package/dist/ui/tooltip.js +32 -0
  256. package/dist/ui/tooltip.js.map +1 -0
  257. package/package.json +7 -7
@@ -0,0 +1,4 @@
1
+ import { FlowCommandSource } from "@omegagrid/commands";
2
+ import { Grid } from "../ui/grid";
3
+ export declare function createEditingCommands(grid: Grid): FlowCommandSource[];
4
+ //# sourceMappingURL=editingCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editingCommands.d.ts","sourceRoot":"","sources":["../../src/commands/editingCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAuErE"}
@@ -0,0 +1,74 @@
1
+ import { createCommands } from "@omegagrid/commands";
2
+ export function createEditingCommands(grid) {
3
+ return [{
4
+ group: 'grid',
5
+ name: 'set column width',
6
+ next: {
7
+ mode: 'input',
8
+ text: 'Enter column width in pixels',
9
+ commands: createCommands('apply', (command, value) => {
10
+ for (let c = grid.selection.range.c1; c <= grid.selection.range.c2; c++) {
11
+ grid.model.columns[c].width = parseInt(value);
12
+ }
13
+ grid.rendering.renderCells({ horizontal: true });
14
+ })
15
+ }
16
+ }, {
17
+ group: 'grid',
18
+ name: 'set all columns widths',
19
+ next: {
20
+ mode: 'input',
21
+ text: 'Enter column width in pixels',
22
+ commands: createCommands('apply', (command, value) => {
23
+ const w = parseInt(value);
24
+ grid.model.columns.forEach(column => column.width = w);
25
+ grid.rendering.renderCells({ horizontal: true });
26
+ })
27
+ }
28
+ }, {
29
+ group: 'grid',
30
+ name: 'set columns widths to the right',
31
+ next: {
32
+ mode: 'input',
33
+ text: 'Enter column width in pixels',
34
+ commands: createCommands('apply', (command, value) => {
35
+ for (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {
36
+ grid.model.columns[c].width = parseInt(value);
37
+ }
38
+ grid.rendering.renderCells({ horizontal: true });
39
+ })
40
+ }
41
+ }, {
42
+ group: 'grid',
43
+ name: 'copy column widths',
44
+ exec: () => {
45
+ const w = grid.model.columns[grid.selection.range.c1].width;
46
+ grid.model.columns.forEach(column => column.width = w);
47
+ grid.rendering.renderCells({ horizontal: true });
48
+ }
49
+ }, {
50
+ group: 'grid',
51
+ name: 'copy column widths to the right',
52
+ exec: () => {
53
+ const w = grid.model.columns[grid.selection.range.c1].width;
54
+ for (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {
55
+ grid.model.columns[c].width = w;
56
+ }
57
+ grid.rendering.renderCells({ horizontal: true });
58
+ }
59
+ }, {
60
+ group: 'grid',
61
+ name: 'set values',
62
+ next: {
63
+ mode: 'input',
64
+ text: 'Enter value',
65
+ commands: createCommands('apply', (command, value) => {
66
+ for (const cell of grid.model.getRangeIterator(grid.selection.range)) {
67
+ cell.value = value;
68
+ grid.table.renderBodyCell(cell);
69
+ }
70
+ })
71
+ }
72
+ }];
73
+ }
74
+ //# sourceMappingURL=editingCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editingCommands.js","sourceRoot":"","sources":["../../src/commands/editingCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowCommandSource, createCommands } from \"@omegagrid/commands\";\nimport { Grid } from \"../ui/grid\";\n\nexport function createEditingCommands(grid: Grid): FlowCommandSource[] {\n\treturn [{\n\t\tgroup: 'grid', \n\t\tname: 'set column width',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (let c = grid.selection.range.c1; c <= grid.selection.range.c2; c++) {\n\t\t\t\t\tgrid.model.columns[c].width = parseInt(value);\n\t\t\t\t}\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set all columns widths',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tconst w = parseInt(value);\n\t\t\t\tgrid.model.columns.forEach(column => column.width = w);\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set columns widths to the right', \n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {\n\t\t\t\t\tgrid.model.columns[c].width = parseInt(value);\n\t\t\t\t}\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid',\n\t\tname: 'copy column widths',\n\t\texec: () => {\n\t\t\tconst w = grid.model.columns[grid.selection.range.c1].width;\n\t\t\tgrid.model.columns.forEach(column => column.width = w);\n\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t}\n\t}, {\n\t\tgroup: 'grid',\n\t\tname: 'copy column widths to the right',\n\t\texec: () => {\n\t\t\tconst w = grid.model.columns[grid.selection.range.c1].width;\n\t\t\tfor (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {\n\t\t\t\tgrid.model.columns[c].width = w;\n\t\t\t}\n\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set values',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter value',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (const cell of grid.model.getRangeIterator(grid.selection.range)) {\n\t\t\t\tcell.value = value;\n\t\t\t\tgrid.table.renderBodyCell(cell);\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}];\n}"]}
@@ -0,0 +1,8 @@
1
+ import { GridGroup } from "../ui";
2
+ export declare function createGroupCommands(_group: GridGroup): {
3
+ section: string;
4
+ name: string;
5
+ requiredParams: number;
6
+ fn: (sheet: string) => void;
7
+ }[];
8
+ //# sourceMappingURL=groupCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupCommands.d.ts","sourceRoot":"","sources":["../../src/commands/groupCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS;;;;gBAEkB,MAAM;IAG5E"}
@@ -0,0 +1,7 @@
1
+ export function createGroupCommands(_group) {
2
+ const section = 'group';
3
+ return [{ section, name: 'focus sheet', requiredParams: 1, fn: (sheet) => {
4
+ console.log(sheet);
5
+ } }];
6
+ }
7
+ //# sourceMappingURL=groupCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupCommands.js","sourceRoot":"","sources":["../../src/commands/groupCommands.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC;IACxB,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { GridGroup } from \"../ui\";\n\nexport function createGroupCommands(_group: GridGroup) {\n\tconst section = 'group';\n\treturn [{section, name: 'focus sheet', requiredParams: 1, fn: (sheet: string) => {\n\t\tconsole.log(sheet);\n\t}}];\n}"]}
@@ -0,0 +1,4 @@
1
+ export * from "./groupCommands";
2
+ import { Grid } from "../ui";
3
+ export declare function initGridCommands(grid: Grid): void;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAI7B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,QAI1C"}
@@ -0,0 +1,9 @@
1
+ export * from "./groupCommands";
2
+ import { createEditingCommands } from "./editingCommands";
3
+ import { createNavigationCommands } from "./navigationCommands";
4
+ export function initGridCommands(grid) {
5
+ grid.commands.clear();
6
+ createEditingCommands(grid).forEach(c => grid.commands.add(c));
7
+ createNavigationCommands(grid).forEach(c => grid.commands.add(c));
8
+ }
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,UAAU,gBAAgB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC","sourcesContent":["export * from \"./groupCommands\";\nimport { Grid } from \"../ui\";\nimport { createEditingCommands } from \"./editingCommands\";\nimport { createNavigationCommands } from \"./navigationCommands\";\n\nexport function initGridCommands(grid: Grid) {\n\tgrid.commands.clear();\n\tcreateEditingCommands(grid).forEach(c => grid.commands.add(c));\n\tcreateNavigationCommands(grid).forEach(c => grid.commands.add(c));\n}"]}
@@ -0,0 +1,5 @@
1
+ import { FlowCommandSource } from "@omegagrid/commands";
2
+ import { Grid } from "../ui/grid";
3
+ export declare function goto(grid: Grid, rangeAddress: string): void;
4
+ export declare function createNavigationCommands(grid: Grid): FlowCommandSource[];
5
+ //# sourceMappingURL=navigationCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationCommands.d.ts","sourceRoot":"","sources":["../../src/commands/navigationCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,QAMpD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAsHxE"}
@@ -0,0 +1,117 @@
1
+ import { createCommands } from "@omegagrid/commands";
2
+ import { SortOrder, decodeColumn } from "@omegagrid/grid-core";
3
+ export function goto(grid, rangeAddress) {
4
+ grid.selecting.select(rangeAddress, true);
5
+ grid.table.rowOffset = Math.max(0, grid.selection.range.r1 - grid.options.freezeTop);
6
+ grid.table.colOffset = Math.max(0, grid.selection.range.c1 - grid.options.freezeLeft);
7
+ grid.rendering.renderCells({ vertical: true, horizontal: true });
8
+ grid.rendering.updateSliders();
9
+ }
10
+ export function createNavigationCommands(grid) {
11
+ const commands = [];
12
+ commands.push({
13
+ group: 'grid',
14
+ name: 'goto',
15
+ next: {
16
+ mode: 'input',
17
+ text: 'Enter cell address',
18
+ commands: createCommands('ok', (_command, value) => {
19
+ goto(grid, value);
20
+ })
21
+ }
22
+ });
23
+ commands.push({
24
+ group: 'grid',
25
+ name: 'goto first cell',
26
+ exec: () => {
27
+ goto(grid, 'A1');
28
+ }
29
+ });
30
+ commands.push({
31
+ group: 'grid',
32
+ name: 'sort ascending',
33
+ next: {
34
+ mode: 'input',
35
+ text: 'Enter column name',
36
+ commands: createCommands('ok', (_command, value) => {
37
+ grid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Asc);
38
+ })
39
+ }
40
+ });
41
+ commands.push({
42
+ group: 'grid',
43
+ name: 'sort descending',
44
+ next: {
45
+ mode: 'input',
46
+ text: 'Enter column name',
47
+ commands: createCommands('ok', (_command, value) => {
48
+ grid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Desc);
49
+ })
50
+ }
51
+ });
52
+ commands.push({
53
+ group: 'grid',
54
+ name: 'sort ascending by current column',
55
+ exec: () => {
56
+ grid.sorting.sort(grid.selection.range.c1, SortOrder.Asc);
57
+ }
58
+ });
59
+ commands.push({
60
+ group: 'grid',
61
+ name: 'sort descending by current column',
62
+ exec: () => {
63
+ grid.sorting.sort(grid.selection.range.c1, SortOrder.Desc);
64
+ }
65
+ });
66
+ commands.push({
67
+ group: 'grid',
68
+ name: 'reset sorting',
69
+ exec: () => {
70
+ grid.sorting.resetSort();
71
+ grid.table.clearBodyCache();
72
+ grid.table.renderCells({ vertical: true, horizontal: true });
73
+ }
74
+ });
75
+ if (grid.model.maxRowLevel > 0) {
76
+ commands.push({
77
+ group: 'grid',
78
+ name: 'set row level',
79
+ next: {
80
+ mode: 'input',
81
+ text: 'Enter row level',
82
+ commands: createCommands('ok', (_command, value) => {
83
+ grid.rendering.setRowExpandLevel(parseInt(value));
84
+ })
85
+ }
86
+ });
87
+ [...Array(grid.model.maxRowLevel).keys()].forEach(l => commands.push({
88
+ group: 'grid',
89
+ name: `set row level ${l}`,
90
+ exec: () => {
91
+ grid.rendering.setRowExpandLevel(l);
92
+ }
93
+ }));
94
+ }
95
+ if (grid.model.maxColumnLevel > 0) {
96
+ commands.push({
97
+ group: 'grid',
98
+ name: 'set column level',
99
+ next: {
100
+ mode: 'input',
101
+ text: 'Enter column level',
102
+ commands: createCommands('ok', (_command, value) => {
103
+ grid.rendering.setColumnExpandLevel(parseInt(value));
104
+ })
105
+ }
106
+ });
107
+ [...Array(grid.model.maxColumnLevel).keys()].forEach(l => commands.push({
108
+ group: 'grid',
109
+ name: `set column level ${l}`,
110
+ exec: () => {
111
+ grid.rendering.setColumnExpandLevel(l);
112
+ }
113
+ }));
114
+ }
115
+ return commands;
116
+ }
117
+ //# sourceMappingURL=navigationCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationCommands.js","sourceRoot":"","sources":["../../src/commands/navigationCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { createCommands, FlowCommandSource } from \"@omegagrid/commands\";\nimport { SortOrder, decodeColumn } from \"@omegagrid/grid-core\";\nimport { Grid } from \"../ui/grid\";\n\nexport function goto(grid: Grid, rangeAddress: string) {\n\tgrid.selecting.select(rangeAddress, true);\n\tgrid.table.rowOffset = Math.max(0, grid.selection.range.r1 - grid.options.freezeTop);\n\tgrid.table.colOffset = Math.max(0, grid.selection.range.c1 - grid.options.freezeLeft);\n\tgrid.rendering.renderCells({vertical: true, horizontal: true});\n\tgrid.rendering.updateSliders();\n}\n\nexport function createNavigationCommands(grid: Grid): FlowCommandSource[] {\n\tconst commands: FlowCommandSource[] = [];\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'goto',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter cell address',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgoto(grid, value);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'goto first cell',\n\t\texec: () => {\n\t\t\tgoto(grid, 'A1');\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort ascending',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column name',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgrid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Asc);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort descending',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column name',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgrid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Desc);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort ascending by current column',\n\t\texec: () => {\n\t\t\tgrid.sorting.sort(grid.selection.range.c1, SortOrder.Asc);\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort descending by current column',\n\t\texec: () => {\n\t\t\tgrid.sorting.sort(grid.selection.range.c1, SortOrder.Desc);\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'reset sorting',\n\t\texec: () => {\n\t\t\tgrid.sorting.resetSort();\n\t\t\tgrid.table.clearBodyCache();\n\t\t\tgrid.table.renderCells({vertical: true, horizontal: true});\n\t\t}\n\t});\n\n\tif (grid.model.maxRowLevel > 0) {\n\t\tcommands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: 'set row level',\n\t\t\tnext: {\n\t\t\t\tmode: 'input',\n\t\t\t\ttext: 'Enter row level',\n\t\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\t\tgrid.rendering.setRowExpandLevel(parseInt(value));\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\t[...Array(grid.model.maxRowLevel).keys()].forEach(l => commands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: `set row level ${l}`,\n\t\t\texec: () => {\n\t\t\t\tgrid.rendering.setRowExpandLevel(l);\n\t\t\t}\n\t\t}));\n\t}\n\n\tif (grid.model.maxColumnLevel > 0) {\n\t\tcommands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: 'set column level',\n\t\t\tnext: {\n\t\t\t\tmode: 'input',\n\t\t\t\ttext: 'Enter column level',\n\t\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\t\tgrid.rendering.setColumnExpandLevel(parseInt(value));\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\t[...Array(grid.model.maxColumnLevel).keys()].forEach(l => commands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: `set column level ${l}`,\n\t\t\texec: () => {\n\t\t\t\tgrid.rendering.setColumnExpandLevel(l);\n\t\t\t}\n\t\t}));\n\t}\n\n\treturn commands;\n}"]}
@@ -0,0 +1,65 @@
1
+ declare const _default: {
2
+ CUSTOM_CLIPBOARD_TYPE: string;
3
+ PREFIX: string;
4
+ DEFAULT_ACCENT_COLOR: string;
5
+ DEFAULT_ACCENT_COLOR_2: import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | any | ArrayLike<number> | {
6
+ [key: string]: any;
7
+ }> | ArrayLike<number> | {
8
+ [key: string]: any;
9
+ }> | ArrayLike<number> | {
10
+ [key: string]: any;
11
+ }> | ArrayLike<number> | {
12
+ [key: string]: any;
13
+ }> | ArrayLike<number> | {
14
+ [key: string]: any;
15
+ }> | ArrayLike<number> | {
16
+ [key: string]: any;
17
+ }> | ArrayLike<number> | {
18
+ [key: string]: any;
19
+ }> | ArrayLike<number> | {
20
+ [key: string]: any;
21
+ }> | ArrayLike<number> | {
22
+ [key: string]: any;
23
+ }> | ArrayLike<number> | {
24
+ [key: string]: any;
25
+ }> | ArrayLike<number> | {
26
+ [key: string]: any;
27
+ }> | ArrayLike<number> | {
28
+ [key: string]: any;
29
+ }>;
30
+ SIZER_SIZE: number;
31
+ SLIDER_SIZE: number;
32
+ SLIDER_MIN_LENGTH: number;
33
+ EXPANDER_SIZE: number;
34
+ LIST_ITEM_HEIGHT: number;
35
+ LIST_RENDERING_TRESHOLD: number;
36
+ LIST_AUTOSCROLL_TRESHOLD: number;
37
+ LIST_AUTOSCROLL_DELAY: number;
38
+ DEFAULT_TEXT_HIGHLIGHT_COLOR: string;
39
+ TOOLTIP_MARGIN: number;
40
+ MENU_ITEM_HEIGHT: number;
41
+ COLORPICKER_COLOR_SIZE: number;
42
+ DEFAULT_NUMBER_FORMAT: string;
43
+ BUTTON_HEIGHT: number;
44
+ FONT_SIZE: number;
45
+ FLOATING_WINDOW_MAX_WIDTH: number;
46
+ ROW_HEIGHT: number;
47
+ RESIZE_TRESHOLD: number;
48
+ ROW_HEADER_WIDTH: number;
49
+ MAX_CACHE_ITEMS: number;
50
+ CACHE_CLEAN_INTERVAL: number;
51
+ COMMENT_HIDE_TIMEOUT: number;
52
+ SELECTOR_BORDER_WIDTH: number;
53
+ MIN_ROW_HEIGHT: number;
54
+ MIN_COL_WIDTH: number;
55
+ SPARKLINE_GAP: number;
56
+ AUTOSCROLL_TRESHOLD: number;
57
+ AUTOSCROLL_RATIO: number;
58
+ AUTOSCROLL_INTERVAL: number;
59
+ DEFAULT_SPARKLINE_OPTIONS: import("@omegagrid/grid-core").SparklineOptions;
60
+ DEFAULT_OPTIONS: import("@omegagrid/grid-core").Options;
61
+ MAX_COMMENT_AUTOHEIGHT: number;
62
+ MIN_COMMENT_AUTOHEIGHT: number;
63
+ };
64
+ export default _default;
65
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wBAKE"}
@@ -0,0 +1,8 @@
1
+ import { gridConstants } from '@omegagrid/grid-core';
2
+ export default {
3
+ ...gridConstants,
4
+ ...{
5
+ CUSTOM_CLIPBOARD_TYPE: 'web application/json'
6
+ }
7
+ };
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,eAAe;IACd,GAAG,aAAa;IAChB,GAAG;QACF,qBAAqB,EAAE,sBAAsB;KAC7C;CACD,CAAC","sourcesContent":["import { gridConstants } from '@omegagrid/grid-core';\nexport default {\n\t...gridConstants,\n\t...{\n\t\tCUSTOM_CLIPBOARD_TYPE: 'web application/json'\n\t}\n};"]}
@@ -0,0 +1,31 @@
1
+ import { CellModel } from "@omegagrid/grid-core";
2
+ import { LitElement } from 'lit';
3
+ import { Grid } from "../ui/grid";
4
+ export declare class EditorEvent extends Event {
5
+ }
6
+ export declare abstract class BaseEditor extends LitElement {
7
+ static baseStyles: import("lit").CSSResult;
8
+ protected grid: Grid;
9
+ protected cancel: boolean;
10
+ protected activeCell: HTMLTableCellElement;
11
+ protected activeCellModel: CellModel;
12
+ protected initialValue: unknown;
13
+ protected _open: boolean;
14
+ get isOpen(): boolean;
15
+ protected _valid: boolean;
16
+ get isValid(): boolean;
17
+ validate(): boolean;
18
+ constructor();
19
+ abstract getValue(): unknown;
20
+ abstract setValue(value: unknown): void;
21
+ getDisplayValue(): string;
22
+ init(): void;
23
+ connectedCallback(): void;
24
+ alignWithCell(): void;
25
+ open(grid: Grid, initialValue?: unknown, updatePosition?: boolean): this;
26
+ commit(): void;
27
+ close(): void;
28
+ activate(cell: CellModel): void;
29
+ deactivate(): void;
30
+ }
31
+ //# sourceMappingURL=baseEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseEditor.d.ts","sourceRoot":"","sources":["../../src/editors/baseEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,qBAAa,WAAY,SAAQ,KAAK;CAAI;AAE1C,8BAAsB,UAAW,SAAQ,UAAU;IAElD,MAAM,CAAC,UAAU,0BAef;IAEF,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,SAAS,CAAC,MAAM,UAAS;IACzB,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC3C,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;IACrC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAEhC,SAAS,CAAC,KAAK,UAAS;IACxB,IAAI,MAAM,YAAwB;IAElC,SAAS,CAAC,MAAM,UAAQ;IACxB,IAAI,OAAO,YAAyB;IAEpC,QAAQ;;IAaR,QAAQ,CAAC,QAAQ,IAAK,OAAO;IAE7B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAI,IAAI;IAExC,eAAe,IAAK,MAAM;IAI1B,IAAI;IAaJ,iBAAiB;IAKjB,aAAa;IAOb,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,GAAE,OAAc,EAAE,cAAc,UAAO;IAiBpE,MAAM;IAWN,KAAK;IAaL,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAI,IAAI;IAKhC,UAAU,IAAK,IAAI;CAInB"}
@@ -0,0 +1,112 @@
1
+ import { validateValue } from "@omegagrid/grid-core";
2
+ import { LitElement, css } from 'lit';
3
+ import { dom } from "@omegagrid/core";
4
+ export class EditorEvent extends Event {
5
+ }
6
+ export class BaseEditor extends LitElement {
7
+ get isOpen() { return this._open; }
8
+ get isValid() { return this._valid; }
9
+ validate() {
10
+ this._valid = true;
11
+ if (this.activeCell)
12
+ this._valid = validateValue(this.activeCellModel, this.getValue());
13
+ this.classList.toggle('invalid', !this._valid);
14
+ return this._valid;
15
+ }
16
+ constructor() {
17
+ super();
18
+ this.cancel = false;
19
+ this._open = false;
20
+ this._valid = true;
21
+ this.init();
22
+ }
23
+ getDisplayValue() {
24
+ return null;
25
+ }
26
+ init() {
27
+ this.addEventListener('keydown', e => {
28
+ if (e.key == 'Enter') {
29
+ this.close();
30
+ }
31
+ else if (e.key == 'Escape') {
32
+ this.cancel = true;
33
+ this.close();
34
+ }
35
+ else {
36
+ e.stopPropagation();
37
+ }
38
+ });
39
+ }
40
+ connectedCallback() {
41
+ super.connectedCallback();
42
+ this.performUpdate();
43
+ }
44
+ alignWithCell() {
45
+ if (!this.activeCell)
46
+ return;
47
+ const offset = dom.getElementOffset(this.activeCell, this.grid);
48
+ dom.setPosition(this, { t: offset.top * this.grid.zoom, l: offset.left * this.grid.zoom });
49
+ dom.setSize(this, { w: this.activeCell.offsetWidth, h: this.activeCell.offsetHeight });
50
+ }
51
+ open(grid, initialValue = null, updatePosition = true) {
52
+ this._valid = true;
53
+ this.initialValue = initialValue;
54
+ this._open = true;
55
+ this.grid = grid;
56
+ const cellModel = grid.selecting.activeCell;
57
+ this.activeCellModel = cellModel;
58
+ this.activeCell = this.grid.table.getCellByModelIndex(cellModel.c, cellModel.r);
59
+ this.grid.selector.hide();
60
+ dom.showElement(this);
61
+ if (updatePosition)
62
+ this.alignWithCell();
63
+ this.activate(cellModel);
64
+ if (initialValue !== null)
65
+ this.setValue(initialValue);
66
+ dom.zoomElement(this, this.grid.zoom);
67
+ return this;
68
+ }
69
+ commit() {
70
+ if (this._open && !this.cancel && this.activeCellModel) {
71
+ this.grid.editing.updateCell(this.activeCellModel, { v: this.getValue(), dv: this.getDisplayValue() });
72
+ this.grid.rendering.updateCell(this.activeCellModel, true);
73
+ }
74
+ this.cancel = false;
75
+ }
76
+ close() {
77
+ if (this._open) {
78
+ this.deactivate();
79
+ dom.hideElement(this);
80
+ this.grid.table.renderBodyCell(this.activeCellModel);
81
+ this.grid.selecting.showSelector();
82
+ this.grid.focus();
83
+ this._open = false;
84
+ this.grid.editing.endEdit();
85
+ }
86
+ this.cancel = false;
87
+ }
88
+ activate(cell) {
89
+ this.activeCellModel = cell;
90
+ this.dispatchEvent(new EditorEvent('activate'));
91
+ }
92
+ deactivate() {
93
+ this.dispatchEvent(new EditorEvent('deactivate'));
94
+ }
95
+ }
96
+ BaseEditor.baseStyles = css `
97
+ * { box-sizing: border-box }
98
+
99
+ :host {
100
+ display: block;
101
+ width: 100%;
102
+ height: 100%;
103
+ background: var(--og-cell-background);
104
+ z-index: 200;
105
+ }
106
+
107
+ :host(.invalid) input {
108
+ color: #ff0000;
109
+ border: 1px solid #ff0000;
110
+ }
111
+ `;
112
+ //# sourceMappingURL=baseEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseEditor.js","sourceRoot":"","sources":["../../src/editors/baseEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { CellModel, CellValueType, validateValue } from \"@omegagrid/grid-core\";\nimport { LitElement, css } from 'lit';\nimport { dom } from \"@omegagrid/core\";\nimport { Grid } from \"../ui/grid\";\n\nexport class EditorEvent extends Event { }\n\nexport abstract class BaseEditor extends LitElement {\n\n\tstatic baseStyles = css`\n\t\t* { box-sizing: border-box }\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tbackground: var(--og-cell-background);\n\t\t\tz-index: 200;\n\t\t}\n\n\t\t:host(.invalid) input {\n\t\t\tcolor: #ff0000;\n\t\t\tborder: 1px solid #ff0000;\n\t\t}\n\t`;\n\n\tprotected grid: Grid;\n\tprotected cancel = false;\n\tprotected activeCell: HTMLTableCellElement;\n\tprotected activeCellModel: CellModel;\n\tprotected initialValue: unknown;\n\t\n\tprotected _open = false;\n\tget isOpen() { return this._open }\n\n\tprotected _valid = true;\n\tget isValid() { return this._valid }\n\n\tvalidate() {\n\t\tthis._valid = true;\n\t\tif (this.activeCell) this._valid = validateValue(this.activeCellModel, this.getValue());\n\t\tthis.classList.toggle('invalid', !this._valid);\n\t\treturn this._valid;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.init();\n\t}\n\n\t\n\tabstract getValue() : unknown;\n\n\tabstract setValue(value: unknown) : void;\n\t\n\tgetDisplayValue() : string {\n\t\treturn null;\n\t}\n\n\tinit() {\n\t\tthis.addEventListener('keydown', e => {\n\t\t\tif (e.key == 'Enter') {\n\t\t\t\tthis.close();\n\t\t\t} else if (e.key == 'Escape') {\n\t\t\t\tthis.cancel = true;\n\t\t\t\tthis.close();\n\t\t\t} else {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t});\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.performUpdate();\n\t}\n\n\talignWithCell() {\n\t\tif (!this.activeCell) return;\n\t\tconst offset = dom.getElementOffset(this.activeCell, this.grid);\n\t\tdom.setPosition(this, {t: offset.top * this.grid.zoom, l: offset.left * this.grid.zoom});\n\t\tdom.setSize(this, {w: this.activeCell.offsetWidth, h: this.activeCell.offsetHeight});\n\t}\n\n\topen(grid: Grid, initialValue: unknown = null, updatePosition = true) {\n\t\tthis._valid = true;\n\t\tthis.initialValue = initialValue;\n\t\tthis._open = true;\n\t\tthis.grid = grid;\n\t\tconst cellModel = grid.selecting.activeCell;\n\t\tthis.activeCellModel = cellModel;\n\t\tthis.activeCell = this.grid.table.getCellByModelIndex(cellModel.c, cellModel.r);\n\t\tthis.grid.selector.hide();\n\t\tdom.showElement(this);\n\t\tif (updatePosition) this.alignWithCell();\n\t\tthis.activate(cellModel);\n\t\tif (initialValue !== null) this.setValue(initialValue);\n\t\tdom.zoomElement(this, this.grid.zoom);\n\t\treturn this;\n\t}\n\n\tcommit() {\n\t\tif (this._open && !this.cancel && this.activeCellModel) {\n\t\t\tthis.grid.editing.updateCell(\n\t\t\t\tthis.activeCellModel, \n\t\t\t\t{v: this.getValue() as CellValueType, dv: this.getDisplayValue()}\n\t\t\t);\n\t\t\tthis.grid.rendering.updateCell(this.activeCellModel, true);\n\t\t}\n\t\tthis.cancel = false;\n\t}\n\n\tclose() {\n\t\tif (this._open) {\n\t\t\tthis.deactivate();\n\t\t\tdom.hideElement(this);\n\t\t\tthis.grid.table.renderBodyCell(this.activeCellModel);\n\t\t\tthis.grid.selecting.showSelector();\n\t\t\tthis.grid.focus();\n\t\t\tthis._open = false;\n\t\t\tthis.grid.editing.endEdit();\n\t\t}\n\t\tthis.cancel = false;\n\t}\n\n\tactivate(cell: CellModel) : void {\n\t\tthis.activeCellModel = cell;\n\t\tthis.dispatchEvent(new EditorEvent('activate'));\n\t}\n\t\n\tdeactivate() : void {\n\t\tthis.dispatchEvent(new EditorEvent('deactivate'));\n\t}\n\n}"]}
@@ -0,0 +1,12 @@
1
+ import { BaseEditor } from "./baseEditor";
2
+ import { CellModel } from '@omegagrid/grid-core';
3
+ export declare class CalendarEditor extends BaseEditor {
4
+ calendar: any;
5
+ setValue(value: number | string | Date): void;
6
+ getValue(): number;
7
+ activate(cell: CellModel): Promise<void>;
8
+ _onChange: () => void;
9
+ render: () => import("lit-html").TemplateResult<1>;
10
+ close(): void;
11
+ }
12
+ //# sourceMappingURL=calendarEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarEditor.d.ts","sourceRoot":"","sources":["../../src/editors/calendarEditor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBACa,cAAe,SAAQ,UAAU;IAG7C,QAAQ,EAAE,GAAG,CAAC;IAEd,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI;IAuBlC,QAAQ,IAAK,MAAM;IAMb,QAAQ,CAAC,IAAI,EAAE,SAAS;IAO9B,SAAS,aAGR;IAED,MAAM,6CAMJ;IAEF,KAAK;CAKL"}
@@ -0,0 +1,74 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ import { customElement, query } from 'lit/decorators.js';
9
+ import { dates, utils } from "@omegagrid/core";
10
+ import { getLocale } from "@omegagrid/localize";
11
+ import { BaseEditor } from "./baseEditor";
12
+ import { html } from 'lit';
13
+ import { startOfDay } from 'date-fns';
14
+ let CalendarEditor = class CalendarEditor extends BaseEditor {
15
+ constructor() {
16
+ super(...arguments);
17
+ this._onChange = () => {
18
+ this.commit();
19
+ this.close();
20
+ };
21
+ this.render = () => html `
22
+ <og-calendar-dropdown
23
+ buttonInput
24
+ cross
25
+ @change="${this._onChange}">
26
+ </og-calendar-dropdown>
27
+ `;
28
+ }
29
+ setValue(value) {
30
+ if (value == null) {
31
+ this.calendar.value = null;
32
+ return;
33
+ }
34
+ if (utils.isString(value)) {
35
+ const date = dates.parse(value, getLocale());
36
+ if (date) {
37
+ this.calendar.value = date;
38
+ return;
39
+ }
40
+ }
41
+ else if (utils.isNumber(value)) {
42
+ this.calendar.value = dates.serialDateToDate(value);
43
+ return;
44
+ }
45
+ else {
46
+ this.calendar.value = value;
47
+ return;
48
+ }
49
+ this.calendar.value = startOfDay(new Date());
50
+ }
51
+ getValue() {
52
+ const date = this.calendar?.value;
53
+ console.log(date);
54
+ return date ? dates.dateToSerialDate(date) : null;
55
+ }
56
+ async activate(cell) {
57
+ super.activate(cell);
58
+ await this.calendar.updateComplete;
59
+ await this.calendar.open();
60
+ this.setValue(cell.value);
61
+ }
62
+ close() {
63
+ super.close();
64
+ this.calendar.close();
65
+ }
66
+ };
67
+ __decorate([
68
+ query('og-calendar-dropdown')
69
+ ], CalendarEditor.prototype, "calendar", void 0);
70
+ CalendarEditor = __decorate([
71
+ customElement('og-grid-calendareditor')
72
+ ], CalendarEditor);
73
+ export { CalendarEditor };
74
+ //# sourceMappingURL=calendarEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarEditor.js","sourceRoot":"","sources":["../../src/editors/calendarEditor.ts"],"names":[],"mappings":"AAAA,uDAAuD;;;;;;;AAEvD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI/B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QAyCN,cAAS,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;cAIN,IAAI,CAAC,SAAS;;EAE1B,CAAC;IAOH,CAAC;IAtDA,QAAQ,CAAC,KAAyB;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAe,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC3B,OAAO;YACR,CAAC;QACF,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAe,CAAC,CAAC;YAC9D,OAAO;QACR,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAa,CAAC;YACpC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAe;QACvB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACxC,CAAC;IAeJ,KAAK;QACJ,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CAED,CAAA;AAxDA;IADC,KAAK,CAAC,sBAAsB,CAAC;gDAChB;AAHF,cAAc;IAD1B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,cAAc,CA2D1B","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { customElement, query } from 'lit/decorators.js';\nimport { dates, utils } from \"@omegagrid/core\";\nimport { getLocale } from \"@omegagrid/localize\";\nimport { BaseEditor } from \"./baseEditor\";\nimport { html } from 'lit';\nimport { startOfDay } from 'date-fns';\nimport { CellModel } from '@omegagrid/grid-core';\n\n@customElement('og-grid-calendareditor')\nexport class CalendarEditor extends BaseEditor {\n\n\t@query('og-calendar-dropdown')\n\tcalendar: any;\n\n\tsetValue(value: number|string|Date) {\n\t\tif (value == null) {\n\t\t\tthis.calendar.value = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif (utils.isString(value)) {\n\t\t\tconst date = dates.parse(value as string, getLocale());\n\t\t\tif (date) {\n\t\t\t\tthis.calendar.value = date;\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (utils.isNumber(value)) {\n\t\t\tthis.calendar.value = dates.serialDateToDate(value as number);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.calendar.value = value as Date;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.calendar.value = startOfDay(new Date());\n\t}\n\n\tgetValue() : number {\n\t\tconst date = this.calendar?.value;\n\t\tconsole.log(date);\n\t\treturn date ? dates.dateToSerialDate(date) : null;\n\t}\n\n\tasync activate(cell: CellModel) {\n super.activate(cell);\n\t\tawait this.calendar.updateComplete;\n\t\tawait this.calendar.open();\n this.setValue(cell.value as number);\n }\n\n\t_onChange = () => {\n\t\tthis.commit();\n\t\tthis.close();\n\t}\t\t\n\n\trender = () => html`\n\t\t<og-calendar-dropdown\n\t\t\tbuttonInput\n\t\t\tcross\n\t\t\t@change=\"${this._onChange}\">\n\t\t</og-calendar-dropdown>\n\t`;\n\t\n\tclose() {\n\t\tsuper.close();\n\t\tthis.calendar.close();\n\t}\n\n}"]}