vastgrid 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/README.md +175 -13
  2. package/dist/canvas/geometry.d.ts +92 -0
  3. package/dist/canvas/geometry.d.ts.map +1 -0
  4. package/dist/canvas/geometry.js +197 -0
  5. package/dist/canvas/geometry.js.map +1 -0
  6. package/dist/canvas/grid-canvas.d.ts +161 -0
  7. package/dist/canvas/grid-canvas.d.ts.map +1 -0
  8. package/dist/canvas/grid-canvas.js +1146 -0
  9. package/dist/canvas/grid-canvas.js.map +1 -0
  10. package/dist/canvas/hooks.d.ts +61 -0
  11. package/dist/canvas/hooks.d.ts.map +1 -0
  12. package/dist/canvas/hooks.js +2 -0
  13. package/dist/canvas/hooks.js.map +1 -0
  14. package/dist/canvas/keys.d.ts +26 -0
  15. package/dist/canvas/keys.d.ts.map +1 -0
  16. package/dist/canvas/keys.js +133 -0
  17. package/dist/canvas/keys.js.map +1 -0
  18. package/dist/canvas/layout.d.ts +26 -0
  19. package/dist/canvas/layout.d.ts.map +1 -0
  20. package/dist/canvas/layout.js +73 -0
  21. package/dist/canvas/layout.js.map +1 -0
  22. package/dist/canvas/scroll.d.ts +31 -0
  23. package/dist/canvas/scroll.d.ts.map +1 -0
  24. package/dist/canvas/scroll.js +111 -0
  25. package/dist/canvas/scroll.js.map +1 -0
  26. package/dist/canvas/text.d.ts +23 -0
  27. package/dist/canvas/text.d.ts.map +1 -0
  28. package/dist/canvas/text.js +142 -0
  29. package/dist/canvas/text.js.map +1 -0
  30. package/dist/{theme.d.ts → canvas/theme.d.ts} +8 -0
  31. package/dist/canvas/theme.d.ts.map +1 -0
  32. package/dist/canvas/theme.js +62 -0
  33. package/dist/canvas/theme.js.map +1 -0
  34. package/dist/core/cache.d.ts +48 -0
  35. package/dist/core/cache.d.ts.map +1 -0
  36. package/dist/core/cache.js +222 -0
  37. package/dist/core/cache.js.map +1 -0
  38. package/dist/core/checked.d.ts +20 -0
  39. package/dist/core/checked.d.ts.map +1 -0
  40. package/dist/core/checked.js +61 -0
  41. package/dist/core/checked.js.map +1 -0
  42. package/dist/core/client.d.ts +33 -0
  43. package/dist/core/client.d.ts.map +1 -0
  44. package/dist/core/client.js +103 -0
  45. package/dist/core/client.js.map +1 -0
  46. package/dist/core/conditions.d.ts +48 -0
  47. package/dist/core/conditions.d.ts.map +1 -0
  48. package/dist/core/conditions.js +105 -0
  49. package/dist/core/conditions.js.map +1 -0
  50. package/dist/core/evaluate.d.ts +20 -0
  51. package/dist/core/evaluate.d.ts.map +1 -0
  52. package/dist/core/evaluate.js +210 -0
  53. package/dist/core/evaluate.js.map +1 -0
  54. package/dist/core/filters.d.ts +51 -0
  55. package/dist/core/filters.d.ts.map +1 -0
  56. package/dist/core/filters.js +303 -0
  57. package/dist/core/filters.js.map +1 -0
  58. package/dist/core/format.d.ts +14 -0
  59. package/dist/core/format.d.ts.map +1 -0
  60. package/dist/core/format.js +303 -0
  61. package/dist/core/format.js.map +1 -0
  62. package/dist/core/measures.d.ts +26 -0
  63. package/dist/core/measures.d.ts.map +1 -0
  64. package/dist/core/measures.js +105 -0
  65. package/dist/core/measures.js.map +1 -0
  66. package/dist/core/request-ids.d.ts +20 -0
  67. package/dist/core/request-ids.d.ts.map +1 -0
  68. package/dist/core/request-ids.js +55 -0
  69. package/dist/core/request-ids.js.map +1 -0
  70. package/dist/core/rows.d.ts +79 -0
  71. package/dist/core/rows.d.ts.map +1 -0
  72. package/dist/core/rows.js +173 -0
  73. package/dist/core/rows.js.map +1 -0
  74. package/dist/core/store.d.ts +233 -0
  75. package/dist/core/store.d.ts.map +1 -0
  76. package/dist/core/store.js +1162 -0
  77. package/dist/core/store.js.map +1 -0
  78. package/dist/core/totals.d.ts +24 -0
  79. package/dist/core/totals.d.ts.map +1 -0
  80. package/dist/core/totals.js +49 -0
  81. package/dist/core/totals.js.map +1 -0
  82. package/dist/core/trace.d.ts +7 -0
  83. package/dist/core/trace.d.ts.map +1 -0
  84. package/dist/core/trace.js +26 -0
  85. package/dist/core/trace.js.map +1 -0
  86. package/dist/core/transports.d.ts +50 -0
  87. package/dist/core/transports.d.ts.map +1 -0
  88. package/dist/core/transports.js +160 -0
  89. package/dist/core/transports.js.map +1 -0
  90. package/dist/core/types.d.ts +150 -0
  91. package/dist/core/types.d.ts.map +1 -0
  92. package/dist/core/types.js +45 -0
  93. package/dist/core/types.js.map +1 -0
  94. package/dist/core.d.ts +12 -0
  95. package/dist/core.d.ts.map +1 -0
  96. package/dist/core.js +11 -0
  97. package/dist/core.js.map +1 -0
  98. package/dist/index.d.ts +15 -6
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +13 -7
  101. package/dist/index.js.map +1 -1
  102. package/dist/react/accessible-rows.d.ts +13 -0
  103. package/dist/react/accessible-rows.d.ts.map +1 -0
  104. package/dist/react/accessible-rows.js +320 -0
  105. package/dist/react/accessible-rows.js.map +1 -0
  106. package/dist/react/cell-editor.d.ts +22 -0
  107. package/dist/react/cell-editor.d.ts.map +1 -0
  108. package/dist/react/cell-editor.js +431 -0
  109. package/dist/react/cell-editor.js.map +1 -0
  110. package/dist/react/cell-menu.d.ts +18 -0
  111. package/dist/react/cell-menu.d.ts.map +1 -0
  112. package/dist/react/cell-menu.js +299 -0
  113. package/dist/react/cell-menu.js.map +1 -0
  114. package/dist/react/column-menu.d.ts +16 -0
  115. package/dist/react/column-menu.d.ts.map +1 -0
  116. package/dist/react/column-menu.js +1311 -0
  117. package/dist/react/column-menu.js.map +1 -0
  118. package/dist/react/columns-menu.d.ts +7 -0
  119. package/dist/react/columns-menu.d.ts.map +1 -0
  120. package/dist/react/columns-menu.js +249 -0
  121. package/dist/react/columns-menu.js.map +1 -0
  122. package/dist/react/conditions-menu.d.ts +10 -0
  123. package/dist/react/conditions-menu.d.ts.map +1 -0
  124. package/dist/react/conditions-menu.js +795 -0
  125. package/dist/react/conditions-menu.js.map +1 -0
  126. package/dist/react/context.d.ts +29 -0
  127. package/dist/react/context.d.ts.map +1 -0
  128. package/dist/react/context.js +18 -0
  129. package/dist/react/context.js.map +1 -0
  130. package/dist/react/data-grid.d.ts +79 -0
  131. package/dist/react/data-grid.d.ts.map +1 -0
  132. package/dist/react/data-grid.js +653 -0
  133. package/dist/react/data-grid.js.map +1 -0
  134. package/dist/react/detail-panel.d.ts +22 -0
  135. package/dist/react/detail-panel.d.ts.map +1 -0
  136. package/dist/react/detail-panel.js +242 -0
  137. package/dist/react/detail-panel.js.map +1 -0
  138. package/dist/react/export-menu.d.ts +11 -0
  139. package/dist/react/export-menu.d.ts.map +1 -0
  140. package/dist/react/export-menu.js +304 -0
  141. package/dist/react/export-menu.js.map +1 -0
  142. package/dist/react/find-bar.d.ts +11 -0
  143. package/dist/react/find-bar.d.ts.map +1 -0
  144. package/dist/react/find-bar.js +303 -0
  145. package/dist/react/find-bar.js.map +1 -0
  146. package/dist/react/format-form.d.ts +12 -0
  147. package/dist/react/format-form.d.ts.map +1 -0
  148. package/dist/react/format-form.js +863 -0
  149. package/dist/react/format-form.js.map +1 -0
  150. package/dist/react/formula-menu.d.ts +6 -0
  151. package/dist/react/formula-menu.d.ts.map +1 -0
  152. package/dist/react/formula-menu.js +343 -0
  153. package/dist/react/formula-menu.js.map +1 -0
  154. package/dist/react/grid-body.d.ts +33 -0
  155. package/dist/react/grid-body.d.ts.map +1 -0
  156. package/dist/react/grid-body.js +1389 -0
  157. package/dist/react/grid-body.js.map +1 -0
  158. package/dist/react/group-menu.d.ts +7 -0
  159. package/dist/react/group-menu.d.ts.map +1 -0
  160. package/dist/react/group-menu.js +508 -0
  161. package/dist/react/group-menu.js.map +1 -0
  162. package/dist/react/hooks.d.ts +33 -0
  163. package/dist/react/hooks.d.ts.map +1 -0
  164. package/dist/react/hooks.js +161 -0
  165. package/dist/react/hooks.js.map +1 -0
  166. package/dist/react/messages.d.ts +180 -0
  167. package/dist/react/messages.d.ts.map +1 -0
  168. package/dist/react/messages.js +414 -0
  169. package/dist/react/messages.js.map +1 -0
  170. package/dist/react/save.d.ts +9 -0
  171. package/dist/react/save.d.ts.map +1 -0
  172. package/dist/react/save.js +102 -0
  173. package/dist/react/save.js.map +1 -0
  174. package/dist/react/static-rows.d.ts +9 -0
  175. package/dist/react/static-rows.d.ts.map +1 -0
  176. package/dist/react/static-rows.js +176 -0
  177. package/dist/react/static-rows.js.map +1 -0
  178. package/dist/react/status-bar.d.ts +12 -0
  179. package/dist/react/status-bar.d.ts.map +1 -0
  180. package/dist/react/status-bar.js +413 -0
  181. package/dist/react/status-bar.js.map +1 -0
  182. package/dist/react/toolbar-popover.d.ts +14 -0
  183. package/dist/react/toolbar-popover.d.ts.map +1 -0
  184. package/dist/react/toolbar-popover.js +143 -0
  185. package/dist/react/toolbar-popover.js.map +1 -0
  186. package/dist/react/toolbar.d.ts +13 -0
  187. package/dist/react/toolbar.d.ts.map +1 -0
  188. package/dist/react/toolbar.js +344 -0
  189. package/dist/react/toolbar.js.map +1 -0
  190. package/dist/server.d.ts +22 -0
  191. package/dist/server.d.ts.map +1 -0
  192. package/dist/server.js +45 -0
  193. package/dist/server.js.map +1 -0
  194. package/dist/styles.css +496 -316
  195. package/package.json +43 -18
  196. package/src/canvas/geometry.ts +197 -0
  197. package/src/canvas/grid-canvas.ts +1222 -0
  198. package/src/canvas/hooks.ts +61 -0
  199. package/src/canvas/keys.ts +96 -0
  200. package/src/canvas/layout.ts +77 -0
  201. package/src/canvas/scroll.ts +120 -0
  202. package/src/canvas/text.ts +155 -0
  203. package/src/{theme.ts → canvas/theme.ts} +14 -1
  204. package/src/core/cache.ts +247 -0
  205. package/src/core/checked.ts +64 -0
  206. package/src/core/client.ts +103 -0
  207. package/src/core/conditions.ts +89 -0
  208. package/src/core/evaluate.ts +221 -0
  209. package/src/core/filters.ts +268 -0
  210. package/src/core/format.ts +309 -0
  211. package/src/core/measures.ts +99 -0
  212. package/src/core/request-ids.ts +54 -0
  213. package/src/core/rows.ts +213 -0
  214. package/src/core/store.ts +1122 -0
  215. package/src/core/totals.ts +59 -0
  216. package/src/core/trace.ts +44 -0
  217. package/src/core/transports.ts +177 -0
  218. package/src/core/types.ts +168 -0
  219. package/src/core.ts +39 -0
  220. package/src/index.ts +24 -12
  221. package/src/react/accessible-rows.tsx +242 -0
  222. package/src/react/cell-editor.tsx +216 -0
  223. package/src/react/cell-menu.tsx +166 -0
  224. package/src/react/column-menu.tsx +619 -0
  225. package/src/react/columns-menu.tsx +116 -0
  226. package/src/react/conditions-menu.tsx +289 -0
  227. package/src/react/context.ts +33 -0
  228. package/src/react/data-grid.tsx +286 -0
  229. package/src/react/detail-panel.tsx +92 -0
  230. package/src/react/export-menu.tsx +112 -0
  231. package/src/react/find-bar.tsx +112 -0
  232. package/src/react/format-form.tsx +421 -0
  233. package/src/react/formula-menu.tsx +163 -0
  234. package/src/react/grid-body.tsx +744 -0
  235. package/src/react/group-menu.tsx +214 -0
  236. package/src/react/hooks.ts +104 -0
  237. package/src/react/messages.ts +556 -0
  238. package/src/react/save.ts +42 -0
  239. package/src/react/static-rows.tsx +59 -0
  240. package/src/react/status-bar.tsx +175 -0
  241. package/src/react/toolbar-popover.tsx +69 -0
  242. package/src/react/toolbar.tsx +152 -0
  243. package/src/server.ts +58 -0
  244. package/src/styles.css +496 -316
  245. package/dist/components/bars.d.ts +0 -14
  246. package/dist/components/bars.d.ts.map +0 -1
  247. package/dist/components/bars.js +0 -67
  248. package/dist/components/bars.js.map +0 -1
  249. package/dist/components/cell-inspector.d.ts +0 -11
  250. package/dist/components/cell-inspector.d.ts.map +0 -1
  251. package/dist/components/cell-inspector.js +0 -37
  252. package/dist/components/cell-inspector.js.map +0 -1
  253. package/dist/components/columns-panel.d.ts +0 -12
  254. package/dist/components/columns-panel.d.ts.map +0 -1
  255. package/dist/components/columns-panel.js +0 -11
  256. package/dist/components/columns-panel.js.map +0 -1
  257. package/dist/components/filter-panel.d.ts +0 -17
  258. package/dist/components/filter-panel.d.ts.map +0 -1
  259. package/dist/components/filter-panel.js +0 -165
  260. package/dist/components/filter-panel.js.map +0 -1
  261. package/dist/components/find-bar.d.ts +0 -9
  262. package/dist/components/find-bar.d.ts.map +0 -1
  263. package/dist/components/find-bar.js +0 -46
  264. package/dist/components/find-bar.js.map +0 -1
  265. package/dist/components/popover.d.ts +0 -38
  266. package/dist/components/popover.d.ts.map +0 -1
  267. package/dist/components/popover.js +0 -104
  268. package/dist/components/popover.js.map +0 -1
  269. package/dist/components/stats-panel.d.ts +0 -12
  270. package/dist/components/stats-panel.d.ts.map +0 -1
  271. package/dist/components/stats-panel.js +0 -40
  272. package/dist/components/stats-panel.js.map +0 -1
  273. package/dist/controller.d.ts +0 -218
  274. package/dist/controller.d.ts.map +0 -1
  275. package/dist/controller.js +0 -788
  276. package/dist/controller.js.map +0 -1
  277. package/dist/data-grid.d.ts +0 -51
  278. package/dist/data-grid.d.ts.map +0 -1
  279. package/dist/data-grid.js +0 -698
  280. package/dist/data-grid.js.map +0 -1
  281. package/dist/labels.d.ts +0 -9
  282. package/dist/labels.d.ts.map +0 -1
  283. package/dist/labels.js +0 -38
  284. package/dist/labels.js.map +0 -1
  285. package/dist/messages.d.ts +0 -99
  286. package/dist/messages.d.ts.map +0 -1
  287. package/dist/messages.js +0 -276
  288. package/dist/messages.js.map +0 -1
  289. package/dist/renderer.d.ts +0 -52
  290. package/dist/renderer.d.ts.map +0 -1
  291. package/dist/renderer.js +0 -522
  292. package/dist/renderer.js.map +0 -1
  293. package/dist/text.d.ts +0 -14
  294. package/dist/text.d.ts.map +0 -1
  295. package/dist/text.js +0 -63
  296. package/dist/text.js.map +0 -1
  297. package/dist/theme.d.ts.map +0 -1
  298. package/dist/theme.js +0 -54
  299. package/dist/theme.js.map +0 -1
  300. package/src/components/bars.tsx +0 -179
  301. package/src/components/cell-inspector.tsx +0 -70
  302. package/src/components/columns-panel.tsx +0 -59
  303. package/src/components/filter-panel.tsx +0 -290
  304. package/src/components/find-bar.tsx +0 -104
  305. package/src/components/popover.tsx +0 -194
  306. package/src/components/stats-panel.tsx +0 -153
  307. package/src/controller.ts +0 -887
  308. package/src/data-grid.tsx +0 -1029
  309. package/src/labels.ts +0 -46
  310. package/src/messages.ts +0 -390
  311. package/src/renderer.ts +0 -535
  312. package/src/text.ts +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"names":["use","useEffect","useId","useLayoutEffect","useRef","useState","useTransition","isBlank","joinParts","measureTakes","textOf","conditionsOf","FilterTextError","filterParts","operatorsFor","readFilter","takesNoValue","measureName","offers","statisticsOf","TOTALS","LocaleContext","FormatForm","useGridSelector","useGridStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","BLANK","keyOf","value","column","JSON","stringify","filterCommand","filter","parts","cause","command","name","where","SEARCH_DELAY","FilterForm","t0","$","_c","onDone","store","messages","number","id","_temp","lists","_temp2","t1","initial","read","operators","type","search","setSearch","list","setList","failure","setFailure","t2","kind","exclude","base","setBase","t3","map","Map","values","set","blank","toggled","setToggled","operator","setOperator","includes","first","setFirst","second","setSecond","error","setError","pending","startApply","t4","t5","abort","AbortController","timer","setTimeout","signal","then","result","catch","aborted","Error","message","String","clearTimeout","apply","conditionOn","t10","t11","t6","t7","t8","t9","items","item","key","same","find","other","count","push","checked","key_0","has","allChecked","size","every","item_0","toggle","key_1","value_0","current","next","delete","t12","flatMap","_temp3","filterOf","t13","invalidValue","outcome","dispatch","ok","t14","event","preventDefault","submit","label","value_2","t15","t16","filterBy","className","children","otherConditions","valuesSearch","placeholder","onChange","event_0","target","event_1","selectAll","item_1","format","loading","failed","truncated","valuesTruncated","length","condition","Symbol","for","event_2","t17","conditionNone","t18","item_2","t19","t20","t21","minimum","event_3","t22","maximum","event_4","t23","t24","role","t25","t26","clearFilter","onClick","t27","t28","t29","key_2","value_1","snapshot_0","capabilities","snapshot","table","plan","aggregate","measures","document","Statistics","_temp4","setResult","statistics","_temp5","columns","undefined","text","rows","Number","statistic_0","statisticNames","statistic","nulls","measure","ColumnMenu","onClose","ref","panel","setPanel","shown","setShown","displayed","entry","_temp6","hidden","_temp7","sort","_temp8","_temp9","grouped","_temp0","ready","_temp1","menu","matches","showPopover","querySelector","focus","menu_0","rect","getBoundingClientRect","style","left","Math","max","min","x","window","innerWidth","width","top","y","innerHeight","height","newState","onToggle","popover","hidePopover","close","run","sorts","own","others","direction","add","keys","sortBy","filters","pin","setting","fn","totals","Set","groupBy","rest","ungroupBy","back","columnMenu","total","moveFocus","MenuItem","radio","noTotal","fn_0","measureNames","sortAscending","sortDescending","thenSortAscending","thenSortDescending","clearSort","groupByColumn","removeFromGroups","ungroup","autoFit","side","pinLeft","pinRight","unpin","disabled","names","hideColumn","all","showAllColumns","snapshot_5","status","snapshot_4","snapshot_3","snapshot_2","snapshot_1","view","currentTarget","querySelectorAll","at","indexOf","activeElement"],"sources":["column-menu.tsx"],"sourcesContent":["import {\n type FormEvent,\n type KeyboardEvent,\n type ToggleEvent,\n use,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n useTransition,\n} from \"react\";\nimport {\n type Column,\n type Expr,\n type GridCommand,\n isBlank,\n type JsonValue,\n joinParts,\n measureTakes,\n type SortDirection,\n textOf,\n} from \"vastgrid-spec\";\nimport {\n type ColumnFilter,\n conditionsOf,\n type FilterOperator,\n FilterTextError,\n filterParts,\n operatorsFor,\n readFilter,\n takesNoValue,\n} from \"../core/filters.js\";\nimport { measureName, offers, statisticsOf, TOTALS } from \"../core/measures.js\";\nimport { LocaleContext } from \"./context.js\";\nimport { FormatForm } from \"./format-form.js\";\nimport { useGridSelector, useGridStore } from \"./hooks.js\";\n\n/** Where the column menu opens: a column of the view, at a point of the page. */\nexport interface MenuTarget {\n column: string;\n x: number;\n y: number;\n}\n\n/** The key of a value in the list; blank values (§3.2) share one. */\nconst BLANK = \"\\u0000blank\";\n\nfunction keyOf(value: JsonValue, column: Column) {\n return isBlank(value, column) ? BLANK : JSON.stringify(value);\n}\n\n/** `filter.column` with the parts of a filter, or null when its text is not a value of the column. */\nfunction filterCommand(filter: ColumnFilter | null, column: Column): GridCommand | null {\n let parts: Expr[] = [];\n try {\n if (filter) parts = filterParts(filter, column);\n } catch (cause) {\n if (cause instanceof FilterTextError) return null;\n throw cause;\n }\n return { command: \"filter.column\", column: column.name, where: joinParts(parts) ?? null };\n}\n\n/** How long typing in the values' search box must pause before the list is read again. */\nconst SEARCH_DELAY = 250;\n\n/**\n * The filter of one column (§6.2.1): a list of its values with how many rows have each, read under the other\n * filters (`GridStore.values`) when the engine groups rows, and a condition on typed text. Applying dispatches\n * `filter.column` with the parts it makes, replacing the column's conditions.\n */\nfunction FilterForm({ column, onDone }: { column: Column; onDone: () => void }) {\n const store = useGridStore();\n const { messages, number } = use(LocaleContext);\n const id = useId();\n const parts = useGridSelector((snapshot) => snapshot.document.plan?.where);\n const lists = useGridSelector((snapshot) => {\n const capabilities = snapshot.table?.capabilities;\n return capabilities?.plan?.aggregate !== false && (capabilities?.measures?.includes(\"count\") ?? true);\n });\n const [initial] = useState(() => readFilter(conditionsOf(parts, column.name), column.name));\n const read = initial === \"other\" ? null : initial;\n const operators = operatorsFor(column.type);\n const [search, setSearch] = useState(\"\");\n const [list, setList] = useState<{ values: { value: JsonValue; count: number }[]; truncated: boolean } | null>(null);\n const [failure, setFailure] = useState<string | null>(null);\n // Values not toggled follow `base`; `toggled` holds the values changed from it.\n const [base, setBase] = useState(() => !(read?.kind === \"values\" && !read.exclude));\n const [toggled, setToggled] = useState(() => {\n const map = new Map<string, JsonValue>();\n if (read?.kind !== \"values\") return map;\n for (const value of read.values) map.set(keyOf(value, column), value);\n if (read.blank) map.set(BLANK, null);\n return map;\n });\n const [operator, setOperator] = useState<FilterOperator | \"none\">(\n read?.kind === \"condition\" && operators.includes(read.operator) ? read.operator : \"none\",\n );\n const [first, setFirst] = useState(read?.kind === \"condition\" ? read.first : \"\");\n const [second, setSecond] = useState(read?.kind === \"condition\" ? read.second : \"\");\n const [error, setError] = useState<string | null>(null);\n const [pending, startApply] = useTransition();\n\n useEffect(() => {\n if (!lists) return;\n const abort = new AbortController();\n const timer = setTimeout(\n () => {\n store\n .values(column.name, { search }, abort.signal)\n .then((result) => {\n setList(result);\n setFailure(null);\n })\n .catch((cause: unknown) => {\n if (!abort.signal.aborted) setFailure(cause instanceof Error ? cause.message : String(cause));\n });\n },\n search ? SEARCH_DELAY : 0,\n );\n return () => {\n clearTimeout(timer);\n abort.abort();\n };\n }, [store, lists, column.name, search]);\n\n // Blank values (null and the empty string) are one item.\n const items: { key: string; value: JsonValue; count: number }[] = [];\n for (const item of list?.values ?? []) {\n const key = keyOf(item.value, column);\n const same = items.find((other) => other.key === key);\n if (same) same.count += item.count;\n else items.push({ key, value: item.value, count: item.count });\n }\n const checked = (key: string) => (toggled.has(key) ? !base : base);\n const conditionOn = operator !== \"none\";\n const allChecked = toggled.size === 0 ? base : base && items.every((item) => checked(item.key));\n\n const toggle = (key: string, value: JsonValue) =>\n setToggled((current) => {\n const next = new Map(current);\n if (next.has(key)) next.delete(key);\n else next.set(key, value);\n return next;\n });\n\n const filterOf = (): ColumnFilter | null => {\n if (conditionOn) return { kind: \"condition\", operator, first, second };\n if (base && toggled.size === 0) return null;\n const values = [...toggled].flatMap(([key, value]) => (key === BLANK ? [] : [value]));\n return { kind: \"values\", values, blank: toggled.has(BLANK), exclude: base };\n };\n\n const apply = (filter: ColumnFilter | null) => {\n const command = filterCommand(filter, column);\n if (!command) {\n setError(messages.invalidValue(column.name));\n return;\n }\n startApply(async () => {\n const outcome = await store.dispatch(command);\n if (!outcome.ok) {\n setError(outcome.error.message);\n return;\n }\n onDone();\n });\n };\n\n const submit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n apply(filterOf());\n };\n\n const label = (value: JsonValue) => (isBlank(value, column) ? messages.blank : (textOf(value, column) ?? \"\"));\n\n return (\n <form className=\"vg-filter\" onSubmit={submit} aria-labelledby={`${id}-title`}>\n <p className=\"vg-filter__title\" id={`${id}-title`}>\n {messages.filterBy(column.name)}\n </p>\n {initial === \"other\" && <p className=\"vg-filter__note\">{messages.otherConditions}</p>}\n {lists && (\n <>\n <input\n type=\"search\"\n className=\"vg-input\"\n aria-label={messages.valuesSearch}\n placeholder={messages.valuesSearch}\n value={search}\n disabled={conditionOn}\n onChange={(event) => setSearch(event.target.value)}\n />\n <fieldset\n className=\"vg-filter__values\"\n aria-labelledby={`${id}-title`}\n aria-busy={list === null}\n disabled={conditionOn}\n >\n {!search && (\n <label className=\"vg-filter__value\">\n <input\n type=\"checkbox\"\n checked={allChecked}\n onChange={(event) => {\n setBase(event.target.checked);\n setToggled(new Map());\n }}\n />\n <span>{messages.selectAll}</span>\n </label>\n )}\n {items.map((item) => (\n <label className=\"vg-filter__value\" key={item.key}>\n <input type=\"checkbox\" checked={checked(item.key)} onChange={() => toggle(item.key, item.value)} />\n <span className=\"vg-filter__label\">{label(item.value)}</span>\n <span className=\"vg-filter__count\">{number.format(item.count)}</span>\n </label>\n ))}\n {list === null && failure === null && <p className=\"vg-filter__note\">{messages.loading}</p>}\n {failure !== null && <p className=\"vg-filter__error\">{messages.failed(failure)}</p>}\n </fieldset>\n {list?.truncated && (\n <p className=\"vg-filter__note\">{messages.valuesTruncated(number.format(list.values.length))}</p>\n )}\n </>\n )}\n <fieldset className=\"vg-filter__condition\">\n <legend>{messages.condition}</legend>\n <select\n className=\"vg-input\"\n aria-label={messages.condition}\n value={operator}\n onChange={(event) => setOperator(event.target.value as FilterOperator | \"none\")}\n >\n <option value=\"none\">{messages.conditionNone}</option>\n {operators.map((item) => (\n <option key={item} value={item}>\n {messages.operators[item]}\n </option>\n ))}\n </select>\n {conditionOn && !takesNoValue(operator) && (\n <input\n className=\"vg-input\"\n aria-label={operator === \"between\" ? messages.minimum : messages.value}\n placeholder={operator === \"between\" ? messages.minimum : messages.value}\n aria-invalid={error !== null}\n value={first}\n onChange={(event) => setFirst(event.target.value)}\n />\n )}\n {operator === \"between\" && (\n <input\n className=\"vg-input\"\n aria-label={messages.maximum}\n placeholder={messages.maximum}\n aria-invalid={error !== null}\n value={second}\n onChange={(event) => setSecond(event.target.value)}\n />\n )}\n </fieldset>\n {error !== null && (\n <p role=\"alert\" className=\"vg-filter__error\">\n {error}\n </p>\n )}\n <div className=\"vg-filter__actions\">\n <button type=\"button\" className=\"vg-button\" disabled={pending} onClick={() => apply(null)}>\n {messages.clearFilter}\n </button>\n <button type=\"submit\" className=\"vg-button vg-button--primary\" disabled={pending}>\n {messages.apply}\n </button>\n </div>\n </form>\n );\n}\n\n/**\n * The statistics of a column over the rows of the view (`GridStore.aggregate`): the rows, the values and the empty\n * ones, the distinct values, and the measures that take its type, read by the engine when the panel opens.\n */\nfunction Statistics({ column }: { column: Column }) {\n const store = useGridStore();\n const { messages, number } = use(LocaleContext);\n const capabilities = useGridSelector((snapshot) => snapshot.table?.capabilities);\n const [result, setResult] = useState<{\n values: Record<string, JsonValue>;\n columns: Record<string, Column>;\n } | null>(null);\n const [failure, setFailure] = useState<string | null>(null);\n const statistics = statisticsOf(column, capabilities);\n\n useEffect(() => {\n const abort = new AbortController();\n store\n .aggregate(\n statisticsOf(column, capabilities).map((statistic) => statistic.measure),\n abort.signal,\n )\n .then((read) => {\n setResult(read);\n setFailure(null);\n })\n .catch((cause: unknown) => {\n if (!abort.signal.aborted) setFailure(cause instanceof Error ? cause.message : String(cause));\n });\n return () => abort.abort();\n }, [store, column, capabilities]);\n\n const text = (name: string) => {\n const value = result?.values[name];\n if (value === undefined || value === null) return \"\";\n if (typeof value === \"number\") return number.format(value);\n return textOf(value, result?.columns[name] ?? column) ?? \"\";\n };\n const rows = Number(result?.values.rows ?? 0);\n const values = Number(result?.values.values ?? 0);\n return (\n <section className=\"vg-statistics\" aria-label={messages.statisticsOf(column.name)} aria-busy={result === null}>\n <p className=\"vg-filter__title\">{messages.statisticsOf(column.name)}</p>\n {failure !== null && <p className=\"vg-filter__error\">{messages.failed(failure)}</p>}\n {failure === null && result === null && <p className=\"vg-filter__note\">{messages.loading}</p>}\n {result && (\n <dl className=\"vg-statistics__list\">\n {statistics.flatMap((statistic) => [\n <div key={statistic.kind}>\n <dt>{messages.statisticNames[statistic.kind]}</dt>\n <dd>{text(statistic.kind)}</dd>\n </div>,\n // The empty values (null) follow the values.\n ...(statistic.kind === \"values\"\n ? [\n <div key=\"nulls\">\n <dt>{messages.statisticNames.nulls}</dt>\n <dd>{number.format(rows - values)}</dd>\n </div>,\n ]\n : []),\n ])}\n </dl>\n )}\n </section>\n );\n}\n\n/**\n * The menu of a column of the view, opened from its header (the arrow at its right, a right click, or Alt+↓ on the\n * active cell): sorting by it (§6.2), its filter, and its pin, width and visibility (§6.3), all as commands. It is\n * a popover: Esc and a click outside close it, and the focus goes back to the grid.\n */\nexport function ColumnMenu({ target, onClose }: { target: MenuTarget | null; onClose: () => void }) {\n const store = useGridStore();\n const { messages } = use(LocaleContext);\n const ref = useRef<HTMLDivElement>(null);\n const [panel, setPanel] = useState<\"filter\" | \"statistics\" | \"total\" | \"format\" | null>(null);\n const [shown, setShown] = useState(target);\n if (shown !== target) {\n setShown(target);\n setPanel(null);\n }\n const name = target?.column;\n const item = useGridSelector((snapshot) => snapshot.displayed.find((entry) => entry.column.name === name));\n const displayed = useGridSelector((snapshot) => snapshot.displayed.length);\n const hidden = useGridSelector((snapshot) => (snapshot.view?.columns.length ?? 0) > snapshot.displayed.length);\n const sort = useGridSelector((snapshot) => snapshot.document.plan?.sort);\n const aggregate = useGridSelector((snapshot) => snapshot.document.plan?.aggregate);\n const grouped = aggregate !== undefined;\n const capabilities = useGridSelector((snapshot) => snapshot.table?.capabilities);\n const ready = useGridSelector((snapshot) => snapshot.table?.status === \"ready\");\n\n useLayoutEffect(() => {\n const menu = ref.current;\n if (!menu || !target) return;\n if (!menu.matches(\":popover-open\")) menu.showPopover();\n menu.querySelector<HTMLElement>(\"button:not(:disabled), input, select\")?.focus();\n }, [target]);\n\n // The menu opens at its point, kept inside the window.\n useLayoutEffect(() => {\n const menu = ref.current;\n if (!menu || !target) return;\n const rect = menu.getBoundingClientRect();\n menu.style.left = `${Math.max(8, Math.min(target.x, window.innerWidth - rect.width - 8))}px`;\n menu.style.top = `${Math.max(8, Math.min(target.y, window.innerHeight - rect.height - 8))}px`;\n });\n\n const onToggle = (event: ToggleEvent<HTMLDivElement>) => {\n if (event.newState === \"closed\") onClose();\n };\n\n if (!target || !item) {\n return <div ref={ref} popover=\"auto\" className=\"vg-menu vg-column-menu\" onToggle={onToggle} />;\n }\n const column = item.column;\n const close = () => ref.current?.hidePopover();\n const run = (command: GridCommand) => {\n close();\n void store.dispatch(command);\n };\n const sorts = capabilities?.plan?.sort !== false;\n const own = sort?.find((key) => key.column === column.name);\n const others = (sort ?? []).filter((key) => key.column !== column.name);\n const sortBy = (direction: SortDirection, add: boolean) =>\n run({ command: \"sort.set\", keys: [...(add ? others : []), { column: column.name, direction }] });\n const filters = ready && !grouped && capabilities?.plan?.where !== false;\n const pin = item.setting.pin;\n const measures = ready && !grouped && offers(capabilities, \"count\");\n const totals = TOTALS.filter((fn) => offers(capabilities, fn) && measureTakes(fn, column));\n const keys = aggregate?.keys ?? [];\n const groupBy = () =>\n run({\n command: \"group.set\",\n aggregate: {\n keys: [column.name],\n measures: [{ name: measureName(\"count\", undefined, new Set([column.name])), fn: \"count\" }],\n },\n });\n const ungroupBy = () => {\n const rest = keys.filter((key) => key !== column.name);\n run(\n rest.length === 0 || !aggregate\n ? { command: \"group.clear\" }\n : { command: \"group.set\", aggregate: { ...aggregate, keys: rest } },\n );\n };\n const back = (\n <button type=\"button\" className=\"vg-menu__item\" onClick={() => setPanel(null)}>\n ← {messages.back}\n </button>\n );\n\n return (\n <div\n ref={ref}\n popover=\"auto\"\n role=\"dialog\"\n className=\"vg-menu vg-column-menu\"\n aria-label={messages.columnMenu(column.name)}\n onToggle={onToggle}\n >\n {panel === \"filter\" ? (\n <>\n {back}\n <FilterForm key={column.name} column={column} onDone={close} />\n </>\n ) : panel === \"format\" ? (\n <>\n {back}\n <FormatForm key={column.name} column={column} setting={item.setting} onDone={close} />\n </>\n ) : panel === \"statistics\" ? (\n <>\n {back}\n <Statistics key={column.name} column={column} />\n </>\n ) : panel === \"total\" ? (\n <>\n {back}\n <div role=\"menu\" aria-label={messages.total} onKeyDown={moveFocus}>\n <MenuItem\n radio\n checked={item.setting.total === undefined}\n onClick={() => run({ command: \"column.total\", name: column.name, total: null })}\n >\n {messages.noTotal}\n </MenuItem>\n {totals.map((fn) => (\n <MenuItem\n key={fn}\n radio\n checked={item.setting.total?.fn === fn}\n onClick={() => run({ command: \"column.total\", name: column.name, total: { fn } })}\n >\n {messages.measureNames[fn]}\n </MenuItem>\n ))}\n </div>\n </>\n ) : (\n <div role=\"menu\" aria-label={messages.columnMenu(column.name)} onKeyDown={moveFocus}>\n {sorts && (\n <>\n <MenuItem checked={own?.direction === \"asc\" && others.length === 0} onClick={() => sortBy(\"asc\", false)}>\n {messages.sortAscending}\n </MenuItem>\n <MenuItem\n checked={own?.direction === \"desc\" && others.length === 0}\n onClick={() => sortBy(\"desc\", false)}\n >\n {messages.sortDescending}\n </MenuItem>\n {others.length > 0 && (\n <>\n <MenuItem onClick={() => sortBy(\"asc\", true)}>{messages.thenSortAscending}</MenuItem>\n <MenuItem onClick={() => sortBy(\"desc\", true)}>{messages.thenSortDescending}</MenuItem>\n </>\n )}\n {sort && sort.length > 0 && (\n <MenuItem onClick={() => run({ command: \"sort.clear\" })}>{messages.clearSort}</MenuItem>\n )}\n <hr className=\"vg-menu__line\" />\n </>\n )}\n {filters && <MenuItem onClick={() => setPanel(\"filter\")}>{messages.filter}</MenuItem>}\n {measures && <MenuItem onClick={() => setPanel(\"statistics\")}>{messages.statistics}</MenuItem>}\n {!grouped && totals.length > 0 && (\n <MenuItem onClick={() => setPanel(\"total\")}>\n {item.setting.total\n ? `${messages.total}: ${messages.measureNames[item.setting.total.fn]}`\n : `${messages.total}…`}\n </MenuItem>\n )}\n {measures && capabilities?.plan?.aggregate !== false && (\n <MenuItem onClick={groupBy}>{messages.groupByColumn}</MenuItem>\n )}\n {keys.includes(column.name) && <MenuItem onClick={ungroupBy}>{messages.removeFromGroups}</MenuItem>}\n {grouped && <MenuItem onClick={() => run({ command: \"group.clear\" })}>{messages.ungroup}</MenuItem>}\n {(filters || measures || grouped || totals.length > 0) && <hr className=\"vg-menu__line\" />}\n <MenuItem onClick={() => setPanel(\"format\")}>{messages.format}</MenuItem>\n <MenuItem onClick={() => run({ command: \"column.resize\", name: column.name, width: null })}>\n {messages.autoFit}\n </MenuItem>\n {pin !== \"left\" && (\n <MenuItem onClick={() => run({ command: \"column.pin\", name: column.name, side: \"left\" })}>\n {messages.pinLeft}\n </MenuItem>\n )}\n {pin !== \"right\" && (\n <MenuItem onClick={() => run({ command: \"column.pin\", name: column.name, side: \"right\" })}>\n {messages.pinRight}\n </MenuItem>\n )}\n {pin !== undefined && (\n <MenuItem onClick={() => run({ command: \"column.pin\", name: column.name, side: null })}>\n {messages.unpin}\n </MenuItem>\n )}\n <MenuItem disabled={displayed <= 1} onClick={() => run({ command: \"column.hide\", names: [column.name] })}>\n {messages.hideColumn}\n </MenuItem>\n {hidden && (\n <MenuItem onClick={() => run({ command: \"column.show\", all: true })}>{messages.showAllColumns}</MenuItem>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/** Arrows, Home and End move the focus among the items of a menu (the menu pattern of the ARIA Authoring Practices). */\nfunction moveFocus(event: KeyboardEvent<HTMLDivElement>) {\n const items = [...event.currentTarget.querySelectorAll<HTMLButtonElement>(\"button:not(:disabled)\")];\n const at = items.indexOf(document.activeElement as HTMLButtonElement);\n const next =\n event.key === \"ArrowDown\"\n ? (at + 1) % items.length\n : event.key === \"ArrowUp\"\n ? (at - 1 + items.length) % items.length\n : event.key === \"Home\"\n ? 0\n : event.key === \"End\"\n ? items.length - 1\n : -1;\n if (next < 0 || items.length === 0) return;\n event.preventDefault();\n items[next].focus();\n}\n\nfunction MenuItem({\n checked,\n radio,\n disabled,\n onClick,\n children,\n}: {\n checked?: boolean;\n radio?: boolean;\n disabled?: boolean;\n onClick: () => void;\n children: string;\n}) {\n if (checked === undefined) {\n return (\n <button type=\"button\" role=\"menuitem\" className=\"vg-menu__item\" disabled={disabled} onClick={onClick}>\n {children}\n </button>\n );\n }\n if (radio) {\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={checked}\n className=\"vg-menu__item\"\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n }\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n aria-checked={checked}\n className=\"vg-menu__item\"\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The content of the toolbar's columns menu, loaded when it first opens (§6.3 of the specification): every column of the view, the displayed ones in display
3
+ * order and then the hidden ones, each with a check box that shows or hides it (`column.show`, `column.hide`) and
4
+ * buttons that move it by one place (`column.move`), and a box that finds columns by name.
5
+ */
6
+ export default function ColumnsPanel(): import("react").JSX.Element | null;
7
+ //# sourceMappingURL=columns-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns-menu.d.ts","sourceRoot":"","sources":["../../src/react/columns-menu.tsx"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,uCAyGnC"}
@@ -0,0 +1,249 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { use, useState, useTransition } from "react";
3
+ import { LocaleContext } from "./context.js";
4
+ import { useGridSelector, useGridStore } from "./hooks.js";
5
+
6
+ /**
7
+ * The content of the toolbar's columns menu, loaded when it first opens (§6.3 of the specification): every column of the view, the displayed ones in display
8
+ * order and then the hidden ones, each with a check box that shows or hides it (`column.show`, `column.hide`) and
9
+ * buttons that move it by one place (`column.move`), and a box that finds columns by name.
10
+ */
11
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ export default function ColumnsPanel() {
13
+ const $ = _c(43);
14
+ const store = useGridStore();
15
+ const {
16
+ messages
17
+ } = use(LocaleContext);
18
+ const displayed = useGridSelector(_temp);
19
+ const view = useGridSelector(_temp2);
20
+ const [find, setFind] = useState("");
21
+ const [error, setError] = useState(null);
22
+ const [pending, startDispatch] = useTransition();
23
+ if (!view) {
24
+ return null;
25
+ }
26
+ let t0;
27
+ if ($[0] !== displayed) {
28
+ t0 = new Set(displayed.map(_temp3));
29
+ $[0] = displayed;
30
+ $[1] = t0;
31
+ } else {
32
+ t0 = $[1];
33
+ }
34
+ const shown = t0;
35
+ let hidden;
36
+ let run;
37
+ let t1;
38
+ let t2;
39
+ let t3;
40
+ let t4;
41
+ let t5;
42
+ if ($[2] !== displayed || $[3] !== find || $[4] !== messages || $[5] !== pending || $[6] !== shown || $[7] !== store || $[8] !== view) {
43
+ let t6;
44
+ if ($[16] !== shown) {
45
+ t6 = column => !shown.has(column.name);
46
+ $[16] = shown;
47
+ $[17] = t6;
48
+ } else {
49
+ t6 = $[17];
50
+ }
51
+ hidden = view.filter(t6);
52
+ const needle = find.trim().toLowerCase();
53
+ const matches = name => needle === "" || name.toLowerCase().includes(needle);
54
+ let t7;
55
+ if ($[18] !== store) {
56
+ t7 = command => startDispatch(async () => {
57
+ const outcome = await store.dispatch(command);
58
+ setError(outcome.ok ? null : outcome.error.message);
59
+ });
60
+ $[18] = store;
61
+ $[19] = t7;
62
+ } else {
63
+ t7 = $[19];
64
+ }
65
+ run = t7;
66
+ let t8;
67
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
68
+ t8 = event => setFind(event.target.value);
69
+ $[20] = t8;
70
+ } else {
71
+ t8 = $[20];
72
+ }
73
+ if ($[21] !== find || $[22] !== messages.findColumn) {
74
+ t5 = /*#__PURE__*/_jsx("input", {
75
+ type: "search",
76
+ className: "vg-input",
77
+ "aria-label": messages.findColumn,
78
+ placeholder: messages.findColumn,
79
+ value: find,
80
+ onChange: t8
81
+ });
82
+ $[21] = find;
83
+ $[22] = messages.findColumn;
84
+ $[23] = t5;
85
+ } else {
86
+ t5 = $[23];
87
+ }
88
+ t1 = "vg-columns__list";
89
+ t2 = pending;
90
+ t3 = displayed.map((item_0, index) => matches(item_0.column.name) ? /*#__PURE__*/_jsxs("li", {
91
+ className: "vg-columns__item",
92
+ children: [/*#__PURE__*/_jsxs("label", {
93
+ children: [/*#__PURE__*/_jsx("input", {
94
+ type: "checkbox",
95
+ checked: true,
96
+ onChange: () => run({
97
+ command: "column.hide",
98
+ names: [item_0.column.name]
99
+ })
100
+ }), /*#__PURE__*/_jsx("span", {
101
+ className: "vg-filter__label",
102
+ children: item_0.column.name
103
+ })]
104
+ }), item_0.setting.pin && /*#__PURE__*/_jsx("span", {
105
+ className: "vg-filter__count",
106
+ children: messages.pinned[item_0.setting.pin]
107
+ }), /*#__PURE__*/_jsx("button", {
108
+ type: "button",
109
+ className: "vg-button vg-button--small",
110
+ "aria-label": messages.moveUp(item_0.column.name),
111
+ disabled: index === 0,
112
+ onClick: () => run({
113
+ command: "column.move",
114
+ names: [item_0.column.name],
115
+ before: displayed[index - 1].column.name
116
+ }),
117
+ children: "\u2191"
118
+ }), /*#__PURE__*/_jsx("button", {
119
+ type: "button",
120
+ className: "vg-button vg-button--small",
121
+ "aria-label": messages.moveDown(item_0.column.name),
122
+ disabled: index === displayed.length - 1,
123
+ onClick: () => run({
124
+ command: "column.move",
125
+ names: [item_0.column.name],
126
+ before: displayed[index + 2]?.column.name ?? null
127
+ }),
128
+ children: "\u2193"
129
+ })]
130
+ }, item_0.column.name) : null);
131
+ let t9;
132
+ if ($[24] !== run) {
133
+ t9 = column_1 => /*#__PURE__*/_jsx("li", {
134
+ className: "vg-columns__item",
135
+ children: /*#__PURE__*/_jsxs("label", {
136
+ children: [/*#__PURE__*/_jsx("input", {
137
+ type: "checkbox",
138
+ checked: false,
139
+ onChange: () => run({
140
+ command: "column.show",
141
+ names: [column_1.name]
142
+ })
143
+ }), /*#__PURE__*/_jsx("span", {
144
+ className: "vg-filter__label",
145
+ children: column_1.name
146
+ })]
147
+ })
148
+ }, column_1.name);
149
+ $[24] = run;
150
+ $[25] = t9;
151
+ } else {
152
+ t9 = $[25];
153
+ }
154
+ t4 = hidden.filter(column_0 => matches(column_0.name)).map(t9);
155
+ $[2] = displayed;
156
+ $[3] = find;
157
+ $[4] = messages;
158
+ $[5] = pending;
159
+ $[6] = shown;
160
+ $[7] = store;
161
+ $[8] = view;
162
+ $[9] = hidden;
163
+ $[10] = run;
164
+ $[11] = t1;
165
+ $[12] = t2;
166
+ $[13] = t3;
167
+ $[14] = t4;
168
+ $[15] = t5;
169
+ } else {
170
+ hidden = $[9];
171
+ run = $[10];
172
+ t1 = $[11];
173
+ t2 = $[12];
174
+ t3 = $[13];
175
+ t4 = $[14];
176
+ t5 = $[15];
177
+ }
178
+ let t6;
179
+ if ($[26] !== t1 || $[27] !== t2 || $[28] !== t3 || $[29] !== t4) {
180
+ t6 = /*#__PURE__*/_jsxs("ul", {
181
+ className: t1,
182
+ "aria-busy": t2,
183
+ children: [t3, t4]
184
+ });
185
+ $[26] = t1;
186
+ $[27] = t2;
187
+ $[28] = t3;
188
+ $[29] = t4;
189
+ $[30] = t6;
190
+ } else {
191
+ t6 = $[30];
192
+ }
193
+ let t7;
194
+ if ($[31] !== error) {
195
+ t7 = error !== null && /*#__PURE__*/_jsx("p", {
196
+ role: "alert",
197
+ className: "vg-filter__error",
198
+ children: error
199
+ });
200
+ $[31] = error;
201
+ $[32] = t7;
202
+ } else {
203
+ t7 = $[32];
204
+ }
205
+ let t8;
206
+ if ($[33] !== hidden.length || $[34] !== messages.showAllColumns || $[35] !== pending || $[36] !== run) {
207
+ t8 = hidden.length > 0 && /*#__PURE__*/_jsx("button", {
208
+ type: "button",
209
+ className: "vg-menu__item",
210
+ disabled: pending,
211
+ onClick: () => run({
212
+ command: "column.show",
213
+ all: true
214
+ }),
215
+ children: messages.showAllColumns
216
+ });
217
+ $[33] = hidden.length;
218
+ $[34] = messages.showAllColumns;
219
+ $[35] = pending;
220
+ $[36] = run;
221
+ $[37] = t8;
222
+ } else {
223
+ t8 = $[37];
224
+ }
225
+ let t9;
226
+ if ($[38] !== t5 || $[39] !== t6 || $[40] !== t7 || $[41] !== t8) {
227
+ t9 = /*#__PURE__*/_jsxs(_Fragment, {
228
+ children: [t5, t6, t7, t8]
229
+ });
230
+ $[38] = t5;
231
+ $[39] = t6;
232
+ $[40] = t7;
233
+ $[41] = t8;
234
+ $[42] = t9;
235
+ } else {
236
+ t9 = $[42];
237
+ }
238
+ return t9;
239
+ }
240
+ function _temp3(item) {
241
+ return item.column.name;
242
+ }
243
+ function _temp2(snapshot_0) {
244
+ return snapshot_0.view?.columns;
245
+ }
246
+ function _temp(snapshot) {
247
+ return snapshot.displayed;
248
+ }
249
+ //# sourceMappingURL=columns-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["use","useState","useTransition","LocaleContext","useGridSelector","useGridStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ColumnsPanel","$","_c","store","messages","displayed","_temp","view","_temp2","find","setFind","error","setError","pending","startDispatch","t0","Set","map","_temp3","shown","hidden","run","t1","t2","t3","t4","t5","t6","column","has","name","filter","needle","trim","toLowerCase","matches","includes","t7","command","outcome","dispatch","ok","message","t8","Symbol","for","event","target","value","findColumn","type","className","placeholder","onChange","item_0","index","item","children","checked","names","setting","pin","pinned","moveUp","disabled","onClick","before","moveDown","length","t9","column_1","column_0","role","showAllColumns","all","snapshot_0","snapshot","columns"],"sources":["columns-menu.tsx"],"sourcesContent":["import { use, useState, useTransition } from \"react\";\nimport type { GridCommand } from \"vastgrid-spec\";\nimport { LocaleContext } from \"./context.js\";\nimport { useGridSelector, useGridStore } from \"./hooks.js\";\n\n/**\n * The content of the toolbar's columns menu, loaded when it first opens (§6.3 of the specification): every column of the view, the displayed ones in display\n * order and then the hidden ones, each with a check box that shows or hides it (`column.show`, `column.hide`) and\n * buttons that move it by one place (`column.move`), and a box that finds columns by name.\n */\nexport default function ColumnsPanel() {\n const store = useGridStore();\n const { messages } = use(LocaleContext);\n const displayed = useGridSelector((snapshot) => snapshot.displayed);\n const view = useGridSelector((snapshot) => snapshot.view?.columns);\n const [find, setFind] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const [pending, startDispatch] = useTransition();\n if (!view) return null;\n\n const shown = new Set(displayed.map((item) => item.column.name));\n const hidden = view.filter((column) => !shown.has(column.name));\n const needle = find.trim().toLowerCase();\n const matches = (name: string) => needle === \"\" || name.toLowerCase().includes(needle);\n\n const run = (command: GridCommand) =>\n startDispatch(async () => {\n const outcome = await store.dispatch(command);\n setError(outcome.ok ? null : outcome.error.message);\n });\n\n return (\n <>\n <input\n type=\"search\"\n className=\"vg-input\"\n aria-label={messages.findColumn}\n placeholder={messages.findColumn}\n value={find}\n onChange={(event) => setFind(event.target.value)}\n />\n <ul className=\"vg-columns__list\" aria-busy={pending}>\n {displayed.map((item, index) =>\n matches(item.column.name) ? (\n <li key={item.column.name} className=\"vg-columns__item\">\n <label>\n <input\n type=\"checkbox\"\n checked\n onChange={() => run({ command: \"column.hide\", names: [item.column.name] })}\n />\n <span className=\"vg-filter__label\">{item.column.name}</span>\n </label>\n {item.setting.pin && <span className=\"vg-filter__count\">{messages.pinned[item.setting.pin]}</span>}\n <button\n type=\"button\"\n className=\"vg-button vg-button--small\"\n aria-label={messages.moveUp(item.column.name)}\n disabled={index === 0}\n onClick={() =>\n run({ command: \"column.move\", names: [item.column.name], before: displayed[index - 1].column.name })\n }\n >\n ↑\n </button>\n <button\n type=\"button\"\n className=\"vg-button vg-button--small\"\n aria-label={messages.moveDown(item.column.name)}\n disabled={index === displayed.length - 1}\n onClick={() =>\n run({\n command: \"column.move\",\n names: [item.column.name],\n before: displayed[index + 2]?.column.name ?? null,\n })\n }\n >\n ↓\n </button>\n </li>\n ) : null,\n )}\n {hidden\n .filter((column) => matches(column.name))\n .map((column) => (\n <li key={column.name} className=\"vg-columns__item\">\n <label>\n <input\n type=\"checkbox\"\n checked={false}\n onChange={() => run({ command: \"column.show\", names: [column.name] })}\n />\n <span className=\"vg-filter__label\">{column.name}</span>\n </label>\n </li>\n ))}\n </ul>\n {error !== null && (\n <p role=\"alert\" className=\"vg-filter__error\">\n {error}\n </p>\n )}\n {hidden.length > 0 && (\n <button\n type=\"button\"\n className=\"vg-menu__item\"\n disabled={pending}\n onClick={() => run({ command: \"column.show\", all: true })}\n >\n {messages.showAllColumns}\n </button>\n )}\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The content of the toolbar's conditions menu (§6.2.1 of the specification): every condition of the plan, those
3
+ * across columns included, as groups of conditions that all hold or one of which holds, nested. It reads `where`
4
+ * when it opens, and applying dispatches `filter.set`, which keeps the search. Expressions that it does not take
5
+ * apart are shown as formulas and kept, or removed. The toolbar loads it when the menu first opens.
6
+ */
7
+ export default function ConditionsPanel({ close }: {
8
+ close: () => void;
9
+ }): import("react").JSX.Element | null;
10
+ //# sourceMappingURL=conditions-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions-menu.d.ts","sourceRoot":"","sources":["../../src/react/conditions-menu.tsx"],"names":[],"mappings":"AAyNA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,sCAiEvE"}